aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--].gitignore4
-rw-r--r--.htaccess3
-rw-r--r--LICENSE2
-rw-r--r--README11
-rw-r--r--README.md36
-rwxr-xr-x[-rw-r--r--]boot.php2060
-rw-r--r--bugs4
-rw-r--r--doc/Account-Basics.md59
-rw-r--r--doc/Bugs-and-Issues.md31
-rw-r--r--doc/Channels.md27
-rw-r--r--doc/Connecting-to-Channels.md12
-rw-r--r--doc/Connectors.md67
-rw-r--r--doc/Developers.md11
-rw-r--r--doc/Groups-and-Privacy.md53
-rw-r--r--doc/Home.md23
-rw-r--r--doc/Install.md44
-rw-r--r--doc/Installing-Connectors.md135
-rw-r--r--doc/Making-Friends.md59
-rw-r--r--doc/Message-Flow.md54
-rw-r--r--doc/Pages.md36
-rw-r--r--doc/Permissions.md43
-rw-r--r--doc/Plugins.md357
-rw-r--r--doc/Profiles.md17
-rw-r--r--doc/Remove-Account.md22
-rw-r--r--doc/Settings.md227
-rw-r--r--doc/Tags-and-Mentions.md30
-rw-r--r--doc/Webpages.md14
-rw-r--r--doc/andfinally.md26
-rw-r--r--doc/groupsandpages.md11
-rw-r--r--doc/guide.md13
-rw-r--r--doc/html/BaseObject_8php.html120
-rw-r--r--doc/html/Contact_8php.html478
-rw-r--r--doc/html/Contact_8php.js17
-rw-r--r--doc/html/ConversationObject_8php.html120
-rw-r--r--doc/html/ITemplateEngine_8php.html120
-rw-r--r--doc/html/ItemObject_8php.html120
-rw-r--r--doc/html/ProtoDriver_8php.html122
-rw-r--r--doc/html/README_8md.html112
-rw-r--r--doc/html/Scrape_8php.html171
-rw-r--r--doc/html/Scrape_8php.js5
-rw-r--r--doc/html/__well__known_8php.html137
-rw-r--r--doc/html/__well__known_8php.js4
-rw-r--r--doc/html/account_8php.html328
-rw-r--r--doc/html/account_8php.js13
-rw-r--r--doc/html/acl_8php.html157
-rw-r--r--doc/html/acl_8php.js5
-rw-r--r--doc/html/acl__selectors_8php.html279
-rw-r--r--doc/html/acl__selectors_8php.js7
-rw-r--r--doc/html/activities_8php.html149
-rw-r--r--doc/html/activities_8php.js4
-rw-r--r--doc/html/admin_8php.html550
-rw-r--r--doc/html/admin_8php.js18
-rw-r--r--doc/html/allfriends_8php.html137
-rw-r--r--doc/html/allfriends_8php.js4
-rw-r--r--doc/html/annotated.html143
-rw-r--r--doc/html/annotated.js28
-rw-r--r--doc/html/apps_8php.html137
-rw-r--r--doc/html/apps_8php.js4
-rw-r--r--doc/html/auth_8php.html199
-rw-r--r--doc/html/auth_8php.js6
-rw-r--r--doc/html/bb2diaspora_8php.html342
-rw-r--r--doc/html/bb2diaspora_8php.js12
-rw-r--r--doc/html/bbcode_8php.html246
-rw-r--r--doc/html/bbcode_8php.js9
-rw-r--r--doc/html/bc_s.pngbin0 -> 676 bytes
-rw-r--r--doc/html/bdwn.pngbin0 -> 147 bytes
-rw-r--r--doc/html/boot_8php.html4306
-rw-r--r--doc/html/boot_8php.js249
-rw-r--r--doc/html/cache_8php.html120
-rw-r--r--doc/html/channel_8php.html192
-rw-r--r--doc/html/channel_8php.js6
-rw-r--r--doc/html/chanview_8php.html137
-rw-r--r--doc/html/chanview_8php.js4
-rw-r--r--doc/html/classApp-members.html210
-rw-r--r--doc/html/classApp.html1797
-rw-r--r--doc/html/classApp.js96
-rw-r--r--doc/html/classBaseObject-members.html120
-rw-r--r--doc/html/classBaseObject.html221
-rw-r--r--doc/html/classBaseObject.js4
-rw-r--r--doc/html/classBaseObject.pngbin0 -> 625 bytes
-rw-r--r--doc/html/classCache-members.html120
-rw-r--r--doc/html/classCache.html218
-rw-r--r--doc/html/classConversation-members.html138
-rw-r--r--doc/html/classConversation.html585
-rw-r--r--doc/html/classConversation.js22
-rw-r--r--doc/html/classConversation.pngbin0 -> 436 bytes
-rw-r--r--doc/html/classFKOAuth1-members.html119
-rw-r--r--doc/html/classFKOAuth1.html169
-rw-r--r--doc/html/classFKOAuth1.js5
-rw-r--r--doc/html/classFKOAuth1.pngbin0 -> 433 bytes
-rw-r--r--doc/html/classFKOAuthDataStore-members.html123
-rw-r--r--doc/html/classFKOAuthDataStore.html306
-rw-r--r--doc/html/classFKOAuthDataStore.js9
-rw-r--r--doc/html/classFKOAuthDataStore.pngbin0 -> 560 bytes
-rw-r--r--doc/html/classFriendicaSmarty-members.html120
-rw-r--r--doc/html/classFriendicaSmarty.html188
-rw-r--r--doc/html/classFriendicaSmarty.js6
-rw-r--r--doc/html/classFriendicaSmarty.pngbin0 -> 487 bytes
-rw-r--r--doc/html/classFriendicaSmartyEngine-members.html122
-rw-r--r--doc/html/classFriendicaSmartyEngine.html267
-rw-r--r--doc/html/classFriendicaSmartyEngine.js7
-rw-r--r--doc/html/classFriendicaSmartyEngine.pngbin0 -> 647 bytes
-rw-r--r--doc/html/classItem-members.html161
-rw-r--r--doc/html/classItem.html1177
-rw-r--r--doc/html/classItem.js45
-rw-r--r--doc/html/classItem.pngbin0 -> 391 bytes
-rw-r--r--doc/html/classPhoto-members.html145
-rw-r--r--doc/html/classPhoto.html826
-rw-r--r--doc/html/classPhoto.js30
-rw-r--r--doc/html/classProtoDriver-members.html124
-rw-r--r--doc/html/classProtoDriver.html410
-rw-r--r--doc/html/classProtoDriver.js10
-rw-r--r--doc/html/classProtoDriver.pngbin0 -> 428 bytes
-rw-r--r--doc/html/classTemplate-members.html142
-rw-r--r--doc/html/classTemplate.html742
-rw-r--r--doc/html/classTemplate.js27
-rw-r--r--doc/html/classTemplate.pngbin0 -> 489 bytes
-rw-r--r--doc/html/classZotDriver-members.html124
-rw-r--r--doc/html/classZotDriver.html425
-rw-r--r--doc/html/classZotDriver.js10
-rw-r--r--doc/html/classZotDriver.pngbin0 -> 420 bytes
-rw-r--r--doc/html/classdba-members.html128
-rw-r--r--doc/html/classdba.html363
-rw-r--r--doc/html/classdba.js14
-rw-r--r--doc/html/classdba__driver-members.html129
-rw-r--r--doc/html/classdba__driver.html483
-rw-r--r--doc/html/classdba__driver.js15
-rw-r--r--doc/html/classdba__driver.pngbin0 -> 591 bytes
-rw-r--r--doc/html/classdba__mysql-members.html129
-rw-r--r--doc/html/classdba__mysql.html263
-rw-r--r--doc/html/classdba__mysql.js7
-rw-r--r--doc/html/classdba__mysql.pngbin0 -> 443 bytes
-rw-r--r--doc/html/classdba__mysqli-members.html129
-rw-r--r--doc/html/classdba__mysqli.html263
-rw-r--r--doc/html/classdba__mysqli.js7
-rw-r--r--doc/html/classdba__mysqli.pngbin0 -> 441 bytes
-rw-r--r--doc/html/classenotify-members.html118
-rw-r--r--doc/html/classenotify.html167
-rw-r--r--doc/html/classes.html139
-rw-r--r--doc/html/classphoto__driver-members.html146
-rw-r--r--doc/html/classphoto__driver.html927
-rw-r--r--doc/html/classphoto__driver.js32
-rw-r--r--doc/html/classphoto__driver.pngbin0 -> 652 bytes
-rw-r--r--doc/html/classphoto__gd-members.html146
-rw-r--r--doc/html/classphoto__gd.html432
-rw-r--r--doc/html/classphoto__gd.js13
-rw-r--r--doc/html/classphoto__gd.pngbin0 -> 431 bytes
-rw-r--r--doc/html/classphoto__imagick-members.html147
-rw-r--r--doc/html/classphoto__imagick.html459
-rw-r--r--doc/html/classphoto__imagick.js14
-rw-r--r--doc/html/classphoto__imagick.pngbin0 -> 483 bytes
-rw-r--r--doc/html/cli__startup_8php.html138
-rw-r--r--doc/html/cli__startup_8php.js4
-rw-r--r--doc/html/closed.pngbin0 -> 132 bytes
-rw-r--r--doc/html/common_8php.html173
-rw-r--r--doc/html/common_8php.js6
-rw-r--r--doc/html/community_8php.html167
-rw-r--r--doc/html/community_8php.js5
-rw-r--r--doc/html/config_8md.html112
-rw-r--r--doc/html/connections_8php.html211
-rw-r--r--doc/html/connections_8php.js8
-rw-r--r--doc/html/contact__selectors_8php.html207
-rw-r--r--doc/html/contact__selectors_8php.js7
-rw-r--r--doc/html/contact__widgets_8php.html237
-rw-r--r--doc/html/contact__widgets_8php.js8
-rw-r--r--doc/html/contactgroup_8php.html137
-rw-r--r--doc/html/contactgroup_8php.js4
-rw-r--r--doc/html/conversation_8php.html722
-rw-r--r--doc/html/conversation_8php.js25
-rw-r--r--doc/html/crepair_8php.html173
-rw-r--r--doc/html/crepair_8php.js6
-rw-r--r--doc/html/cronhooks_8php.html147
-rw-r--r--doc/html/cronhooks_8php.js4
-rw-r--r--doc/html/crypto_8php.html399
-rw-r--r--doc/html/crypto_8php.js12
-rw-r--r--doc/html/datetime_8php.html561
-rw-r--r--doc/html/datetime_8php.js16
-rw-r--r--doc/html/db__update_8php.html120
-rw-r--r--doc/html/db__update_8php.js7
-rw-r--r--doc/html/dba_8php.html112
-rw-r--r--doc/html/dba_8php.js11
-rw-r--r--doc/html/dba__driver_8php.html329
-rw-r--r--doc/html/dba__driver_8php.js12
-rw-r--r--doc/html/dba__mysql_8php.html120
-rw-r--r--doc/html/dba__mysqli_8php.html120
-rw-r--r--doc/html/default_8php.html133
-rw-r--r--doc/html/default_8php.js4
-rw-r--r--doc/html/delegate_8php.html137
-rw-r--r--doc/html/delegate_8php.js4
-rw-r--r--doc/html/deliver_8php.html147
-rw-r--r--doc/html/deliver_8php.js4
-rw-r--r--doc/html/dir_032dd9e2cfe278a2cfa5eb9547448eb9.html116
-rw-r--r--doc/html/dir_032dd9e2cfe278a2cfa5eb9547448eb9.js6
-rw-r--r--doc/html/dir_0eaa4a0adae8ba4811e133c6e594aeee.html112
-rw-r--r--doc/html/dir_0eaa4a0adae8ba4811e133c6e594aeee.js4
-rw-r--r--doc/html/dir_21bc5169ff11430004758be31dcfc6c4.html116
-rw-r--r--doc/html/dir_21bc5169ff11430004758be31dcfc6c4.js10
-rw-r--r--doc/html/dir_23ec12649285f9fabf3a6b7380226c28.html135
-rw-r--r--doc/html/dir_23ec12649285f9fabf3a6b7380226c28.js14
-rw-r--r--doc/html/dir_55dbaf9b7b53c4fc605c9011743a7353.html112
-rw-r--r--doc/html/dir_55dbaf9b7b53c4fc605c9011743a7353.js4
-rw-r--r--doc/html/dir_6b44a0e797e2f12381093380e3e54763.html120
-rw-r--r--doc/html/dir_6b44a0e797e2f12381093380e3e54763.js8
-rw-r--r--doc/html/dir_817f6d302394b98e59575acdb59998bc.html124
-rw-r--r--doc/html/dir_817f6d302394b98e59575acdb59998bc.js10
-rw-r--r--doc/html/dir_8543001e5d25368a6edede3e63efb554.html114
-rw-r--r--doc/html/dir_8543001e5d25368a6edede3e63efb554.js5
-rw-r--r--doc/html/dir_8e4ceba158be32034f698ffd6810bb05.html122
-rw-r--r--doc/html/dir_8e4ceba158be32034f698ffd6810bb05.js4
-rw-r--r--doc/html/dir_955ae6074e6c84afe72925e364242b14.html122
-rw-r--r--doc/html/dir_955ae6074e6c84afe72925e364242b14.js4
-rw-r--r--doc/html/dir__fns_8php.html179
-rw-r--r--doc/html/dir__fns_8php.js6
-rw-r--r--doc/html/dir_aae29906d7bfc07d076125f669c8352e.html116
-rw-r--r--doc/html/dir_aae29906d7bfc07d076125f669c8352e.js10
-rw-r--r--doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.html114
-rw-r--r--doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.js5
-rw-r--r--doc/html/dir_d41ce877eb409a4791b288730010abe2.html330
-rw-r--r--doc/html/dir_d41ce877eb409a4791b288730010abe2.js113
-rw-r--r--doc/html/dir_d44c64559bbebec7f509842c48db8b23.html243
-rw-r--r--doc/html/dir_d44c64559bbebec7f509842c48db8b23.js84
-rw-r--r--doc/html/dir_d795dfe8933002397556cc7aa16eca15.html112
-rw-r--r--doc/html/dir_d795dfe8933002397556cc7aa16eca15.js4
-rw-r--r--doc/html/dirfind_8php.html155
-rw-r--r--doc/html/dirfind_8php.js5
-rw-r--r--doc/html/dirsearch_8php.html155
-rw-r--r--doc/html/dirsearch_8php.js5
-rw-r--r--doc/html/display_8php.html155
-rw-r--r--doc/html/display_8php.js4
-rw-r--r--doc/html/docblox__errorchecker_8php.html314
-rw-r--r--doc/html/docblox__errorchecker_8php.js14
-rw-r--r--doc/html/doxygen.css1184
-rw-r--r--doc/html/doxygen.pngbin0 -> 3779 bytes
-rw-r--r--doc/html/dynsections.js97
-rw-r--r--doc/html/editpost_8php.html137
-rw-r--r--doc/html/editpost_8php.js4
-rw-r--r--doc/html/editwebpage_8php.html137
-rw-r--r--doc/html/editwebpage_8php.js4
-rw-r--r--doc/html/enotify_8php.html145
-rw-r--r--doc/html/enotify_8php.js5
-rw-r--r--doc/html/event_8php.html265
-rw-r--r--doc/html/event_8php.js10
-rw-r--r--doc/html/events_8php.html155
-rw-r--r--doc/html/events_8php.js5
-rw-r--r--doc/html/expire_8php.html147
-rw-r--r--doc/html/expire_8php.js4
-rw-r--r--doc/html/extract_8php.html181
-rw-r--r--doc/html/extract_8php.js7
-rw-r--r--doc/html/fbrowser_8php.html149
-rw-r--r--doc/html/fbrowser_8php.js4
-rw-r--r--doc/html/fcontact_8php.html187
-rw-r--r--doc/html/fcontact_8php.js5
-rw-r--r--doc/html/features_8php.html166
-rw-r--r--doc/html/features_8php.js5
-rw-r--r--doc/html/feed_8php.html137
-rw-r--r--doc/html/feed_8php.js4
-rw-r--r--doc/html/filer_8php.html137
-rw-r--r--doc/html/filer_8php.js4
-rw-r--r--doc/html/filerm_8php.html137
-rw-r--r--doc/html/filerm_8php.js4
-rw-r--r--doc/html/files.html335
-rw-r--r--doc/html/files.js8
-rw-r--r--doc/html/fpostit_8php.html172
-rw-r--r--doc/html/fpostit_8php.js5
-rw-r--r--doc/html/fred-48.pngbin0 -> 1706 bytes
-rw-r--r--doc/html/fresh_8md.html112
-rw-r--r--doc/html/friendica-to-smarty-tpl_8py.html158
-rw-r--r--doc/html/friendica-to-smarty-tpl_8py.js18
-rw-r--r--doc/html/friendica__smarty_8php.html122
-rw-r--r--doc/html/fsuggest_8php.html155
-rw-r--r--doc/html/fsuggest_8php.js5
-rw-r--r--doc/html/ftv2blank.pngbin0 -> 86 bytes
-rw-r--r--doc/html/ftv2cl.pngbin0 -> 453 bytes
-rw-r--r--doc/html/ftv2doc.pngbin0 -> 746 bytes
-rw-r--r--doc/html/ftv2folderclosed.pngbin0 -> 616 bytes
-rw-r--r--doc/html/ftv2folderopen.pngbin0 -> 597 bytes
-rw-r--r--doc/html/ftv2lastnode.pngbin0 -> 86 bytes
-rw-r--r--doc/html/ftv2link.pngbin0 -> 746 bytes
-rw-r--r--doc/html/ftv2mlastnode.pngbin0 -> 246 bytes
-rw-r--r--doc/html/ftv2mnode.pngbin0 -> 246 bytes
-rw-r--r--doc/html/ftv2mo.pngbin0 -> 403 bytes
-rw-r--r--doc/html/ftv2node.pngbin0 -> 86 bytes
-rw-r--r--doc/html/ftv2ns.pngbin0 -> 388 bytes
-rw-r--r--doc/html/ftv2plastnode.pngbin0 -> 229 bytes
-rw-r--r--doc/html/ftv2pnode.pngbin0 -> 229 bytes
-rw-r--r--doc/html/ftv2splitbar.pngbin0 -> 314 bytes
-rw-r--r--doc/html/ftv2vertline.pngbin0 -> 86 bytes
-rw-r--r--doc/html/full_8php.html133
-rw-r--r--doc/html/full_8php.js4
-rw-r--r--doc/html/functions.html437
-rw-r--r--doc/html/functions_0x5f.html192
-rw-r--r--doc/html/functions_0x61.html155
-rw-r--r--doc/html/functions_0x62.html148
-rw-r--r--doc/html/functions_0x63.html181
-rw-r--r--doc/html/functions_0x64.html170
-rw-r--r--doc/html/functions_0x65.html150
-rw-r--r--doc/html/functions_0x66.html150
-rw-r--r--doc/html/functions_0x67.html283
-rw-r--r--doc/html/functions_0x68.html151
-rw-r--r--doc/html/functions_0x69.html177
-rw-r--r--doc/html/functions_0x6c.html162
-rw-r--r--doc/html/functions_0x6e.html151
-rw-r--r--doc/html/functions_0x6f.html148
-rw-r--r--doc/html/functions_0x70.html148
-rw-r--r--doc/html/functions_0x71.html150
-rw-r--r--doc/html/functions_0x72.html167
-rw-r--r--doc/html/functions_0x73.html236
-rw-r--r--doc/html/functions_0x74.html148
-rw-r--r--doc/html/functions_0x76.html148
-rw-r--r--doc/html/functions_dup.js23
-rw-r--r--doc/html/functions_func.html676
-rw-r--r--doc/html/functions_vars.html418
-rw-r--r--doc/html/globals.html287
-rw-r--r--doc/html/globals_0x5f.html153
-rw-r--r--doc/html/globals_0x61.html594
-rw-r--r--doc/html/globals_0x62.html198
-rw-r--r--doc/html/globals_0x63.html423
-rw-r--r--doc/html/globals_0x64.html291
-rw-r--r--doc/html/globals_0x65.html218
-rw-r--r--doc/html/globals_0x66.html279
-rw-r--r--doc/html/globals_0x67.html348
-rw-r--r--doc/html/globals_0x68.html204
-rw-r--r--doc/html/globals_0x69.html335
-rw-r--r--doc/html/globals_0x6a.html159
-rw-r--r--doc/html/globals_0x6b.html156
-rw-r--r--doc/html/globals_0x6c.html255
-rw-r--r--doc/html/globals_0x6d.html228
-rw-r--r--doc/html/globals_0x6e.html360
-rw-r--r--doc/html/globals_0x6f.html198
-rw-r--r--doc/html/globals_0x70.html497
-rw-r--r--doc/html/globals_0x71.html165
-rw-r--r--doc/html/globals_0x72.html297
-rw-r--r--doc/html/globals_0x73.html330
-rw-r--r--doc/html/globals_0x74.html273
-rw-r--r--doc/html/globals_0x75.html225
-rw-r--r--doc/html/globals_0x76.html183
-rw-r--r--doc/html/globals_0x77.html180
-rw-r--r--doc/html/globals_0x78.html177
-rw-r--r--doc/html/globals_0x7a.html234
-rw-r--r--doc/html/globals_dup.js30
-rw-r--r--doc/html/globals_func.html152
-rw-r--r--doc/html/globals_func.js29
-rw-r--r--doc/html/globals_func_0x61.html464
-rw-r--r--doc/html/globals_func_0x62.html197
-rw-r--r--doc/html/globals_func_0x63.html404
-rw-r--r--doc/html/globals_func_0x64.html263
-rw-r--r--doc/html/globals_func_0x65.html206
-rw-r--r--doc/html/globals_func_0x66.html275
-rw-r--r--doc/html/globals_func_0x67.html338
-rw-r--r--doc/html/globals_func_0x68.html197
-rw-r--r--doc/html/globals_func_0x69.html260
-rw-r--r--doc/html/globals_func_0x6a.html155
-rw-r--r--doc/html/globals_func_0x6b.html152
-rw-r--r--doc/html/globals_func_0x6c.html233
-rw-r--r--doc/html/globals_func_0x6d.html203
-rw-r--r--doc/html/globals_func_0x6e.html239
-rw-r--r--doc/html/globals_func_0x6f.html197
-rw-r--r--doc/html/globals_func_0x70.html395
-rw-r--r--doc/html/globals_func_0x71.html164
-rw-r--r--doc/html/globals_func_0x72.html272
-rw-r--r--doc/html/globals_func_0x73.html320
-rw-r--r--doc/html/globals_func_0x74.html230
-rw-r--r--doc/html/globals_func_0x75.html218
-rw-r--r--doc/html/globals_func_0x76.html182
-rw-r--r--doc/html/globals_func_0x77.html176
-rw-r--r--doc/html/globals_func_0x78.html173
-rw-r--r--doc/html/globals_func_0x7a.html227
-rw-r--r--doc/html/globals_vars.html282
-rw-r--r--doc/html/globals_vars.js25
-rw-r--r--doc/html/globals_vars_0x61.html274
-rw-r--r--doc/html/globals_vars_0x63.html163
-rw-r--r--doc/html/globals_vars_0x64.html172
-rw-r--r--doc/html/globals_vars_0x65.html156
-rw-r--r--doc/html/globals_vars_0x66.html148
-rw-r--r--doc/html/globals_vars_0x67.html154
-rw-r--r--doc/html/globals_vars_0x68.html151
-rw-r--r--doc/html/globals_vars_0x69.html219
-rw-r--r--doc/html/globals_vars_0x6a.html148
-rw-r--r--doc/html/globals_vars_0x6b.html148
-rw-r--r--doc/html/globals_vars_0x6c.html166
-rw-r--r--doc/html/globals_vars_0x6d.html169
-rw-r--r--doc/html/globals_vars_0x6e.html265
-rw-r--r--doc/html/globals_vars_0x70.html246
-rw-r--r--doc/html/globals_vars_0x72.html169
-rw-r--r--doc/html/globals_vars_0x73.html154
-rw-r--r--doc/html/globals_vars_0x74.html187
-rw-r--r--doc/html/globals_vars_0x75.html151
-rw-r--r--doc/html/globals_vars_0x77.html148
-rw-r--r--doc/html/globals_vars_0x78.html148
-rw-r--r--doc/html/globals_vars_0x7a.html151
-rw-r--r--doc/html/gprobe_8php.html147
-rw-r--r--doc/html/gprobe_8php.js4
-rw-r--r--doc/html/hcard_8php.html155
-rw-r--r--doc/html/hcard_8php.js5
-rw-r--r--doc/html/help_8php.html137
-rw-r--r--doc/html/help_8php.js4
-rw-r--r--doc/html/hierarchy.html141
-rw-r--r--doc/html/hierarchy.js34
-rw-r--r--doc/html/home_8php.html112
-rw-r--r--doc/html/hostxrd_8php.html137
-rw-r--r--doc/html/hostxrd_8php.js4
-rw-r--r--doc/html/html2bbcode_8php.html265
-rw-r--r--doc/html/html2bbcode_8php.js7
-rw-r--r--doc/html/html2plain_8php.html241
-rw-r--r--doc/html/html2plain_8php.js7
-rw-r--r--doc/html/identity_8php.html297
-rw-r--r--doc/html/identity_8php.js11
-rw-r--r--doc/html/import_8php.html155
-rw-r--r--doc/html/import_8php.js5
-rw-r--r--doc/html/include_2api_8php.html1597
-rw-r--r--doc/html/include_2api_8php.js55
-rw-r--r--doc/html/include_2attach_8php.html402
-rw-r--r--doc/html/include_2attach_8php.js10
-rw-r--r--doc/html/include_2config_8php.html555
-rw-r--r--doc/html/include_2config_8php.js16
-rw-r--r--doc/html/include_2directory_8php.html147
-rw-r--r--doc/html/include_2directory_8php.js4
-rw-r--r--doc/html/include_2follow_8php.html162
-rw-r--r--doc/html/include_2follow_8php.js4
-rw-r--r--doc/html/include_2group_8php.html481
-rw-r--r--doc/html/include_2group_8php.js15
-rw-r--r--doc/html/include_2message_8php.html316
-rw-r--r--doc/html/include_2message_8php.js8
-rw-r--r--doc/html/include_2network_8php.html907
-rw-r--r--doc/html/include_2network_8php.js29
-rw-r--r--doc/html/include_2notify_8php.html139
-rw-r--r--doc/html/include_2notify_8php.js4
-rw-r--r--doc/html/include_2oembed_8php.html306
-rw-r--r--doc/html/include_2oembed_8php.js11
-rw-r--r--doc/html/include_2photos_8php.html403
-rw-r--r--doc/html/include_2photos_8php.js11
-rw-r--r--doc/html/include_2settings_8php.html150
-rw-r--r--doc/html/include_2settings_8php.js4
-rw-r--r--doc/html/index.html106
-rw-r--r--doc/html/interfaceITemplateEngine-members.html119
-rw-r--r--doc/html/interfaceITemplateEngine.html197
-rw-r--r--doc/html/interfaceITemplateEngine.js5
-rw-r--r--doc/html/interfaceITemplateEngine.pngbin0 -> 893 bytes
-rw-r--r--doc/html/intro_8php.html173
-rw-r--r--doc/html/intro_8php.js6
-rw-r--r--doc/html/invite_8php.html157
-rw-r--r--doc/html/invite_8php.js5
-rw-r--r--doc/html/iquery_8php.html147
-rw-r--r--doc/html/iquery_8php.js4
-rw-r--r--doc/html/item_8php.html349
-rw-r--r--doc/html/item_8php.js8
-rw-r--r--doc/html/items_8php.html1764
-rw-r--r--doc/html/items_8php.js61
-rw-r--r--doc/html/jquery.js77
-rw-r--r--doc/html/language_8php.html323
-rw-r--r--doc/html/language_8php.js12
-rw-r--r--doc/html/like_8php.html137
-rw-r--r--doc/html/like_8php.js4
-rw-r--r--doc/html/lockview_8php.html137
-rw-r--r--doc/html/lockview_8php.js4
-rw-r--r--doc/html/login_8php.html137
-rw-r--r--doc/html/login_8php.js4
-rw-r--r--doc/html/lostpass_8php.html155
-rw-r--r--doc/html/lostpass_8php.js5
-rw-r--r--doc/html/magic_8php.html137
-rw-r--r--doc/html/magic_8php.js4
-rw-r--r--doc/html/manage_8php.html137
-rw-r--r--doc/html/manage_8php.js4
-rw-r--r--doc/html/match_8php.html137
-rw-r--r--doc/html/match_8php.js4
-rw-r--r--doc/html/md_README.html113
-rw-r--r--doc/html/md_config.html112
-rw-r--r--doc/html/md_fresh.html124
-rw-r--r--doc/html/minimal_8php.html112
-rw-r--r--doc/html/mod_2api_8php.html175
-rw-r--r--doc/html/mod_2api_8php.js6
-rw-r--r--doc/html/mod_2attach_8php.html137
-rw-r--r--doc/html/mod_2attach_8php.js4
-rw-r--r--doc/html/mod_2directory_8php.html173
-rw-r--r--doc/html/mod_2directory_8php.js6
-rw-r--r--doc/html/mod_2follow_8php.html155
-rw-r--r--doc/html/mod_2follow_8php.js5
-rw-r--r--doc/html/mod_2group_8php.html173
-rw-r--r--doc/html/mod_2group_8php.js6
-rw-r--r--doc/html/mod_2message_8php.html174
-rw-r--r--doc/html/mod_2message_8php.js6
-rw-r--r--doc/html/mod_2network_8php.html216
-rw-r--r--doc/html/mod_2network_8php.js7
-rw-r--r--doc/html/mod_2notify_8php.html155
-rw-r--r--doc/html/mod_2notify_8php.js5
-rw-r--r--doc/html/mod_2oembed_8php.html137
-rw-r--r--doc/html/mod_2oembed_8php.js4
-rw-r--r--doc/html/mod_2photos_8php.html176
-rw-r--r--doc/html/mod_2photos_8php.js6
-rw-r--r--doc/html/mod_2settings_8php.html193
-rw-r--r--doc/html/mod_2settings_8php.js7
-rw-r--r--doc/html/mod__import_8php.html135
-rw-r--r--doc/html/mod__import_8php.js4
-rw-r--r--doc/html/mod__new__channel_8php.html133
-rw-r--r--doc/html/mod__new__channel_8php.js4
-rw-r--r--doc/html/mod__register_8php.html133
-rw-r--r--doc/html/mod__register_8php.js4
-rw-r--r--doc/html/mood_8php.html155
-rw-r--r--doc/html/mood_8php.js5
-rw-r--r--doc/html/msearch_8php.html137
-rw-r--r--doc/html/msearch_8php.js4
-rw-r--r--doc/html/namespaceFriendica.html115
-rw-r--r--doc/html/namespaceacl__selectors.html112
-rw-r--r--doc/html/namespacefriendica-to-smarty-tpl.html378
-rw-r--r--doc/html/namespacemembers.html176
-rw-r--r--doc/html/namespacemembers_func.html130
-rw-r--r--doc/html/namespacemembers_vars.html163
-rw-r--r--doc/html/namespaces.html121
-rw-r--r--doc/html/namespaces.js8
-rw-r--r--doc/html/namespaceupdatetpl.html212
-rw-r--r--doc/html/namespaceutil.html144
-rw-r--r--doc/html/nav_8php.html167
-rw-r--r--doc/html/nav_8php.js5
-rw-r--r--doc/html/nav_f.pngbin0 -> 153 bytes
-rw-r--r--doc/html/nav_g.pngbin0 -> 95 bytes
-rw-r--r--doc/html/nav_h.pngbin0 -> 98 bytes
-rw-r--r--doc/html/navtree.css143
-rw-r--r--doc/html/navtree.js542
-rw-r--r--doc/html/navtreeindex0.js253
-rw-r--r--doc/html/navtreeindex1.js253
-rw-r--r--doc/html/navtreeindex2.js253
-rw-r--r--doc/html/navtreeindex3.js253
-rw-r--r--doc/html/navtreeindex4.js253
-rw-r--r--doc/html/navtreeindex5.js253
-rw-r--r--doc/html/navtreeindex6.js253
-rw-r--r--doc/html/navtreeindex7.js9
-rw-r--r--doc/html/new__channel_8php.html173
-rw-r--r--doc/html/new__channel_8php.js6
-rw-r--r--doc/html/nogroup_8php.html155
-rw-r--r--doc/html/nogroup_8php.js5
-rw-r--r--doc/html/notifications_8php.html155
-rw-r--r--doc/html/notifications_8php.js5
-rw-r--r--doc/html/notifier_8php.html147
-rw-r--r--doc/html/notifier_8php.js4
-rw-r--r--doc/html/oauth_8php.html160
-rw-r--r--doc/html/oauth_8php.js7
-rw-r--r--doc/html/oexchange_8php.html155
-rw-r--r--doc/html/oexchange_8php.js5
-rw-r--r--doc/html/onepoll_8php.html147
-rw-r--r--doc/html/onepoll_8php.js4
-rw-r--r--doc/html/open.pngbin0 -> 123 bytes
-rw-r--r--doc/html/opensearch_8php.html137
-rw-r--r--doc/html/opensearch_8php.js4
-rw-r--r--doc/html/page_8php.html155
-rw-r--r--doc/html/page_8php.js5
-rw-r--r--doc/html/pages.html113
-rw-r--r--doc/html/parse__url_8php.html215
-rw-r--r--doc/html/parse__url_8php.js7
-rw-r--r--doc/html/permissions_8php.html255
-rw-r--r--doc/html/permissions_8php.js7
-rw-r--r--doc/html/photo_8php.html139
-rw-r--r--doc/html/photo_8php.js4
-rw-r--r--doc/html/photo__driver_8php.html263
-rw-r--r--doc/html/photo__driver_8php.js8
-rw-r--r--doc/html/photo__gd_8php.html120
-rw-r--r--doc/html/photo__imagick_8php.html120
-rw-r--r--doc/html/php2po_8php.html245
-rw-r--r--doc/html/php2po_8php.js11
-rw-r--r--doc/html/php_2default_8php.html133
-rw-r--r--doc/html/php_2default_8php.js4
-rw-r--r--doc/html/php_2theme__init_8php.html112
-rw-r--r--doc/html/php_8php.html137
-rw-r--r--doc/html/php_8php.js4
-rw-r--r--doc/html/ping_8php.html137
-rw-r--r--doc/html/ping_8php.js4
-rw-r--r--doc/html/plugin_8php.html743
-rw-r--r--doc/html/plugin_8php.js29
-rw-r--r--doc/html/po2php_8php.html147
-rw-r--r--doc/html/po2php_8php.js4
-rw-r--r--doc/html/poco_8php.html137
-rw-r--r--doc/html/poco_8php.js4
-rw-r--r--doc/html/poke_8php.html157
-rw-r--r--doc/html/poke_8php.js5
-rw-r--r--doc/html/poller_8php.html147
-rw-r--r--doc/html/poller_8php.js4
-rw-r--r--doc/html/post_8php.html164
-rw-r--r--doc/html/post_8php.js5
-rw-r--r--doc/html/pretheme_8php.html137
-rw-r--r--doc/html/pretheme_8php.js4
-rw-r--r--doc/html/probe_8php.html137
-rw-r--r--doc/html/probe_8php.js4
-rw-r--r--doc/html/profile_8php.html183
-rw-r--r--doc/html/profile_8php.js6
-rw-r--r--doc/html/profile__advanced_8php.html139
-rw-r--r--doc/html/profile__advanced_8php.js4
-rw-r--r--doc/html/profile__photo_8php.html173
-rw-r--r--doc/html/profile__photo_8php.js6
-rw-r--r--doc/html/profile__selectors_8php.html209
-rw-r--r--doc/html/profile__selectors_8php.js6
-rw-r--r--doc/html/profiles_8php.html191
-rw-r--r--doc/html/profiles_8php.js7
-rw-r--r--doc/html/profperm_8php.html173
-rw-r--r--doc/html/profperm_8php.js6
-rw-r--r--doc/html/qsearch_8php.html137
-rw-r--r--doc/html/qsearch_8php.js4
-rw-r--r--doc/html/queue_8php.html147
-rw-r--r--doc/html/queue_8php.js4
-rw-r--r--doc/html/queue__fn_8php.html155
-rw-r--r--doc/html/queue__fn_8php.js5
-rw-r--r--doc/html/r!-64.pngbin0 -> 2945 bytes
-rw-r--r--doc/html/randprof_8php.html137
-rw-r--r--doc/html/randprof_8php.js4
-rw-r--r--doc/html/redbasic_2php_2style_8php.html421
-rw-r--r--doc/html/redbasic_2php_2style_8php.js23
-rw-r--r--doc/html/redbasic_2php_2theme_8php.html137
-rw-r--r--doc/html/redbasic_2php_2theme_8php.js4
-rw-r--r--doc/html/redir_8php.html137
-rw-r--r--doc/html/redir_8php.js4
-rw-r--r--doc/html/redstrap_2php_2style_8php.html361
-rw-r--r--doc/html/redstrap_2php_2style_8php.js20
-rw-r--r--doc/html/redstrap_2php_2theme_8php.html137
-rw-r--r--doc/html/redstrap_2php_2theme_8php.js4
-rw-r--r--doc/html/register_8php.html173
-rw-r--r--doc/html/register_8php.js6
-rw-r--r--doc/html/regmod_8php.html137
-rw-r--r--doc/html/regmod_8php.js4
-rw-r--r--doc/html/removeme_8php.html155
-rw-r--r--doc/html/removeme_8php.js5
-rw-r--r--doc/html/resize.js93
-rw-r--r--doc/html/rhash-64.pngbin0 -> 3115 bytes
-rw-r--r--doc/html/rmagic_8php.html173
-rw-r--r--doc/html/rmagic_8php.js6
-rw-r--r--doc/html/rsd__xml_8php.html137
-rw-r--r--doc/html/rsd__xml_8php.js4
-rw-r--r--doc/html/search/all_24.html26
-rw-r--r--doc/html/search/all_24.js143
-rw-r--r--doc/html/search/all_5f.html26
-rw-r--r--doc/html/search/all_5f.js18
-rw-r--r--doc/html/search/all_61.html26
-rw-r--r--doc/html/search/all_61.js168
-rw-r--r--doc/html/search/all_62.html26
-rw-r--r--doc/html/search/all_62.js25
-rw-r--r--doc/html/search/all_63.html26
-rw-r--r--doc/html/search/all_63.js125
-rw-r--r--doc/html/search/all_64.html26
-rw-r--r--doc/html/search/all_64.js74
-rw-r--r--doc/html/search/all_65.html26
-rw-r--r--doc/html/search/all_65.js36
-rw-r--r--doc/html/search/all_66.html26
-rw-r--r--doc/html/search/all_66.js73
-rw-r--r--doc/html/search/all_67.html26
-rw-r--r--doc/html/search/all_67.js112
-rw-r--r--doc/html/search/all_68.html26
-rw-r--r--doc/html/search/all_68.js28
-rw-r--r--doc/html/search/all_69.html26
-rw-r--r--doc/html/search/all_69.js83
-rw-r--r--doc/html/search/all_6a.html26
-rw-r--r--doc/html/search/all_6a.js6
-rw-r--r--doc/html/search/all_6b.html26
-rw-r--r--doc/html/search/all_6b.js5
-rw-r--r--doc/html/search/all_6c.html26
-rw-r--r--doc/html/search/all_6c.js49
-rw-r--r--doc/html/search/all_6d.html26
-rw-r--r--doc/html/search/all_6d.js40
-rw-r--r--doc/html/search/all_6e.html26
-rw-r--r--doc/html/search/all_6e.js86
-rw-r--r--doc/html/search/all_6f.html26
-rw-r--r--doc/html/search/all_6f.js28
-rw-r--r--doc/html/search/all_70.html26
-rw-r--r--doc/html/search/all_70.js152
-rw-r--r--doc/html/search/all_71.html26
-rw-r--r--doc/html/search/all_71.js11
-rw-r--r--doc/html/search/all_72.html26
-rw-r--r--doc/html/search/all_72.js67
-rw-r--r--doc/html/search/all_73.html26
-rw-r--r--doc/html/search/all_73.js108
-rw-r--r--doc/html/search/all_74.html26
-rw-r--r--doc/html/search/all_74.js61
-rw-r--r--doc/html/search/all_75.html26
-rw-r--r--doc/html/search/all_75.js37
-rw-r--r--doc/html/search/all_76.html26
-rw-r--r--doc/html/search/all_76.js18
-rw-r--r--doc/html/search/all_77.html26
-rw-r--r--doc/html/search/all_77.js18
-rw-r--r--doc/html/search/all_78.html26
-rw-r--r--doc/html/search/all_78.js14
-rw-r--r--doc/html/search/all_7a.html26
-rw-r--r--doc/html/search/all_7a.js35
-rw-r--r--doc/html/search/classes_61.html26
-rw-r--r--doc/html/search/classes_61.js4
-rw-r--r--doc/html/search/classes_62.html26
-rw-r--r--doc/html/search/classes_62.js4
-rw-r--r--doc/html/search/classes_63.html26
-rw-r--r--doc/html/search/classes_63.js5
-rw-r--r--doc/html/search/classes_64.html26
-rw-r--r--doc/html/search/classes_64.js6
-rw-r--r--doc/html/search/classes_65.html26
-rw-r--r--doc/html/search/classes_65.js4
-rw-r--r--doc/html/search/classes_66.html26
-rw-r--r--doc/html/search/classes_66.js7
-rw-r--r--doc/html/search/classes_69.html26
-rw-r--r--doc/html/search/classes_69.js5
-rw-r--r--doc/html/search/classes_70.html26
-rw-r--r--doc/html/search/classes_70.js7
-rw-r--r--doc/html/search/classes_74.html26
-rw-r--r--doc/html/search/classes_74.js4
-rw-r--r--doc/html/search/classes_7a.html26
-rw-r--r--doc/html/search/classes_7a.js4
-rw-r--r--doc/html/search/close.pngbin0 -> 273 bytes
-rw-r--r--doc/html/search/files_5f.html26
-rw-r--r--doc/html/search/files_5f.js4
-rw-r--r--doc/html/search/files_61.html26
-rw-r--r--doc/html/search/files_61.js15
-rw-r--r--doc/html/search/files_62.html26
-rw-r--r--doc/html/search/files_62.js7
-rw-r--r--doc/html/search/files_63.html26
-rw-r--r--doc/html/search/files_63.js23
-rw-r--r--doc/html/search/files_64.html26
-rw-r--r--doc/html/search/files_64.js19
-rw-r--r--doc/html/search/files_65.html26
-rw-r--r--doc/html/search/files_65.js10
-rw-r--r--doc/html/search/files_66.html26
-rw-r--r--doc/html/search/files_66.js16
-rw-r--r--doc/html/search/files_67.html26
-rw-r--r--doc/html/search/files_67.js6
-rw-r--r--doc/html/search/files_68.html26
-rw-r--r--doc/html/search/files_68.js9
-rw-r--r--doc/html/search/files_69.html26
-rw-r--r--doc/html/search/files_69.js11
-rw-r--r--doc/html/search/files_6c.html26
-rw-r--r--doc/html/search/files_6c.js8
-rw-r--r--doc/html/search/files_6d.html26
-rw-r--r--doc/html/search/files_6d.js14
-rw-r--r--doc/html/search/files_6e.html26
-rw-r--r--doc/html/search/files_6e.js12
-rw-r--r--doc/html/search/files_6f.html26
-rw-r--r--doc/html/search/files_6f.js9
-rw-r--r--doc/html/search/files_70.html26
-rw-r--r--doc/html/search/files_70.js30
-rw-r--r--doc/html/search/files_71.html26
-rw-r--r--doc/html/search/files_71.js6
-rw-r--r--doc/html/search/files_72.html26
-rw-r--r--doc/html/search/files_72.js11
-rw-r--r--doc/html/search/files_73.html26
-rw-r--r--doc/html/search/files_73.js19
-rw-r--r--doc/html/search/files_74.html26
-rw-r--r--doc/html/search/files_74.js17
-rw-r--r--doc/html/search/files_75.html26
-rw-r--r--doc/html/search/files_75.js10
-rw-r--r--doc/html/search/files_76.html26
-rw-r--r--doc/html/search/files_76.js6
-rw-r--r--doc/html/search/files_77.html26
-rw-r--r--doc/html/search/files_77.js8
-rw-r--r--doc/html/search/files_78.html26
-rw-r--r--doc/html/search/files_78.js5
-rw-r--r--doc/html/search/files_7a.html26
-rw-r--r--doc/html/search/files_7a.js6
-rw-r--r--doc/html/search/functions_5f.html26
-rw-r--r--doc/html/search/functions_5f.js17
-rw-r--r--doc/html/search/functions_61.html26
-rw-r--r--doc/html/search/functions_61.js111
-rw-r--r--doc/html/search/functions_62.html26
-rw-r--r--doc/html/search/functions_62.js20
-rw-r--r--doc/html/search/functions_63.html26
-rw-r--r--doc/html/search/functions_63.js97
-rw-r--r--doc/html/search/functions_64.html26
-rw-r--r--doc/html/search/functions_64.js46
-rw-r--r--doc/html/search/functions_65.html26
-rw-r--r--doc/html/search/functions_65.js23
-rw-r--r--doc/html/search/functions_66.html26
-rw-r--r--doc/html/search/functions_66.js48
-rw-r--r--doc/html/search/functions_67.html26
-rw-r--r--doc/html/search/functions_67.js106
-rw-r--r--doc/html/search/functions_68.html26
-rw-r--r--doc/html/search/functions_68.js20
-rw-r--r--doc/html/search/functions_69.html26
-rw-r--r--doc/html/search/functions_69.js50
-rw-r--r--doc/html/search/functions_6a.html26
-rw-r--r--doc/html/search/functions_6a.js5
-rw-r--r--doc/html/search/functions_6b.html26
-rw-r--r--doc/html/search/functions_6b.js4
-rw-r--r--doc/html/search/functions_6c.html26
-rw-r--r--doc/html/search/functions_6c.js36
-rw-r--r--doc/html/search/functions_6d.html26
-rw-r--r--doc/html/search/functions_6d.js21
-rw-r--r--doc/html/search/functions_6e.html26
-rw-r--r--doc/html/search/functions_6e.js35
-rw-r--r--doc/html/search/functions_6f.html26
-rw-r--r--doc/html/search/functions_6f.js20
-rw-r--r--doc/html/search/functions_70.html26
-rw-r--r--doc/html/search/functions_70.js86
-rw-r--r--doc/html/search/functions_71.html26
-rw-r--r--doc/html/search/functions_71.js8
-rw-r--r--doc/html/search/functions_72.html26
-rw-r--r--doc/html/search/functions_72.js49
-rw-r--r--doc/html/search/functions_73.html26
-rw-r--r--doc/html/search/functions_73.js89
-rw-r--r--doc/html/search/functions_74.html26
-rw-r--r--doc/html/search/functions_74.js31
-rw-r--r--doc/html/search/functions_75.html26
-rw-r--r--doc/html/search/functions_75.js26
-rw-r--r--doc/html/search/functions_76.html26
-rw-r--r--doc/html/search/functions_76.js15
-rw-r--r--doc/html/search/functions_77.html26
-rw-r--r--doc/html/search/functions_77.js12
-rw-r--r--doc/html/search/functions_78.html26
-rw-r--r--doc/html/search/functions_78.js11
-rw-r--r--doc/html/search/functions_7a.html26
-rw-r--r--doc/html/search/functions_7a.js29
-rw-r--r--doc/html/search/mag_sel.pngbin0 -> 563 bytes
-rw-r--r--doc/html/search/namespaces_61.html26
-rw-r--r--doc/html/search/namespaces_61.js4
-rw-r--r--doc/html/search/namespaces_66.html26
-rw-r--r--doc/html/search/namespaces_66.js5
-rw-r--r--doc/html/search/namespaces_75.html26
-rw-r--r--doc/html/search/namespaces_75.js5
-rw-r--r--doc/html/search/nomatches.html12
-rw-r--r--doc/html/search/pages_63.html26
-rw-r--r--doc/html/search/pages_63.js4
-rw-r--r--doc/html/search/pages_66.html26
-rw-r--r--doc/html/search/pages_66.js4
-rw-r--r--doc/html/search/pages_72.html26
-rw-r--r--doc/html/search/pages_72.js4
-rw-r--r--doc/html/search/search.css271
-rw-r--r--doc/html/search/search.js807
-rw-r--r--doc/html/search/search_l.pngbin0 -> 604 bytes
-rw-r--r--doc/html/search/search_m.pngbin0 -> 158 bytes
-rw-r--r--doc/html/search/search_r.pngbin0 -> 612 bytes
-rw-r--r--doc/html/search/variables_24.html26
-rw-r--r--doc/html/search/variables_24.js143
-rw-r--r--doc/html/search/variables_61.html26
-rw-r--r--doc/html/search/variables_61.js46
-rw-r--r--doc/html/search/variables_63.html26
-rw-r--r--doc/html/search/variables_63.js9
-rw-r--r--doc/html/search/variables_64.html26
-rw-r--r--doc/html/search/variables_64.js12
-rw-r--r--doc/html/search/variables_65.html26
-rw-r--r--doc/html/search/variables_65.js8
-rw-r--r--doc/html/search/variables_66.html26
-rw-r--r--doc/html/search/variables_66.js8
-rw-r--r--doc/html/search/variables_67.html26
-rw-r--r--doc/html/search/variables_67.js6
-rw-r--r--doc/html/search/variables_68.html26
-rw-r--r--doc/html/search/variables_68.js5
-rw-r--r--doc/html/search/variables_69.html26
-rw-r--r--doc/html/search/variables_69.js26
-rw-r--r--doc/html/search/variables_6a.html26
-rw-r--r--doc/html/search/variables_6a.js4
-rw-r--r--doc/html/search/variables_6b.html26
-rw-r--r--doc/html/search/variables_6b.js4
-rw-r--r--doc/html/search/variables_6c.html26
-rw-r--r--doc/html/search/variables_6c.js11
-rw-r--r--doc/html/search/variables_6d.html26
-rw-r--r--doc/html/search/variables_6d.js11
-rw-r--r--doc/html/search/variables_6e.html26
-rw-r--r--doc/html/search/variables_6e.js45
-rw-r--r--doc/html/search/variables_6f.html26
-rw-r--r--doc/html/search/variables_6f.js5
-rw-r--r--doc/html/search/variables_70.html26
-rw-r--r--doc/html/search/variables_70.js38
-rw-r--r--doc/html/search/variables_72.html26
-rw-r--r--doc/html/search/variables_72.js12
-rw-r--r--doc/html/search/variables_73.html26
-rw-r--r--doc/html/search/variables_73.js6
-rw-r--r--doc/html/search/variables_74.html26
-rw-r--r--doc/html/search/variables_74.js18
-rw-r--r--doc/html/search/variables_75.html26
-rw-r--r--doc/html/search/variables_75.js5
-rw-r--r--doc/html/search/variables_77.html26
-rw-r--r--doc/html/search/variables_77.js4
-rw-r--r--doc/html/search/variables_78.html26
-rw-r--r--doc/html/search/variables_78.js4
-rw-r--r--doc/html/search/variables_7a.html26
-rw-r--r--doc/html/search/variables_7a.js5
-rw-r--r--doc/html/search_8php.html210
-rw-r--r--doc/html/search_8php.js7
-rw-r--r--doc/html/search__ac_8php.html137
-rw-r--r--doc/html/search__ac_8php.js4
-rw-r--r--doc/html/security_8php.html442
-rw-r--r--doc/html/security_8php.js14
-rw-r--r--doc/html/session_8php.html317
-rw-r--r--doc/html/session_8php.js13
-rw-r--r--doc/html/settings_8php.html193
-rw-r--r--doc/html/settings_8php.js7
-rw-r--r--doc/html/setup_8php.html479
-rw-r--r--doc/html/setup_8php.js19
-rw-r--r--doc/html/share_8php.html137
-rw-r--r--doc/html/share_8php.js4
-rw-r--r--doc/html/siteinfo_8php.html155
-rw-r--r--doc/html/siteinfo_8php.js5
-rw-r--r--doc/html/smilies_8php.html137
-rw-r--r--doc/html/smilies_8php.js4
-rw-r--r--doc/html/socgraph_8php.html430
-rw-r--r--doc/html/socgraph_8php.js12
-rw-r--r--doc/html/starred_8php.html137
-rw-r--r--doc/html/starred_8php.js4
-rw-r--r--doc/html/style_8php.html378
-rw-r--r--doc/html/style_8php.js20
-rw-r--r--doc/html/subthread_8php.html137
-rw-r--r--doc/html/subthread_8php.js4
-rw-r--r--doc/html/suggest_8php.html173
-rw-r--r--doc/html/suggest_8php.js6
-rw-r--r--doc/html/sync_off.pngbin0 -> 853 bytes
-rw-r--r--doc/html/sync_on.pngbin0 -> 845 bytes
-rw-r--r--doc/html/system__unavailable_8php.html138
-rw-r--r--doc/html/system__unavailable_8php.js4
-rw-r--r--doc/html/tab_a.pngbin0 -> 142 bytes
-rw-r--r--doc/html/tab_b.pngbin0 -> 169 bytes
-rw-r--r--doc/html/tab_h.pngbin0 -> 177 bytes
-rw-r--r--doc/html/tab_s.pngbin0 -> 184 bytes
-rw-r--r--doc/html/tabs.css60
-rw-r--r--doc/html/tagger_8php.html137
-rw-r--r--doc/html/tagger_8php.js4
-rw-r--r--doc/html/tagrm_8php.html155
-rw-r--r--doc/html/tagrm_8php.js5
-rw-r--r--doc/html/taxonomy_8php.html500
-rw-r--r--doc/html/taxonomy_8php.js15
-rw-r--r--doc/html/template__processor_8php.html184
-rw-r--r--doc/html/template__processor_8php.js7
-rw-r--r--doc/html/test_2php_2theme_8php.html166
-rw-r--r--doc/html/test_2php_2theme_8php.js5
-rw-r--r--doc/html/test_8php.html147
-rw-r--r--doc/html/test_8php.js4
-rw-r--r--doc/html/text_8php.html1973
-rw-r--r--doc/html/text_8php.js81
-rw-r--r--doc/html/theme_2redstrap_2php_2default_8php.html133
-rw-r--r--doc/html/theme_2redstrap_2php_2default_8php.js4
-rw-r--r--doc/html/theme_2redstrap_2php_2theme__init_8php.html112
-rw-r--r--doc/html/theme_8php.html137
-rw-r--r--doc/html/theme_8php.js4
-rw-r--r--doc/html/theme__init_8php.html112
-rw-r--r--doc/html/thing_8php.html159
-rw-r--r--doc/html/thing_8php.js5
-rw-r--r--doc/html/toggle__mobile_8php.html137
-rw-r--r--doc/html/toggle__mobile_8php.js4
-rw-r--r--doc/html/tpldebug_8php.html174
-rw-r--r--doc/html/tpldebug_8php.js6
-rw-r--r--doc/html/typo_8php.html193
-rw-r--r--doc/html/typo_8php.js8
-rw-r--r--doc/html/typohelper_8php.html153
-rw-r--r--doc/html/typohelper_8php.js5
-rw-r--r--doc/html/uexport_8php.html137
-rw-r--r--doc/html/uexport_8php.js4
-rw-r--r--doc/html/update__channel_8php.html141
-rw-r--r--doc/html/update__channel_8php.js4
-rw-r--r--doc/html/update__community_8php.html137
-rw-r--r--doc/html/update__community_8php.js4
-rw-r--r--doc/html/update__display_8php.html137
-rw-r--r--doc/html/update__display_8php.js4
-rw-r--r--doc/html/update__network_8php.html137
-rw-r--r--doc/html/update__network_8php.js4
-rw-r--r--doc/html/update__search_8php.html141
-rw-r--r--doc/html/update__search_8php.js4
-rw-r--r--doc/html/updatetpl_8py.html140
-rw-r--r--doc/html/updatetpl_8py.js9
-rw-r--r--doc/html/view_2theme_2redbasic_2php_2config_8php.html254
-rw-r--r--doc/html/view_2theme_2redbasic_2php_2config_8php.js6
-rw-r--r--doc/html/view_2theme_2redstrap_2php_2config_8php.html238
-rw-r--r--doc/html/view_2theme_2redstrap_2php_2config_8php.js6
-rw-r--r--doc/html/view_8php.html138
-rw-r--r--doc/html/view_8php.js4
-rw-r--r--doc/html/viewconnections_8php.html173
-rw-r--r--doc/html/viewconnections_8php.js6
-rw-r--r--doc/html/viewsrc_8php.html137
-rw-r--r--doc/html/viewsrc_8php.js4
-rw-r--r--doc/html/wall__attach_8php.html137
-rw-r--r--doc/html/wall__attach_8php.js4
-rw-r--r--doc/html/wall__upload_8php.html139
-rw-r--r--doc/html/wall__upload_8php.js4
-rw-r--r--doc/html/webfinger_8php.html137
-rw-r--r--doc/html/webfinger_8php.js4
-rw-r--r--doc/html/webpages_8php.html155
-rw-r--r--doc/html/webpages_8php.js5
-rw-r--r--doc/html/wfinger_8php.html139
-rw-r--r--doc/html/wfinger_8php.js4
-rw-r--r--doc/html/xchan_8php.html137
-rw-r--r--doc/html/xchan_8php.js4
-rw-r--r--doc/html/xrd_8php.html137
-rw-r--r--doc/html/xrd_8php.js4
-rw-r--r--doc/html/zfinger_8php.html139
-rw-r--r--doc/html/zfinger_8php.js4
-rw-r--r--doc/html/zot_8php.html914
-rw-r--r--doc/html/zot_8php.js29
-rw-r--r--doc/html/zotfeed_8php.html137
-rw-r--r--doc/html/zotfeed_8php.js4
-rw-r--r--doc/html/zperms_8php.html138
-rw-r--r--doc/html/zperms_8php.js4
-rw-r--r--doc/install/sample-nginx.conf114
-rw-r--r--doc/makingnewfriends.md11
-rw-r--r--doc/network.md9
-rw-r--r--doc/peopleyouknow.md13
-rw-r--r--done22
-rw-r--r--images/nosign.pngbin0 -> 17512 bytes
-rw-r--r--images/r!-64.pngbin0 -> 2945 bytes
-rw-r--r--images/r!.pngbin0 -> 1439 bytes
-rw-r--r--images/r!.xcfbin0 -> 85093 bytes
-rw-r--r--images/red_antiprism.pngbin0 -> 120847 bytes
-rw-r--r--images/red_antiprism.xcfbin0 -> 659160 bytes
-rw-r--r--images/rhash-16.pngbin0 -> 679 bytes
-rw-r--r--images/rhash-32.pngbin0 -> 1322 bytes
-rw-r--r--images/rhash-64.pngbin0 -> 3115 bytes
-rw-r--r--images/rhash.xcfbin0 -> 94324 bytes
-rw-r--r--include/BaseObject.php2
-rw-r--r--include/Contact.php93
-rw-r--r--include/ConversationObject.php54
-rwxr-xr-xinclude/ITemplateEngine.php11
-rw-r--r--include/ItemObject.php157
-rw-r--r--include/Photo.php768
-rw-r--r--include/ProtoDriver.php2
-rw-r--r--include/Scrape.php712
-rw-r--r--include/account.php15
-rw-r--r--include/acl_selectors.php37
-rw-r--r--include/activities.php4
-rw-r--r--include/api.php107
-rw-r--r--include/attach.php67
-rw-r--r--include/auth.php27
-rw-r--r--include/bb2diaspora.php2
-rw-r--r--include/bbcode.php411
-rw-r--r--include/cache.php2
-rw-r--r--include/cli_startup.php9
-rw-r--r--include/cli_suggest.php22
-rw-r--r--include/config.php347
-rw-r--r--include/contact_selectors.php18
-rw-r--r--include/contact_widgets.php2
-rw-r--r--include/conversation.php239
-rw-r--r--include/cronhooks.php2
-rw-r--r--include/crypto.php173
-rw-r--r--include/datetime.php42
-rw-r--r--include/dba.php289
-rwxr-xr-xinclude/dba/dba_driver.php167
-rwxr-xr-xinclude/dba/dba_mysql.php63
-rwxr-xr-xinclude/dba/dba_mysqli.php76
-rw-r--r--include/deliver.php15
-rw-r--r--include/dir_fns.php74
-rw-r--r--include/directory.php26
-rw-r--r--include/enotify.php128
-rw-r--r--include/event.php84
-rw-r--r--include/expire.php2
-rw-r--r--include/fcontact.php41
-rw-r--r--include/features.php6
-rw-r--r--include/follow.php65
-rwxr-xr-x[-rw-r--r--]include/friendica_smarty.php83
-rw-r--r--include/gprobe.php2
-rw-r--r--include/group.php51
-rw-r--r--include/html2bbcode.php2
-rw-r--r--include/html2plain.php4
-rw-r--r--include/identity.php82
-rw-r--r--include/iquery.php139
-rwxr-xr-xinclude/items.php1534
-rw-r--r--include/js_strings.php2
-rw-r--r--include/language.php66
-rw-r--r--include/message.php126
-rw-r--r--include/nav.php25
-rw-r--r--include/network.php200
-rw-r--r--include/notifier.php117
-rw-r--r--include/notify.php2
-rw-r--r--include/oauth.php2
-rwxr-xr-xinclude/oembed.php21
-rw-r--r--include/onepoll.php2
-rw-r--r--include/permissions.php17
-rw-r--r--include/photo/photo_driver.php522
-rw-r--r--include/photo/photo_gd.php140
-rw-r--r--include/photo/photo_imagick.php177
-rw-r--r--include/photos.php86
-rwxr-xr-x[-rw-r--r--]include/plugin.php173
-rw-r--r--include/poller.php62
-rw-r--r--include/profile_advanced.php37
-rw-r--r--include/profile_selectors.php2
-rw-r--r--include/queue.php6
-rw-r--r--include/queue_fn.php2
-rw-r--r--include/security.php84
-rw-r--r--include/session.php45
-rw-r--r--include/socgraph.php174
-rw-r--r--include/system_unavailable.php2
-rw-r--r--include/taxonomy.php208
-rwxr-xr-x[-rw-r--r--]include/template_processor.php28
-rwxr-xr-x[-rw-r--r--]include/text.php908
-rw-r--r--include/zot.php813
-rwxr-xr-x[-rw-r--r--]index.php27
-rw-r--r--install.txt105
-rw-r--r--install/INSTALL.txt99
-rw-r--r--install/database.sql195
-rwxr-xr-x[-rw-r--r--]install/htconfig.sample.php49
-rw-r--r--install/update.php295
-rw-r--r--js/acl.js8
-rw-r--r--js/fk.autocomplete.js6
-rw-r--r--js/jquery-migrate-1.1.1.js511
-rw-r--r--js/jquery.js9
-rw-r--r--js/jquery.spin.js80
-rw-r--r--js/main.js77
-rw-r--r--js/spin.js349
-rw-r--r--library/colorbox/README.md376
-rw-r--r--library/colorbox/colorbox.ai1811
-rw-r--r--library/colorbox/colorbox.css52
-rw-r--r--library/colorbox/colorbox.jquery.json30
-rw-r--r--library/colorbox/component.json8
-rw-r--r--library/colorbox/content/ajax.html11
-rw-r--r--library/colorbox/content/homer.jpgbin0 -> 8917 bytes
-rw-r--r--library/colorbox/content/marylou.jpgbin0 -> 55125 bytes
-rw-r--r--library/colorbox/content/ohoopee1.jpgbin0 -> 74827 bytes
-rw-r--r--library/colorbox/content/ohoopee2.jpgbin0 -> 117411 bytes
-rw-r--r--library/colorbox/content/ohoopee3.jpgbin0 -> 71514 bytes
-rw-r--r--library/colorbox/example1/colorbox.css86
-rw-r--r--library/colorbox/example1/images/border.pngbin0 -> 112 bytes
-rw-r--r--library/colorbox/example1/images/controls.pngbin0 -> 2893 bytes
-rw-r--r--library/colorbox/example1/images/ie6/borderBottomCenter.pngbin0 -> 111 bytes
-rw-r--r--library/colorbox/example1/images/ie6/borderBottomLeft.pngbin0 -> 215 bytes
-rw-r--r--library/colorbox/example1/images/ie6/borderBottomRight.pngbin0 -> 217 bytes
-rw-r--r--library/colorbox/example1/images/ie6/borderMiddleLeft.pngbin0 -> 108 bytes
-rw-r--r--library/colorbox/example1/images/ie6/borderMiddleRight.pngbin0 -> 108 bytes
-rw-r--r--library/colorbox/example1/images/ie6/borderTopCenter.pngbin0 -> 111 bytes
-rw-r--r--library/colorbox/example1/images/ie6/borderTopLeft.pngbin0 -> 216 bytes
-rw-r--r--library/colorbox/example1/images/ie6/borderTopRight.pngbin0 -> 214 bytes
-rw-r--r--library/colorbox/example1/images/loading.gifbin0 -> 9427 bytes
-rw-r--r--library/colorbox/example1/images/loading_background.pngbin0 -> 157 bytes
-rw-r--r--library/colorbox/example1/images/overlay.pngbin0 -> 182 bytes
-rw-r--r--library/colorbox/example1/index.html87
-rw-r--r--library/colorbox/example2/colorbox.css43
-rw-r--r--library/colorbox/example2/images/controls.pngbin0 -> 570 bytes
-rw-r--r--library/colorbox/example2/images/loading.gifbin0 -> 9427 bytes
-rw-r--r--library/colorbox/example2/index.html87
-rw-r--r--library/colorbox/example3/colorbox.css38
-rw-r--r--library/colorbox/example3/images/controls.pngbin0 -> 1633 bytes
-rw-r--r--library/colorbox/example3/images/loading.gifbin0 -> 9427 bytes
-rw-r--r--library/colorbox/example3/index.html87
-rw-r--r--library/colorbox/example4/colorbox.css82
-rw-r--r--library/colorbox/example4/images/border1.pngbin0 -> 1057 bytes
-rw-r--r--library/colorbox/example4/images/border2.pngbin0 -> 170 bytes
-rw-r--r--library/colorbox/example4/images/ie6/borderBottomCenter.pngbin0 -> 153 bytes
-rw-r--r--library/colorbox/example4/images/ie6/borderBottomLeft.pngbin0 -> 473 bytes
-rw-r--r--library/colorbox/example4/images/ie6/borderBottomRight.pngbin0 -> 470 bytes
-rw-r--r--library/colorbox/example4/images/ie6/borderMiddleLeft.pngbin0 -> 148 bytes
-rw-r--r--library/colorbox/example4/images/ie6/borderMiddleRight.pngbin0 -> 139 bytes
-rw-r--r--library/colorbox/example4/images/ie6/borderTopCenter.pngbin0 -> 153 bytes
-rw-r--r--library/colorbox/example4/images/ie6/borderTopLeft.pngbin0 -> 359 bytes
-rw-r--r--library/colorbox/example4/images/ie6/borderTopRight.pngbin0 -> 465 bytes
-rw-r--r--library/colorbox/example4/images/loading.gifbin0 -> 9427 bytes
-rw-r--r--library/colorbox/example4/index.html87
-rw-r--r--library/colorbox/example5/colorbox.css52
-rw-r--r--library/colorbox/example5/images/border.pngbin0 -> 163 bytes
-rw-r--r--library/colorbox/example5/images/controls.pngbin0 -> 2033 bytes
-rw-r--r--library/colorbox/example5/images/loading.gifbin0 -> 9427 bytes
-rw-r--r--library/colorbox/example5/images/loading_background.pngbin0 -> 166 bytes
-rw-r--r--library/colorbox/example5/index.html87
-rw-r--r--library/colorbox/i18n/jquery.colorbox-cs.js14
-rw-r--r--library/colorbox/i18n/jquery.colorbox-da.js14
-rw-r--r--library/colorbox/i18n/jquery.colorbox-de.js13
-rw-r--r--library/colorbox/i18n/jquery.colorbox-es.js13
-rw-r--r--library/colorbox/i18n/jquery.colorbox-fr.js14
-rw-r--r--library/colorbox/i18n/jquery.colorbox-it.js13
-rw-r--r--library/colorbox/i18n/jquery.colorbox-ru.js14
-rw-r--r--library/colorbox/images/border.pngbin0 -> 163 bytes
-rw-r--r--library/colorbox/images/controls.pngbin0 -> 2033 bytes
-rw-r--r--library/colorbox/images/loading.gifbin0 -> 9427 bytes
-rw-r--r--library/colorbox/images/loading_background.pngbin0 -> 166 bytes
-rw-r--r--library/colorbox/jquery.colorbox-min.js1
-rw-r--r--library/colorbox/jquery.colorbox.js975
-rw-r--r--library/fancybox/jquery.fancybox-1.3.4.js5
-rw-r--r--library/fullcalendar/changelog.txt24
-rw-r--r--library/fullcalendar/fullcalendar.css321
-rw-r--r--library/fullcalendar/fullcalendar.js665
-rw-r--r--library/fullcalendar/fullcalendar.min.js121
-rw-r--r--library/fullcalendar/fullcalendar.print.css47
-rw-r--r--library/fullcalendar/gcal.js13
-rw-r--r--library/fullcalendar/license.txt20
-rw-r--r--library/jquery_ac/friendica.complete.js4
-rw-r--r--library/jslider/css/jslider.css8
-rw-r--r--library/jslider/img/jslider.pngbin1021 -> 841 bytes
-rwxr-xr-xlibrary/prettyphoto/README30
-rw-r--r--library/prettyphoto/css/prettyPhoto.css170
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_rounded/btnNext.pngbin0 -> 1411 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_rounded/btnPrevious.pngbin0 -> 1442 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_rounded/contentPattern.pngbin0 -> 130 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_rounded/default_thumbnail.gifbin0 -> 227 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_rounded/loader.gifbin0 -> 2545 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_rounded/sprite.pngbin0 -> 4076 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_square/btnNext.pngbin0 -> 1411 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_square/btnPrevious.pngbin0 -> 1442 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_square/contentPattern.pngbin0 -> 121 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_square/default_thumbnail.gifbin0 -> 227 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_square/loader.gifbin0 -> 2545 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_square/sprite.pngbin0 -> 3507 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/default_thumb.pngbin0 -> 1537 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/loader.gifbin0 -> 6331 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/sprite.pngbin0 -> 6682 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/sprite_next.pngbin0 -> 1358 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/sprite_prev.pngbin0 -> 1376 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/sprite_x.pngbin0 -> 1097 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/sprite_y.pngbin0 -> 1162 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/btnNext.pngbin0 -> 845 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/btnPrevious.pngbin0 -> 828 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/contentPatternBottom.pngbin0 -> 142 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/contentPatternLeft.pngbin0 -> 137 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/contentPatternRight.pngbin0 -> 136 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/contentPatternTop.pngbin0 -> 142 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/default_thumbnail.gifbin0 -> 227 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/loader.gifbin0 -> 2545 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/sprite.pngbin0 -> 4227 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_rounded/btnNext.pngbin0 -> 1411 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_rounded/btnPrevious.pngbin0 -> 1442 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_rounded/default_thumbnail.gifbin0 -> 227 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_rounded/loader.gifbin0 -> 2545 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_rounded/sprite.pngbin0 -> 4099 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_square/btnNext.pngbin0 -> 1411 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_square/btnPrevious.pngbin0 -> 1442 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_square/default_thumbnail.gifbin0 -> 227 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_square/loader.gifbin0 -> 2545 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_square/sprite.pngbin0 -> 3507 bytes
-rwxr-xr-xlibrary/prettyphoto/js/jquery-1.3.2.min.js19
-rw-r--r--library/prettyphoto/js/jquery-1.4.4.min.js167
-rw-r--r--library/prettyphoto/js/jquery-1.6.1.min.js18
-rw-r--r--library/prettyphoto/js/jquery.prettyPhoto.js7
-rw-r--r--mod/_well_known.php13
-rw-r--r--mod/acl.php40
-rw-r--r--mod/admin.php69
-rw-r--r--mod/channel.php24
-rw-r--r--mod/chanview.php6
-rw-r--r--mod/community.php6
-rw-r--r--mod/connections.php116
-rw-r--r--mod/crepair.php2
-rw-r--r--mod/directory.php38
-rw-r--r--mod/dirsearch.php60
-rw-r--r--mod/display.php68
-rw-r--r--mod/editpost.php21
-rw-r--r--mod/editwebpage.php135
-rwxr-xr-xmod/events.php15
-rw-r--r--mod/fbrowser.php2
-rw-r--r--mod/feed.php7
-rw-r--r--mod/follow.php10
-rw-r--r--mod/fsuggest.php5
-rw-r--r--mod/group.php4
-rw-r--r--mod/home.php61
-rw-r--r--mod/import.php86
-rw-r--r--mod/invite.php49
-rw-r--r--mod/item.php253
-rwxr-xr-xmod/like.php32
-rw-r--r--mod/lockview.php4
-rw-r--r--mod/magic.php48
-rw-r--r--mod/message.php21
-rwxr-xr-xmod/mood.php19
-rw-r--r--mod/network.php67
-rw-r--r--mod/nogroup.php2
-rw-r--r--mod/notifications.php34
-rw-r--r--mod/oembed.php2
-rw-r--r--mod/oexchange.php9
-rw-r--r--mod/page.php30
-rw-r--r--mod/parse_url.php44
-rw-r--r--mod/photo.php9
-rw-r--r--mod/photos.php356
-rw-r--r--mod/ping.php4
-rwxr-xr-xmod/poke.php166
-rw-r--r--mod/post.php143
-rw-r--r--mod/probe.php1
-rw-r--r--mod/profile.php26
-rw-r--r--mod/profile_photo.php8
-rw-r--r--mod/profiles.php19
-rw-r--r--mod/randprof.php3
-rw-r--r--mod/search.php76
-rw-r--r--mod/settings.php47
-rwxr-xr-xmod/setup.php77
-rw-r--r--mod/share.php25
-rw-r--r--mod/siteinfo.php48
-rw-r--r--mod/sitelist.php51
-rw-r--r--mod/starred.php8
-rwxr-xr-xmod/subthread.php22
-rw-r--r--mod/suggest.php56
-rw-r--r--mod/tagger.php193
-rw-r--r--mod/thing.php196
-rw-r--r--mod/update_channel.php20
-rw-r--r--mod/update_display.php13
-rw-r--r--mod/update_network.php21
-rw-r--r--mod/update_search.php66
-rw-r--r--mod/viewconnections.php25
-rw-r--r--mod/wall_upload.php7
-rw-r--r--mod/webpages.php76
-rw-r--r--mod/wfinger.php99
-rw-r--r--mod/zfinger.php52
-rw-r--r--mod/zotfeed.php2
-rw-r--r--mod/zperms.php84
-rw-r--r--sample-lighttpd.conf85
-rw-r--r--util/Doxyfile21
-rw-r--r--util/Doxygen.footer4
-rw-r--r--util/db_update.php20
-rw-r--r--util/fresh.md3
-rwxr-xr-xutil/makedocs2
-rw-r--r--util/messages.po8097
-rwxr-xr-xutil/precompile_smarty3.php27
-rwxr-xr-xutil/run_xgettext.sh86
-rw-r--r--util/tpldebug.php43
-rw-r--r--util/typo.php18
-rw-r--r--version.inc2
-rw-r--r--view/cs/follow_notify_eml.tpl14
-rw-r--r--view/cs/friend_complete_eml.tpl21
-rw-r--r--view/cs/htconfig.tpl70
-rw-r--r--view/cs/intro_complete_eml.tpl23
-rw-r--r--view/cs/lostpass_eml.tpl35
-rw-r--r--view/cs/passchanged_eml.tpl26
-rw-r--r--view/cs/register_open_eml.tpl30
-rw-r--r--view/cs/register_verify_eml.tpl23
-rw-r--r--view/cs/request_notify_eml.tpl18
-rw-r--r--view/cs/update_fail_eml.tpl13
-rw-r--r--view/css/mod_manage.css17
-rw-r--r--view/css/mod_thing.css27
-rw-r--r--view/de/follow_notify_eml.tpl14
-rw-r--r--view/de/friend_complete_eml.tpl26
-rw-r--r--view/de/htconfig.tpl70
-rw-r--r--view/de/intro_complete_eml.tpl28
-rw-r--r--view/de/lostpass_eml.tpl36
-rw-r--r--view/de/passchanged_eml.tpl24
-rw-r--r--view/de/register_open_eml.tpl41
-rw-r--r--view/de/register_verify_eml.tpl22
-rw-r--r--view/de/request_notify_eml.tpl18
-rw-r--r--view/de/update_fail_eml.tpl20
-rw-r--r--view/en/follow_notify_eml.tpl10
-rw-r--r--view/en/friend_complete_eml.tpl14
-rw-r--r--view/en/htconfig.tpl19
-rw-r--r--view/en/intro_complete_eml.tpl18
-rw-r--r--view/en/lostpass_eml.tpl12
-rw-r--r--view/en/passchanged_eml.tpl10
-rw-r--r--view/en/register_open_eml.tpl10
-rw-r--r--view/en/register_verify_eml.tpl12
-rw-r--r--view/en/request_notify_eml.tpl12
-rw-r--r--view/en/update_fail_eml.tpl16
-rw-r--r--view/eo/follow_notify_eml.tpl14
-rw-r--r--view/eo/friend_complete_eml.tpl26
-rw-r--r--view/eo/htconfig.tpl70
-rw-r--r--view/eo/intro_complete_eml.tpl28
-rw-r--r--view/eo/lostpass_eml.tpl36
-rw-r--r--view/eo/passchanged_eml.tpl24
-rw-r--r--view/eo/register_open_eml.tpl41
-rw-r--r--view/eo/register_verify_eml.tpl22
-rw-r--r--view/eo/request_notify_eml.tpl18
-rw-r--r--view/eo/update_fail_eml.tpl20
-rw-r--r--view/es/follow_notify_eml.tpl13
-rw-r--r--view/es/friend_complete_eml.tpl21
-rw-r--r--view/es/htconfig.tpl70
-rw-r--r--view/es/intro_complete_eml.tpl27
-rw-r--r--view/es/lostpass_eml.tpl36
-rw-r--r--view/es/passchanged_eml.tpl21
-rw-r--r--view/es/register_open_eml.tpl26
-rw-r--r--view/es/register_verify_eml.tpl25
-rw-r--r--view/es/request_notify_eml.tpl16
-rw-r--r--view/es/update_fail_eml.tpl13
-rw-r--r--view/fr/follow_notify_eml.tpl14
-rw-r--r--view/fr/friend_complete_eml.tpl25
-rw-r--r--view/fr/htconfig.tpl70
-rw-r--r--view/fr/intro_complete_eml.tpl28
-rw-r--r--view/fr/lostpass_eml.tpl36
-rw-r--r--view/fr/passchanged_eml.tpl24
-rw-r--r--view/fr/register_open_eml.tpl27
-rw-r--r--view/fr/register_verify_eml.tpl24
-rw-r--r--view/fr/request_notify_eml.tpl18
-rw-r--r--view/fr/update_fail_eml.tpl13
-rw-r--r--view/it/follow_notify_eml.tpl14
-rw-r--r--view/it/friend_complete_eml.tpl26
-rw-r--r--view/it/htconfig.tpl70
-rw-r--r--view/it/intro_complete_eml.tpl28
-rw-r--r--view/it/lostpass_eml.tpl36
-rw-r--r--view/it/passchanged_eml.tpl24
-rw-r--r--view/it/register_open_eml.tpl41
-rw-r--r--view/it/register_verify_eml.tpl22
-rw-r--r--view/it/request_notify_eml.tpl18
-rw-r--r--view/it/update_fail_eml.tpl13
-rw-r--r--view/js/mod_connections.js24
-rw-r--r--view/js/mod_poke.js13
-rw-r--r--view/js/mod_settings.js90
-rw-r--r--view/nb-no/follow_notify_eml.tpl14
-rw-r--r--view/nb-no/friend_complete_eml.tpl26
-rw-r--r--view/nb-no/htconfig.tpl70
-rw-r--r--view/nb-no/intro_complete_eml.tpl28
-rw-r--r--view/nb-no/lostpass_eml.tpl36
-rw-r--r--view/nb-no/passchanged_eml.tpl24
-rw-r--r--view/nb-no/register_open_eml.tpl41
-rw-r--r--view/nb-no/register_verify_eml.tpl22
-rw-r--r--view/nb-no/request_notify_eml.tpl18
-rw-r--r--view/nb-no/update_fail_eml.tpl20
-rw-r--r--view/php/default.php4
-rw-r--r--view/php/theme_init.php11
-rw-r--r--view/pt-br/follow_notify_eml.tpl14
-rw-r--r--view/pt-br/friend_complete_eml.tpl22
-rw-r--r--view/pt-br/htconfig.tpl70
-rw-r--r--view/pt-br/intro_complete_eml.tpl22
-rw-r--r--view/pt-br/lostpass_eml.tpl32
-rw-r--r--view/pt-br/passchanged_eml.tpl20
-rw-r--r--view/pt-br/register_open_eml.tpl19
-rw-r--r--view/pt-br/register_verify_eml.tpl25
-rw-r--r--view/pt-br/request_notify_eml.tpl17
-rw-r--r--view/pt-br/update_fail_eml.tpl13
-rw-r--r--view/ru/follow_notify_eml.tpl14
-rw-r--r--view/ru/friend_complete_eml.tpl22
-rw-r--r--view/ru/htconfig.tpl70
-rw-r--r--view/ru/intro_complete_eml.tpl22
-rw-r--r--view/ru/lostpass_eml.tpl32
-rw-r--r--view/ru/passchanged_eml.tpl20
-rw-r--r--view/ru/register_open_eml.tpl19
-rw-r--r--view/ru/register_verify_eml.tpl25
-rw-r--r--view/ru/request_notify_eml.tpl17
-rw-r--r--view/ru/update_fail_eml.tpl13
-rw-r--r--view/sv/follow_notify_eml.tpl16
-rw-r--r--view/sv/friend_complete_eml.tpl27
-rw-r--r--view/sv/htconfig.tpl70
-rw-r--r--view/sv/intro_complete_eml.tpl29
-rw-r--r--view/sv/lostpass_eml.tpl39
-rw-r--r--view/sv/passchanged_eml.tpl24
-rw-r--r--view/sv/register_open_eml.tpl24
-rw-r--r--view/sv/register_verify_eml.tpl28
-rw-r--r--view/sv/request_notify_eml.tpl20
-rw-r--r--view/sv/update_fail_eml.tpl13
-rw-r--r--view/theme/fancyred/css/style.css3934
-rw-r--r--view/theme/fancyred/img/bbedit.pngbin2145 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/bg.pngbin119030 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/border.jpgbin342 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/editicons.pngbin6300 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/events.pngbin1686 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/ff-16.jpgbin644 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/file.gifbin613 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/friendika-16.pngbin699 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/head.jpgbin383 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/home.pngbin1198 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/introductions.pngbin1275 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/jotperms.pngbin510 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/lock.curbin4286 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/login-bg.gifbin237 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/message.pngbin765 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/network.pngbin1650 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/notify_on.pngbin721 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/photo-menu.jpgbin459 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/screenshot.jpgbin72559 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/settings.pngbin1609 -> 0 bytes
-rw-r--r--view/theme/fancyred/img/shiny.pngbin362 -> 0 bytes
-rw-r--r--view/theme/fancyred/js/fancyred.js89
-rw-r--r--view/theme/fancyred/php/config.php80
-rw-r--r--view/theme/fancyred/php/style.php99
-rw-r--r--view/theme/fancyred/php/theme.php6
-rw-r--r--view/theme/fancyred/tpl/smarty3/theme_settings.tpl12
-rw-r--r--view/theme/fancyred/tpl/theme_settings.tpl7
-rw-r--r--view/theme/redbasic/css/dark.css182
-rw-r--r--view/theme/redbasic/css/fancy.css106
-rw-r--r--view/theme/redbasic/css/mod_page.css24
-rw-r--r--view/theme/redbasic/css/style.css595
-rw-r--r--view/theme/redbasic/img/bg.pngbin119030 -> 0 bytes
-rw-r--r--view/theme/redbasic/img/events.pngbin1686 -> 0 bytes
-rw-r--r--view/theme/redbasic/img/head.jpgbin383 -> 0 bytes
-rw-r--r--view/theme/redbasic/img/home.pngbin1198 -> 0 bytes
-rw-r--r--view/theme/redbasic/img/introductions.pngbin1210 -> 0 bytes
-rw-r--r--view/theme/redbasic/img/lock.curbin4286 -> 0 bytes
-rw-r--r--view/theme/redbasic/img/message.pngbin765 -> 0 bytes
-rw-r--r--view/theme/redbasic/img/network.pngbin1632 -> 0 bytes
-rw-r--r--view/theme/redbasic/img/settings.pngbin1609 -> 0 bytes
-rw-r--r--view/theme/redbasic/js/redbasic.js14
-rw-r--r--view/theme/redbasic/php/config.php130
-rw-r--r--view/theme/redbasic/php/style.php167
-rwxr-xr-xview/theme/redbasic/tpl/basic_theme_settings.tpl14
-rw-r--r--view/theme/redbasic/tpl/smarty3/theme_settings.tpl12
-rwxr-xr-x[-rw-r--r--]view/theme/redbasic/tpl/theme_settings.tpl22
-rwxr-xr-x[-rw-r--r--]view/tpl/404.tpl2
-rwxr-xr-x[-rw-r--r--]view/tpl/abook_edit.tpl90
-rwxr-xr-x[-rw-r--r--]view/tpl/acl_selector.tpl8
-rwxr-xr-x[-rw-r--r--]view/tpl/admin_aside.tpl32
-rwxr-xr-x[-rw-r--r--]view/tpl/admin_logs.tpl22
-rwxr-xr-x[-rw-r--r--]view/tpl/admin_plugins.tpl21
-rwxr-xr-x[-rw-r--r--]view/tpl/admin_plugins_details.tpl44
-rw-r--r--view/tpl/admin_remoteupdate.tpl98
-rwxr-xr-x[-rw-r--r--]view/tpl/admin_site.tpl67
-rwxr-xr-x[-rw-r--r--]view/tpl/admin_summary.tpl34
-rwxr-xr-x[-rw-r--r--]view/tpl/admin_users.tpl78
-rwxr-xr-x[-rw-r--r--]view/tpl/album_edit.tpl10
-rw-r--r--view/tpl/alt_pager.tpl4
-rwxr-xr-x[-rw-r--r--]view/tpl/api_config_xml.tpl18
-rwxr-xr-x[-rw-r--r--]view/tpl/api_friends_xml.tpl6
-rwxr-xr-x[-rw-r--r--]view/tpl/api_ratelimit_xml.tpl8
-rwxr-xr-x[-rw-r--r--]view/tpl/api_status_xml.tpl84
-rwxr-xr-x[-rw-r--r--]view/tpl/api_test_xml.tpl2
-rwxr-xr-x[-rw-r--r--]view/tpl/api_timeline_atom.tpl96
-rwxr-xr-x[-rw-r--r--]view/tpl/api_timeline_rss.tpl28
-rwxr-xr-x[-rw-r--r--]view/tpl/api_timeline_xml.tpl36
-rwxr-xr-x[-rw-r--r--]view/tpl/api_user_xml.tpl93
-rwxr-xr-x[-rw-r--r--]view/tpl/apps.tpl8
-rwxr-xr-x[-rw-r--r--]view/tpl/atom_feed.tpl31
-rwxr-xr-x[-rw-r--r--]view/tpl/atom_feed_dfrn.tpl24
-rw-r--r--view/tpl/atom_mail.tpl17
-rw-r--r--view/tpl/atom_suggest.tpl11
-rw-r--r--view/tpl/auto_request.tpl37
-rwxr-xr-x[-rw-r--r--]view/tpl/birthdays_reminder.tpl14
-rwxr-xr-x[-rw-r--r--]view/tpl/build_query.tpl42
-rwxr-xr-x[-rw-r--r--]view/tpl/categories_widget.tpl12
-rwxr-xr-x[-rw-r--r--]view/tpl/channel.tpl18
-rwxr-xr-x[-rw-r--r--]view/tpl/channel_import.tpl24
-rwxr-xr-x[-rw-r--r--]view/tpl/channels.tpl32
-rwxr-xr-x[-rw-r--r--]view/tpl/chanview.tpl4
-rwxr-xr-x[-rw-r--r--]view/tpl/comment_item.tpl89
-rwxr-xr-x[-rw-r--r--]view/tpl/common_friends.tpl11
-rwxr-xr-x[-rw-r--r--]view/tpl/common_tabs.tpl8
-rwxr-xr-x[-rw-r--r--]view/tpl/contact_block.tpl14
-rw-r--r--view/tpl/contact_edit.tpl89
-rwxr-xr-x[-rw-r--r--]view/tpl/contact_head.tpl6
-rwxr-xr-x[-rw-r--r--]view/tpl/contact_slider.tpl4
-rwxr-xr-x[-rw-r--r--]view/tpl/contact_template.tpl7
-rwxr-xr-x[-rw-r--r--]view/tpl/contacts-template.tpl22
-rw-r--r--view/tpl/content.tpl2
-rwxr-xr-x[-rw-r--r--]view/tpl/conv.tpl20
-rwxr-xr-x[-rw-r--r--]view/tpl/conv_frame.tpl10
-rwxr-xr-x[-rw-r--r--]view/tpl/conv_item.tpl160
-rwxr-xr-x[-rw-r--r--]view/tpl/conversation.tpl28
-rwxr-xr-x[-rw-r--r--]view/tpl/convobj.tpl6
-rwxr-xr-x[-rw-r--r--]view/tpl/crepair.tpl41
-rwxr-xr-x[-rw-r--r--]view/tpl/cropbody.tpl14
-rwxr-xr-x[-rw-r--r--]view/tpl/crophead.tpl0
-rwxr-xr-x[-rw-r--r--]view/tpl/delegate.tpl52
-rw-r--r--view/tpl/dfrn_req_confirm.tpl21
-rw-r--r--view/tpl/dfrn_request.tpl59
-rw-r--r--view/tpl/diasp_dec_hdr.tpl8
-rwxr-xr-x[-rw-r--r--]view/tpl/directory_header.tpl14
-rw-r--r--view/tpl/directory_item.tpl11
-rwxr-xr-x[-rw-r--r--]view/tpl/direntry.tpl16
-rwxr-xr-x[-rw-r--r--]view/tpl/display-head.tpl0
-rwxr-xr-xview/tpl/edpage_head.tpl1
-rwxr-xr-x[-rw-r--r--]view/tpl/edpost_head.tpl2
-rwxr-xr-x[-rw-r--r--]view/tpl/email_notify_html.tpl22
-rwxr-xr-x[-rw-r--r--]view/tpl/email_notify_text.tpl15
-rwxr-xr-x[-rw-r--r--]view/tpl/event.tpl12
-rwxr-xr-x[-rw-r--r--]view/tpl/event_form.tpl42
-rwxr-xr-x[-rw-r--r--]view/tpl/event_head.tpl26
-rwxr-xr-x[-rw-r--r--]view/tpl/events-js.tpl6
-rw-r--r--view/tpl/events.tpl24
-rwxr-xr-x[-rw-r--r--]view/tpl/events_reminder.tpl14
-rwxr-xr-x[-rw-r--r--]view/tpl/failed_updates.tpl18
-rw-r--r--view/tpl/fake_feed.tpl13
-rwxr-xr-x[-rw-r--r--]view/tpl/field.tpl7
-rwxr-xr-x[-rw-r--r--]view/tpl/field_acheckbox.tpl9
-rwxr-xr-x[-rw-r--r--]view/tpl/field_checkbox.tpl7
-rwxr-xr-x[-rw-r--r--]view/tpl/field_combobox.tpl23
-rwxr-xr-x[-rw-r--r--]view/tpl/field_custom.tpl7
-rwxr-xr-x[-rw-r--r--]view/tpl/field_input.tpl9
-rwxr-xr-x[-rw-r--r--]view/tpl/field_intcheckbox.tpl7
-rw-r--r--view/tpl/field_openid.tpl6
-rwxr-xr-x[-rw-r--r--]view/tpl/field_password.tpl7
-rwxr-xr-x[-rw-r--r--]view/tpl/field_radio.tpl7
-rwxr-xr-x[-rw-r--r--]view/tpl/field_richtext.tpl7
-rwxr-xr-x[-rw-r--r--]view/tpl/field_select.tpl9
-rwxr-xr-x[-rw-r--r--]view/tpl/field_select_raw.tpl9
-rwxr-xr-x[-rw-r--r--]view/tpl/field_textarea.tpl7
-rwxr-xr-x[-rw-r--r--]view/tpl/field_themeselect.tpl10
-rwxr-xr-x[-rw-r--r--]view/tpl/field_yesno.tpl12
-rwxr-xr-x[-rw-r--r--]view/tpl/fileas_widget.tpl12
-rwxr-xr-x[-rw-r--r--]view/tpl/filebrowser.tpl16
-rwxr-xr-x[-rw-r--r--]view/tpl/filer_dialog.tpl4
-rwxr-xr-x[-rw-r--r--]view/tpl/follow.tpl6
-rw-r--r--view/tpl/follow_slap.tpl25
-rwxr-xr-x[-rw-r--r--]view/tpl/generic_links_widget.tpl12
-rwxr-xr-x[-rw-r--r--]view/tpl/group_drop.tpl6
-rwxr-xr-x[-rw-r--r--]view/tpl/group_edit.tpl20
-rwxr-xr-x[-rw-r--r--]view/tpl/group_selection.tpl8
-rwxr-xr-x[-rw-r--r--]view/tpl/group_side.tpl32
-rwxr-xr-x[-rw-r--r--]view/tpl/groupeditor.tpl8
-rwxr-xr-x[-rw-r--r--]view/tpl/head.tpl20
-rwxr-xr-x[-rw-r--r--]view/tpl/hide_comments.tpl4
-rwxr-xr-x[-rw-r--r--]view/tpl/install.tpl13
-rwxr-xr-x[-rw-r--r--]view/tpl/install_checks.tpl34
-rwxr-xr-x[-rw-r--r--]view/tpl/install_db.tpl32
-rwxr-xr-x[-rw-r--r--]view/tpl/install_settings.tpl32
-rwxr-xr-x[-rw-r--r--]view/tpl/intros.tpl23
-rwxr-xr-x[-rw-r--r--]view/tpl/intros_header.tpl2
-rwxr-xr-x[-rw-r--r--]view/tpl/invite.tpl12
-rwxr-xr-x[-rw-r--r--]view/tpl/jot-header.tpl99
-rwxr-xr-x[-rw-r--r--]view/tpl/jot.tpl87
-rwxr-xr-x[-rw-r--r--]view/tpl/jot_geotag.tpl1
-rwxr-xr-x[-rw-r--r--]view/tpl/js_strings.tpl49
-rwxr-xr-x[-rw-r--r--]view/tpl/lang_selector.tpl8
-rwxr-xr-x[-rw-r--r--]view/tpl/like_noshare.tpl8
-rwxr-xr-x[-rw-r--r--]view/tpl/login.tpl23
-rwxr-xr-x[-rw-r--r--]view/tpl/logout.tpl4
-rwxr-xr-x[-rw-r--r--]view/tpl/lostpass.tpl8
-rw-r--r--view/tpl/magicsig.tpl9
-rwxr-xr-x[-rw-r--r--]view/tpl/mail_conv.tpl12
-rwxr-xr-x[-rw-r--r--]view/tpl/mail_display.tpl17
-rwxr-xr-x[-rw-r--r--]view/tpl/mail_head.tpl4
-rwxr-xr-x[-rw-r--r--]view/tpl/mail_list.tpl24
-rwxr-xr-x[-rw-r--r--]view/tpl/main_slider.tpl26
-rwxr-xr-x[-rw-r--r--]view/tpl/match.tpl12
-rwxr-xr-x[-rw-r--r--]view/tpl/message_side.tpl9
-rwxr-xr-x[-rw-r--r--]view/tpl/micropro_img.tpl2
-rwxr-xr-x[-rw-r--r--]view/tpl/micropro_txt.tpl2
-rw-r--r--view/tpl/moderated_comment.tpl34
-rwxr-xr-x[-rw-r--r--]view/tpl/mood_content.tpl14
-rwxr-xr-x[-rw-r--r--]view/tpl/msg-header.tpl23
-rwxr-xr-x[-rw-r--r--]view/tpl/nav.tpl182
-rwxr-xr-x[-rw-r--r--]view/tpl/netfriend.tpl10
-rwxr-xr-x[-rw-r--r--]view/tpl/new_channel.tpl20
-rwxr-xr-x[-rw-r--r--]view/tpl/nogroup-template.tpl10
-rwxr-xr-x[-rw-r--r--]view/tpl/notifications.tpl7
-rwxr-xr-x[-rw-r--r--]view/tpl/notifications_comments_item.tpl4
-rwxr-xr-x[-rw-r--r--]view/tpl/notifications_dislikes_item.tpl4
-rwxr-xr-x[-rw-r--r--]view/tpl/notifications_friends_item.tpl4
-rwxr-xr-x[-rw-r--r--]view/tpl/notifications_likes_item.tpl4
-rw-r--r--view/tpl/notifications_network_item.tpl3
-rwxr-xr-x[-rw-r--r--]view/tpl/notifications_posts_item.tpl4
-rwxr-xr-x[-rw-r--r--]view/tpl/notify.tpl4
-rwxr-xr-x[-rw-r--r--]view/tpl/oauth_authorize.tpl10
-rwxr-xr-x[-rw-r--r--]view/tpl/oauth_authorize_done.tpl6
-rwxr-xr-xview/tpl/oembed_video.tpl6
-rwxr-xr-x[-rw-r--r--]view/tpl/oexchange_xrd.tpl8
-rwxr-xr-x[-rw-r--r--]view/tpl/opensearch.tpl14
-rwxr-xr-x[-rw-r--r--]view/tpl/page_display.tpl12
-rw-r--r--view/tpl/pagetypes.tpl5
-rwxr-xr-x[-rw-r--r--]view/tpl/peoplefind.tpl18
-rwxr-xr-x[-rw-r--r--]view/tpl/photo_album.tpl9
-rwxr-xr-x[-rw-r--r--]view/tpl/photo_albums.tpl18
-rwxr-xr-x[-rw-r--r--]view/tpl/photo_drop.tpl4
-rw-r--r--view/tpl/photo_edit.tpl50
-rwxr-xr-x[-rw-r--r--]view/tpl/photo_item.tpl26
-rwxr-xr-x[-rw-r--r--]view/tpl/photo_top.tpl9
-rwxr-xr-x[-rw-r--r--]view/tpl/photo_view.tpl99
-rwxr-xr-x[-rw-r--r--]view/tpl/photos_recent.tpl14
-rwxr-xr-x[-rw-r--r--]view/tpl/photos_upload.tpl23
-rwxr-xr-x[-rw-r--r--]view/tpl/poco_entry_xml.tpl10
-rwxr-xr-x[-rw-r--r--]view/tpl/poco_xml.tpl24
-rwxr-xr-x[-rw-r--r--]view/tpl/poke_content.tpl26
-rwxr-xr-x[-rw-r--r--]view/tpl/posted_date_widget.tpl10
-rw-r--r--view/tpl/prettyphoto.tpl6
-rwxr-xr-x[-rw-r--r--]view/tpl/profed_head.tpl6
-rw-r--r--view/tpl/profile-hide-friends.tpl16
-rw-r--r--view/tpl/profile-hide-wall.tpl16
-rw-r--r--view/tpl/profile-in-directory.tpl16
-rw-r--r--view/tpl/profile-in-netdir.tpl16
-rwxr-xr-x[-rw-r--r--]view/tpl/profile_advanced.tpl200
-rwxr-xr-x[-rw-r--r--]view/tpl/profile_edit.tpl165
-rwxr-xr-x[-rw-r--r--]view/tpl/profile_edlink.tpl4
-rwxr-xr-x[-rw-r--r--]view/tpl/profile_entry.tpl7
-rwxr-xr-x[-rw-r--r--]view/tpl/profile_listing_header.tpl6
-rwxr-xr-x[-rw-r--r--]view/tpl/profile_photo.tpl20
-rw-r--r--view/tpl/profile_publish.tpl16
-rwxr-xr-x[-rw-r--r--]view/tpl/profile_vcard.tpl46
-rwxr-xr-x[-rw-r--r--]view/tpl/prv_message.tpl35
-rwxr-xr-x[-rw-r--r--]view/tpl/pwdreset.tpl12
-rwxr-xr-x[-rw-r--r--]view/tpl/register.tpl40
-rwxr-xr-x[-rw-r--r--]view/tpl/remote_friends_common.tpl16
-rwxr-xr-x[-rw-r--r--]view/tpl/removeme.tpl12
-rwxr-xr-x[-rw-r--r--]view/tpl/rmagic.tpl6
-rwxr-xr-x[-rw-r--r--]view/tpl/saved_searches_aside.tpl12
-rwxr-xr-x[-rw-r--r--]view/tpl/search_item.tpl68
-rwxr-xr-x[-rw-r--r--]view/tpl/settings.tpl95
-rwxr-xr-x[-rw-r--r--]view/tpl/settings_account.tpl18
-rwxr-xr-x[-rw-r--r--]view/tpl/settings_addons.tpl6
-rwxr-xr-x[-rw-r--r--]view/tpl/settings_connectors.tpl6
-rwxr-xr-x[-rw-r--r--]view/tpl/settings_display.tpl22
-rwxr-xr-x[-rw-r--r--]view/tpl/settings_features.tpl18
-rwxr-xr-x[-rw-r--r--]view/tpl/settings_nick_set.tpl3
-rw-r--r--view/tpl/settings_nick_subdir.tpl6
-rwxr-xr-x[-rw-r--r--]view/tpl/settings_oauth.tpl32
-rwxr-xr-x[-rw-r--r--]view/tpl/settings_oauth_edit.tpl18
-rwxr-xr-xview/tpl/siteinfo.tpl14
-rw-r--r--view/tpl/smarty3/404.tpl6
-rw-r--r--view/tpl/smarty3/README4
-rw-r--r--view/tpl/smarty3/abook_edit.tpl79
-rw-r--r--view/tpl/smarty3/acl_selector.tpl33
-rw-r--r--view/tpl/smarty3/admin_aside.tpl47
-rw-r--r--view/tpl/smarty3/admin_logs.tpl24
-rw-r--r--view/tpl/smarty3/admin_plugins.tpl20
-rw-r--r--view/tpl/smarty3/admin_plugins_details.tpl41
-rw-r--r--view/tpl/smarty3/admin_remoteupdate.tpl103
-rw-r--r--view/tpl/smarty3/admin_site.tpl87
-rw-r--r--view/tpl/smarty3/admin_summary.tpl45
-rw-r--r--view/tpl/smarty3/admin_users.tpl94
-rw-r--r--view/tpl/smarty3/album_edit.tpl20
-rw-r--r--view/tpl/smarty3/api_config_xml.tpl71
-rw-r--r--view/tpl/smarty3/api_friends_xml.tpl10
-rw-r--r--view/tpl/smarty3/api_ratelimit_xml.tpl11
-rw-r--r--view/tpl/smarty3/api_status_xml.tpl51
-rw-r--r--view/tpl/smarty3/api_test_xml.tpl6
-rw-r--r--view/tpl/smarty3/api_timeline_atom.tpl95
-rw-r--r--view/tpl/smarty3/api_timeline_rss.tpl31
-rw-r--r--view/tpl/smarty3/api_timeline_xml.tpl25
-rw-r--r--view/tpl/smarty3/api_user_xml.tpl51
-rw-r--r--view/tpl/smarty3/apps.tpl12
-rw-r--r--view/tpl/smarty3/atom_feed.tpl34
-rw-r--r--view/tpl/smarty3/atom_feed_dfrn.tpl34
-rw-r--r--view/tpl/smarty3/atom_mail.tpl22
-rw-r--r--view/tpl/smarty3/atom_suggest.tpl16
-rw-r--r--view/tpl/smarty3/auto_request.tpl42
-rw-r--r--view/tpl/smarty3/birthdays_reminder.tpl15
-rw-r--r--view/tpl/smarty3/build_query.tpl57
-rw-r--r--view/tpl/smarty3/categories_widget.tpl17
-rw-r--r--view/tpl/smarty3/channel.tpl17
-rw-r--r--view/tpl/smarty3/channel_import.tpl40
-rw-r--r--view/tpl/smarty3/channels.tpl27
-rw-r--r--view/tpl/smarty3/chanview.tpl7
-rw-r--r--view/tpl/smarty3/comment_item.tpl73
-rw-r--r--view/tpl/smarty3/common_friends.tpl17
-rw-r--r--view/tpl/smarty3/common_tabs.tpl11
-rw-r--r--view/tpl/smarty3/contact_block.tpl17
-rw-r--r--view/tpl/smarty3/contact_edit.tpl94
-rw-r--r--view/tpl/smarty3/contact_head.tpl35
-rw-r--r--view/tpl/smarty3/contact_slider.tpl9
-rw-r--r--view/tpl/smarty3/contact_template.tpl14
-rw-r--r--view/tpl/smarty3/contacts-template.tpl31
-rw-r--r--view/tpl/smarty3/content.tpl7
-rw-r--r--view/tpl/smarty3/conv.tpl22
-rw-r--r--view/tpl/smarty3/conv_frame.tpl19
-rw-r--r--view/tpl/smarty3/conv_item.tpl120
-rw-r--r--view/tpl/smarty3/conversation.tpl33
-rw-r--r--view/tpl/smarty3/convobj.tpl9
-rw-r--r--view/tpl/smarty3/crepair.tpl51
-rw-r--r--view/tpl/smarty3/cropbody.tpl63
-rw-r--r--view/tpl/smarty3/crophead.tpl9
-rw-r--r--view/tpl/smarty3/delegate.tpl62
-rw-r--r--view/tpl/smarty3/dfrn_req_confirm.tpl26
-rw-r--r--view/tpl/smarty3/dfrn_request.tpl64
-rw-r--r--view/tpl/smarty3/diasp_dec_hdr.tpl13
-rw-r--r--view/tpl/smarty3/directory_header.tpl21
-rw-r--r--view/tpl/smarty3/directory_item.tpl16
-rw-r--r--view/tpl/smarty3/direntry.tpl16
-rw-r--r--view/tpl/smarty3/display-head.tpl13
-rw-r--r--view/tpl/smarty3/edpost_head.tpl6
-rw-r--r--view/tpl/smarty3/email_notify_html.tpl32
-rw-r--r--view/tpl/smarty3/email_notify_text.tpl18
-rw-r--r--view/tpl/smarty3/event.tpl15
-rw-r--r--view/tpl/smarty3/event_form.tpl54
-rw-r--r--view/tpl/smarty3/event_head.tpl144
-rw-r--r--view/tpl/smarty3/events-js.tpl11
-rw-r--r--view/tpl/smarty3/events.tpl29
-rw-r--r--view/tpl/smarty3/events_reminder.tpl15
-rw-r--r--view/tpl/smarty3/failed_updates.tpl22
-rw-r--r--view/tpl/smarty3/fake_feed.tpl18
-rw-r--r--view/tpl/smarty3/field.tpl9
-rw-r--r--view/tpl/smarty3/field_acheckbox.tpl12
-rw-r--r--view/tpl/smarty3/field_checkbox.tpl11
-rw-r--r--view/tpl/smarty3/field_combobox.tpl23
-rw-r--r--view/tpl/smarty3/field_custom.tpl11
-rw-r--r--view/tpl/smarty3/field_input.tpl12
-rw-r--r--view/tpl/smarty3/field_intcheckbox.tpl11
-rw-r--r--view/tpl/smarty3/field_openid.tpl11
-rw-r--r--view/tpl/smarty3/field_password.tpl11
-rw-r--r--view/tpl/smarty3/field_radio.tpl11
-rw-r--r--view/tpl/smarty3/field_richtext.tpl11
-rw-r--r--view/tpl/smarty3/field_select.tpl13
-rw-r--r--view/tpl/smarty3/field_select_raw.tpl13
-rw-r--r--view/tpl/smarty3/field_textarea.tpl11
-rw-r--r--view/tpl/smarty3/field_themeselect.tpl14
-rw-r--r--view/tpl/smarty3/field_yesno.tpl18
-rw-r--r--view/tpl/smarty3/fileas_widget.tpl17
-rw-r--r--view/tpl/smarty3/filebrowser.tpl89
-rw-r--r--view/tpl/smarty3/filer_dialog.tpl9
-rw-r--r--view/tpl/smarty3/follow.tpl13
-rw-r--r--view/tpl/smarty3/follow_slap.tpl30
-rw-r--r--view/tpl/smarty3/generic_links_widget.tpl16
-rw-r--r--view/tpl/smarty3/group_drop.tpl14
-rw-r--r--view/tpl/smarty3/group_edit.tpl28
-rw-r--r--view/tpl/smarty3/group_selection.tpl13
-rw-r--r--view/tpl/smarty3/group_side.tpl38
-rw-r--r--view/tpl/smarty3/groupeditor.tpl21
-rw-r--r--view/tpl/smarty3/head.tpl35
-rw-r--r--view/tpl/smarty3/hide_comments.tpl9
-rw-r--r--view/tpl/smarty3/install.tpl15
-rw-r--r--view/tpl/smarty3/install_checks.tpl29
-rw-r--r--view/tpl/smarty3/install_db.tpl35
-rw-r--r--view/tpl/smarty3/install_settings.tpl32
-rw-r--r--view/tpl/smarty3/intros.tpl23
-rw-r--r--view/tpl/smarty3/intros_header.tpl6
-rw-r--r--view/tpl/smarty3/invite.tpl35
-rw-r--r--view/tpl/smarty3/jot-header.tpl323
-rw-r--r--view/tpl/smarty3/jot.tpl91
-rw-r--r--view/tpl/smarty3/jot_geotag.tpl13
-rw-r--r--view/tpl/smarty3/js_strings.tpl39
-rw-r--r--view/tpl/smarty3/lang_selector.tpl15
-rw-r--r--view/tpl/smarty3/like_noshare.tpl10
-rw-r--r--view/tpl/smarty3/login.tpl36
-rw-r--r--view/tpl/smarty3/logout.tpl11
-rw-r--r--view/tpl/smarty3/lostpass.tpl23
-rw-r--r--view/tpl/smarty3/magicsig.tpl14
-rw-r--r--view/tpl/smarty3/mail_conv.tpl19
-rw-r--r--view/tpl/smarty3/mail_display.tpl15
-rw-r--r--view/tpl/smarty3/mail_head.tpl8
-rw-r--r--view/tpl/smarty3/mail_list.tpl24
-rw-r--r--view/tpl/smarty3/main_slider.tpl28
-rw-r--r--view/tpl/smarty3/match.tpl21
-rw-r--r--view/tpl/smarty3/message_side.tpl15
-rw-r--r--view/tpl/smarty3/micropro_img.tpl6
-rw-r--r--view/tpl/smarty3/micropro_txt.tpl6
-rw-r--r--view/tpl/smarty3/moderated_comment.tpl39
-rw-r--r--view/tpl/smarty3/mood_content.tpl25
-rw-r--r--view/tpl/smarty3/msg-header.tpl102
-rw-r--r--view/tpl/smarty3/nav.tpl153
-rw-r--r--view/tpl/smarty3/netfriend.tpl19
-rw-r--r--view/tpl/smarty3/new_channel.tpl34
-rw-r--r--view/tpl/smarty3/nogroup-template.tpl17
-rw-r--r--view/tpl/smarty3/notifications.tpl13
-rw-r--r--view/tpl/smarty3/notifications_comments_item.tpl8
-rw-r--r--view/tpl/smarty3/notifications_dislikes_item.tpl8
-rw-r--r--view/tpl/smarty3/notifications_friends_item.tpl8
-rw-r--r--view/tpl/smarty3/notifications_likes_item.tpl8
-rw-r--r--view/tpl/smarty3/notifications_network_item.tpl8
-rw-r--r--view/tpl/smarty3/notifications_posts_item.tpl8
-rw-r--r--view/tpl/smarty3/notify.tpl8
-rw-r--r--view/tpl/smarty3/oauth_authorize.tpl15
-rw-r--r--view/tpl/smarty3/oauth_authorize_done.tpl9
-rw-r--r--view/tpl/smarty3/oembed_video.tpl9
-rw-r--r--view/tpl/smarty3/oexchange_xrd.tpl38
-rw-r--r--view/tpl/smarty3/opensearch.tpl18
-rw-r--r--view/tpl/smarty3/page_display.tpl12
-rw-r--r--view/tpl/smarty3/pagetypes.tpl10
-rw-r--r--view/tpl/smarty3/peoplefind.tpl19
-rw-r--r--view/tpl/smarty3/photo_album.tpl12
-rw-r--r--view/tpl/smarty3/photo_albums.tpl18
-rw-r--r--view/tpl/smarty3/photo_drop.tpl9
-rw-r--r--view/tpl/smarty3/photo_edit.tpl55
-rw-r--r--view/tpl/smarty3/photo_item.tpl27
-rw-r--r--view/tpl/smarty3/photo_top.tpl13
-rw-r--r--view/tpl/smarty3/photo_view.tpl42
-rw-r--r--view/tpl/smarty3/photos_recent.tpl16
-rw-r--r--view/tpl/smarty3/photos_upload.tpl51
-rw-r--r--view/tpl/smarty3/poco_entry_xml.tpl12
-rw-r--r--view/tpl/smarty3/poco_xml.tpl23
-rw-r--r--view/tpl/smarty3/poke_content.tpl37
-rw-r--r--view/tpl/smarty3/posted_date_widget.tpl14
-rw-r--r--view/tpl/smarty3/profed_head.tpl41
-rw-r--r--view/tpl/smarty3/profile-hide-friends.tpl21
-rw-r--r--view/tpl/smarty3/profile-hide-wall.tpl21
-rw-r--r--view/tpl/smarty3/profile-in-directory.tpl21
-rw-r--r--view/tpl/smarty3/profile-in-netdir.tpl21
-rw-r--r--view/tpl/smarty3/profile_advanced.tpl175
-rw-r--r--view/tpl/smarty3/profile_edit.tpl316
-rw-r--r--view/tpl/smarty3/profile_edlink.tpl7
-rw-r--r--view/tpl/smarty3/profile_entry.tpl16
-rw-r--r--view/tpl/smarty3/profile_listing_header.tpl13
-rw-r--r--view/tpl/smarty3/profile_photo.tpl34
-rw-r--r--view/tpl/smarty3/profile_publish.tpl21
-rw-r--r--view/tpl/smarty3/profile_vcard.tpl57
-rw-r--r--view/tpl/smarty3/prv_message.tpl44
-rw-r--r--view/tpl/smarty3/pwdreset.tpl22
-rw-r--r--view/tpl/smarty3/register.tpl50
-rw-r--r--view/tpl/smarty3/remote_friends_common.tpl26
-rw-r--r--view/tpl/smarty3/removeme.tpl25
-rw-r--r--view/tpl/smarty3/rmagic.tpl16
-rw-r--r--view/tpl/smarty3/saved_searches_aside.tpl19
-rw-r--r--view/tpl/smarty3/search_item.tpl68
-rw-r--r--view/tpl/smarty3/settings.tpl119
-rw-r--r--view/tpl/smarty3/settings_account.tpl33
-rw-r--r--view/tpl/smarty3/settings_addons.tpl15
-rw-r--r--view/tpl/smarty3/settings_connectors.tpl14
-rw-r--r--view/tpl/smarty3/settings_display.tpl27
-rw-r--r--view/tpl/smarty3/settings_features.tpl25
-rw-r--r--view/tpl/smarty3/settings_nick_set.tpl10
-rw-r--r--view/tpl/smarty3/settings_nick_subdir.tpl11
-rw-r--r--view/tpl/smarty3/settings_oauth.tpl36
-rw-r--r--view/tpl/smarty3/settings_oauth_edit.tpl22
-rw-r--r--view/tpl/smarty3/suggest_friends.tpl21
-rw-r--r--view/tpl/smarty3/suggestions.tpl26
-rw-r--r--view/tpl/smarty3/tag_slap.tpl35
-rw-r--r--view/tpl/smarty3/threaded_conversation.tpl18
-rw-r--r--view/tpl/smarty3/toggle_mobile_footer.tpl7
-rw-r--r--view/tpl/smarty3/viewcontact_template.tpl14
-rw-r--r--view/tpl/smarty3/wall_item.tpl84
-rw-r--r--view/tpl/smarty3/wall_thread.tpl125
-rw-r--r--view/tpl/smarty3/wallmessage.tpl37
-rw-r--r--view/tpl/smarty3/wallmsg-header.tpl87
-rw-r--r--view/tpl/smarty3/wallwall_item.tpl91
-rw-r--r--view/tpl/smarty3/wallwall_thread.tpl112
-rw-r--r--view/tpl/smarty3/xchan_vcard.tpl25
-rw-r--r--view/tpl/smarty3/xrd_host.tpl23
-rw-r--r--view/tpl/smarty3/xrd_person.tpl34
-rwxr-xr-x[-rw-r--r--]view/tpl/suggest_friends.tpl16
-rwxr-xr-xview/tpl/suggest_page.tpl9
-rwxr-xr-x[-rw-r--r--]view/tpl/suggestions.tpl23
-rw-r--r--view/tpl/tag_slap.tpl30
-rw-r--r--view/tpl/thing_input.tpl28
-rwxr-xr-x[-rw-r--r--]view/tpl/threaded_conversation.tpl14
-rwxr-xr-x[-rw-r--r--]view/tpl/toggle_mobile_footer.tpl2
-rwxr-xr-x[-rw-r--r--]view/tpl/viewcontact_template.tpl10
-rw-r--r--view/tpl/wall_item.tpl79
-rw-r--r--view/tpl/wall_thread.tpl120
-rw-r--r--view/tpl/wallmessage.tpl32
-rw-r--r--view/tpl/wallmsg-header.tpl82
-rw-r--r--view/tpl/wallwall_item.tpl86
-rw-r--r--view/tpl/wallwall_thread.tpl107
-rw-r--r--view/tpl/webpagelist.tpl20
-rwxr-xr-x[-rw-r--r--]view/tpl/xchan_vcard.tpl16
-rwxr-xr-x[-rw-r--r--]view/tpl/xrd_host.tpl12
-rwxr-xr-x[-rw-r--r--]view/tpl/xrd_person.tpl20
1869 files changed, 132515 insertions, 29172 deletions
diff --git a/.gitignore b/.gitignore
index 6cb36fb26..b32389dc2 100644..100755
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@ favicon.*
.htconfig.php
\#*
include/jquery-1.4.2.min.js
+*.gz
*.log
*.out
*.version*
@@ -29,3 +30,6 @@ report/
#ignore OSX .DS_Store files
.DS_Store
+
+#netbeans project folder
+nbproject
diff --git a/.htaccess b/.htaccess
index 6cb3a0749..090ae6637 100644
--- a/.htaccess
+++ b/.htaccess
@@ -2,7 +2,8 @@ Options -Indexes
AddType application/x-java-archive .jar
AddType audio/ogg .oga
-<FilesMatch "\.(out|log)$">
+# don't allow any web access to logfiles, even after rotation/compression
+<FilesMatch "\.(out|log|gz)$">
Deny from all
</FilesMatch>
diff --git a/LICENSE b/LICENSE
index 01f1c19d5..b8c943177 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2010-2013 the Friendica Project
+Copyright (c) 2010-2013 the Red Project
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
diff --git a/README b/README
deleted file mode 100644
index a930d0910..000000000
--- a/README
+++ /dev/null
@@ -1,11 +0,0 @@
-Friendica RED Interaction Engine
-================================
-
-Red is a new concept in electronic communications which is based on our earlier work with Friendica and our pioneering developments in decentralised, federated social networking.
-
-Red is prototype code and has limited functionality at the present time. This message will be changed when it approaches stability.
-
-At its heart, Red is a decentralised collection of location agnostic info streams (e.g. "channels") which are attached to permission controlled web resources, and which have the ability to discover each other and interact. You could call it a type of social network, but that would be degrading. This is a different concept in online communications, starting where social networks leave off and extending those somewhat primitive types of interactions in new ways - particularly when it comes to privacy.
-
-
-Social networking emulation is one form that these streams can take, but they can take many other forms - limited only by your imagination.
diff --git a/README.md b/README.md
new file mode 100644
index 000000000..460da7296
--- /dev/null
+++ b/README.md
@@ -0,0 +1,36 @@
+The Red Matrix
+==============
+
+Got Zot?
+
+The modern web is "missing" a few important pieces which would make it much more useful. Many corporations have stepped in with products to supply these missing pieces, but with a loss of freedom and privacy and increased **centralisation**.
+
+Centralisation is generally considered a bad thing in network design as the loss of one critical node or centralised service could seriously impact the entire network - possibly taking a long time to recover. Recognising this, the original web was based on decentralised services. Over the years, this fundamental design strength has been largely overlooked, as people congregate into centralised services which provide the missing pieces.
+
+These missing pieces are (in no particular order):
+
+- Secure and private "spam free" communications
+
+- Identity and "single-signon" across the entire network
+
+- Privacy controls and permissions which extend to the entire network
+
+- Directory services (like a phone book)
+
+
+
+The Red Matrix (sometimes referred to as just "Red") is a collection of web servers and services which provides these missing pieces, but within a decentralised identity and messaging framework (known as "Zot"). Red operates as an independent network within the larger internet where all the nodes or servers (we call them "hubs") are able to fully interact with each other in ways that are simply not possible using other services. Additionally the owners of each network hub have the ability to set their own rules with regard to communications and privacy and data ownership, because each operates with complete independence. These hubs require only slightly more resources than a blog or content management system, and the software is being designed with the ability to natively incorporate both kinds of functionality, as well as cloud storage.
+
+![The Red Matrix model](images/red_antiprism.png)
+
+
+A weakness of existing decentralised network models is the binding of network identity with the physical server where it resides; for example if you are "eric@example.website", your identity is often tied permanently to "example.website". We see this as a problem. Many hubs on the Indie Web are run by enthusiasts with varying skill levels and financial resources - and the technology is changing quite rapidly. Often the cost or workload involved in maintaining these services becomes a burden (or hardware fails) and people or entire social communities are left stranded when their server goes offline. They may have to "start over" building their social circle from scratch when this happens. In some cases communities are unable to recover from this kind of disruption and the entire community dissolves.
+
+We've been working on decentralisation for several years and have seen this happen time and time again.
+Within the Red Matrix, identity is nomadic. You can take your identity, and all your friends and associates with you - to any other hub in the network, at any time. If your hub goes offline for any reason, you have the ability to relocate to any other hub and carry on as if nothing happened. You still have all your friends and associations.
+
+
+The Red Matrix is free and open source distributed under the MIT license.
+
+
+Currently the project is in "Developer Preview". A lot of work remains, but many important bits are functioning. Please connect with one of the developer channels ("Channel One" would be a good choice) if you are interested in helping us out.
diff --git a/boot.php b/boot.php
index 8d2e7c6e8..de1c640a6 100644..100755
--- a/boot.php
+++ b/boot.php
@@ -1,4 +1,29 @@
<?php
+/** @file */
+
+/**
+ * Red Matrix.
+ *
+ * The Red Matrix (aka "Red") is an open source decentralised communications
+ * platform combined with a decentralised identity/authentication framework
+ * wrapped in an extensible content management system, providing website designers
+ * the ability to embed fully decentralised communications and social tools
+ * into many traditional website designs (blogs, forums, small business
+ * websites, charitable organisations, etc.). Red also provides DNS mobility
+ * and internet scale privacy/access control.
+ *
+ * This allows any individual website to participate in a matrix of linked
+ * sites and people and media sharing which is far greater than the reach
+ * of an individual site.
+ *
+ * If you are reading the source code and come across a function
+ * or code block which is not documented, but you have a good idea what it
+ * does, please add some descriptive comments and push it to the main project.
+ * Even if your description isn't perfect, it gives us a base which we
+ * can build on and correct - so that eventually everything is fully
+ * documented.
+ */
+
require_once('include/config.php');
require_once('include/network.php');
@@ -12,11 +37,13 @@ require_once('include/permissions.php');
require_once('library/Mobile_Detect/Mobile_Detect.php');
require_once('include/BaseObject.php');
require_once('include/features.php');
+require_once('include/taxonomy.php');
-define ( 'FRIENDICA_PLATFORM', 'Friendica Red');
-define ( 'FRIENDICA_VERSION', trim(file_get_contents('version.inc')) . 'R');
-define ( 'ZOT_REVISION', 1 );
-define ( 'DB_UPDATE_VERSION', 1031 );
+
+define ( 'RED_PLATFORM', 'Red Matrix' );
+define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
+define ( 'ZOT_REVISION', 1 );
+define ( 'DB_UPDATE_VERSION', 1058 );
define ( 'EOL', '<br />' . "\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
@@ -92,7 +119,7 @@ define ( 'DEFAULT_DB_ENGINE', 'MyISAM' );
define ( 'SSL_POLICY_NONE', 0 );
define ( 'SSL_POLICY_FULL', 1 );
-define ( 'SSL_POLICY_SELFSIGN', 2 );
+define ( 'SSL_POLICY_SELFSIGN', 2 ); // NOT supported in Red
/**
@@ -130,6 +157,12 @@ define ( 'UPDATE_SUCCESS', 0);
define ( 'UPDATE_FAILED', 1);
+
+define ( 'CLIENT_MODE_NORMAL', 0x0000);
+define ( 'CLIENT_MODE_LOAD', 0x0001);
+define ( 'CLIENT_MODE_UPDATE', 0x0002);
+
+
/**
*
* page/profile types
@@ -146,6 +179,7 @@ define ( 'PAGE_NORMAL', 0x0000 );
define ( 'PAGE_HIDDEN', 0x0001 );
define ( 'PAGE_AUTOCONNECT', 0x0002 );
define ( 'PAGE_APPLICATION', 0x0004 );
+define ( 'PAGE_DIRECTORY_CHANNEL', 0x0008 ); // system channel used for directory synchronisation
define ( 'PAGE_REMOVED', 0x8000 );
@@ -153,6 +187,18 @@ define ( 'PAGE_REMOVED', 0x8000 );
//define ( 'PAGE_BLOG', 4 );
//define ( 'PAGE_PRVGROUP', 5 );
+
+/**
+ * Photo types
+ */
+
+define ( 'PHOTO_NORMAL', 0x0000 );
+define ( 'PHOTO_PROFILE', 0x0001 );
+define ( 'PHOTO_XCHAN', 0x0002 );
+define ( 'PHOTO_THING', 0x0004 );
+
+
+
/**
* Network and protocol family types
*/
@@ -223,6 +269,8 @@ define ( 'MAIL_DELETED', 0x0001);
define ( 'MAIL_REPLIED', 0x0002);
define ( 'MAIL_ISREPLY', 0x0004);
define ( 'MAIL_SEEN', 0x0008);
+define ( 'MAIL_RECALLED', 0x0010);
+define ( 'MAIL_OBSCURED', 0x0020);
define ( 'ATTACH_FLAG_DIR', 0x0001);
@@ -280,18 +328,21 @@ define ( 'XCHAN_FLAGS_HIDDEN', 0x0001);
* Tag/term types
*/
-define ( 'TERM_UNKNOWN', 0 );
-define ( 'TERM_HASHTAG', 1 );
-define ( 'TERM_MENTION', 2 );
-define ( 'TERM_CATEGORY', 3 );
-define ( 'TERM_PCATEGORY', 4 );
-define ( 'TERM_FILE', 5 );
-define ( 'TERM_SAVEDSEARCH', 6 );
-
-
-define ( 'TERM_OBJ_POST', 1 );
-define ( 'TERM_OBJ_PHOTO', 2 );
+define ( 'TERM_UNKNOWN', 0 );
+define ( 'TERM_HASHTAG', 1 );
+define ( 'TERM_MENTION', 2 );
+define ( 'TERM_CATEGORY', 3 );
+define ( 'TERM_PCATEGORY', 4 );
+define ( 'TERM_FILE', 5 );
+define ( 'TERM_SAVEDSEARCH', 6 );
+define ( 'TERM_THING', 7 );
+define ( 'TERM_OBJ_POST', 1 );
+define ( 'TERM_OBJ_PHOTO', 2 );
+define ( 'TERM_OBJ_PROFILE', 3 );
+define ( 'TERM_OBJ_CHANNEL', 4 );
+define ( 'TERM_OBJ_OBJECT', 5 );
+define ( 'TERM_OBJ_THING', 6 );
/**
@@ -346,6 +397,7 @@ define ( 'ACTIVITY_OBJ_EVENT', NAMESPACE_ACTIVITY_SCHEMA . 'event' );
define ( 'ACTIVITY_OBJ_GROUP', NAMESPACE_ACTIVITY_SCHEMA . 'group' );
define ( 'ACTIVITY_OBJ_TAGTERM', NAMESPACE_ZOT . '/activity/tagterm' );
define ( 'ACTIVITY_OBJ_PROFILE', NAMESPACE_ZOT . '/activity/profile' );
+define ( 'ACTIVITY_OBJ_THING', NAMESPACE_ZOT . '/activity/thing' );
/**
* item weight for query ordering
@@ -386,6 +438,7 @@ define ( 'ITEM_SPAM', 0x0008);
define ( 'ITEM_DELETED', 0x0010);
define ( 'ITEM_UNPUBLISHED', 0x0020);
define ( 'ITEM_WEBPAGE', 0x0040); // is a static web page, not a conversational item
+define ( 'ITEM_DELAYED_PUBLISH', 0x0080);
/**
* Item Flags
@@ -402,7 +455,8 @@ define ( 'ITEM_NOTSHOWN', 0x0080); // technically visible but not normal
define ( 'ITEM_NSFW', 0x0100);
define ( 'ITEM_RELAY', 0x0200); // used only in the communication layers, not stored
define ( 'ITEM_MENTIONSME', 0x0400);
-
+define ( 'ITEM_NOCOMMENT', 0x0800); // commenting/followups are disabled
+define ( 'ITEM_OBSCURED', 0x1000); // bit-mangled to protect from casual browsing by site admin
/**
*
@@ -453,466 +507,538 @@ function startup() {
*
*/
-if(! class_exists('App')) {
- class App {
+
+class App {
- public $account = null; // account record
- public $channel = null; // channel record
- public $observer = null; // xchan record
-
- private $perms = null; // observer permissions
- private $widgets = array(); // widgets for this page
- private $widgetlist = null; // widget ordering and inclusion directives
-
- public $groups;
- public $language;
- public $module_loaded = false;
- public $query_string;
- public $config; // config cache
- public $page;
- public $profile;
- public $user;
- public $cid;
- public $contact;
- public $contacts;
- public $content;
- public $data = array();
- public $error = false;
- public $cmd;
- public $argv;
- public $argc;
- public $module;
- public $pager;
- public $strings;
- public $hooks;
- public $timezone;
- public $interactive = true;
- public $plugins;
- private $apps = array();
- public $identities;
- public $css_sources = array();
- public $js_sources = array();
- public $theme_info = array();
+ public $account = null; // account record
+ public $channel = null; // channel record
+ public $observer = null; // xchan record
+ public $profile_uid = 0; // If applicable, the uid of the person whose stuff this is.
+
+
+
+ private $perms = null; // observer permissions
+ private $widgets = array(); // widgets for this page
+ private $widgetlist = null; // widget ordering and inclusion directives
+
+ public $groups;
+ public $language;
+ public $module_loaded = false;
+ public $query_string;
+ public $config; // config cache
+ public $page;
+ public $profile;
+ public $user;
+ public $cid;
+ public $contact;
+ public $contacts;
+ public $content;
+ public $data = array();
+ public $error = false;
+ public $cmd;
+ public $argv;
+ public $argc;
+ public $module;
+ public $pager;
+ public $strings;
+ public $hooks;
+ public $timezone;
+ public $interactive = true;
+ public $plugins;
+ private $apps = array();
+ public $identities;
+ public $css_sources = array();
+ public $js_sources = array();
+ public $theme_info = array();
- public $nav_sel;
-
- public $category;
-
- // Allow themes to control internal parameters
- // by changing App values in theme.php
-
- public $sourcename = '';
- public $videowidth = 425;
- public $videoheight = 350;
- public $force_max_items = 0;
- public $theme_thread_allow = true;
-
- // An array for all theme-controllable parameters
- // Mostly unimplemented yet. Only options 'template_engine' and
- // beyond are used.
-
- private $theme = array(
- 'sourcename' => '',
- 'videowidth' => 425,
- 'videoheight' => 350,
- 'force_max_items' => 0,
- 'thread_allow' => true,
- 'stylesheet' => '',
- 'template_engine' => 'internal',
- );
-
- private $ldelim = array(
- 'internal' => '',
- 'smarty3' => '{{'
- );
- private $rdelim = array(
- 'internal' => '',
- 'smarty3' => '}}'
- );
+ public $nav_sel;
+
+ public $category;
+
+ // Allow themes to control internal parameters
+ // by changing App values in theme.php
+
+ public $sourcename = '';
+ public $videowidth = 425;
+ public $videoheight = 350;
+ public $force_max_items = 0;
+ public $theme_thread_allow = true;
+
+ // An array for all theme-controllable parameters
+ // Mostly unimplemented yet. Only options 'template_engine' and
+ // beyond are used.
+
+ private $theme = array(
+ 'sourcename' => '',
+ 'videowidth' => 425,
+ 'videoheight' => 350,
+ 'force_max_items' => 0,
+ 'thread_allow' => true,
+ 'stylesheet' => '',
+ 'template_engine' => 'smarty3',
+ );
- private $scheme;
- private $hostname;
- private $baseurl;
- private $path;
+ // array of registered template engines ('name'=>'class name')
+ public $template_engines = array();
+ // array of instanced template engines ('name'=>'instance')
+ public $template_engine_instance = array();
+
+ private $ldelim = array(
+ 'internal' => '',
+ 'smarty3' => '{{'
+ );
+ private $rdelim = array(
+ 'internal' => '',
+ 'smarty3' => '}}'
+ );
- private $db;
+ private $scheme;
+ private $hostname;
+ private $baseurl;
+ private $path;
+ private $db;
- private $curl_code;
- private $curl_headers;
+ private $curl_code;
+ private $curl_headers;
- private $cached_profile_image;
- private $cached_profile_picdate;
+ private $cached_profile_image;
+ private $cached_profile_picdate;
- function __construct() {
+ function __construct() {
- global $default_timezone;
+ global $default_timezone;
+ $this->timezone = ((x($default_timezone)) ? $default_timezone : 'UTC');
- $this->timezone = ((x($default_timezone)) ? $default_timezone : 'UTC');
+ date_default_timezone_set($this->timezone);
- date_default_timezone_set($this->timezone);
+ $this->config = array('system'=>array());
+ $this->page = array();
+ $this->pager= array();
- $this->config = array();
- $this->page = array();
- $this->pager= array();
+ $this->query_string = '';
- $this->query_string = '';
+ startup();
- startup();
+ set_include_path(
+ 'include' . PATH_SEPARATOR
+ . 'library' . PATH_SEPARATOR
+ . 'library/phpsec' . PATH_SEPARATOR
+ . 'library/langdet' . PATH_SEPARATOR
+ . '.' );
- $this->scheme = 'http';
- if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS'])
- $this->scheme = 'https';
- elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443))
- $this->scheme = 'https';
+ $this->scheme = 'http';
+ if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS'])
+ $this->scheme = 'https';
+ elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443))
+ $this->scheme = 'https';
- if(x($_SERVER,'SERVER_NAME')) {
- $this->hostname = $_SERVER['SERVER_NAME'];
+ if(x($_SERVER,'SERVER_NAME')) {
+ $this->hostname = $_SERVER['SERVER_NAME'];
- if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443)
- $this->hostname .= ':' . $_SERVER['SERVER_PORT'];
- /**
- * Figure out if we are running at the top of a domain
- * or in a sub-directory and adjust accordingly
- */
+ if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443)
+ $this->hostname .= ':' . $_SERVER['SERVER_PORT'];
+ /**
+ * Figure out if we are running at the top of a domain
+ * or in a sub-directory and adjust accordingly
+ */
- $path = trim(dirname($_SERVER['SCRIPT_NAME']),'/\\');
- if(isset($path) && strlen($path) && ($path != $this->path))
- $this->path = $path;
- }
+ $path = trim(dirname($_SERVER['SCRIPT_NAME']),'/\\');
+ if(isset($path) && strlen($path) && ($path != $this->path))
+ $this->path = $path;
+ }
- set_include_path(
- "include/$this->hostname" . PATH_SEPARATOR
- . 'include' . PATH_SEPARATOR
- . 'library' . PATH_SEPARATOR
- . 'library/phpsec' . PATH_SEPARATOR
- . 'library/langdet' . PATH_SEPARATOR
- . '.' );
-
- if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
- $this->query_string = substr($_SERVER['QUERY_STRING'],2);
- // removing trailing / - maybe a nginx problem
- if (substr($this->query_string, 0, 1) == "/")
- $this->query_string = substr($this->query_string, 1);
- }
- if(x($_GET,'q'))
- $this->cmd = trim($_GET['q'],'/\\');
+ set_include_path("include/$this->hostname" . PATH_SEPARATOR . get_include_path());
- // unix style "homedir"
+ if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
+ $this->query_string = substr($_SERVER['QUERY_STRING'],2);
+ // removing trailing / - maybe a nginx problem
+ if (substr($this->query_string, 0, 1) == "/")
+ $this->query_string = substr($this->query_string, 1);
+ }
+ if(x($_GET,'q'))
+ $this->cmd = trim($_GET['q'],'/\\');
- if(substr($this->cmd,0,1) === '~')
- $this->cmd = 'channel/' . substr($this->cmd,1);
+ // unix style "homedir"
+ if(substr($this->cmd,0,1) === '~')
+ $this->cmd = 'channel/' . substr($this->cmd,1);
- /**
- *
- * Break the URL path into C style argc/argv style arguments for our
- * modules. Given "http://example.com/module/arg1/arg2", $this->argc
- * will be 3 (integer) and $this->argv will contain:
- * [0] => 'module'
- * [1] => 'arg1'
- * [2] => 'arg2'
- *
- *
- * There will always be one argument. If provided a naked domain
- * URL, $this->argv[0] is set to "home".
- *
- */
- $this->argv = explode('/',$this->cmd);
- $this->argc = count($this->argv);
- if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) {
- $this->module = str_replace(".", "_", $this->argv[0]);
- $this->module = str_replace("-", "_", $this->module);
- }
- else {
- $this->argc = 1;
- $this->argv = array('home');
- $this->module = 'home';
- }
+ /**
+ *
+ * Break the URL path into C style argc/argv style arguments for our
+ * modules. Given "http://example.com/module/arg1/arg2", $this->argc
+ * will be 3 (integer) and $this->argv will contain:
+ * [0] => 'module'
+ * [1] => 'arg1'
+ * [2] => 'arg2'
+ *
+ *
+ * There will always be one argument. If provided a naked domain
+ * URL, $this->argv[0] is set to "home".
+ *
+ */
+ $this->argv = explode('/',$this->cmd);
+ $this->argc = count($this->argv);
+ if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) {
+ $this->module = str_replace(".", "_", $this->argv[0]);
+ $this->module = str_replace("-", "_", $this->module);
+ }
+ else {
+ $this->argc = 1;
+ $this->argv = array('home');
+ $this->module = 'home';
+ }
- /**
- * See if there is any page number information, and initialise
- * pagination
- */
- $this->pager['page'] = ((x($_GET,'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1);
- $this->pager['itemspage'] = 50;
- $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
- if($this->pager['start'] < 0)
- $this->pager['start'] = 0;
- $this->pager['total'] = 0;
+ /**
+ * See if there is any page number information, and initialise
+ * pagination
+ */
- /**
- * Detect mobile devices
- */
+ $this->pager['page'] = ((x($_GET,'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1);
+ $this->pager['itemspage'] = 50;
+ $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
+ if($this->pager['start'] < 0)
+ $this->pager['start'] = 0;
+ $this->pager['total'] = 0;
- $mobile_detect = new Mobile_Detect();
- $this->is_mobile = $mobile_detect->isMobile();
- $this->is_tablet = $mobile_detect->isTablet();
+ /**
+ * Detect mobile devices
+ */
- BaseObject::set_app($this);
- }
+ $mobile_detect = new Mobile_Detect();
+ $this->is_mobile = $mobile_detect->isMobile();
+ $this->is_tablet = $mobile_detect->isTablet();
- function get_baseurl($ssl = false) {
- $scheme = $this->scheme;
+ $this->head_set_icon('/images/rhash-32.png');
- if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) {
- if(intval($this->config['system']['ssl_policy']) === intval(SSL_POLICY_FULL))
- $scheme = 'https';
+ BaseObject::set_app($this);
+
+ /**
+ * register template engines
+ */
+ $dc = get_declared_classes();
+ foreach ($dc as $k) {
+ if (in_array("ITemplateEngine", class_implements($k))){
+ $this->register_template_engine($k);
+ }
+ }
+ }
- // Basically, we have $ssl = true on any links which can only be seen by a logged in user
- // (and also the login link). Anything seen by an outsider will have it turned off.
+ function get_baseurl($ssl = false) {
+ $scheme = $this->scheme;
- if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) {
- if($ssl)
- $scheme = 'https';
- else
- $scheme = 'http';
- }
- }
-
- $this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
- return $this->baseurl;
+ if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) {
+ if(intval($this->config['system']['ssl_policy']) === intval(SSL_POLICY_FULL)) {
+ $scheme = 'https';
+ }
}
+
+ $this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
+ return $this->baseurl;
+ }
- function set_baseurl($url) {
-
- if(is_array($this->config) && array_key_exists('system',$this->config) &&
- array_key_exists('baseurl',$this->config['system']) && strlen($this->config['system']['baseurl'])) {
- $url = $this->config['system']['baseurl'];
- }
+ function set_baseurl($url) {
- $parsed = @parse_url($url);
+ if(is_array($this->config)
+ && array_key_exists('system',$this->config)
+ && is_array($this->config['system'])
+ && array_key_exists('baseurl',$this->config['system'])
+ && strlen($this->config['system']['baseurl'])) {
+ $url = $this->config['system']['baseurl'];
+ }
- $this->baseurl = $url;
+ $parsed = @parse_url($url);
- if($parsed) {
- $this->scheme = $parsed['scheme'];
+ $this->baseurl = $url;
- $this->hostname = $parsed['host'];
- if(x($parsed,'port'))
- $this->hostname .= ':' . $parsed['port'];
- if(x($parsed,'path'))
- $this->path = trim($parsed['path'],'\\/');
- }
+ if($parsed) {
+ $this->scheme = $parsed['scheme'];
+ $this->hostname = $parsed['host'];
+ if(x($parsed,'port'))
+ $this->hostname .= ':' . $parsed['port'];
+ if(x($parsed,'path'))
+ $this->path = trim($parsed['path'],'\\/');
}
- function get_hostname() {
- return $this->hostname;
- }
+ }
- function set_hostname($h) {
- $this->hostname = $h;
- }
+ function get_hostname() {
+ return $this->hostname;
+ }
- function set_path($p) {
- $this->path = trim(trim($p),'/');
- }
+ function set_hostname($h) {
+ $this->hostname = $h;
+ }
- function get_path() {
- return $this->path;
- }
+ function set_path($p) {
+ $this->path = trim(trim($p),'/');
+ }
- function set_account($aid) {
- $this->account = $aid;
- }
+ function get_path() {
+ return $this->path;
+ }
- function get_account() {
- return $this->account;
- }
+ function set_account($acct) {
+ $this->account = $acct;
+ }
- function set_channel($channel) {
- $this->channel = $channel;
- }
+ function get_account() {
+ return $this->account;
+ }
- function get_channel() {
- return $this->channel;
- }
+ function set_channel($channel) {
+ $this->channel = $channel;
+ }
+ function get_channel() {
+ return $this->channel;
+ }
- function set_observer($xchan) {
- $this->observer = $xchan;
- }
- function get_observer() {
- return $this->observer;
- }
+ function set_observer($xchan) {
+ $this->observer = $xchan;
+ }
- function set_perms($perms) {
- $this->perms = $perms;
- }
+ function get_observer() {
+ return $this->observer;
+ }
- function get_perms() {
- return $this->perms;
- }
+ function set_perms($perms) {
+ $this->perms = $perms;
+ }
- function get_apps() {
- return $this->apps;
- }
+ function get_perms() {
+ return $this->perms;
+ }
- function set_apps($arr) {
- $this->apps = $arr;
- }
+ function get_apps() {
+ return $this->apps;
+ }
- function set_groups($g) {
- $this->groups = $g;
- }
+ function set_apps($arr) {
+ $this->apps = $arr;
+ }
- function get_groups() {
- return $this->groups;
- }
+ function set_groups($g) {
+ $this->groups = $g;
+ }
- /*
- * Use a theme or app specific widget ordering list to determine what widgets should be included
- * for each module and in what order and optionally what region of the page to place them.
- * For example:
- * view/wgl/mod_connections.wgl:
- * -----------------------------
- * vcard aside
- * follow aside
- * findpeople rightside
- * collections aside
- *
- * If your widgetlist does not include a widget that is destined for the page, it will not be rendered.
- * You can also use this to change the order of presentation, as they will be presented in the order you specify.
- *
- */
+ function get_groups() {
+ return $this->groups;
+ }
- function set_widget($title,$html, $location = 'aside') {
- $widgetlist_file = 'mod_' . $this->module . '.wgl';
- if(! $this->widgetlist) {
- if($this->module && (($f = theme_include($widgetlist_file)) !== '')) {
- $s = file($f, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
- if(is_array($s)) {
- foreach($s as $x) {
- $this->widgetlist[] = explode(' ', $x);
- }
+ /*
+ * Use a theme or app specific widget ordering list to determine what widgets should be included
+ * for each module and in what order and optionally what region of the page to place them.
+ * For example:
+ * view/wgl/mod_connections.wgl:
+ * -----------------------------
+ * vcard aside
+ * follow aside
+ * findpeople rightside
+ * collections aside
+ *
+ * If your widgetlist does not include a widget that is destined for the page, it will not be rendered.
+ * You can also use this to change the order of presentation, as they will be presented in the order you specify.
+ *
+ */
+
+ function set_widget($title,$html, $location = 'aside') {
+ $widgetlist_file = 'mod_' . $this->module . '.wgl';
+ if(! $this->widgetlist) {
+ if($this->module && (($f = theme_include($widgetlist_file)) !== '')) {
+ $s = file($f, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
+ if(is_array($s)) {
+ foreach($s as $x) {
+ $this->widgetlist[] = explode(' ', $x);
}
}
- else {
- $this->widgets[] = array('title' => $title, 'html' => $html, 'location' => $location);
- }
}
- if($this->widgetlist) {
- foreach($this->widgetlist as $k => $v) {
- if($v[0] && $v[0] === $title) {
- $this->widgets[$k] = array('title' => $title, 'html' => $html, 'location' => (($v[1]) ? $v[1] : $location));
- }
+ else {
+ $this->widgets[] = array('title' => $title, 'html' => $html, 'location' => $location);
+ }
+ }
+ if($this->widgetlist) {
+ foreach($this->widgetlist as $k => $v) {
+ if($v[0] && $v[0] === $title) {
+ $this->widgets[$k] = array('title' => $title, 'html' => $html, 'location' => (($v[1]) ?$v[1] : $location));
}
}
}
+ }
- function get_widgets($location = '') {
- if($location && count($this->widgets)) {
- $ret = array();
- foreach($widgets as $w)
- if($w['location'] == $location)
- $ret[] = $w;
- $arr = array('location' => $location, 'widgets' => $ret);
- call_hooks('get_widgets', $arr);
- return $arr['widgets'];
- }
-
- $arr = array('location' => $location, 'widgets' => $this->widgets);
+ function get_widgets($location = '') {
+ if($location && count($this->widgets)) {
+ $ret = array();
+ foreach($widgets as $w)
+ if($w['location'] == $location)
+ $ret[] = $w;
+ $arr = array('location' => $location, 'widgets' => $ret);
call_hooks('get_widgets', $arr);
return $arr['widgets'];
- }
-
- function set_pager_total($n) {
- $this->pager['total'] = intval($n);
- }
-
- function set_pager_itemspage($n) {
- $this->pager['itemspage'] = ((intval($n) > 0) ? intval($n) : 0);
- $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
+ }
+ $arr = array('location' => $location, 'widgets' => $this->widgets);
+ call_hooks('get_widgets', $arr);
+ return $arr['widgets'];
+ }
+
+ function set_pager_total($n) {
+ $this->pager['total'] = intval($n);
+ }
- }
+ function set_pager_itemspage($n) {
+ $this->pager['itemspage'] = ((intval($n) > 0) ? intval($n) : 0);
+ $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
+ }
- function build_pagehead() {
+ function build_pagehead() {
- $interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
- if($interval < 10000)
- $interval = 40000;
+ $interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
+ if($interval < 10000)
+ $interval = 40000;
+ if(! x($this->page,'title'))
$this->page['title'] = $this->config['system']['sitename'];
+ /* put the head template at the beginning of page['htmlhead']
+ * since the code added by the modules frequently depends on it
+ * being first
+ */
+ $tpl = get_markup_template('head.tpl');
+ $this->page['htmlhead'] = replace_macros($tpl, array(
+ '$baseurl' => $this->get_baseurl(),
+ '$local_user' => local_user(),
+ '$generator' => RED_PLATFORM . ' ' . RED_VERSION,
+ '$update_interval' => $interval,
+ '$icon' => head_get_icon(),
+ '$head_css' => head_get_css(),
+ '$head_js' => head_get_js(),
+ '$js_strings' => js_strings()
+ )) . $this->page['htmlhead'];
+ }
- /* put the head template at the beginning of page['htmlhead']
- * since the code added by the modules frequently depends on it
- * being first
- */
- $tpl = get_markup_template('head.tpl');
- $this->page['htmlhead'] = replace_macros($tpl, array(
- '$baseurl' => $this->get_baseurl(),
- '$local_user' => local_user(),
- '$generator' => FRIENDICA_PLATFORM . ' ' . FRIENDICA_VERSION,
- '$update_interval' => $interval,
- '$head_css' => head_get_css(),
- '$head_js' => head_get_js(),
- '$js_strings' => js_strings()
- )) . $this->page['htmlhead'];
- }
+ function set_curl_code($code) {
+ $this->curl_code = $code;
+ }
- function set_curl_code($code) {
- $this->curl_code = $code;
- }
+ function get_curl_code() {
+ return $this->curl_code;
+ }
- function get_curl_code() {
- return $this->curl_code;
- }
+ function set_curl_headers($headers) {
+ $this->curl_headers = $headers;
+ }
- function set_curl_headers($headers) {
- $this->curl_headers = $headers;
- }
+ function get_curl_headers() {
+ return $this->curl_headers;
+ }
- function get_curl_headers() {
- return $this->curl_headers;
- }
+
+ /**
+ * register template engine class
+ * if $name is "", is used class static property $class::$name
+ * @param string $class
+ * @param string $name
+ */
+ function register_template_engine($class, $name = '') {
+ if ($name===""){
+ $v = get_class_vars( $class );
+ if(x($v,"name")) $name = $v['name'];
+ }
+ if ($name===""){
+ echo "template engine <tt>$class</tt> cannot be registered without a name.\n";
+ killme();
+ }
+ $this->template_engines[$name] = $class;
+ }
- function get_template_engine() {
- return $this->theme['template_engine'];
- }
+ /**
+ * return template engine instance. If $name is not defined,
+ * return engine defined by theme, or default
+ *
+ * @param strin $name Template engine name
+ * @return object Template Engine instance
+ */
+ function template_engine($name = ''){
+ if ($name!=="") {
+ $template_engine = $name;
+ } else {
+ $template_engine = 'smarty3';
+ if (x($this->theme, 'template_engine')) {
+ $template_engine = $this->theme['template_engine'];
+ }
+ }
+
+ if (isset($this->template_engines[$template_engine])){
+ if(isset($this->template_engine_instance[$template_engine])){
+ return $this->template_engine_instance[$template_engine];
+ } else {
+ $class = $this->template_engines[$template_engine];
+ $obj = new $class;
+ $this->template_engine_instance[$template_engine] = $obj;
+ return $obj;
+ }
+ }
+
+ echo "template engine <tt>$template_engine</tt> is not registered!\n"; killme();
+ }
+
+ function get_template_engine() {
+ return $this->theme['template_engine'];
+ }
- function set_template_engine($engine = 'internal') {
+ function set_template_engine($engine = 'smarty3') {
- $this->theme['template_engine'] = 'internal';
+ $this->theme['template_engine'] = $engine;
- switch($engine) {
- case 'smarty3':
- if(is_writable('view/tpl/smarty3/'))
- $this->theme['template_engine'] = 'smarty3';
- break;
- default:
- break;
- }
- }
+ /*if ($engine) {
+ case 'smarty3':
+ if(!is_writable('view/tpl/smarty3/'))
+ echo "<b>ERROR</b> folder <tt>view/tpl/smarty3/</tt> must be writable by webserver."; killme();
+
+ break;
+ default:
+ break;
+ }*/
+ }
+ function get_template_ldelim($engine = 'smarty3') {
+ return $this->ldelim[$engine];
+ }
- function get_template_ldelim($engine = 'internal') {
- return $this->ldelim[$engine];
- }
+ function get_template_rdelim($engine = 'smarty3') {
+ return $this->rdelim[$engine];
+ }
- function get_template_rdelim($engine = 'internal') {
- return $this->rdelim[$engine];
- }
+ function head_set_icon($icon) {
+ $this->data['pageicon'] = $icon;
+ }
+ function head_get_icon() {
+ $icon = $this->data['pageicon'];
+ if(! strpos($icon,'://'))
+ $icon = z_root() . $icon;
+ return $icon;
}
+
}
+
// retrieve the App structure
// useful in functions which require it but don't get it passed to them
-if(! function_exists('get_app')) {
- function get_app() {
- global $a;
- return $a;
- }
-};
+function get_app() {
+ global $a;
+ return $a;
+}
+
// Multi-purpose function to check variable state.
@@ -921,38 +1047,36 @@ if(! function_exists('get_app')) {
// if variable is set, returns 1 if has 'non-zero' value, otherwise returns 0.
// e.g. x('') or x(0) returns 0;
-if(! function_exists('x')) {
- function x($s,$k = NULL) {
- if($k != NULL) {
- if((is_array($s)) && (array_key_exists($k,$s))) {
- if($s[$k])
- return (int) 1;
- return (int) 0;
- }
- return false;
- }
- else {
- if(isset($s)) {
- if($s) {
- return (int) 1;
- }
- return (int) 0;
+
+function x($s,$k = NULL) {
+ if($k != NULL) {
+ if((is_array($s)) && (array_key_exists($k,$s))) {
+ if($s[$k])
+ return (int) 1;
+ return (int) 0;
+ }
+ return false;
+ }
+ else {
+ if(isset($s)) {
+ if($s) {
+ return (int) 1;
}
- return false;
+ return (int) 0;
}
+ return false;
}
}
+
// called from db initialisation if db is dead.
-if(! function_exists('system_unavailable')) {
- function system_unavailable() {
- include('system_unavailable.php');
- system_down();
- killme();
- }
-}
+function system_unavailable() {
+ include('system_unavailable.php');
+ system_down();
+ killme();
+}
function clean_urls() {
@@ -991,230 +1115,276 @@ function is_ajax() {
// $_SERVER variables, and synchronising the state of installed plugins.
-if(! function_exists('check_config')) {
-function check_config(&$a) {
-
- $build = get_config('system','db_version');
- if(! x($build))
- $build = set_config('system','db_version',DB_UPDATE_VERSION);
-
-// $url = get_config('system','baseurl');
- // if the url isn't set or the stored url is radically different
- // than the currently visited url, store the current value accordingly.
- // "Radically different" ignores common variations such as http vs https
- // and www.example.com vs example.com.
- // We will only change the url to an ip address if there is no existing setting
+function check_config(&$a) {
-// if(! x($url))
-// $url = set_config('system','baseurl',$a->get_baseurl());
-// if((! link_compare($url,$a->get_baseurl())) && (! preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$a->get_hostname)))
-// $url = set_config('system','baseurl',$a->get_baseurl());
+ $build = get_config('system','db_version');
+ if(! x($build))
+ $build = set_config('system','db_version',DB_UPDATE_VERSION);
+
+ $saved = get_config('system','urlverify');
+ if(! $saved)
+ set_config('system','urlverify',bin2hex(z_root()));
+ if(($saved) && ($saved != bin2hex(z_root()))) {
+ // our URL changed. Do something.
+ $oldurl = hex2bin($saved);
+ fix_system_urls($oldurl,z_root());
+ set_config('system','urlverify',bin2hex(z_root()));
+ }
+ // This will actually set the url to the one stored in .htconfig, and ignore what
+ // we're passing - unless we are installing and it has never been set.
+ $a->set_baseurl($a->get_baseurl());
- if($build != DB_UPDATE_VERSION) {
- $stored = intval($build);
- $current = intval(DB_UPDATE_VERSION);
- if(($stored < $current) && file_exists('install/update.php')) {
+ if($build != DB_UPDATE_VERSION) {
+ $stored = intval($build);
+ $current = intval(DB_UPDATE_VERSION);
+ if(($stored < $current) && file_exists('install/update.php')) {
- load_config('database');
+ load_config('database');
- // We're reporting a different version than what is currently installed.
- // Run any existing update scripts to bring the database up to current.
+ // We're reporting a different version than what is currently installed.
+ // Run any existing update scripts to bring the database up to current.
- require_once('install/update.php');
+ require_once('install/update.php');
- // make sure that boot.php and update.php are the same release, we might be
- // updating right this very second and the correct version of the update.php
- // file may not be here yet. This can happen on a very busy site.
+ // make sure that boot.php and update.php are the same release, we might be
+ // updating right this very second and the correct version of the update.php
+ // file may not be here yet. This can happen on a very busy site.
- if(DB_UPDATE_VERSION == UPDATE_VERSION) {
+ if(DB_UPDATE_VERSION == UPDATE_VERSION) {
- for($x = $stored; $x < $current; $x ++) {
- if(function_exists('update_r' . $x)) {
+ for($x = $stored; $x < $current; $x ++) {
+ if(function_exists('update_r' . $x)) {
- // There could be a lot of processes running or about to run.
- // We want exactly one process to run the update command.
- // So store the fact that we're taking responsibility
- // after first checking to see if somebody else already has.
+ // There could be a lot of processes running or about to run.
+ // We want exactly one process to run the update command.
+ // So store the fact that we're taking responsibility
+ // after first checking to see if somebody else already has.
- // If the update fails or times-out completely you may need to
- // delete the config entry to try again.
+ // If the update fails or times-out completely you may need to
+ // delete the config entry to try again.
- if(get_config('database','update_r' . $x))
- break;
- set_config('database','update_r' . $x, '1');
+ if(get_config('database','update_r' . $x))
+ break;
+ set_config('database','update_r' . $x, '1');
- // call the specific update
+ // call the specific update
- $func = 'update_r' . $x;
- $retval = $func();
- if($retval) {
- //send the administrator an e-mail
+ $func = 'update_r' . $x;
+ $retval = $func();
+ if($retval) {
+ //send the administrator an e-mail
- $email_tpl = get_intltext_template("update_fail_eml.tpl");
- $email_msg = replace_macros($email_tpl, array(
- '$sitename' => $a->config['sitename'],
- '$siteurl' => $a->get_baseurl(),
- '$update' => $x,
- '$error' => sprintf( t('Update %s failed. See error logs.'), $x)
- ));
+ $email_tpl = get_intltext_template("update_fail_eml.tpl");
+ $email_msg = replace_macros($email_tpl, array(
+ '$sitename' => $a->config['sitename'],
+ '$siteurl' => $a->get_baseurl(),
+ '$update' => $x,
+ '$error' => sprintf( t('Update %s failed. See error logs.'), $x)
+ ));
- $subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
+ $subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
- mail($a->config['admin_email'], $subject, $email_msg,
- 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
- . 'Content-type: text/plain; charset=UTF-8' . "\n"
- . 'Content-transfer-encoding: 8bit' );
- //try the logger
- logger('CRITICAL: Update Failed: '. $x);
- }
- else
- set_config('database','update_r' . $x, 'success');
-
+ mail($a->config['admin_email'], $subject, $email_msg,
+ 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
+ . 'Content-type: text/plain; charset=UTF-8' . "\n"
+ . 'Content-transfer-encoding: 8bit' );
+ //try the logger
+ logger('CRITICAL: Update Failed: ' . $x);
}
+ else
+ set_config('database','update_r' . $x, 'success');
+
}
- set_config('system','db_version', DB_UPDATE_VERSION);
}
+ set_config('system','db_version', DB_UPDATE_VERSION);
}
}
+ }
- /**
- *
- * Synchronise plugins:
- *
- * $a->config['system']['addon'] contains a comma-separated list of names
- * of plugins/addons which are used on this system.
- * Go through the database list of already installed addons, and if we have
- * an entry, but it isn't in the config list, call the uninstall procedure
- * and mark it uninstalled in the database (for now we'll remove it).
- * Then go through the config list and if we have a plugin that isn't installed,
- * call the install procedure and add it to the database.
- *
- */
+ /**
+ *
+ * Synchronise plugins:
+ *
+ * $a->config['system']['addon'] contains a comma-separated list of names
+ * of plugins/addons which are used on this system.
+ * Go through the database list of already installed addons, and if we have
+ * an entry, but it isn't in the config list, call the unload procedure
+ * and mark it uninstalled in the database (for now we'll remove it).
+ * Then go through the config list and if we have a plugin that isn't installed,
+ * call the install procedure and add it to the database.
+ *
+ */
- $r = q("SELECT * FROM `addon` WHERE `installed` = 1");
- if(count($r))
- $installed = $r;
- else
- $installed = array();
+ $r = q("SELECT * FROM `addon` WHERE `installed` = 1");
+ if($r)
+ $installed = $r;
+ else
+ $installed = array();
- $plugins = get_config('system','addon');
- $plugins_arr = array();
+ $plugins = get_config('system','addon');
+ $plugins_arr = array();
- if($plugins)
- $plugins_arr = explode(',',str_replace(' ', '',$plugins));
+ if($plugins)
+ $plugins_arr = explode(',',str_replace(' ', '',$plugins));
- $a->plugins = $plugins_arr;
+ $a->plugins = $plugins_arr;
- $installed_arr = array();
+ $installed_arr = array();
- if(count($installed)) {
- foreach($installed as $i) {
- if(! in_array($i['name'],$plugins_arr)) {
- uninstall_plugin($i['name']);
- }
- else {
- $installed_arr[] = $i['name'];
- }
+ if(count($installed)) {
+ foreach($installed as $i) {
+ if(! in_array($i['name'],$plugins_arr)) {
+ unload_plugin($i['name']);
+ }
+ else {
+ $installed_arr[] = $i['name'];
}
}
+ }
- if(count($plugins_arr)) {
- foreach($plugins_arr as $p) {
- if(! in_array($p,$installed_arr)) {
- install_plugin($p);
- }
+ if(count($plugins_arr)) {
+ foreach($plugins_arr as $p) {
+ if(! in_array($p,$installed_arr)) {
+ load_plugin($p);
}
}
+ }
- load_hooks();
+ load_hooks();
+ return;
+}
- return;
+
+
+function fix_system_urls($oldurl,$newurl) {
+
+ require_once('include/crypto.php');
+
+ // Basically a site rename, but this can happen if you change from http to https for instance - even if the site name didn't change
+ // This should fix URL changes on our site, but other sites will end up with orphan hublocs which they will try to contact and will
+ // cause wasted communications.
+ // What we need to do after fixing this up is to send a revocation of the old URL to every other site that we communicate with so
+ // that they can clean up their hubloc tables (this includes directories).
+ // It's a very expensive operation so you don't want to have to do it often or after your site gets to be large.
+
+ $r = q("select xchan_hash, channel_prvkey from xchan left join channel on channel_hash = xchan_hash where xchan_url = '%s'",
+ dbesc($oldurl)
+ );
+ if($r) {
+ foreach($r as $rr) {
+ $channel = substr($rr['xchan_addr'],0,strpos($rr['xchan_addr'],'@'));
+ $parsed = @parse_url($rr['xchan_url']);
+ if(! $parsed)
+ continue;
+ $newhost = $parsed['host'];
+ $rhs = $newhost . (($parsed['port']) ? ':' . $parsed['port'] : '') . (($parsed['path']) ? $parsed['path'] : '');
+
+ $x = q("update xchan set xchan_addr = '%s', xchan_url = '%s', xchan_connurl = '%s' where xchan_hash = '%s' limit 1",
+ dbesc($channel . '@' . $rhs),
+ dbesc($newurl),
+ dbesc($newurl . '/poco/' . $channel),
+ dbesc($rr['xchan_hash'])
+ );
+
+
+ $y = q("update hubloc set hubloc_addr = '%s', hubloc_url = '%s', hubloc_url_sig = '%s', hubloc_host = '%s', hubloc_callback = '%s' where hubloc_hash = '%s' and hubloc_url = '%s' limit 1",
+ dbesc($channel . '@' . $rhs),
+ dbesc($newurl),
+ dbesc(base64url_encode(rsa_sign($newurl,$rr['channel_prvkey']))),
+ dbesc($newhost),
+ dbesc($newurl . '/post'),
+ dbesc($rr['xchan_hash']),
+ dbesc($oldurl)
+ );
+ }
}
}
+
+
// wrapper for adding a login box. If $register == true provide a registration
// link. This will most always depend on the value of $a->config['system']['register_policy'].
// returns the complete html for inserting into the page
-if(! function_exists('login')) {
- function login($register = false, $form_id = 'main-login', $hiddens=false) {
- $a = get_app();
- $o = "";
- $reg = false;
- $reglink = get_config('system','register_link');
- if(! strlen($reglink))
- $reglink = 'register';
-
- if ($register) {
- $reg = array(
- 'title' => t('Create a New Account'),
- 'desc' => t('Register'),
- 'link' => $reglink
- );
- }
- $dest_url = $a->get_baseurl(true) . '/' . $a->query_string;
+function login($register = false, $form_id = 'main-login', $hiddens=false) {
+ $a = get_app();
+ $o = "";
+ $reg = false;
+ $reglink = get_config('system','register_link');
+ if(! strlen($reglink))
+ $reglink = 'register';
+
+ if ($register) {
+ $reg = array(
+ 'title' => t('Create a New Account'),
+ 'desc' => t('Register'),
+ 'link' => $reglink
+ );
+ }
- if(local_user()) {
- $tpl = get_markup_template("logout.tpl");
- }
- else {
- $a->page['htmlhead'] .= replace_macros(get_markup_template("login_head.tpl"),array(
- '$baseurl' => $a->get_baseurl(true)
- ));
+ $dest_url = $a->get_baseurl(true) . '/' . $a->query_string;
- $tpl = get_markup_template("login.tpl");
- if(strlen($a->query_string))
- $_SESSION['login_return_url'] = $a->query_string;
- }
+ if(local_user()) {
+ $tpl = get_markup_template("logout.tpl");
+ }
+ else {
+ $a->page['htmlhead'] .= replace_macros(get_markup_template("login_head.tpl"),array(
+ '$baseurl' => $a->get_baseurl(true)
+ ));
+ $tpl = get_markup_template("login.tpl");
+ if(strlen($a->query_string))
+ $_SESSION['login_return_url'] = $a->query_string;
+ }
- $o .= replace_macros($tpl,array(
- '$dest_url' => $dest_url,
- '$logout' => t('Logout'),
- '$login' => t('Login'),
- '$form_id' => $form_id,
- '$lname' => array('username', t('Email') , '', ''),
- '$lpassword' => array('password', t('Password'), '', ''),
- '$remember' => array('remember', t('Remember me'), '', ''),
- '$hiddens' => $hiddens,
-
- '$register' => $reg,
+ $o .= replace_macros($tpl,array(
+
+ '$dest_url' => $dest_url,
+ '$logout' => t('Logout'),
+ '$login' => t('Login'),
+ '$form_id' => $form_id,
+ '$lname' => array('username', t('Email') , '', ''),
+ '$lpassword' => array('password', t('Password'), '', ''),
+ '$remember' => array('remember', t('Remember me'), '', ''),
+ '$hiddens' => $hiddens,
+
+ '$register' => $reg,
- '$lostpass' => t('Forgot your password?'),
- '$lostlink' => t('Password Reset'),
- ));
+ '$lostpass' => t('Forgot your password?'),
+ '$lostlink' => t('Password Reset'),
+ ));
- call_hooks('login_hook',$o);
+ call_hooks('login_hook',$o);
- return $o;
- }
+ return $o;
}
+
// Used to end the current process, after saving session state.
-if(! function_exists('killme')) {
- function killme() {
- session_write_close();
- exit;
- }
+
+function killme() {
+ session_write_close();
+ exit;
}
+
// redirect to another URL and terminate this process.
-if(! function_exists('goaway')) {
- function goaway($s) {
- header("Location: $s");
- killme();
- }
+
+function goaway($s) {
+ header("Location: $s");
+ killme();
}
+
function get_account_id() {
if(get_app()->account)
return intval(get_app()->account['account_id']);
@@ -1224,62 +1394,62 @@ function get_account_id() {
// Returns the entity id of locally logged in user or false.
-if(! function_exists('local_user')) {
- function local_user() {
- if((x($_SESSION,'authenticated')) && (x($_SESSION,'uid')))
- return intval($_SESSION['uid']);
- return false;
- }
+
+function local_user() {
+ if((x($_SESSION,'authenticated')) && (x($_SESSION,'uid')))
+ return intval($_SESSION['uid']);
+ return false;
}
+
// Returns contact id of authenticated site visitor or false
-if(! function_exists('remote_user')) {
- function remote_user() {
- if((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id')))
- return $_SESSION['visitor_id'];
- return false;
- }
+
+function remote_user() {
+ if((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id')))
+ return $_SESSION['visitor_id'];
+ return false;
}
+
// contents of $s are displayed prominently on the page the next time
// a page is loaded. Usually used for errors or alerts.
-if(! function_exists('notice')) {
- function notice($s) {
- $a = get_app();
- if(! x($_SESSION,'sysmsg')) $_SESSION['sysmsg'] = array();
- if($a->interactive)
- $_SESSION['sysmsg'][] = $s;
- }
+
+function notice($s) {
+ $a = get_app();
+ if(! x($_SESSION,'sysmsg')) $_SESSION['sysmsg'] = array();
+ if($a->interactive)
+ $_SESSION['sysmsg'][] = $s;
}
-if(! function_exists('info')) {
- function info($s) {
- $a = get_app();
- if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array();
- if($a->interactive)
- $_SESSION['sysmsg_info'][] = $s;
- }
+
+
+function info($s) {
+ $a = get_app();
+ if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array();
+ if($a->interactive)
+ $_SESSION['sysmsg_info'][] = $s;
}
+
// wrapper around config to limit the text length of an incoming message
-if(! function_exists('get_max_import_size')) {
- function get_max_import_size() {
- global $a;
- return ((x($a->config,'max_import_size')) ? $a->config['max_import_size'] : 0 );
- }
+
+function get_max_import_size() {
+ global $a;
+ return ((x($a->config,'max_import_size')) ? $a->config['max_import_size'] : 0 );
}
+
/**
*
* Function : profile_load
* @parameter App $a
* @parameter string $nickname
- * @parameter int $profile
+ * @parameter string $profile
*
* Summary: Loads a profile into the page sidebar.
* The function requires a writeable copy of the main App structure, and the nickname
@@ -1295,8 +1465,10 @@ if(! function_exists('get_max_import_size')) {
*
*/
-if(! function_exists('profile_load')) {
-function profile_load(&$a, $nickname, $profile = 0) {
+
+function profile_load(&$a, $nickname, $profile = '') {
+
+ logger('profile_load: ' . $profile);
$user = q("select channel_id from channel where channel_address = '%s' limit 1",
dbesc($nickname)
@@ -1320,30 +1492,29 @@ function profile_load(&$a, $nickname, $profile = 0) {
return;
}
- $r = q("SELECT abook_profile FROM abook WHERE abook_xchan = '%s' limit 1",
- dbesc($observer['xchan_hash'])
- );
- if($r)
- $profile = $r[0]['abook_profile'];
-
+ if(! $profile) {
+ $r = q("SELECT abook_profile FROM abook WHERE abook_xchan = '%s' and abook_channel = '%d' limit 1",
+ dbesc($observer['xchan_hash']),
+ intval($user[0]['channel_id'])
+ );
+ if($r)
+ $profile = $r[0]['abook_profile'];
+ }
$r = null;
-
-
if($profile) {
- $profile_int = intval($profile);
- $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , channel.* FROM `profile`
- LEFT JOIN channel ON `profile`.`uid` = channel.channel_id
- WHERE channel.channel_address = '%s' AND `profile`.`id` = %d LIMIT 1",
+ $r = q("SELECT profile.uid AS profile_uid, profile.*, channel.* FROM profile
+ LEFT JOIN channel ON profile.uid = channel.channel_id
+ WHERE channel.channel_address = '%s' AND profile.profile_guid = '%s' LIMIT 1",
dbesc($nickname),
- intval($profile_int)
+ dbesc($profile)
);
}
- if(! ($r && count($r))) {
- $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `channel`.* FROM `profile`
- LEFT JOIN `channel` ON `profile`.`uid` = channel.channel_id
- WHERE channel.channel_address = '%s' AND `profile`.`is_default` = 1 LIMIT 1",
+ if(! $r) {
+ $r = q("SELECT profile.uid AS profile_uid, profile.*, channel.* FROM profile
+ LEFT JOIN channel ON profile.uid = channel.channel_id
+ WHERE channel.channel_address = '%s' AND profile.is_default = 1 LIMIT 1",
dbesc($nickname)
);
}
@@ -1366,9 +1537,9 @@ function profile_load(&$a, $nickname, $profile = 0) {
}
$a->profile = $r[0];
+ $a->profile_uid = $r[0]['profile_uid'];
-
- $a->page['title'] = $a->profile['channel_name'] . " @ " . $a->config['sitename'];
+ $a->page['title'] = $a->profile['channel_name'] . " - " . $a->profile['channel_address'] . "@" . $a->get_hostname();
$_SESSION['theme'] = $a->profile['channel_theme'];
@@ -1385,7 +1556,7 @@ function profile_load(&$a, $nickname, $profile = 0) {
}
return;
-}}
+}
function profile_create_sidebar(&$a) {
@@ -1412,126 +1583,128 @@ function profile_create_sidebar(&$a) {
*/
-if(! function_exists('profile_sidebar')) {
- function profile_sidebar($profile, $block = 0) {
- $a = get_app();
+function profile_sidebar($profile, $block = 0) {
- $observer = $a->get_observer();
+ $a = get_app();
- $o = '';
- $location = false;
- $address = false;
- $pdesc = true;
+ $observer = $a->get_observer();
- if((! is_array($profile)) && (! count($profile)))
- return $o;
+ $o = '';
+ $location = false;
+ $address = false;
+ $pdesc = true;
+ if((! is_array($profile)) && (! count($profile)))
+ return $o;
- $is_owner = (($profile['uid'] == local_user()) ? true : false);
- $profile['picdate'] = urlencode($profile['picdate']);
+ head_set_icon($profile['thumb']);
- call_hooks('profile_sidebar_enter', $profile);
+ $is_owner = (($profile['uid'] == local_user()) ? true : false);
- // don't show connect link to yourself
- $connect = (($profile['uid'] != local_user()) ? t('Connect') : False);
+ $profile['picdate'] = urlencode($profile['picdate']);
- // don't show connect link to authenticated visitors either
+ call_hooks('profile_sidebar_enter', $profile);
- if(remote_user() && count($_SESSION['remote'])) {
- foreach($_SESSION['remote'] as $visitor) {
- if($visitor['uid'] == $profile['uid']) {
- $connect = false;
- break;
- }
+ // don't show connect link to yourself
+ $connect = (($profile['uid'] != local_user()) ? t('Connect') : False);
+
+ // don't show connect link to authenticated visitors either
+
+ if(remote_user() && count($_SESSION['remote'])) {
+ foreach($_SESSION['remote'] as $visitor) {
+ if($visitor['uid'] == $profile['uid']) {
+ $connect = false;
+ break;
}
}
+ }
- // show edit profile to yourself
- if($is_owner) {
+ // show edit profile to yourself
+ if($is_owner) {
- $profile['menu'] = array(
- 'chg_photo' => t('Change profile photo'),
- 'entries' => array(),
- );
+ $profile['menu'] = array(
+ 'chg_photo' => t('Change profile photo'),
+ 'entries' => array(),
+ );
- if(feature_enabled(local_user(),'multi_profiles')) {
- $profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles'));
- $profile['menu']['cr_new'] = t('Create New Profile');
- }
- else
- $profile['edit'] = array($a->get_baseurl() . '/profiles/' . $profile['id'], t('Edit Profile'),'',t('Edit Profile'));
+ if(feature_enabled(local_user(),'multi_profiles')) {
+ $profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles'));
+ $profile['menu']['cr_new'] = t('Create New Profile');
+ }
+ else
+ $profile['edit'] = array($a->get_baseurl() . '/profiles/' . $profile['id'], t('Edit Profile'),'',t('Edit Profile'));
- $r = q("SELECT * FROM `profile` WHERE `uid` = %d",
- local_user());
+ $r = q("SELECT * FROM `profile` WHERE `uid` = %d",
+ local_user());
- if($r) {
- foreach($r as $rr) {
- $profile['menu']['entries'][] = array(
- 'photo' => $rr['thumb'],
- 'id' => $rr['id'],
- 'alt' => t('Profile Image'),
- 'profile_name' => $rr['profile_name'],
- 'isdefault' => $rr['is_default'],
- 'visible_to_everybody' => t('visible to everybody'),
- 'edit_visibility' => t('Edit visibility'),
- );
- }
+ if($r) {
+ foreach($r as $rr) {
+ $profile['menu']['entries'][] = array(
+ 'photo' => $rr['thumb'],
+ 'id' => $rr['id'],
+ 'alt' => t('Profile Image'),
+ 'profile_name' => $rr['profile_name'],
+ 'isdefault' => $rr['is_default'],
+ 'visible_to_everybody' => t('visible to everybody'),
+ 'edit_visibility' => t('Edit visibility'),
+ );
}
}
+ }
- if((x($profile,'address') == 1)
- || (x($profile,'locality') == 1)
- || (x($profile,'region') == 1)
- || (x($profile,'postal_code') == 1)
- || (x($profile,'country_name') == 1))
- $location = t('Location:');
+ if((x($profile,'address') == 1)
+ || (x($profile,'locality') == 1)
+ || (x($profile,'region') == 1)
+ || (x($profile,'postal_code') == 1)
+ || (x($profile,'country_name') == 1))
+ $location = t('Location:');
- $gender = ((x($profile,'gender') == 1) ? t('Gender:') : False);
- $marital = ((x($profile,'marital') == 1) ? t('Status:') : False);
- $homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False);
+ $gender = ((x($profile,'gender') == 1) ? t('Gender:') : False);
+ $marital = ((x($profile,'marital') == 1) ? t('Status:') : False);
+ $homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False);
- if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
- $location = $pdesc = $gender = $marital = $homepage = False;
- }
+ if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
+ $location = $pdesc = $gender = $marital = $homepage = False;
+ }
- $firstname = ((strpos($profile['name'],' '))
- ? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']);
- $lastname = (($firstname === $profile['name']) ? '' : trim(substr($profile['name'],strlen($firstname))));
+ $firstname = ((strpos($profile['name'],' '))
+ ? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']);
+ $lastname = (($firstname === $profile['name']) ? '' : trim(substr($profile['name'],strlen($firstname))));
- if(is_array($observer)
- && perm_is_allowed($profile['uid'],$observer['xchan_hash'],'view_contacts')) {
- $contact_block = contact_block();
- }
+ if(is_array($observer)
+ && perm_is_allowed($profile['uid'],$observer['xchan_hash'],'view_contacts')) {
+ $contact_block = contact_block();
+ }
- $tpl = get_markup_template('profile_vcard.tpl');
-
- $o .= replace_macros($tpl, array(
- '$profile' => $profile,
- '$connect' => $connect,
- '$location' => $location,
- '$gender' => $gender,
- '$pdesc' => $pdesc,
- '$marital' => $marital,
- '$homepage' => $homepage,
- '$contact_block' => $contact_block,
- ));
+ $tpl = get_markup_template('profile_vcard.tpl');
- $arr = array('profile' => &$profile, 'entry' => &$o);
+ $o .= replace_macros($tpl, array(
+ '$profile' => $profile,
+ '$connect' => $connect,
+ '$location' => $location,
+ '$gender' => $gender,
+ '$pdesc' => $pdesc,
+ '$marital' => $marital,
+ '$homepage' => $homepage,
+ '$contact_block' => $contact_block,
+ ));
- call_hooks('profile_sidebar', $arr);
+ $arr = array('profile' => &$profile, 'entry' => &$o);
- return $o;
- }
+ call_hooks('profile_sidebar', $arr);
+
+ return $o;
}
-// FIXME
-if(! function_exists('get_birthdays')) {
+// FIXME or remove
+
+
function get_birthdays() {
$a = get_app();
@@ -1606,11 +1779,11 @@ if(! function_exists('get_birthdays')) {
));
}
-}
+
// FIXME
-if(! function_exists('get_events')) {
+
function get_events() {
require_once('include/bbcode.php');
@@ -1677,7 +1850,7 @@ if(! function_exists('get_events')) {
'$events' => $r,
));
}
-}
+
/**
@@ -1694,107 +1867,133 @@ if(! function_exists('get_events')) {
* $cmd and string args are surrounded with ""
*/
-if(! function_exists('proc_run')) {
- function proc_run($cmd){
- $a = get_app();
+function proc_run($cmd){
- $args = func_get_args();
+ $a = get_app();
- $newargs = array();
- if(! count($args))
- return;
+ $args = func_get_args();
- // expand any arrays
+ $newargs = array();
+ if(! count($args))
+ return;
- foreach($args as $arg) {
- if(is_array($arg)) {
- foreach($arg as $n) {
- $newargs[] = $n;
- }
+ // expand any arrays
+
+ foreach($args as $arg) {
+ if(is_array($arg)) {
+ foreach($arg as $n) {
+ $newargs[] = $n;
}
- else
- $newargs[] = $arg;
}
+ else
+ $newargs[] = $arg;
+ }
- $args = $newargs;
+ $args = $newargs;
- $arr = array('args' => $args, 'run_cmd' => true);
+ $arr = array('args' => $args, 'run_cmd' => true);
- call_hooks("proc_run", $arr);
- if(! $arr['run_cmd'])
- return;
+ call_hooks("proc_run", $arr);
+ if(! $arr['run_cmd'])
+ return;
- if(count($args) && $args[0] === 'php')
- $args[0] = ((x($a->config,'system')) && (x($a->config['system'],'php_path')) && (strlen($a->config['system']['php_path'])) ? $a->config['system']['php_path'] : 'php');
- for($x = 0; $x < count($args); $x ++)
- $args[$x] = escapeshellarg($args[$x]);
+ if(count($args) && $args[0] === 'php')
+ $args[0] = ((x($a->config,'system')) && (x($a->config['system'],'php_path')) && (strlen($a->config['system']['php_path'])) ? $a->config['system']['php_path'] : 'php');
+ for($x = 0; $x < count($args); $x ++)
+ $args[$x] = escapeshellarg($args[$x]);
- $cmdline = implode($args," ");
- if(get_config('system','proc_windows'))
- proc_close(proc_open('cmd /c start /b ' . $cmdline,array(),$foo));
- else
- proc_close(proc_open($cmdline." &",array(),$foo));
- }
+ $cmdline = implode($args," ");
+ if(get_config('system','proc_windows'))
+ proc_close(proc_open('cmd /c start /b ' . $cmdline,array(),$foo));
+ else
+ proc_close(proc_open($cmdline." &",array(),$foo));
}
-if(! function_exists('current_theme')) {
- function current_theme(){
- $app_base_themes = array('redbasic');
+
+
+function current_theme(){
+ $app_base_themes = array('redbasic');
- $a = get_app();
+ $a = get_app();
+ $page_theme = null;
+
+ // Find the theme that belongs to the channel whose stuff we are looking at
+
+ if($a->profile_uid && $a->profile_uid != local_user()) {
+ $r = q("select channel_theme from channel where channel_id = %d limit 1",
+ intval($a->profile_uid)
+ );
+ if($r)
+ $page_theme = $r[0]['channel_theme'];
+ }
+
+ // Allow folks to over-rule channel themes and always use their own on their own site.
+ // The default is for channel themes to take precedence over your own on pages belonging
+ // to that channel.
+
+ if($page_theme && local_user() && local_user() != $a->profile_url) {
+ if(get_pconfig(local_user(),'system','always_my_theme'))
+ $page_theme = null;
+ }
+
// $mobile_detect = new Mobile_Detect();
// $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
- $is_mobile = $a->is_mobile || $a->is_tablet;
+ $is_mobile = $a->is_mobile || $a->is_tablet;
- if($is_mobile) {
- $system_theme = ((isset($a->config['system']['mobile-theme'])) ? $a->config['system']['mobile-theme'] : '');
- $theme_name = ((isset($_SESSION) && x($_SESSION,'mobile-theme')) ? $_SESSION['mobile-theme'] : $system_theme);
-
- if($theme_name === '---') {
- // user has selected to have the mobile theme be the same as the normal one
- $system_theme = '';
- $theme_name = '';
- }
- }
- else {
- $system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
- $theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
+ if($is_mobile) {
+ $system_theme = ((isset($a->config['system']['mobile-theme'])) ? $a->config['system']['mobile-theme'] : '');
+ $theme_name = ((isset($_SESSION) && x($_SESSION,'mobile-theme')) ? $_SESSION['mobile-theme'] : $system_theme);
+
+ if($theme_name === '---') {
+ // user has selected to have the mobile theme be the same as the normal one
+ $system_theme = '';
+ $theme_name = '';
}
+ }
+ else {
+ $system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
+ $theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
+
+ if($page_theme)
+ $theme_name = $page_theme;
+ }
- if($theme_name &&
- (file_exists('view/theme/' . $theme_name . '/css/style.css') ||
- file_exists('view/theme/' . $theme_name . '/php/style.php')))
- return($theme_name);
+ if($theme_name &&
+ (file_exists('view/theme/' . $theme_name . '/css/style.css') ||
+ file_exists('view/theme/' . $theme_name . '/php/style.php')))
+ return($theme_name);
- foreach($app_base_themes as $t) {
- if(file_exists('view/theme/' . $t . '/css/style.css')||
- file_exists('view/theme/' . $t . '/php/style.php'))
- return($t);
- }
+ foreach($app_base_themes as $t) {
+ if(file_exists('view/theme/' . $t . '/css/style.css')||
+ file_exists('view/theme/' . $t . '/php/style.php'))
+ return($t);
+ }
- $fallback = array_merge(glob('view/theme/*/css/style.css'),glob('view/theme/*/php/style.php'));
- if(count($fallback))
- return (str_replace('view/theme/','', substr($fallback[0],0,-10)));
+ $fallback = array_merge(glob('view/theme/*/css/style.css'),glob('view/theme/*/php/style.php'));
+ if(count($fallback))
+ return (str_replace('view/theme/','', substr($fallback[0],0,-10)));
- }
}
-/*
+
+/**
* Return full URL to theme which is currently in effect.
-* Provide a sane default if nothing is chosen or the specified theme does not exist.
-*/
-if(! function_exists('current_theme_url')) {
- function current_theme_url() {
- global $a;
- $t = current_theme();
- if (file_exists('view/theme/' . $t . '/php/style.php'))
- return('view/theme/' . $t . '/php/style.pcss');
- return('view/theme/' . $t . '/css/style.css');
- }
+ * Provide a sane default if nothing is chosen or the specified theme does not exist.
+ */
+
+function current_theme_url($installing = false) {
+ global $a;
+ $t = current_theme();
+ $uid = '';
+ $uid = (($a->profile_uid) ? '?f=&puid=' . $a->profile_uid : '');
+ if(file_exists('view/theme/' . $t . '/php/style.php'))
+ return('view/theme/' . $t . '/php/style.pcss' . $uid);
+ return('view/theme/' . $t . '/css/style.css');
}
+
function z_birthday($dob,$tz,$format="Y-m-d H:i:s") {
if(! strlen($tz))
@@ -1815,57 +2014,6 @@ function z_birthday($dob,$tz,$format="Y-m-d H:i:s") {
}
-
-if(! function_exists('feed_birthday')) {
- function feed_birthday($uid,$tz) {
-
- /**
- *
- * Determine the next birthday, but only if the birthday is published
- * in the default profile. We _could_ also look for a private profile that the
- * recipient can see, but somebody could get mad at us if they start getting
- * public birthday greetings when they haven't made this info public.
- *
- * Assuming we are able to publish this info, we are then going to convert
- * the start time from the owner's timezone to UTC.
- *
- * This will potentially solve the problem found with some social networks
- * where birthdays are converted to the viewer's timezone and salutations from
- * elsewhere in the world show up on the wrong day. We will convert it to the
- * viewer's timezone also, but first we are going to convert it from the birthday
- * person's timezone to GMT - so the viewer may find the birthday starting at
- * 6:00PM the day before, but that will correspond to midnight to the birthday person.
- *
- */
-
-
- $birthday = '';
-
- if(! strlen($tz))
- $tz = 'UTC';
-
- $p = q("SELECT `dob` FROM `profile` WHERE `is_default` = 1 AND `uid` = %d LIMIT 1",
- intval($uid)
- );
-
- if($p && count($p)) {
- $tmp_dob = substr($p[0]['dob'],5);
- if(intval($tmp_dob)) {
- $y = datetime_convert($tz,$tz,'now','Y');
- $bd = $y . '-' . $tmp_dob . ' 00:00';
- $t_dob = strtotime($bd);
- $now = strtotime(datetime_convert($tz,$tz,'now'));
- if($t_dob < $now)
- $bd = $y + 1 . '-' . $tmp_dob . ' 00:00';
- $birthday = datetime_convert($tz,'UTC',$bd,$format);
- }
- }
-
- return $birthday;
- }
-}
-
-if(! function_exists('is_site_admin')) {
function is_site_admin() {
$a = get_app();
if((intval($_SESSION['authenticated']))
@@ -1873,115 +2021,147 @@ function is_site_admin() {
&& ($a->account['account_roles'] & ACCOUNT_ROLE_ADMIN))
return true;
return false;
-}}
+}
-if(! function_exists('load_contact_links')) {
- function load_contact_links($uid) {
- $a = get_app();
+function load_contact_links($uid) {
- $ret = array();
+ $a = get_app();
- if(! $uid || x($a->contacts,'empty'))
- return;
+ $ret = array();
- logger('load_contact_links');
+ if(! $uid || x($a->contacts,'empty'))
+ return;
- $r = q("SELECT abook_id, abook_flags, abook_my_perms, abook_their_perms, xchan_hash, xchan_photo_m, xchan_name, xchan_url from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and not (abook_flags & %d) ",
- intval($uid),
- intval(ABOOK_FLAG_SELF)
- );
- if($r) {
- foreach($r as $rr){
- $ret[$rr['xchan_hash']] = $rr;
- }
+// logger('load_contact_links');
+
+ $r = q("SELECT abook_id, abook_flags, abook_my_perms, abook_their_perms, xchan_hash, xchan_photo_m, xchan_name, xchan_url from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and not (abook_flags & %d) ",
+ intval($uid),
+ intval(ABOOK_FLAG_SELF)
+ );
+ if($r) {
+ foreach($r as $rr){
+ $ret[$rr['xchan_hash']] = $rr;
}
- else
- $ret['empty'] = true;
- $a->contacts = $ret;
- return;
}
+ else
+ $ret['empty'] = true;
+ $a->contacts = $ret;
+ return;
}
-if(! function_exists('profile_tabs')){
- function profile_tabs($a, $is_owner=False, $nickname=Null){
- //echo "<pre>"; var_dump($a->user); killme();
+
+
+function profile_tabs($a, $is_owner=False, $nickname=Null){
+ //echo "<pre>"; var_dump($a->user); killme();
- $channel = $a->get_channel();
+ $channel = $a->get_channel();
- if (is_null($nickname))
- $nickname = $channel['channel_address'];
+ if (is_null($nickname))
+ $nickname = $channel['channel_address'];
- if(x($_GET,'tab'))
- $tab = notags(trim($_GET['tab']));
+ if(x($_GET,'tab'))
+ $tab = notags(trim($_GET['tab']));
- $url = $a->get_baseurl() . '/channel/' . $nickname;
- $pr = $a->get_baseurl() . '/profile/' . $nickname;
-
- $tabs = array(
- array(
- 'label'=>t('Status'),
- 'url' => $url,
- 'sel' => ((argv(0)=='channel')?'active':''),
- 'title' => t('Status Messages and Posts'),
- 'id' => 'status-tab',
- ),
- array(
- 'label' => t('Profile'),
- 'url' => $pr,
- 'sel' => ((argv(0)=='profile')?'active':''),
- 'title' => t('Profile Details'),
- 'id' => 'profile-tab',
- ),
- array(
- 'label' => t('Photos'),
- 'url' => $a->get_baseurl() . '/photos/' . $nickname,
- 'sel' => ((argv(0)=='photos')?'active':''),
- 'title' => t('Photo Albums'),
- 'id' => 'photo-tab',
- ),
+ $url = $a->get_baseurl() . '/channel/' . $nickname;
+ $pr = $a->get_baseurl() . '/profile/' . $nickname;
+
+ $tabs = array(
+ array(
+ 'label' => t('Channel'),
+ 'url' => $url,
+ 'sel' => ((argv(0) == 'channel') ? 'active' : ''),
+ 'title' => t('Status Messages and Posts'),
+ 'id' => 'status-tab',
+ ),
+ array(
+ 'label' => t('About'),
+ 'url' => $pr,
+ 'sel' => ((argv(0) == 'profile') ? 'active' : ''),
+ 'title' => t('Profile Details'),
+ 'id' => 'profile-tab',
+ ),
+ array(
+ 'label' => t('Photos'),
+ 'url' => $a->get_baseurl() . '/photos/' . $nickname,
+ 'sel' => ((argv(0) == 'photos') ? 'active' : ''),
+ 'title' => t('Photo Albums'),
+ 'id' => 'photo-tab',
+ ),
+ );
+
+
+ if ($is_owner){
+ $tabs[] = array(
+ 'label' => t('Events'),
+ 'url' => $a->get_baseurl() . '/events',
+ 'sel' => ((argv(0) == 'events') ? 'active' : ''),
+ 'title' => t('Events and Calendar'),
+ 'id' => 'events-tab',
);
-
- if ($is_owner){
- $tabs[] = array(
- 'label' => t('Events'),
- 'url' => $a->get_baseurl() . '/events',
- 'sel' =>((argv(0)=='events')?'active':''),
- 'title' => t('Events and Calendar'),
- 'id' => 'events-tab',
- );
- }
+ if(feature_enabled(local_user(),'webpages')){
+ $tabs[] = array(
+ 'label' => t('Webpages'),
+ 'url' => $a->get_baseurl() . '/webpages/' . $nickname,
+ 'sel' => ((argv(0) == 'webpages') ? 'active' : ''),
+ 'title' => t('Manage Webpages'),
+ 'id' => 'webpages-tab',
+ );}
+ }
+ else {
+ // FIXME
+ // we probably need a listing of events that were created by
+ // this channel and are visible to the observer
- $arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => (($tab) ? $tab : false), 'tabs' => $tabs);
- call_hooks('profile_tabs', $arr);
+ }
+
+
+ $arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => (($tab) ? $tab : false), 'tabs' => $tabs);
+ call_hooks('profile_tabs', $arr);
- $tpl = get_markup_template('common_tabs.tpl');
+ $tpl = get_markup_template('common_tabs.tpl');
- return replace_macros($tpl,array('$tabs' => $arr['tabs']));
- }
+ return replace_macros($tpl,array('$tabs' => $arr['tabs']));
}
+
function get_my_url() {
+ if(x($_SESSION,'zrl_override'))
+ return $_SESSION['zrl_override'];
if(x($_SESSION,'my_url'))
return $_SESSION['my_url'];
return false;
}
function get_my_address() {
+ if(x($_SESSION,'zid_override'))
+ return $_SESSION['zid_override'];
if(x($_SESSION,'my_address'))
return $_SESSION['my_address'];
return false;
}
+/**
+ * @function zid_init(&$a)
+ * If somebody arrives at our site using a zid, add their xchan to our DB if we don't have it already.
+ * And if they aren't already authenticated here, attempt reverse magic auth.
+ *
+ * @hooks 'zid_init'
+ * string 'zid' - their zid
+ * string 'url' - the destination url
+ *
+ */
+
function zid_init(&$a) {
$tmp_str = get_my_address();
if(validate_email($tmp_str)) {
- proc_run('php','include/gprobe.php',$tmp_str);
+ proc_run('php','include/gprobe.php',bin2hex($tmp_str));
$arr = array('zid' => $tmp_str, 'url' => $a->cmd);
call_hooks('zid_init',$arr);
if((! local_user()) && (! remote_user())) {
+ logger('zid_init: not authenticated. Invoking reverse magic-auth');
$r = q("select * from hubloc where hubloc_addr = '%s' limit 1",
dbesc($tmp_str)
);
@@ -1989,33 +2169,57 @@ function zid_init(&$a) {
$dest = '/' . $a->query_string;
$dest = str_replace(array('?zid=','&zid='),array('?rzid=','&rzid='),$dest);
if($r && ($r[0]['hubloc_url'] != z_root()) && (! strstr($dest,'/magic')) && (! strstr($dest,'/rmagic'))) {
- goaway($r[0]['hubloc_url'] . '/magic' . '?f=&dest=' . z_root() . $dest);
+ goaway($r[0]['hubloc_url'] . '/magic' . '?f=&rev=1&dest=' . z_root() . $dest);
}
}
}
}
-function zid($s,$force = false) {
- if(! strlen($s))
+/**
+ * @function zid($s,$address = '')
+ * Adds a zid parameter to a url
+ * @param string $s
+ * The url to accept the zid
+ * @param boolean $address
+ * $address to use instead of session environment
+ * @return string
+ *
+ * @hooks 'zid'
+ * string url - url to accept zid
+ * string zid - urlencoded zid
+ * string result - the return string we calculated, change it if you want to return something else
+ */
+
+
+function zid($s,$address = '') {
+ if(! strlen($s) || strpos($s,'zid='))
return $s;
$has_params = ((strpos($s,'?')) ? true : false);
+ $num_slashes = substr_count($s,'/');
if(! $has_params)
$has_params = ((strpos($s,'&')) ? true : false);
$achar = strpos($s,'?') ? '&' : '?';
$mine = get_my_url();
- $myaddr = get_my_address();
- if($mine and ! link_compare($mine,$s))
- return $s . (($has_params) ? '' : '/') . $achar . 'zid=' . urlencode($myaddr);
- return $s;
+ $myaddr = (($address) ? $address : get_my_address());
+
+ if($mine && $myaddr && (! link_compare($mine,$s)))
+ $zurl = $s . (($num_slashes >= 3) ? '' : '/') . $achar . 'zid=' . urlencode($myaddr);
+ else
+ $zurl = $s;
+
+ $arr = array('url' => $s, 'zid' => urlencode($myaddr), 'result' => $zurl);
+ call_hooks('zid', $arr);
+ return $arr['result'];
}
/**
-* returns querystring as string from a mapped array
-*
-* @param params Array
-* @return string
-*/
+ * returns querystring as string from a mapped array
+ *
+ * @param params Array
+ * @return string
+ */
+
function build_querystring($params, $name=null) {
$ret = "";
foreach($params as $key=>$val) {
@@ -2084,10 +2288,12 @@ function construct_page(&$a) {
* Build the page - now that we have all the components
*/
+ $installing = false;
- if($a->module != 'install') {
+ if($a->module == 'setup')
+ $installing = true;
+ else
nav($a);
- }
require_once(theme_include('theme_init.php'));
@@ -2101,7 +2307,7 @@ function construct_page(&$a) {
head_add_css(((x($a->page,'template')) ? $a->page['template'] : 'default' ) . '.css');
head_add_css('mod_' . $a->module . '.css');
- head_add_css(current_theme_url());
+ head_add_css(current_theme_url($installing));
head_add_js('mod_' . $a->module . '.js');
@@ -2149,3 +2355,35 @@ function construct_page(&$a) {
function appdirpath() {
return dirname(__FILE__);
}
+
+
+function head_set_icon($icon) {
+ global $a;
+ $a->data['pageicon'] = $icon;
+ logger('head_set_icon: ' . $icon);
+}
+
+function head_get_icon() {
+ global $a;
+ $icon = $a->data['pageicon'];
+ if(! strpos($icon,'://'))
+ $icon = z_root() . $icon;
+ return $icon;
+}
+
+// Used from within PCSS themes to set theme parameters. If there's a
+// puid request variable, that is the "page owner" and normally their theme
+// settings take precedence; unless a local user sets the "always_my_theme"
+// system pconfig, which means they don't want to see anybody else's theme
+// settings except their own while on this site.
+
+function get_theme_uid() {
+ $uid = (($_REQUEST['puid']) ? intval($_REQUEST['puid']) : 0);
+ if(local_user()) {
+ if((get_pconfig(local_user(),'system','always_my_theme')) || (! $uid))
+ return local_user();
+ if(! $uid)
+ return local_user();
+ }
+ return $uid;
+}
diff --git a/bugs b/bugs
new file mode 100644
index 000000000..e0eb96696
--- /dev/null
+++ b/bugs
@@ -0,0 +1,4 @@
+- send refresh posts to everybody that needs to see it, e.g. when site url changes
+
+- when you clear one type of notification or view the target item, clear the corresponding system notification. Issue: what to do about matrix/network posts where you might not have actually seen it.
+
diff --git a/doc/Account-Basics.md b/doc/Account-Basics.md
index 522b0db38..56b3eef0c 100644
--- a/doc/Account-Basics.md
+++ b/doc/Account-Basics.md
@@ -6,67 +6,38 @@ Account Basics
**Registration**
-Not all Friendica sites allow open registration. If registration is allowed, you will see a "Register" link immediately below the login prompts on the site home page. Following this link will take you to the site registration page. The strength of our network is that lots of different sites are all completely compatible with each other. If the site you're visting doesn't allow registration, or you think you might prefer another one, you can find a <a href="http://dir.friendica.com/siteinfo">list of public servers here</a>, and find one that meets your needs.
+Not all Red sites allow open registration. If registration is allowed, you will see a "Register" link immediately below the login prompts on the site home page. Following this link will take you to the site Registration page.
-If you'd like to have your own server, you can do that too. Visit <a href="http://friendica.com/download">the Friendica website</a> to download the code with setup instructions. It's a very simple install process that anybody experienced in hosting websites, or with basic Linux experience can handle easily.
+*Your Email Address*
+Please provide a valid email address. Your email address is **never** published. This address will be used to (optionally) send email notifications for incoming messages or items, and used to recover lost passwords.
-*OpenID*
+*Password*
-The first field on the Registration page is for an OpenID address. If you do not have an OpenID address or do not wish to use OpenID, leave this field blank. If you have an OpenID account elsewhere and wish to use it, enter the address into this field and click 'Register'. Friendica will attempt to extract as much information as possible from your OpenID provider and return to this page with those items already filled in.
+Enter a password of your choice, and repeat it in the second box. As Red offers a decentralised identity, your account can log you in to many other websites. Because of this, you should use a strong password, even if you initially think of your account as being in the same category as forums.
+*Terms Of Servive*
-*Your Full Name*
-
-Please provide your full name **as you would like it to be displayed on this system**. Most people use their real name for this, but you're under no obligation to do so yourself.
-
-
-*Email Address*
-
-Please provide a valid email address. Your email address is **never** published. We need this to send you account information and your login details. You may also occasionally receive notifications of incoming messages or items requiring your attention, but you have the ability to completely disable these from your Settings page once you have logged in. This doesn't have to be your primary email address, but it does need to be a real email address. You can't get your initial password, or reset a lost password later without it. This is the only bit of personal information that has to be accurate.
-
-
-*Nickname*
-
-A nickname is used to generate web addresses for many of your personal pages, and is also treated like an email address when establishing communications with others. Due to the way that the nickname is used, it has some limitations. It must contain only US-ASCII text characters and numbers, and must also start with a text character. It also must be unique on this system. This is used in many places to identify your account, and once set - cannot be changed.
-
-
-*Directory Publishing*
-
-The Registration form also allows you to choose whether or not to list your account in the online directory. This is like a "phone book" and you may choose to be unlisted. We recommend that you select 'Yes' so that other people (friends, family, etc.) will be able to find you. If you choose 'No', you will essentially be invisible and have few opportunities for interaction. Whichever you choose, this can be changed any time from your Settings page after you login.
-
+Click the link to read the site's terms of service. This will open in a new tab. Once you've read them, tick the box to confirm.
*Register*
-Once you have provided the necessary details, click the 'Register' button. An email will be sent to you providing your account login details. Please watch your email (including spam folders) for your registration details and initial password.
+Once you have provided the necessary details, click the 'Register' button. An email will be sent to you providing your account login details. Some sites may require administrator approval before the registration is processed, and you will be alerted if this is the case. Please watch your email (including spam folders) for your registration approval.
+*Create a Channel*
-**Login Page**
+Next, you will be presented with the "Add a channel" screen. Normally, your first channel will be one that represents you - so using your own name (or psuedonym) as the channel name is a good idea. The channel name should be thought of as a title, or breif description of your channel. The "choose a short nickname" box is similar to a "username" field. We will use whatever you enter here to create a channel address, which other people will use to connect to you, and you will use to log in to other sites. This looks like an email address, and takes the form nickname@siteyouregisteredat.xyz
-On the 'Login' page, please enter your login information that was provided during registration. You may use either your nickname or email address as a Login Name.
+When your channel is created you will be taken straight to your settings page where you can define permissions, enable features, etc. All these things are covered in the appropriate section of the helpfiles.
-If you use your account to manage multiple '[Pages](help/Pages)' and these all have the same email address, please enter the nickname for the account you wish to manage.
-
-*If* your account has been OpenID enabled, you may use your OpenID address as a login name and leave the password blank. You will be redirected to your OpenID provider to complete your authorisation.
-
-Otherwise, enter your password. This will have been initially provided in your registration email message. Your password is case-sensitive, so please check your 'Caps Lock' key if you are having difficulty logging in.
-
-
-**Changing Your Password**
-
-After your first login, please visit the 'Settings' page from the top menu bar and change your password to something that you will remember.
-
-
-**Retrieving Personal Data**
+**See Also**
-You can export a copy of your personal data in XML format from the "Export personal data" link at the top of your settings page.
+* [Tips for New Members](newmember) - this link will show up on your home page for two weeks to provide some important Getting Started information.
-
-**See Also**
+* [Permissions](help/Permissions)
* [Profiles](help/Profiles)
-* [Groups and Privacy](help/Groups-and-Privacy)
-
* [Remove Account](help/Remove-Account)
+ \ No newline at end of file
diff --git a/doc/Bugs-and-Issues.md b/doc/Bugs-and-Issues.md
deleted file mode 100644
index 251f91e93..000000000
--- a/doc/Bugs-and-Issues.md
+++ /dev/null
@@ -1,31 +0,0 @@
-Bugs and Issues
-===============
-
-* [Home](help)
-
-
-If your server has a support page, you should report any bugs/issues you encounter there first. Reporting to your support page before reporting to the developers makes their job easier, as they don't have to deal with bug reports that might not have anything to do with them, and that helps us get new features faster.
-
-If you're a technical user, or your site doesn't have a support page, you'll need to use the <a href="http://bugs.friendica.com/">Bug Tracker</a>. Please perform a search to see if there's already an open bug that matches yours before submitting anything.
-
-Try to provide as much information as you can about the bug, including the **full** text of any error messages or notices, and any steps required to replicate the problem in as much detail as possible. It's generally better to provide too much information than not enough.
-
-<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">See this article</a> to learn more about submitting **good** bug reports.
-
-
-**Bug Sponsorship**
-
-If you find a bug, and it is caused by a problem in main branch (ie, is not specific to our site), you may sponsor it.
-
-The bug/issue database allows you to sponsor issues. This provides an incentive for developers to work on your issue. This isn't necessary - we don't like bugs and will try to fix them. This has more importance for future development projects and feature requests.
-
-Bug sponsorship works on the honour system. If you agree to pay $10 to fix a bug, when the fix has been checked in and verified you should send a paypal payment to the developer assigned to the bug. Don't ever think you can get away with not paying a developer for work performed. Some of these guys could hack into your credit card account if you make them mad.
-
-At the present time, one has to be approved as a "developer" to be able to assign themselves to a sponsored bug. This requires the developer to have some history fixing Friendica bugs. This is for everybody's assurance that the bug fix will work well with Friendica. If you wish to become approved as a developer, work on and check in some non-sponsored issues or your own projects and we will move you up the ladder.
-
-If you truly feel you have the solution to a sponsored bug but aren't an approved developer, you risk a sponsored developer assigning the bug to themselves before you check it in, but if they haven't done so - include a short note with your pull request. Assuming that it meets our code standards, we'll see that you get credit.
-
-If you sponsor a project at greater than a $50 level, you may be requested by the developer for payment up front before work has begun (typically half). Again this is on the honour system - and is mostly to avoid payment issues and disagreements later. You should also expect to see some progress updates or demonstrations if the work takes more than a week or two. If the work is not completed within a reasonable time (as decided by those involved), you are entitled to get your money back.
-
-Friendica is not involved in these transactions. It is purely a personal agreement between sponsors and developers. If there are any issues, the parties will need to work it out between themselves. We're just providing some guidelines to help avoid potential problems.
-
diff --git a/doc/Channels.md b/doc/Channels.md
new file mode 100644
index 000000000..b372cbbcf
--- /dev/null
+++ b/doc/Channels.md
@@ -0,0 +1,27 @@
+**Channels**
+
+Channels are simply collections of content stored in one place. A channel can represent anything. It could represent you, a website, a forum, photo albums, anything. For most people, their first channel with be "Me".
+
+The most important features for a channel that represents "me" are:
+
+- Secure and private "spam free" communications
+
+- Identity and "single-signon" across the entire network
+
+- Privacy controls and permissions which extend to the entire network
+
+- Directory services (like a phone book)
+
+In short, a channel that represents yourself is "me, on the internet".
+
+You will be required to create your first channel as part of the sign up process. You can also create additonal channels from the "Select channel" link.
+
+You will be asked to provide a channel name, and a short nick name. For a channel that represents yourself, it is a good idea to use your real name here to ensure your friends can find you, and connect to your channel. The short nickname will be used to generate a "webbie". This is a bit like a username, and will look like an email address, taking the form shortnickname@domain. You should put a little thought into what you want to use here. Imagine somebody asking for your webbie and having to tell them it is "llamas-are_kewl.123". "llamasarecool" would be a much better choice.
+
+Once you have created your channel, you will be taken to the settings page, where you can configure your channel, and set your default permissions.
+
+Once you have done this, your channel is ready to use. At domain/channel/username you will find your channel "stream". This is where your recent activity will appear, in reverse chronological order. If you post in the box marked "share", the entry will appear at the top of your stream. You will also find links to all the other communication ares for this channel here. The "About" tab contains your "profile", the photos page contain photo albums, and the events page contains events share by both yourself and your contacts.
+
+The "Matrix" page contains all recent posts from across the matrix, again in reverse chronologial order. The exact posts that appear here depend largely on your permissions. At their most permissive, you will receive posts from complete strangers. At the other end of the scale, you may see posts from only your friends - or if you're feeling really anti-social, only your own posts.
+
+As mentioned at the start, many other kinds of channel are possible, however, the creation procedure is the same. The difference between channels lay in the permissions assigned. For example, a channel for sharing documents would probably want more permissive settings for "Can write to my "public" file storage" than a personal account. For more information, see the permissions section. \ No newline at end of file
diff --git a/doc/Connecting-to-Channels.md b/doc/Connecting-to-Channels.md
new file mode 100644
index 000000000..68de9d224
--- /dev/null
+++ b/doc/Connecting-to-Channels.md
@@ -0,0 +1,12 @@
+Connecting To Channels
+==============
+
+Connections in Red can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody. How do you do it?
+
+First, you need to find some channels to connect to. There are two primary ways of doing this. Firstly, setting the "Can send me their channel stream and posts" permission to "Anybody in this network" will bring posts from complete strangers to your matrix. This will give you a lot of public content and should hopefully help you find interesting, entertaing people, forums, and channels.
+
+The next thing you can do is look at the Directory. The directory is available on every Red website which means searching from your own site will bring in results from the entire network. You can search by name, interest, location and keyword. This is incomplete, so we'll improve this paragraph later.
+
+To connect with other Red users:
+
+Visit their profile by clicking their photograph in the directory, matrix, or comments, and it will open their channel home page in the channel viewer. At the left hand side of the screen, you will see a link called "connect". Click it, and you're done. Depending on the settings of the channel you are connecting to, you may need to wait for them to approve your connection, but no further action is needed on your part. \ No newline at end of file
diff --git a/doc/Connectors.md b/doc/Connectors.md
deleted file mode 100644
index 08b4c135e..000000000
--- a/doc/Connectors.md
+++ /dev/null
@@ -1,67 +0,0 @@
-Connectors
-==========
-
-* [Home](help)
-
-Connectors allow you to connect with external social networks and services. Connectors are only required for posting to existing accounts on Facebook, Twitter, and StatusNet. There is also a connector for accessing your email INBOX.
-
-If the following network connectors are installed on your system, select the following links to visit the appropriate settings page and configure them for your account:
-
-* [Facebook](/settings/addon)
-* [Twitter](/settings/addon)
-* [StatusNet](/settings/addon)
-* [Email](/settings)
-
-Instructions For Connecting To People On Specific Services
-==========================================================
-
-**Friendica**
-
-
-You may connect by providing your Identity Address on the 'Connect' page of any Friendica member. You may also put their Identity Address into the Connect box on your [Contacts](contacts) page.
-
-
-**Diaspora**
-
-Add the Diaspora 'handle' to the 'Connect/Follow' text box on your [Contacts](contacts) page.
-
-
-**Identi.ca/StatusNet/GNU-Social**
-
-These are described as the "federated social web" or OStatus contacts.
-
-Please note that there are **no** privacy provisions on the OStatus network. Any message which is delivered to **any** OStatus member is visible to anybody in the world and will negate any privacy settings that you have in effect. These messages will also turn up in public searches.
-
-Since OStatus communications do not use authentication, if you select the profile privacy option to hide your profile and messages from unknown viewers, OStatus members will **not** be able to receive your communications.
-
-To connect with an OStatus member insert their profile URL or Identity address into the Connect box on your [Contacts](contacts) page.
-
-The StatusNet connector may be used if you wish posts to appear on an OStatus site using an existing OStatus account.
-
-It is not necessary to do this, as you may 'follow' OStatus members from Friendica and they may follow you (by placing their own Identity Address into your 'Connect' page).
-
-**Blogger, Wordpress, RSS feeds, arbitrary web pages**
-
-Put the URL into the Connect box on your [Contacts](contacts) page. You will not be able to reply to these contacts.
-
-This will allow you to _connect_ with millions of pages on the internet. All that we require to do this is that the page use a discoverable feed using either the RSS or Atom syndication format, and which provides an author name and a site image in a form which we can extract.
-
-
-**Twitter**
-
-To follow a Twitter member, put the URL of the Twitter member's main page into the Connect box on your [Contacts](contacts) page. To reply, you must have the Twitter connector installed, and reply using your own status editor. Begin the message with @twitterperson replacing with the Twitter username.
-
-**Email**
-
-Configure the email connector from your [Settings](settings) page. Once this has been done, you may enter an email addres to connect with using the Connect box on your [Contacts](contacts) page. They must be the sender of a message which is currently in your INBOX for the connect to succeed. You may include email contacts in private conversations.
-
-**Facebook**
-
-The Facebook connector is a plugin/addon which allows you to interact with friends on Facebook from within Friendica. If enabled, your Facebook friend list will be imported, and you will see and be able to respond to Facebook posts. Facebook members may also be added to private conversation groups. You will not be able to connect with individual Facebook accounts - but will have your entire friend list imported and updated if new friends are added.
-
-Assuming the Facebook plugin/addon has been installed on your system, it can be enabled by going to your [Plugin Settings](settings/addon) page, and then select "Facebook Connector Settings" on that page. This will only appear if the Facebook plugin/addon has been installed. Follow the instruction to install or remove the Facebook connector.
-
-You may also choose whether your public postings are posted to Facebook by default. You may toggle this setting at any time from the Permissions settings of the status post editor (click the lock icon). This setting has no effect on private conversations - which will always be delivered to Facebook friends who are included in the permissions.
-
-(Note: At this time, Facebook contacts will not be able to view any private photos. This will be resolved in a future release. Facebook contacts may however see any public photos you have uploaded.)
-
diff --git a/doc/Developers.md b/doc/Developers.md
index 17aff3869..1d9c2aaa1 100644
--- a/doc/Developers.md
+++ b/doc/Developers.md
@@ -1,13 +1,14 @@
-Friendica Developer Guide
+Red Developer Guide
+===================
-Here is how you can join us.
+**Here is how you can join us.**
First, get yourself a working git package on the system where you will be
doing development.
Create your own github account.
-You may fork/clone the Friendica repository from [https://github.com/friendica/friendica.git](https://github.com/friendica/friendica.git).
+You may fork/clone the Red repository from [https://github.com/friendica/red.git](https://github.com/friendica/red.git).
Follow the instructions provided here: [http://help.github.com/fork-a-repo/](http://help.github.com/fork-a-repo/)
to create and use your own tracking fork on github
@@ -19,4 +20,6 @@ to notify us to merge your work.
Please pull in any changes from the project repository and merge them with your work **before** issuing a pull request. We reserve the right to reject any patch which results in a large number of merge conflicts. This is especially true in the case of language translations - where we may not be able to understand the subtle differences between conflicting versions.
-Also - **test your changes**. Don't assume that a simple fix won't break something else. If possible get an experienced Friendica developer to review the code. \ No newline at end of file
+Also - **test your changes**. Don't assume that a simple fix won't break something else. If possible get an experienced Red developer to review the code.
+
+Further documentation can be found at the Github wiki pages at: https://github.com/friendica/red/wiki \ No newline at end of file
diff --git a/doc/Groups-and-Privacy.md b/doc/Groups-and-Privacy.md
deleted file mode 100644
index 09c6a7349..000000000
--- a/doc/Groups-and-Privacy.md
+++ /dev/null
@@ -1,53 +0,0 @@
-Groups and Privacy
-==================
-
-* [Home](help)
-
-
-Groups are merely collections of friends. But Friendica uses these to unlock some very powerful features.
-
-To create a group, visit your Friendica "Contacts" page and select "Create a new group". Give the group a name.
-
-This brings you to a page where you can select the group members.
-
-You will have two boxes on this page. The top box is the roster of current group members. Below that is another box containing all of your friends who are *not* members of the group.
-
-If you click on a photo of a person who isn't in the group, they will be put into the group. If you click on a photo of a person who is in the group, they will be removed from it.
-
-Once you have created a group, you may use it in any access control list. This is the little lock icon beneath the status update box on your home page. If you click this you can select who can see and who can *not* see the post you are about to make. These can be individual people or groups.
-
-On your "Network" page you will find posts and conversation from everybody in your network. You may select an individual group on this page to show conversations pertaining only to members of that group.
-
-But wait, there's more...
-
-If you look carefully when visiting a group from your Network page, the lock icon under the status update box has an exclamation mark next to it. This is meant to draw attention to that lock. Click the lock. You will see that since you are only viewing a certain group of people, your status updates while on that screen default to only being seen by that same group of people. This is how you keep your future employers from seeing what you write to your drinking buddies. You can over-ride this setting, but this makes it easy to separate your conversations into different friend circles.
-
-These private conversations work best when your friends are Friendica members. We know who else can see the conversations - nobody, *unless* your friends cut and paste the messages and send them to others.
-
-This is a trust issue you need to be aware of. No software in the world can prevent your friends from leaking your confidential and trusted communications. Only a wise choice of friends.
-
-But it isn't as clear cut when dealing with status.net, identi.ca and other network providers. You are encouraged to be **very** cautious when other network members are in a group because it's entirely possible for your private messages to end up in a public newsfeed. If you look at the Contact Edit page for any person, we will tell you whether or not they are members of an insecure network where you should exercise caution.
-
-On your "Settings" page, you may create a set of default permissions which apply to every post that you create.
-
-Once you have created a post, you can not change the permissions assigned. Within seconds it has been delivered to lots of people - and perhaps everybody it was addressed to. If you mistakenly created a message and wish you could take it back, the best you can do is to delete it. We will send out a delete notification to everybody who received the message - and this should wipe out the message with the same speed it was initially propagated. In most cases it will be completely wiped from the Internet - in under a minute. Again, this applies to Friendica networks. Once a message spreads to other networks, it may not be removed quickly and in some cases it may not be removed at all.
-
-In case you haven't yet figured this out, we are encouraging you to encourage your friends to use Friendica - because all these privacy features work much better within a privacy-aware network. Many of the other social networks Friendica can connect to have no privacy controls.
-
-
-Profiles, Privacy, and Photos
-=============================
-
-The decentralised nature of Friendica (many websites exchanging information rather than one website which controls everything) has some implications with privacy as it relates to people on other sites. There are things you should be aware of, so you can decide best how to interact privately.
-
-Sharing photos privately is a problem. We can only share them __privately__ with Friendica members. In order to share with other people, we need to prove who they are. We can prove the identity of Friendica members, as we have a mechanism to do so. Your friends on other networks will be blocked from viewing these private photos because we cannot prove that they should be allowed to see them.
-
-Our developers are working on solutions to allow access to your friends - no matter what network they are on. However we take privacy seriously and don't behave like some networks that __pretend__ your photos are private, but make them available to others without proof of identity.
-
-Your profile and "wall" may also be visited by your friends from other networks, and you can block access to these by web visitors that Friendica doesn't know. Be aware that this could include some of your friends on other networks.
-
-This may produce undesired results when posting a long status message to (for instance) Twitter and even Facebook. When Friendica sends a post to these networks which exceeds the service length limit, we truncate it and provide a link to the original. The original is a link back to your Friendica profile. As Friendica cannot prove who they are, it may not be possible for these people to view your post in full.
-
-For people in this situation we would recommend providing a "Twitter-length" summary, with more detail for friends that can see the post in full.
-
-Blocking your profile or entire Friendica site from unknown web visitors also has serious implications for communicating with StatusNet/identi.ca members. These networks communicate with others via public protocols that are not authenticated. In order to view your posts, these networks have to access them as an "unknown web visitor". If we allowed this, it would mean anybody could in fact see your posts, and you've instructed Friendica not to allow this. So be aware that the act of blocking your profile to unknown visitors also has the effect of blocking outbound communication with public networks (such as identi.ca) and feed readers such as Google Reader. \ No newline at end of file
diff --git a/doc/Home.md b/doc/Home.md
index 30efc93f7..78795c478 100644
--- a/doc/Home.md
+++ b/doc/Home.md
@@ -1,37 +1,30 @@
-Friendica Documentation and Resources
-=====================================
+Red Documentation and Resources
+===============================
**Contents**
* [Account Basics](help/Account-Basics)
-* [New User Quick Start](help/guide)
* [Profiles](help/Profiles)
-* [Connectors](help/Connectors)
-* [Making Friends](help/Making-Friends)
-* [Groups and Privacy](help/Groups-and-Privacy)
+* [Channels](help/Channels)
+* [Connecting to Channels](help/Connecting-to-Channels)
+* [Permissions](help/Permissions)
* [Tags and Mentions](help/Tags-and-Mentions)
-* [Pages](help/Pages)
+* [Web Pages](help/Webpages)
* [Remove Account](help/Remove-Account)
-* [Bugs and Issues](help/Bugs-and-Issues)
**Technical Documentation**
* [Install](help/Install)
-* [Settings](help/Settings)
* [Plugins](help/Plugins)
-* [Installing Connectors (Facebook/Twitter/StatusNet)](help/Installing-Connectors)
-* [Message Flow](help/Message-Flow)
* [Developers](help/Developers)
**External Resources**
* [Main Website](http://friendica.com)
-* [Forums](http://groups.google.com/group/friendica)
-* [Developer Forums](http://groups.google.com/group/friendica-dev)
+* [Development Channel](http://zothub.com/channel/one)
**About**
-* [Site/Version Info](friendica)
-
+* [Site/Version Info](siteinfo)
diff --git a/doc/Install.md b/doc/Install.md
index 9455c62ba..389c9d632 100644
--- a/doc/Install.md
+++ b/doc/Install.md
@@ -1,17 +1,18 @@
-Friendica Installation
+
+Red Installation
+===============
-We've tried very hard to ensure that Friendica will run on commodity hosting platforms - such as those used to host Wordpress blogs and Drupal websites. But be aware that Friendica is more than a simple web application. It is a complex communications system which more closely resembles an email server than a web server. For reliability and performance, messages are delivered in the background and are queued for later delivery when sites are down. This kind of functionality requires a bit more of the host system than the typical blog. Not every PHP/MySQL hosting provider will be able to support Friendica. Many will. But **please** review the requirements and confirm these with your hosting provider prior to installation.
+Red should run on commodity hosting platforms - such as those used to host Wordpress blogs and Drupal websites. But be aware that Red is more than a simple web application. The kind of functionality offered by Red requires a bit more of the host system than the typical blog. Not every PHP/MySQL hosting provider will be able to support Red. Many will. But **please** review the requirements and confirm these with your hosting provider prior to installation.
-Also if you encounter installation issues, please let us know via the forums at http://groups.google.com/group/friendica or file an issue at http://bugs.friendica.com . Please be as clear as you can about your operating environment and provide as much detail as possible about any error messages you may see, so that we can prevent it from happening in the future. Due to the large variety of operating systems and PHP platforms in existence we may have only limited ability to debug your PHP installation or acquire any missing modules - but we will do our best to solve any general code issues.
-
-Before you begin: Choose a domain name or subdomain name for your server. Put some thought into this - because changing it after installation is currently not-supported. Things will break, and some of your friends may have difficulty communicating with you. We plan to address this limitation in a future release.
+Also if you encounter installation issues, please let us know via the Github issue tracker (https://github.com/friendica/red/issues). Please be as clear as you can about your operating environment and provide as much detail as possible about any error messages you may see, so that we can prevent it from happening in the future. Due to the large variety of operating systems and PHP platforms in existence we may have only limited ability to debug your PHP installation or acquire any missing modules - but we will do our best to solve any general code issues.
+Before you begin: Choose a domain name or subdomain name for your server.
1. Requirements
- Apache with mod-rewrite enabled and "Options All" so you can use a
local .htaccess file
- - PHP 5.2+. The later the better. You'll need 5.3 for encryption of key exchange conversations. On a Windows environment, 5.2+ might not work as the function dns_get_record() is only available with version 5.3.
+ - PHP 5.3 or later
- PHP *command line* access with register_argc_argv set to true in the
php.ini file
- curl, gd, mysql, and openssl extensions
@@ -32,15 +33,21 @@ not be as convenient to use and have not been thoroughly tested.
reasonable price. If your hosting provider doesn't allow Unix shell access,
you might have trouble getting everything to work.]
-2. Unpack the Friendica files into the root of your web server document area.
+2. Unpack the Red files into the root of your web server document area.
- If you are able to do so, we recommend using git to clone the source repository rather than to use a packaged tar or zip file. This makes the software much easier to update. The Linux command to clone the repository into a directory "mywebsite" would be
- `git clone https://github.com/friendica/friendica.git mywebsite`
+ `git clone https://github.com/friendica/red.git mywebsite`
- and then you can pick up the latest changes at any time with
`git pull`
+
+ - make sure folder *view/tpl/smarty3* exists and is writable by webserver
+
+ `mkdir view/tpl/smarty3`
+
+ `chown 777 view/smarty3`
- For installing addons
@@ -50,7 +57,7 @@ you might have trouble getting everything to work.]
- Then you should clone the addon repository (separtely)
- `git clone https://github.com/friendica/friendica-addons.git addon`
+ `git clone https://github.com/friendica/red-addons.git addon`
- For keeping the addon tree updated, you should be on you addon tree and issue a git pull
@@ -81,7 +88,7 @@ database was not installed correctly. You might wish to move/rename
.htconfig.php to another name and empty (called 'dropping') the database
tables, so that you can start fresh.
-7. Set up a cron job or scheduled task to run the poller once every 5-10
+7. Set up a cron job or scheduled task to run the poller once every 15
minutes in order to perform background processing. Example:
`cd /base/directory; /path/to/php include/poller.php`
@@ -91,21 +98,8 @@ Change "/base/directory", and "/path/to/php" as appropriate for your situation.
If you are using a Linux server, run "crontab -e" and add a line like the
one shown, substituting for your unique paths and settings:
-`*/10 * * * * cd /home/myname/mywebsite; /usr/bin/php include/poller.php`
+`*/15 * * * * cd /home/myname/mywebsite; /usr/bin/php include/poller.php`
You can generally find the location of PHP by executing "which php". If you
have troubles with this section please contact your hosting provider for
-assistance. Friendica will not work correctly if you cannot perform this step.
-
-Alternative: You may be able to use the 'poormancron' plugin to perform this step
-if you are using a recent Friendica release. To do this, edit the file ".htconfig.php"
-and look for a line describing your plugins. On a fresh installation, it will look like
-
-`$a->config['system']['addon'] = 'js_upload';`
-
-This indicates the "js_upload" addon module is enabled. You may add additional
-addons/plugins using this same line in the configuration file. Change it to read
-
-`$a->config['system']['addon'] = 'js_upload,poormancron';`
-
-and save your changes.
+assistance. Red will not work correctly if you cannot perform this step. \ No newline at end of file
diff --git a/doc/Installing-Connectors.md b/doc/Installing-Connectors.md
deleted file mode 100644
index 328e3b6c4..000000000
--- a/doc/Installing-Connectors.md
+++ /dev/null
@@ -1,135 +0,0 @@
-Installing Connectors (Facebook/Twitter/StatusNet)
-==================================================
-
-* [Home](help)
-
-
-Friendica uses plugins to provide connectivity to some networks, such as Facebook and Twitter.
-
-There is also a plugin to post through to an existing account on a Status.Net service. You do not require this to communicate with Status.Net members from Friendica - only if you wish to post to an existing account.
-
-All three of these plugins require an account on the target network. In addition you (or typically the server administrator) will need to obtain an API key to provide authenticated access to your Friendica server.
-
-**Site Configuration**
-
-Plugins must be installed by the site administrator before they can be used. This is accomplished through the site administration panel.
-
-
-Each of the connectors also requires an "API key" from the service you wish to connect with. Some plugins allow you to enter this information in the site administration pages, while others may require you to edit your configuration file (.htconfig.php). The method for obtaining these keys varies greatly - but almost always requires an existing account on the target service. Once installed, these API keys can usually be shared by all site members.
-
-
-The details of configuring each service follows (much of this information comes directly from the plugin source files):
-
-**Twitter Plugin for Friendica**
-
-* Author: Tobias Diekershoff
-* tobias.diekershoff@gmx.net
-
-* License:3-clause BSD license
-
-Configuration:
-To use this plugin you need a OAuth Consumer key pair (key & secret)
-you can get it from Twitter at https://twitter.com/apps
-
-Register your Friendica site as "Client" application with "Read & Write" access.
-We do not need "Twitter as login". When you've registered the app you get the
-OAuth Consumer key and secret pair for your application/site.
-
-Add this key pair to your global .htconfig.php
-
-```
-$a->config['twitter']['consumerkey'] = 'your consumer_key here';
-$a->config['twitter']['consumersecret'] = 'your consumer_secret here';
-```
-
-After this, your user can configure their Twitter account settings
-from "Settings -> Connector Settings".
-
-Documentation: http://diekershoff.homeunix.net/redmine/wiki/friendikaplugin/Twitter_Plugin
-
-
-**StatusNet Plugin for Friendica**
-
-* Author: Tobias Diekershoff
-* tobias.diekershoff@gmx.net
-
-* License:3-clause BSD license
-
-Configuration
-
-When the addon is activated the user has to aquire the following in order to connect to the StatusNet account of choice.
-
-* The base URL for the StatusNet API, for identi.ca this is https://identi.ca/api/
-* OAuth Consumer key & secret
-
-To get the OAuth Consumer key pair the user has to
-
-(a) ask her Friendica admin if a pair already exists or
-(b) has to register the Friendica server as a client application on the StatusNet server.
-
-This can be done from the account settings under "Settings -> Connections -> Register an OAuth client application -> Register a new application" on the StatusNet server.
-
-During the registration of the OAuth client remember the following:
-
-* Application names must be unique on the StatusNet site, so we recommend a Name of 'friendica-nnnn', replace 'nnnn' with a random number or your website name.
-* there is no callback url
-* register a desktop client
-* with read & write access
-* the Source URL should be the URL of your Friendica server
-
-After the required credentials for the application are stored in the configuration you have to actually connect your Friendica account with StatusNet. This is done from the Settings -> Connector Settings page. Follow the Sign in with StatusNet button, allow access and then copy the security code into the box provided. Friendica will then try to acquire the final OAuth credentials from the API.
-
-If successful the addon settings will allow you to select to post your public messages to your StatusNet account (have a look behind the little lock symbol beneath the status "editor" on your Home or Network pages).
-
-Documentation: http://diekershoff.homeunix.net/redmine/wiki/friendikaplugin/StatusNet_Plugin
-
-
-
-**Installing the Friendica/Facebook connector**
-
-* register an API key for your site from developer.facebook.com
-
-This requires a Facebook account, and may require additional authentication in the form of credit card or mobile phone verification.
-
-a. We'd be very happy if you include "Friendica" in the application name
-to increase name recognition. The Friendica icons are also present
-in the images directory and may be uploaded as a Facebook app icon.
-Use images/friendica-16.jpg for the Icon and images/friendica-128.jpg for the Logo.
-
-b. The url should be your site URL with a trailing slash.
-
-You **may** be required to provide a privacy and/or terms of service URL.
-
-c. Set the following values in your .htconfig.php file
-
-```
-$a->config['facebook']['appid'] = 'xxxxxxxxxxx';
-$a->config['facebook']['appsecret'] = 'xxxxxxxxxxxxxxx';
-```
-
-Replace with the settings Facebook gives you.
-
-d. Navigate to Set Web->Site URL & Domain -> Website Settings. Set Site URL
-to yoursubdomain.yourdomain.com. Set Site Domain to your yourdomain.com.
-
-
-On Friendica, visit the Facebook Settings section of the "Settings->Connector Settings" page. And click 'Install Facebook Connector'.
-
-This will ask you to login to Facebook and grant permission to the
-plugin to do its stuff. Allow it to do so.
-
-You're done. To turn it off visit the Connector Settings page again and
-'Remove Facebook posting'.
-
-Videos and embeds will not be posted if there is no other content. Links
-and images will be converted to a format suitable for the Facebook API and
-long posts truncated - with a link to view the full post.
-
-Facebook contacts will also not be able to view "private" photos, as they are not able to authenticate to your site to establish identity. We will address this in a future release.
-
-
-
-
-
-
-
diff --git a/doc/Making-Friends.md b/doc/Making-Friends.md
deleted file mode 100644
index 70b87abbc..000000000
--- a/doc/Making-Friends.md
+++ /dev/null
@@ -1,59 +0,0 @@
-Making Friends
-==============
-
-* [Home](help)
-
-Friendship in Friendica can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody. How do you do it?
-
-The easiest thing to do is to join the <a href="http://kakste.com/profile/newhere">New Here</a> group. This group is especially for people new to the Friendica network. Simply connect to the group, post to the wall, and make new friends. You don't even have to like us - comment on a few of our posts, and other people will start to add you too.
-
-The next thing you can do is look at the Directory. The directory is split up into two parts. If you click the directory button, you will be presented with a list of all members (who chose to be listed) on your server. You'll also see a link to the Global Directory. If you click through to the global directory, you will be presented with a list of everybody who chose to be listed across all instances of Friendica. You will also see a "Show Community Forums" link, which will direct you to Groups, Forums and Fanpages. You connect to people, groups and forums in the same way, except groups and forums will automatically accept your introduction request, whereas a human will approve you manually.
-
-To connect with other Friendica users:
-
-Visit their profile. Just beneath their profile picture will be the word 'Connect' (we're assuming this is an English language profile).
-
-Click that. It will take you to a "Connect" form.
-
-This is going to ask you for your Identity Address. This is necessary so that this person's website can find yours.
-
-What do you put in the box?
-
-If your Friendica site is called "demo.friendica.com" and your username/nickname on that site is "bob", you would put in "bob@demo.friendica.com".
-
-Notice this looks just like an email address. It was meant to be that way. It's easy for people to remember.
-
-You *could* also put in the URL of your "home" page, such as "http://demo.friendica.com/profile/bob", but the email-style address is certainly easier.
-
-When you've submitted the connection page, it will take you back to your own site where you must then login (if necessary) and verify the connection request on *your* site. Once you've done this, the two websites can communicate with each other to complete the process (after your new friend has approved the request).
-
-If you already know somebody's Identity Address, you can enter it in the "connect" box on your "Contacts" page. This will take you through a similar process.
-
-
-**Alternate Networks**
-
-You can also use your Identity Address or other people's Identity Addresses to become friends across networks. The list of possible networks is growing all the time. If you know (for instance) "bob" on identi.ca (a Status.Net site) you could put bob@identi.ca into your Contact page and become friends across networks. (Or you can put in the URL to Bob's identi.ca page if you wish). You can also be "partial" friends with somebody on Google Buzz by putting in their gmail address. Google Buzz does not yet support all the protocols we need for direct messaging, but you should be able to follow status updates from within Friendica. You can do the same for Twitter accounts and Diaspora accounts. In fact you can "follow" most anybody or any website that produces a syndication feed (RSS/Atom,etc.). If we can find an information stream and a name to attach to the contact, we'll try to connect with them.
-
-If you have supplied your mailbox connection information on your Settings page, you can enter the email address of anybody that has sent you a message recently and have their email messages show up in your social stream. You can also reply to them from within Friendica.
-
-People can also become friends with you from other networks. If a friend of yours has an identi.ca account, they can become friends with you by putting your Friendica Identity Address into their identi.ca subscription dialog box. A similar mechanism is available for Diaspora members, by putting your iendtity address into their search bar.
-
-Note: Some versions of StatusNet software may require the full URL to your profile and may not work with the identity address.
-
-When somebody requests friendship you will receive a notification. You will need to approve this before the friendship is complete.
-
-Some networks allow people to send you messages without being friends and without your approval. Friendica does not allow this by default, as it would open a gateway for spam.
-
-When you receive a friendship notification from another Friendica member, you will have the option of allowing them as a "fan" or as a "friend". If they are a fan, they can see what you have to say, including private communications that you send to them, but not vice versa. As a friend, you can both communicate with each other.
-
-Diaspora uses a different terminology, and you are given the option of allowing them to "share with you", or being full friends.
-
-Once you have become friends, if you find the person constantly sends you spam or worthless information, you can "Ignore" them - without breaking off the friendship or even alerting them to the fact that you aren't interested in anything they are saying. In many ways they are like a "fan" - but they don't know this. They think they are a friend.
-
-You can also "block" a person. This completely blocks communications with that person. They may still be able to see your public posts, as can anybody in the world, but they cannot communicate with you directly.
-
-You can also delete a friend no matter what the friendship status - which complete removes everything relating to that person from your website.
-
-
-
-
diff --git a/doc/Message-Flow.md b/doc/Message-Flow.md
deleted file mode 100644
index bb1c063d3..000000000
--- a/doc/Message-Flow.md
+++ /dev/null
@@ -1,54 +0,0 @@
-Friendica Message Flow
-
-This page attempts to document some of the details of how messages get from one person to another in the Friendica network. There are multiple paths, using multiple protocols and message formats.
-
-Those attempting to understand these message flows should become familiar with (at the minimum) the DFRN protocol document (http://dfrn.org/dfrn.pdf) and the message passing elements of the OStatus stack (salmon and Pubsubhubbub).
-
-
-Most message passing involves the file include/items.php, which has functions for several feed-related import/export activities.
-
-When a message is posted, all immediate deliveries to all networks are made using include/notifier.php, which chooses how (and to whom) to deliver the message. This file also invokes the local side of all deliveries including DFRN-notify.
-
-mod/dfrn_notify.php handles the remote side of DFRN-notify.
-
-Local feeds are generated by mod/dfrn_poll.php - which also handles the remote side of DFRN-poll protocol.
-
-Salmon notifications arrive via mod/salmon.php.
-
-Push (pubsubhubbub) feeds arrive via mod/pubsub.php
-
-DFRN-poll feed imports arrive via include/poller.php as a scheduled task, this implements the local side of the DFRN-poll protocol.
-
-
-
-
-Scenario #1. Bob posts a public status message
-
-This is a public message with no conversation members so no private transport is used. There are two paths it can take - as a bbcode path to DFRN clients, and converted to HTML with the server's PuSH (pubsubhubbub) hubs notified. When a PuSH hub is operational, dfrn-poll clients prefer to receive their information through the PuSH channel. They will fall back on a daily poll in case the hub has delivery issues (this is quite common when using the default Google reference hub). If there is no specified hub or hubs, DFRN clients will poll at a configurable (per-contact) rate at up to 5-minute intervals. Feeds retrieved via dfrn-poll are bbcode and may also contain private conversations which the poller has permissions to see.
-
-Scenario #2. Jack replies to Bob's public message. Jack is on the Friendica/DFRN network.
-
-Jack uses dfrn-notify to send a direct reply to Bob. Bob then creates a feed of the conversation and sends it to everybody involved in the conversation using dfrn-notify. PuSH hubs are notified that new content is available. The hub or hubs will then retrieve the latest feed and transmit it to all hub subscribers (which may be on different networks).
-
-Scenario #3. Mary replies to Bob's public message. Mary is on the Friendica/DFRN network.
-
-Mary uses dfrn-notify to send a direct reply to Bob. Bob then creates a feed of the conversation and sends it to everybody involved in the conversation (excluding himself, the conversation is now sent to both Jack and Mary). Messages are sent using dfrn-notify. Push hubs are also notified that new content is available. The hub or hubs will then retrieve the latest feed and transmit it to all hub subscribers (which may be on different networks).
-
-Scenario #4. William replies to Bob's public message. William is on the OStatus network.
-
-William uses salmon to notify Bob of the reply. Content is html embedded in salmon magic envelope. Bob then creates a feed of the conversation and sends it to all Friendica participants involved in the conversation using dfrn-notify (excluding himself, the conversation is sent to both Jack and Mary). Push hubs are notified that new content is available. The hub or hubs will then retrieve the latest feed and transmit it to all hub subscribers (which may be on different networks).
-
-Scenario #5. Bob posts a private message to Mary and Jack.
-
-Message is delivered immediately to Mary and Jack using dfrn_notify. Public hubs are not notified. Requeueing is attempted in case of timeout. Replies follow the same flow as the public replies except that hubs are not notified and message is never made available in the public feed. The entire conversation is also made available to Mary and Jack (and nobody else) through their dfrn-poll personalised feed.
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/Pages.md b/doc/Pages.md
deleted file mode 100644
index d0e6776a4..000000000
--- a/doc/Pages.md
+++ /dev/null
@@ -1,36 +0,0 @@
-Pages
-=====
-
-* [Home](help)
-
-
-Friendica also lets you create forum and/or celebrity pages.
-
-Every page in Friendica has a nickname and these must all be unique. This applies to all pages, whether they are normal profiles or forum pages.
-
-Therefore the first thing you need to do to create a new page is to register a new account for the page. Please note that the site administrator can restrict and/or regulate the registration of new accounts.
-
-If you create a second account on a system and use the same email address or OpenID account as an existing account, you will no longer be able to use the email address (or OpenID) to login to the account. You should login using the account nickname instead.
-
-On the new account, visit the 'Settings' page. Towards the end of the page are "Advanced Page Settings". Typically you would use "Normal Account" for a normal personal account. This is the default selection. Group pages provide the ability for people to become friends/fans of the page without requiring approval.
-
-The exact setting you would use depends on how you wish to interact with people who join the page. The "Soapbox" setting let's the page owner control all communications. Everything you post will go out to the page members, but there will be no opportunity for interaction. This setting would typically be used for announcements or corporate communications.
-
-The most common setting is the "Community Account". This creates a group page where all members can freely interact.
-
-The "Automatic Friend Account" is typically used for personal profile pages where you wish to automatically approve any friendship/connection requests.
-
-**Managing Multiple Pages**
-
-We recommend that you create group pages with the same email address and password as your normal account. If you do this, you will find a new "Manage" tab on the menu bar which lets you toggle identities easily and manage your pages. You are not required to do this, but the alternative is to logout and log back into the other account to manage alternate pages - and this could get cumbersome if you manage several different pages/identities.
-
-You may also appoint a delegate to manage your page. Do this by visiting the [Delegation Setup Page](delegate). This will provide you with a list of contacts on this system under "Potential Delegates". Selecting one or more persons will give them access to manage your page. They will be able to edit contacts, profiles, and all content for this account/page. Please use this facility wisely. Delegated managers will not be able to alter basic account settings such as passwords or page types and/or remove the account.
-
-
-**Posting to Community Pages**
-
-If you are a member of a community page/forum, you may post to the page by including an @-tag in the post mentioning the forum. For example @bicycle would send my post to all members of the group "bicycle" in addition to the normal recipients. If your post is private you must also explicitly include the group in the post permissions (to allow the forum "contact" to see the post) **and** mention it in a tag (which redistributes the post to the forum members).
-
-You may also post to a community page/forum by posting a "wall-to-wall" post using secure cross-site authentication.
-
-Comments which are relayed to community pages will be relayed back to the original post creator. Mentioning the forum/group with an @-tag in a comment does not relay the message, as distribution is controlled entirely by the original post creator. \ No newline at end of file
diff --git a/doc/Permissions.md b/doc/Permissions.md
new file mode 100644
index 000000000..155014311
--- /dev/null
+++ b/doc/Permissions.md
@@ -0,0 +1,43 @@
+**Permissions**
+
+Permissions in the Red Matrix are more complete than you may be used to. This allows us to define more fine graded relationships than the black and white "this person is my friend, so they can do everything" or "this person is not my friend, so they can't do anything" permissions you may find elsewhere.
+
+**Default Permissions**
+
+On your settings page, you will find a list of default permissions. These permissions are automatically applied to everybody unless you specify otherwise. The scope of these permissions varies from "Only me" to "Everybody" - though some scopes may not be available for some permissions. For example, you can't allow "anybody on the internet" to send you private messages, because we'd have no way to identify the sender, or offer a return.
+
+The scopes of permissions are:
+
+- _Nobody Except Yourself_. This is self explanatory. Only you will be allowed to use this permission.
+- _Only those you specifically allow_. By default, people you are not connected to, and all new contacts will have this permission denied. You will be able to make exceptions for individual channels on their contact edit screen.
+- _Anybody in your address book_. Anybody you do not know will have this permission denied, but anybody you accept as a contact will have this permission approved. This is the way most legacy platforms handle permissions.
+- _Anybody On This Website_. Anybody using the same website as you will have permission approved. Anybody who registered at a different site will have this permission denied.
+- _Anybody in this network_. Anybody who has got zot will have this permission approved. Even complete strangers. However, anybody not logged in/authenticated will have this permission denid.
+- _Anybody on the internet_. Completely public. This permission will be approved for anybody at all.
+
+The individual permissions are:
+
+- _Can view my "public" stream and posts_. This permision determines who can view your channel "stream" that is, the non-private posts that appear on the "home" tab when you're logged in.
+- _Can view my "public" channel profile_. This permission determines who can view your channel's profile. This refers to the "about" tab
+- _Can view my "public" photo albums_. This permission determines who can view your photo albums. Individual photographs may still be posted to a more private audience.
+- _Can view my "public" address book_. This permission determines who can view your contacts. These are the connections displayed in the "View connections" section.
+- _Can view my "public" file storage_. This permission determines who can view your public files. This isn't done yet, so this is placeholder text.
+- _Can view my "public" pages_. This permission determines who can view your public web pages. This isn't done yet, so this is placeholder text.
+- _Can send me their channel stream and posts_. This permission determines whose posts you will view. If your channel is a personal channel (ie, you as a person), you would probably want to set this to "anyone in my address book" at a minimum. A forum page would probably want to choose "nobody except myself". Setting this to "Anybody in the network" will show you posts from complete strangers, which is a good form of discovery.
+- _Can post on my channel page ("wall")_. This permission determines who can write to your wall when clicking through to your channel.
+- _Can comment on my posts_. This permission determines who can comment on posts you create. Normally, you would want this to match your "can view my public pages" permission
+- _Can send me private mail messages_. This determines who can send you private messages (zotmail).
+- _Can post photos to my photo albums_. This determines who can post photographs in your albums. This is very useful for forum-like channels where connections may not be connected to each other.
+- _Can forward to all my channel contacts via post tags_. Using @- mentions will reproduce a copy of your post on the profile specified, as though you posted on the channel wall. This determines if people can post to your channel in this way.
+- _Can chat with me (when available)_. This determines who can (start?) a chat with you. This isn't done yet, so is placeholder text.
+- _Can write to my "public" file storage_. This determines who can upload files to your public file storage. This isn't done yet, so this is placeholder text.
+- _Can edit my "public" pages_. This determines who can edit your webpages. This is useful for wikis or sites with multiple editors, but this isn't done yet, so this is placeholder text.
+- _Can administer my channel resources_. This determines who can have full control of your channel. This should normally be set to "nobody except myself".
+
+If you have set any of these permissions to "only those I specifically allow", you may specify indivudal permissions on the contact edit screen.
+
+**Affinity**
+
+The contact edit screen offers a slider to select a degree of friendship with the contact. Think of this as a measure of how much you dislike them. 1 is for people you like, whose posts you want to see all the time. 99 is for people you can't stand, whose posts you never want to see. Once you've assigned a value here, you can use the affinity tool (assuming you have it enabled) on the network page to filter content based on this number.
+
+The slider has both a minimum and maximum value. Posts will only be shown from people who fall between this range. Affinity has no relation to permissions, and is only useful in conjunction with the affinity tool feature.
diff --git a/doc/Plugins.md b/doc/Plugins.md
deleted file mode 100644
index df6004450..000000000
--- a/doc/Plugins.md
+++ /dev/null
@@ -1,357 +0,0 @@
-**Friendica Addon/Plugin development**
-
-Please see the sample addon 'randplace' for a working example of using some of these features. The facebook addon provides an example of integrating both "addon" and "module" functionality. Addons work by intercepting event hooks - which must be registered. Modules work by intercepting specific page requests (by URL path).
-
-
-Plugin names cannot contain spaces or other punctuation and are used as filenames and function names. You may supply a "friendly" name within the comment block. Each addon must contain both an install and an uninstall function based on the addon/plugin name. For instance "plugin1name_install()". These two functions take no arguments and are usually responsible for registering (and unregistering) event hooks that your plugin will require. The install and uninstall functions will also be called (i.e. re-installed) if the plugin changes after installation - therefore your uninstall should not destroy data and install should consider that data may already exist. Future extensions may provide for "setup" amd "remove".
-
-Plugins should contain a comment block with the four following parameters:
-
- /*
- * Name: My Great Plugin
- * Description: This is what my plugin does. It's really cool
- * Version: 1.0
- * Author: John Q. Public <john@myfriendicasite.com>
- */
-
-
-
-
-Register your plugin hooks during installation.
-
- register_hook($hookname, $file, $function);
-
-$hookname is a string and corresponds to a known Friendica hook.
-
-$file is a pathname relative to the top-level Friendica directory. This *should* be 'addon/plugin_name/plugin_name.php' in most cases.
-
-$function is a string and is the name of the function which will be executed when the hook is called.
-
-
-Your hook callback functions will be called with at least one and possibly two arguments
-
-
- function myhook_function(&$a, &$b) {
-
-
- }
-
-
-If you wish to make changes to the calling data, you must declare them as
-reference variables (with '&') during function declaration.
-
-$a is the Friendica 'App' class - which contains a wealth of information
-about the current state of Friendica, such as which module has been called,
-configuration info, the page contents at the point the hook was invoked, profile
-and user information, etc. It is recommeded you call this '$a' to match its usage
-elsewhere.
-
-$b can be called anything you like. This is information which is specific to the hook
-currently being processed, and generally contains information that is being immediately
-processed or acted on that you can use, display, or alter. Remember to declare it with
-'&' if you wish to alter it.
-
-**Modules**
-
-Plugins/addons may also act as "modules" and intercept all page requests for a given URL path. In order for a plugin to act as a module it needs to define a function "plugin_name_module()" which takes no arguments and need not do anything.
-
-If this function exists, you will now receive all page requests for "http://my.web.site/plugin_name" - with any number of URL components as additional arguments. These are parsed into an array $a->argv, with a corresponding $a->argc indicating the number of URL components. So http://my.web.site/plugin/arg1/arg2 would look for a module named "plugin" and pass its module functions the $a App structure (which is available to many components). This will include:
- $a->argc = 3
- $a->argv = array(0 => 'plugin', 1 => 'arg1', 2 => 'arg2');
-
-Your module functions will often contain the function plugin_name_content(&$a), which defines and returns the page body content. They may also contain plugin_name_post(&$a) which is called before the _content function and typically handles the results of POST forms. You may also have plugin_name_init(&$a) which is called very early on and often does module initialisation.
-
-
-
-**Current hooks:**
-
-**'authenticate'** - called when a user attempts to login.
- $b is an array
- 'username' => the supplied username
- 'password' => the supplied password
- 'authenticated' => set this to non-zero to authenticate the user.
- 'user_record' => successful authentication must also return a valid user record from the database
-
-**'logged_in'** - called after a user has successfully logged in.
- $b contains the $a->user array
-
-
-**'display_item'** - called when formatting a post for display.
- $b is an array
- 'item' => The item (array) details pulled from the database
- 'output' => the (string) HTML representation of this item prior to adding it to the page
-
-**'post_local'** - called when a status post or comment is entered on the local system
- $b is the item array of the information to be stored in the database
- {Please note: body contents are bbcode - not HTML)
-
-**'post_local_end'** - called when a local status post or comment has been stored on the local system
- $b is the item array of the information which has just been stored in the database
- {Please note: body contents are bbcode - not HTML)
-
-**'post_remote'** - called when receiving a post from another source. This may also be used to post local activity or system generated messages.
- $b is the item array of information to be stored in the database and the item
- body is bbcode.
-
-**'settings_form'** - called when generating the HTML for the user Settings page
- $b is the (string) HTML of the settings page before the final '</form>' tag.
-
-**'settings_post'** - called when the Settings pages are submitted.
- $b is the $_POST array
-
-**'plugin_settings'** - called when generating the HTML for the addon settings page
- $b is the (string) HTML of the addon settings page before the final '</form>' tag.
-
-**'plugin_settings_post'** - called when the Addon Settings pages are submitted.
- $b is the $_POST array
-
-**'profile_post'** - called when posting a profile page.
- $b is the $_POST array
-
-**'profile_edit'** - called prior to output of profile edit page
- $b is array
- 'profile' => profile (array) record from the database
- 'entry' => the (string) HTML of the generated entry
-
-
-**'profile_advanced'** - called when the HTML is generated for the 'Advanced profile', corresponding to the 'Profile' tab within a person's profile page.
- $b is the (string) HTML representation of the generated profile
- (The profile array details are in $a->profile)
-
-**'directory_item'** - called from the Directory page when formatting an item for display
- $b is an array
- 'contact' => contact (array) record for the person from the database
- 'entry' => the (string) HTML of the generated entry
-
-**'profile_sidebar_enter'** - called prior to generating the sidebar "short" profile for a page
- $b is (array) the person's profile array
-
-**'profile_sidebar'** - called when generating the sidebar "short" profile for a page
- $b is an array
- 'profile' => profile (array) record for the person from the database
- 'entry' => the (string) HTML of the generated entry
-
-**'contact_block_end'** - called when formatting the block of contacts/friends on a profile sidebar has completed
- $b is an array
- 'contacts' => array of contacts
- 'output' => the (string) generated HTML of the contact block
-
-**'bbcode'** - called during conversion of bbcode to html
- $b is (string) converted text
-
-**'html2bbcode'** - called during conversion of html to bbcode (e.g. remote message posting)
- $b is (string) converted text
-
-**'page_header'** - called after building the page navigation section
- $b is (string) HTML of nav region
-
-**'personal_xrd'** - called prior to output of personal XRD file.
- $b is an array
- 'user' => the user record for the person
- 'xml' => the complete XML to be output
-
-**'home_content'** - called prior to output home page content, shown to unlogged users
- $b is (string) HTML of section region
-
-**'contact_edit'** - called when editing contact details on an individual from the Contacts page
- $b is (array)
- 'contact' => contact record (array) of target contact
- 'output' => the (string) generated HTML of the contact edit page
-
-**'contact_edit_post'** - called when posting the contact edit page
- $b is the $_POST array
-
-**'init_1'** - called just after DB has been opened and before session start
- $b is not used or passed
-
-**'page_end'** - called after HTML content functions have completed
- $b is (string) HTML of content div
-
-**'avatar_lookup'** - called when looking up the avatar
- $b is (array)
- 'size' => the size of the avatar that will be looked up
- 'email' => email to look up the avatar for
- 'url' => the (string) generated URL of the avatar
-
-
-A complete list of all hook callbacks with file locations (generated 14-Feb-2012): Please see the source for details of any hooks not documented above.
-
-
-boot.php: call_hooks('login_hook',$o);
-
-boot.php: call_hooks('profile_sidebar_enter', $profile);
-
-boot.php: call_hooks('profile_sidebar', $arr);
-
-boot.php: call_hooks("proc_run", $arr);
-
-include/contact_selectors.php: call_hooks('network_to_name', $nets);
-
-include/api.php: call_hooks('logged_in', $a->user);
-
-include/api.php: call_hooks('logged_in', $a->user);
-
-include/queue.php: call_hooks('queue_predeliver', $a, $r);
-
-include/queue.php: call_hooks('queue_deliver', $a, $params);
-
-include/text.php: call_hooks('contact_block_end', $arr);
-
-include/text.php: call_hooks('smilie', $s);
-
-include/text.php: call_hooks('prepare_body_init', $item);
-
-include/text.php: call_hooks('prepare_body', $prep_arr);
-
-include/text.php: call_hooks('prepare_body_final', $prep_arr);
-
-include/nav.php: call_hooks('page_header', $a->page['nav']);
-
-include/auth.php: call_hooks('authenticate', $addon_auth);
-
-include/bbcode.php: call_hooks('bbcode',$Text);
-
-include/oauth.php: call_hooks('logged_in', $a->user);
-
-include/acl_selectors.php: call_hooks($a->module . '_pre_' . $selname, $arr);
-
-include/acl_selectors.php: call_hooks($a->module . '_post_' . $selname, $o);
-
-include/acl_selectors.php: call_hooks('contact_select_options', $x);
-
-include/acl_selectors.php: call_hooks($a->module . '_pre_' . $selname, $arr);
-
-include/acl_selectors.php: call_hooks($a->module . '_post_' . $selname, $o);
-
-include/acl_selectors.php: call_hooks($a->module . '_pre_' . $selname, $arr);
-
-include/acl_selectors.php: call_hooks($a->module . '_post_' . $selname, $o);
-
-include/notifier.php: call_hooks('notifier_normal',$target_item);
-
-include/notifier.php: call_hooks('notifier_end',$target_item);
-
-include/items.php: call_hooks('atom_feed', $atom);
-
-include/items.php: call_hooks('atom_feed_end', $atom);
-
-include/items.php: call_hooks('atom_feed_end', $atom);
-
-include/items.php: call_hooks('parse_atom', $arr);
-
-include/items.php: call_hooks('post_remote',$arr);
-
-include/items.php: call_hooks('atom_author', $o);
-
-include/items.php: call_hooks('atom_entry', $o);
-
-include/bb2diaspora.php: call_hooks('bb2diaspora',$Text);
-
-include/cronhooks.php: call_hooks('cron', $d);
-
-include/security.php: call_hooks('logged_in', $a->user);
-
-include/html2bbcode.php: call_hooks('html2bbcode', $text);
-
-include/Contact.php: call_hooks('remove_user',$r[0]);
-
-include/Contact.php: call_hooks('contact_photo_menu', $args);
-
-include/conversation.php: call_hooks('conversation_start',$cb);
-
-include/conversation.php: call_hooks('render_location',$locate);
-
-include/conversation.php: call_hooks('display_item', $arr);
-
-include/conversation.php: call_hooks('render_location',$locate);
-
-include/conversation.php: call_hooks('display_item', $arr);
-
-include/conversation.php: call_hooks('item_photo_menu', $args);
-
-include/conversation.php: call_hooks('jot_tool', $jotplugins);
-
-include/conversation.php: call_hooks('jot_networks', $jotnets);
-
-include/plugin.php:if(! function_exists('call_hooks')) {
-
-include/plugin.php:function call_hooks($name, &$data = null) {
-
-index.php: call_hooks('init_1');
-
-index.php:call_hooks('app_menu', $arr);
-
-index.php:call_hooks('page_end', $a->page['content']);
-
-mod/photos.php: call_hooks('photo_post_init', $_POST);
-
-mod/photos.php: call_hooks('photo_post_file',$ret);
-
-mod/photos.php: call_hooks('photo_post_end',$foo);
-
-mod/photos.php: call_hooks('photo_post_end',$foo);
-
-mod/photos.php: call_hooks('photo_post_end',$foo);
-
-mod/photos.php: call_hooks('photo_post_end',intval($item_id));
-
-mod/photos.php: call_hooks('photo_upload_form',$ret);
-
-mod/friendica.php: call_hooks('about_hook', $o);
-
-mod/editpost.php: call_hooks('jot_tool', $jotplugins);
-
-mod/editpost.php: call_hooks('jot_networks', $jotnets);
-
-mod/parse_url.php: call_hooks('parse_link', $arr);
-
-mod/home.php: call_hooks('home_init',$ret);
-
-mod/home.php: call_hooks("home_content",$o);
-
-mod/contacts.php: call_hooks('contact_edit_post', $_POST);
-
-mod/contacts.php: call_hooks('contact_edit', $arr);
-
-mod/settings.php: call_hooks('plugin_settings_post', $_POST);
-
-mod/settings.php: call_hooks('connector_settings_post', $_POST);
-
-mod/settings.php: call_hooks('settings_post', $_POST);
-
-mod/settings.php: call_hooks('plugin_settings', $settings_addons);
-
-mod/settings.php: call_hooks('connector_settings', $settings_connectors);
-
-mod/settings.php: call_hooks('settings_form',$o);
-
-mod/register.php: call_hooks('register_account', $newuid);
-
-mod/like.php: call_hooks('post_local_end', $arr);
-
-mod/xrd.php: call_hooks('personal_xrd', $arr);
-
-mod/item.php: call_hooks('post_local_start', $_REQUEST);
-
-mod/item.php: call_hooks('post_local',$datarray);
-
-mod/item.php: call_hooks('post_local_end', $datarray);
-
-mod/profile.php: call_hooks('profile_advanced',$o);
-
-mod/profiles.php: call_hooks('profile_post', $_POST);
-
-mod/profiles.php: call_hooks('profile_edit', $arr);
-
-mod/tagger.php: call_hooks('post_local_end', $arr);
-
-mod/cb.php: call_hooks('cb_init');
-
-mod/cb.php: call_hooks('cb_post', $_POST);
-
-mod/cb.php: call_hooks('cb_afterpost');
-
-mod/cb.php: call_hooks('cb_content', $o);
-
-mod/directory.php: call_hooks('directory_item', $arr);
-
diff --git a/doc/Profiles.md b/doc/Profiles.md
index 716db908e..249ea4f29 100644
--- a/doc/Profiles.md
+++ b/doc/Profiles.md
@@ -3,7 +3,7 @@ Profiles
* [Home](help)
-Friendica has unlimited profiles. You may use different profiles to show different "sides of yourself" to different audiences.
+Red has unlimited profiles. You may use different profiles to show different "sides of yourself" to different audiences. This is different to having different _channels_. Different channels allow for completely sets of information. You may have a channel for yourself, a channel for your sports team, a channel for your website, or whatever else. A profile allows for finely graded "sides" of each channel. For example, your default public profile might say "Hello, I'm Fred, and I like laughing". You may show your close friends a profile that adds "and I also enjoy dwarf tossing".
You always have a profile known as your "default" or "public" profile. This profile is always available to the general public and cannot be hidden (there may be rare exceptions on privately run or disconnected sites). You may, and probably should restrict the information you make available on your public profile.
@@ -17,21 +17,18 @@ Without this basic information, you could get very lonely here. Most people (eve
In addition, if you'd like to meet people that share some general interests with you, please take a moment and add some "Public Keywords" to your profile. Such as "music, linux, photography" or whatever. You can add as many keywords as you like.
-
Your default or public profile is also shown to contacts on other networks, since they do not have the ability to view your private profiles. Only members of the Friendica network can see alternate/private profiles.
To create an alternate profile, select "Profiles" from the menu of your Friendica site. You may edit an existing profile, change the profile photo, or create a new profile. You may also create a "clone" of an existing profile if you only wish to change a few items but don't wish to enter all the information again.
-To assign a profile to specific persons, select the person from your "Contacts" page and click the pencil "Edit" icon. You will find a dropdown box listing the various profiles available. If this box is not selectable, the person is not in a supported network and cannot be assigned a specific profile.
-
-Once a profile has been selected, when the person views your profile from one of the "magic profile links" on their site, they will see the private profile you have assigned. If they are not logged into their site or view your profile from elsewhere, they will see your public profile.
+To assign a profile to specific persons, select the person from your "Connections" page and click the pencil "Edit" icon. You will find a dropdown box listing the various profiles available. If this box is not selectable, the person is not in a supported network and cannot be assigned a specific profile.
-A magic profile link is indicated by a special cursor when hovering over a contact's name or photo. Currently this cursor is a hand next to a small padlock. These magic cursors indicate that by following the link, you are able to access special areas of the other person's pages which are only available to friends and may not be available to the general public.
+Once a profile has been selected, when the person views your profile, they will see the private profile you have assigned. If they are not authenticated, they will see your public profile.
-You may also discover that (assuming you have the proper permissions) you may be able to post directly on the other person's profile (often called a "wall-to-wall" post). You may also be able to comment directly on posts from while visiting the other person's profile page.
+You may also discover that (assuming you have the proper permissions) you may be able to post directly on the other person's channel (often called a "wall-to-wall" post). You may also be able to comment directly on posts from while visiting the other person's profile page.
-There are two settings which allow you to publish your profile to a directory and ensure that it can be found by others. You can change these through settings on the "Settings" page. One setting allows you to publish your profile in the site directory of this Friendica server. Another option (this may have been disabled by the site creator) allows you to publish your profile in the "Global Directory". This is a mega directory which contains people from many other Friendica installations world-wide.
+There is a setting which allow you to publish your profile to a directory and ensure that it can be found by others. You can change this setting on the "Settings" page.
If you do not wish to be visible to any of these sites, you may leave your profile unpublished.
@@ -41,11 +38,11 @@ Although you may have multiple profiles, you only have one profile photo. This i
**Keywords and Directory Search**
-On the site Directory page, you may search for people with published profiles who are on this site. The search is typically for your nickname or part of your full name. However this search will also match against other profile fields - such as gender, location, "about", work, and education. You may also include "Keywords" in your default profile - which may be used to search for common interests with other members. You have two sets of keywords available - public and private. Private keywords are *not* visible to anybody. You could use these keywords to locate people who share membership in secret societies, or that share a love of fishing (for example) - without making this information visible on your public profile. Public keywords are used in the friend suggestion tool and although they aren't readily visible, they may be seen by viewing the HTML of your profile page.
+On the site Directory page, you may search for people with published profiles. The search is typically for your nickname or part of your full name. However this search will also match against other profile fields - such as gender, location, "about", work, and education. You may also include "Keywords" in your default profile - which may be used to search for common interests with other members. You have two sets of keywords available - public and private. Private keywords are *not* visible to anybody. You could use these keywords to locate people who share membership in secret societies, or that share a love of fishing (for example) - without making this information visible on your public profile. Public keywords are used in the friend suggestion tool and although they aren't readily visible, they may be seen by viewing the HTML of your profile page.
Directory searches are also able to use "boolean" logic so that you can search for "+lesbian +Florida" and find those who's sexual preference (or keywords) contain the world "lesbian" and that live in Florida. See the section on "Topical Tags" on the [Tags-and-Mentions](help/Tags-and-Mentions) page for more information on performing boolean searches.
-On your Contacts page is a link to "Find People with Shared Interests" (unless your site administrator has disabled the global directory). This will combine both your public and private keywords, and find people in the global directory who have matching and/or similar keywords. (Your private keywords are not identified or stored on the global directory). The more keywords you provide, the more relevant the search results that are returned. These are sorted by relevance. You may discover that you are the first person on the list - because you are very likely the most relevant match for your keywords in the directory.
+On your Contacts page is a link to "Find People with Shared Interests". This will combine both your public and private keywords, and find people who have matching and/or similar keywords. The more keywords you provide, the more relevant the search results that are returned. These are sorted by relevance. You may discover that you are the first person on the list - because you are very likely the most relevant match for your keywords in the directory.
\ No newline at end of file
diff --git a/doc/Remove-Account.md b/doc/Remove-Account.md
index ae5de2cb6..5759378a3 100644
--- a/doc/Remove-Account.md
+++ b/doc/Remove-Account.md
@@ -1,24 +1,4 @@
Remove Account
==============
-* [Home](help)
-
-We don't like to see people leave Friendica, but if you need to remove your account, you should visit the URL
-
-http://sitename/removeme
-
-with your web browser. You will need to be logged in at the time.
-
-You will be asked for your password to confirm the request. If this matches your stored password, your account will immediately be removed. Unlike some social networks we do **not** hold onto it for a grace period in case you change your mind. Your user details, your conversations, your photos, your friends - everything; will be removed immediately and you will be logged out.
-
-When we expire posts we send notifications out to Friendica to remove the posts. Diaspora doesn't have a bulk delete so this step is skipped on that network - and hopefully it will be obvious that deletion doesn't work on any other networks. If you manually delete a post or a range of posts we send individual delete notifications to Friendica and Diaspora for each deleted post.
-
-Diaspora often loses these.
-
-If you delete a post but somebody else has starred it, it is still removed. Your wishes take priority.
-
-When you remove your account we physically remove all your posts and your profile and user data, etc. immediately.
-
-In order to send out a bulk remove we would need to keep your account around to do this, as we would need to prove to your friends who it is that is submitting the request. We can't do this if you don't have an account.
-
-Your friends may still see your posts if your account is gone, but there is no public place within Friendica where they can be viewed. If you had friends on Diaspora, your public posts may stick around and be visible to others from that network.
+It is presently not possible to remove an account. We'll have better doco when somebody finishes that bit. \ No newline at end of file
diff --git a/doc/Settings.md b/doc/Settings.md
deleted file mode 100644
index 574ce8dcc..000000000
--- a/doc/Settings.md
+++ /dev/null
@@ -1,227 +0,0 @@
-Here are some of the built-in features which don't have an exposed interface or are otherwise undocumented. Configuration settings are stored in the file ".htconfig.php". Edit this file with a text editor to make the desired changes. Several system settings are already documented in that file and will not be covered here.
-
-**Hot Keys**
-
-Friendica traps the following keyboard events:
-
-* [Pause] - Pauses "Ajax" update activity. This is the process that provides updates without reloading the page. You may wish to pause it to reduce network usage and/or as a debugging aid for javascript developers. A pause indicator will appear at the lower right hand corner of the page. Hit the [pause] key once again to resume.
-
-* [F8] - Displays a language selector
-
-
-**Birthday Notifications**
-
-Birthday events are published on your Home page for any friends having a birthday in the coming 6 days. In order for your birthday to be discoverable by all of your friends, you must set your birthday (at least the month and day) in your default profile. You are not required to provide the year.
-
-**Configuration settings**
-
-
-**Language**
-
-System Setting
-
-Please see util/README for information on creating language translations.
-
-Config:
-```
-$a->config['system']['language'] = 'name';
-```
-
-
-**System Theme**
-
-System Setting
-
-Choose a named theme to be the default system theme (which may be over-ridden by user profiles). Default theme is "default".
-
-Config:
-```
-$a->config['system']['theme'] = 'theme-name';
-```
-
-
-**Verify SSL Certitificates**
-
-Security setting
-
-By default Friendica allows SSL communication between websites that have "self-signed" SSL certificates. For the widest compatibility with browsers and other networks we do not recommend using self-signed certificates, but we will not prevent you from using them. SSL encrypts all the data transmitted between sites (and to your browser) and this allows you to have completely encrypted communications, and also protect your login session from hijacking. Self-signed certificates can be generated for free, without paying top-dollar for a website SSL certificate - however these aren't looked upon favourably in the security community because they can be subject to so-called "man-in-the-middle" attacks. If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites.
-
-Config:
-```
-$a->config['system']['verifyssl'] = true;
-```
-
-
-**Allowed Friend Domains**
-
-Corporate/Edu enhancement
-
-Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. (Wildcard support on Windows platforms requires PHP5.3). By default, any (valid) domain may establish friendships with this site.
-
-Config:
-```
-$a->config['system']['allowed_sites'] = "sitea.com, *siteb.com";
-```
-
-
-**Allowed Email Domains**
-
-Corporate/Edu enhancement
-
-Comma separated list of domains which are allowed in email addresses for registrations to this site. This can lockout those who are not part of this organisation from registering here. Wildcards are accepted. (Wildcard support on Windows platforms requires PHP5.3). By default, any (valid) email address is allowed in registrations.
-
-Config:
-```
-$a->config['system']['allowed_email'] = "sitea.com, *siteb.com";
-```
-
-**Block Public**
-
-Corporate/Edu enhancement
-
-Set to true to block public access to all otherwise public personal pages on this site unless you are currently logged in. This blocks the viewing of profiles, friends, photos, the site directory and search pages to unauthorised persons. A side effect is that entries from this site will not appear in the global directory. We recommend specifically disabling that also (setting is described elsewhere on this page). Note: this is specifically for sites that desire to be "standalone" and do not wish to be connected to any other Friendica sites. Unauthorised persons will also not be able to request friendship with site members. Default is false. Available in version 2.2 or greater.
-
-Config:
-```
-$a->config['system']['block_public'] = true;
-```
-
-
-**Force Publish**
-
-Corporate/Edu enhancement
-
-By default, each user can choose on their Settings page whether or not to have their profile published in the site directory. This setting forces all
-profiles on this site to be listed in the site directory and there is no option provided to the user to change it. Default is false.
-
-Config:
-```
-$a->config['system']['publish_all'] = true;
-```
-
-
-**Global Directory**
-
-Corporate/Edu enhancement
-
-This configures the URL to update the global directory, and is supplied in the default configuration. The undocumented part is that if this is not set, the global directory is completely unavailable to the application. This allows a private community to be completely isolated from the global mistpark network.
-
-```
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-```
-
-
-**Proxy Configuration Settings**
-
-If your site uses a proxy to connect to the internet, you may use these settings to communicate with the outside world (the outside world still needs to be able to see your website, or this will not be very useful).
-
-Config:
-```
-$a->config['system']['proxy'] = "http://proxyserver.domain:port";
-$a->config['system']['proxyuser'] = "username:password";
-```
-
-
-**Network Timeout**
-
-How long to wait on a network communication before timing out. Value is in seconds. Default is 60 seconds. Set to 0 for unlimited (not recommended).
-
-Config:
-```
-$a->config['system']['curl_timeout'] = 60;
-```
-
-
-**Banner/Logo**
-
-Set the content for the site banner. Default is the Friendica logo and name. You may wish to provide HTML/CSS to style and/or position this content, as it may not be themed by default.
-
-Config:
-```
-$a->config['system']['banner'] = '<span id="logo-text">My Great Website</span>';
-```
-
-
-**Maximum Image Size**
-
-Maximum size in bytes of uploaded images. Default is 0, which means no limits.
-
-Config:
-```
-$a->config['system']['maximagesize'] = 1000000;
-```
-
-
-**UTF-8 Regular Expressions**
-
-During registrations, full names are checked using UTF-8 regular expressions. This requires PHP to have been compiled with a special setting to allow UTF-8 expressions. If you are completely unable to register accounts, set no_utf to true. Default is false (meaning UTF8 regular expressions are supported and working).
-
-Config:
-```
-$a->config['system']['no_utf'] = true;
-```
-
-
-**Check Full Names**
-
-You may find a lot of spammers trying to register on your site. During testing we discovered that since these registrations were automatic, the "Full Name" field was often set to just an account name with no space between first and last name. If you would like to support people with only one name as their full name, you may change this setting to true. Default is false.
-
-Config:
-```
-$a->config['system']['no_regfullname'] = true;
-```
-
-
-**OpenID**
-
-By default, OpenID may be used for both registration and logins. If you do not wish to make OpenID facilities available on your system (at all), set 'no_openid' to true. Default is false.
-
-Config:
-```
-$a->config['system']['no_openid'] = true;
-```
-
-
-**Multiple Registrations**
-
-The ability to create "Pages" requires a person to register more than once. Your site configuration can block registration (or require approval to register). By default logged in users can register additional accounts for use as pages. These will still require approval if REGISTER_APPROVE is selected. You may prohibit logged in users from creating additional accounts by setting 'block_extended_register' to true. Default is false.
-
-Config:
-```
-$a->config['system']['block_extended_register'] = true;
-```
-
-
-**Developer Settings**
-
-Most useful when debugging protocol exchanges and tracking down other communications issues.
-
-Config:
-
-```
-$a->config['system']['debugging'] = true;
-$a->config['system']['logfile'] = 'logfile.out';
-$a->config['system']['loglevel'] = LOGGER_DEBUG;
-```
-Turns on detailed debugging logs which will be stored in 'logfile.out' (which must be writeable by the webserver). LOGGER_DEBUG will show a good deal of information about system activity but will not include detailed data. You may also select LOGGER_ALL but due to the volume of information we recommend only enabling this when you are tracking down a specific problem. Other log levels are possible but are not being used at the present time.
-
-
-**PHP error logging**
-
-Use the following settings to redirect PHP errors to a file.
-
-Config:
-
-```
-error_reporting(E_ERROR | E_WARNING | E_PARSE );
-ini_set('error_log','php.out');
-ini_set('log_errors','1');
-ini_set('display_errors', '0');
-```
-
-This will put all PHP errors in the file php.out (which must be writeable by the webserver). Undeclared variables are occasionally referenced in the program and therefore we do not recommend using E_NOTICE or E_ALL. The vast majority of issues reported at these levels are completely harmless. Please report to the developers any errors you encounter in the logs using the recommended settings above. They generally indicate issues which need to be resolved.
-
-If you encounter a blank (white) page when using the application, view the PHP logs - as this almost always indicates an error has occurred.
-
-
-
diff --git a/doc/Tags-and-Mentions.md b/doc/Tags-and-Mentions.md
index ce4e45f42..bcf69736f 100644
--- a/doc/Tags-and-Mentions.md
+++ b/doc/Tags-and-Mentions.md
@@ -1,36 +1,16 @@
Tags and Mentions
=================
-
-* [Home](help)
-
-
-Like many other modern social networks, Friendica uses a special notation inside messages to indicate "tags" or contextual links to other entities.
+Like many other platforms, Red uses a special notation inside messages to indicate "tags" or contextual links to other entities.
**Mentions**
-People are tagged by preceding their name with the @ character.
-
-The following are various ways of indicating a person:
-
-* @mike - indicates a known contact in your social circle whose nickname is "mike"
-* @mike_macgirvin - indicates a known contact in your social circle whose full name is "Mike Macgirvin". Note that spaces cannot be used inside tags.
-* @mike+151 - this form is used by the drop-down tag completion tool. It indicates the contact whose nickname is mike and whose contact identifier number is 151. The drop-down tool may be used to resolve people with duplicate nicknames.
-* @mike@macgirvin.com - indicates the Identity Address of a person on a different network, or one that is *not* in your social circle. This is called a "remote mention" and can only be an email-style locator, not a web URL.
+Channels are tagged by simply preceding their name with the @ character. Unless their system blocks unsolicited "mentions", the person tagged will likely receive a "Mention" post/activity or become a direct participant in the conversation in the case of public posts.
-Unless their system blocks unsolicited "mentions", the person tagged will likely receive a "Mention" post/activity or become a direct participant in the conversation in the case of public posts. Please note that Friendica blocks incoming "mentions" from people with no relationship to you. This is a spam prevention measure.
-
-Remote mentions are delivered using the OStatus protocol. This protocol is used by Friendica and StatusNet and several other systems, but is not currently implemented in Diaspora.
-
-Friendica makes no distinction between people and groups for the purpose of tagging. (Some other networks use !group to indicate a group.)
+Red makes no distinction between different types of channel for the purpose of tagging.
**Topical Tags**
-Topical tags are indicated by preceding the tag name with the # character. This will create a link in the post to a generalised site search for the term provided. For example, #cars will provide a search link for all posts mentioning 'cars' on your site. Topical tags are generally a minimum of three characters in length. Shorter search terms are not likely to yield any search results, although this depends on the database configuration. The same rules apply as with names that spaces within tags are represented by the underscore character. It is therefore not possible to create a tag whose target contains an underscore.
-
-Topical tags are also not linked if they are purely numeric, e.g. #1. If you wish to use a numerica hashtag, please add some descriptive text such as #2012-elections.
-
-
-
-
+Topical tags are indicated by preceding the tag name with the # character. This will create a link in the post to a generalised site search for the term provided. For example, #cars will provide a search link for all posts mentioning 'cars' on your site. Topical tags are generally a minimum of three characters in length. Shorter search terms are not likely to yield any search results, although this depends on the database configuration. The same rules apply as with names that spaces within tags are represented by the underscore character. It is therefore not possible to create a tag whose target contains an underscore.
+Topical tags are also not linked if they are purely numeric, e.g. #1. If you wish to use a numerica hashtag, please add some descriptive text such as #2012-elections. \ No newline at end of file
diff --git a/doc/Webpages.md b/doc/Webpages.md
new file mode 100644
index 000000000..ddde2a401
--- /dev/null
+++ b/doc/Webpages.md
@@ -0,0 +1,14 @@
+Creating Webpages
+=================
+
+Red enables users to create static webpages. To activate this feature, enable the web pages feature in your Additional Features section.
+
+Once enabled, a new tab will appear on your channel page labelled "Webpages". Clicking this link will take you to the webpage editor. Here you can create a post using either BBCode or the rich text editor.
+
+Pages will be accessible at mydomain/page/username/pagelinktitle
+
+The "page link title" box allows a user to specify the "pagelinktitle" of this URL. If no page link title is set, we will set one for you automatically, using the message ID of the item.
+
+Beneath the page creation box, a list of existing pages will appear with an "edit" link. Clicking this will take you to an editor, similar to that of the post editor, where you can make changes to your webpages.
+
+If you are the admin of a site, you can speficy a channel whose webpages we will use at key points around the site. Presently, the only place this is implemented is the home page. If you specify the channel "admin" and then the channel called "admin" creates a webpage called "home", we will display it's content on your websites home page. We expect this functionality to be extended to other areas in future. \ No newline at end of file
diff --git a/doc/andfinally.md b/doc/andfinally.md
deleted file mode 100644
index c4e8cb948..000000000
--- a/doc/andfinally.md
+++ /dev/null
@@ -1,26 +0,0 @@
-[[!meta title="And Finally..."]]
-
-And that brings the Quick Start to an end.
-
-Here are some more things to help get you started:
-
-**Groups**
-
-
-- <a href="https://kakste.com/profile/newhere">New Here</a> - a group for people new to Friendica
-
-- <a href="http://helpers.pyxis.uberspace.de/profile/helpers">Friendica Support</a> - problems? This is the place to ask.
-
-- <a href="https://kakste.com/profile/public_stream">Public Stream</a> - a place to talk about anything to anyone.
-
-- <a href="https://letstalk.pyxis.uberspace.de/profile/letstalk">Let's Talk</a> a group for finding people and groups who share similar interests.
-
-- <a href="http://newzot.hydra.uberspace.de/profile/newzot">Local Friendica</a> a page for local Friendica groups</a>
-
-
-**Documentation**
-
-- <a href="help/Connectors">Connecting to more networks</a>
-- <a href="help">Help Index</a>
-
-
diff --git a/doc/groupsandpages.md b/doc/groupsandpages.md
deleted file mode 100644
index 5cfbc653c..000000000
--- a/doc/groupsandpages.md
+++ /dev/null
@@ -1,11 +0,0 @@
-This is the global directory. If you get lost, you can <a href = "help/groupsandpages">click this link</a> to bring yourself back here.
-
-On this page, you'll find a collection of groups, forums and celebrity pages. Groups are not real people. Connecting to them is similar to "liking" something on Facebook, or signing up for a new forum. You don't have to feel awkward about introducing yourself to a new person, because they're not people!
-
-When you connect to a group, all messages to that group will start appearing in your network tab. You can comment on these posts, or post to the group yourself without ever having to add any of the groups members. This is a great way to make friends dynamically - you'll find people you like and add each other naturally instead of adding random strangers. Simply find a group you're interested in, and connect to it the same way you did with people in the last section. There are a lot of groups, and you're likely to get lost. Remember the link at the top of this page will bring you back here.
-
-Once you've added some groups, <a href="help/andfinally">move on to the next section</a>.
-
-<iframe src="http://dir.friendica.com/directory/forum" width="950" height="600"></iframe>
-
-
diff --git a/doc/guide.md b/doc/guide.md
deleted file mode 100644
index d76af92e2..000000000
--- a/doc/guide.md
+++ /dev/null
@@ -1,13 +0,0 @@
-First things first, let's make sure you're logged in to your account. If you're not already logged in, do so in the frame below.
-
-Once you've logged in (or if you are already logged in), you'll now be looking at your profile page.
-
-This is a bit like your Facebook wall. It's where all your status messgages are kept, and where your friends come to post on your wall. To write your status, simply click in the box that says "share". When you do this, the box will expand. You can see some formatting options at the top such as Bold, Italics and Underline, as well as ways to add links and pictures. At the bottom you'll find some more links. You can use these to upload pictures and files from your computer, share websites with a bit of preview text, or embed video and audio files from elsewhere on the web. You can also set your post location here.
-
-Once you've finished writing your post, click on the padlock icon to select who can see it. If you do not use the padlock icon, your post will be public. This means it will appear to anybody who views your profile, and in the community tab if your site has it enabled, as well as in the network tab of any of your contacts.
-
-Play around with this a bit, then when you're ready to move on, we'll take a look at the <a href="help/network">Network Tab</a>
-
-<iframe src="login" width="950" height="600"></iframe>
-
-
diff --git a/doc/html/BaseObject_8php.html b/doc/html/BaseObject_8php.html
new file mode 100644
index 000000000..73fcf06ee
--- /dev/null
+++ b/doc/html/BaseObject_8php.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/BaseObject.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('BaseObject_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">BaseObject.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBaseObject.html">BaseObject</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/Contact_8php.html b/doc/html/Contact_8php.html
new file mode 100644
index 000000000..07304c545
--- /dev/null
+++ b/doc/html/Contact_8php.html
@@ -0,0 +1,478 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/Contact.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('Contact_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Contact.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae8803c330352cbf1e828eb7490edf47e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e">abook_connections</a> ($channel_id, $sql_conditions= '')</td></tr>
+<tr class="separator:ae8803c330352cbf1e828eb7490edf47e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5b02c2a962ee55b1b7ca6c159d6e4c5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5">abook_self</a> ($channel_id)</td></tr>
+<tr class="separator:ad5b02c2a962ee55b1b7ca6c159d6e4c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87e699f74a1102b25e8aa0432d86a91e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e">channelx_by_nick</a> ($nick)</td></tr>
+<tr class="separator:a87e699f74a1102b25e8aa0432d86a91e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a483cda56f9e37c3a4a8773dcdfeb0258"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258">channelx_by_hash</a> ($hash)</td></tr>
+<tr class="separator:a483cda56f9e37c3a4a8773dcdfeb0258"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a0844dac1e86d523de5d2f432cfeebc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc">channelx_by_n</a> ($id)</td></tr>
+<tr class="separator:a3a0844dac1e86d523de5d2f432cfeebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6348a532c9d26cd1c9afbc9aa6aa8960"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan</a> ($xchan, $observer=null, $mode= '')</td></tr>
+<tr class="separator:a6348a532c9d26cd1c9afbc9aa6aa8960"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a024919623a830e8703ac4f23496dd66c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag</a> ($abook, $flag)</td></tr>
+<tr class="separator:a024919623a830e8703ac4f23496dd66c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2fc191067dd571a79603c66b04b1ca15"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15">user_remove</a> ($uid)</td></tr>
+<tr class="separator:a2fc191067dd571a79603c66b04b1ca15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad46ff6764f12b6d3ab45c49b797f98aa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa">channel_remove</a> ($channel_id)</td></tr>
+<tr class="separator:ad46ff6764f12b6d3ab45c49b797f98aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc12cda999c88c4d6185cca967c15125"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources</a> ($xchan, $channel_id=0)</td></tr>
+<tr class="separator:acc12cda999c88c4d6185cca967c15125"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28e062c884331dbb5dfa713228c25ad6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove</a> ($channel_id, $abook_id)</td></tr>
+<tr class="separator:a28e062c884331dbb5dfa713228c25ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a38daa1c210b78385307123450ca9a1fc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">terminate_friendship</a> ($user, $self, $contact)</td></tr>
+<tr class="separator:a38daa1c210b78385307123450ca9a1fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a91281b5d4bbbb2ed468e27ec82ca083c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(!function_exists('mark_for_death')) <br class="typebreak"/>
+<a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(!function_exists('unmark_for_death')) <br class="typebreak"/>
+<a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(!function_exists('contact_photo_menu'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a91281b5d4bbbb2ed468e27ec82ca083c">random_profile</a> ()</td></tr>
+<tr class="separator:a91281b5d4bbbb2ed468e27ec82ca083c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a228fc01f90ae9bfdde4c2ad0772bd7dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a228fc01f90ae9bfdde4c2ad0772bd7dc">contacts_not_grouped</a> ($uid, $start=0, $count=0)</td></tr>
+<tr class="separator:a228fc01f90ae9bfdde4c2ad0772bd7dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ae8803c330352cbf1e828eb7490edf47e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">abook_connections </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sql_conditions</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad5b02c2a962ee55b1b7ca6c159d6e4c5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">abook_self </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a024919623a830e8703ac4f23496dd66c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">abook_toggle_flag </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$abook</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$flag</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad46ff6764f12b6d3ab45c49b797f98aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">channel_remove </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a483cda56f9e37c3a4a8773dcdfeb0258"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">channelx_by_hash </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hash</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3a0844dac1e86d523de5d2f432cfeebc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">channelx_by_n </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a87e699f74a1102b25e8aa0432d86a91e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">channelx_by_nick </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$nick</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a28e062c884331dbb5dfa713228c25ad6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">contact_remove </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$abook_id</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a228fc01f90ae9bfdde4c2ad0772bd7dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">contacts_not_grouped </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$start</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$count</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30">nogroup_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a91281b5d4bbbb2ed468e27ec82ca083c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (!function_exists('mark_for_death')) <a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (!function_exists('unmark_for_death')) <a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (!function_exists('contact_photo_menu')) random_profile </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acc12cda999c88c4d6185cca967c15125"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">remove_all_xchan_resources </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a38daa1c210b78385307123450ca9a1fc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">terminate_friendship </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$contact</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2fc191067dd571a79603c66b04b1ca15"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">user_remove </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, and <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6348a532c9d26cd1c9afbc9aa6aa8960"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">vcard_from_xchan </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer</em> = <code>null</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$mode</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside()</a>, and <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/Contact_8php.js b/doc/html/Contact_8php.js
new file mode 100644
index 000000000..71e1ab9b5
--- /dev/null
+++ b/doc/html/Contact_8php.js
@@ -0,0 +1,17 @@
+var Contact_8php =
+[
+ [ "abook_connections", "Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e", null ],
+ [ "abook_self", "Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5", null ],
+ [ "abook_toggle_flag", "Contact_8php.html#a024919623a830e8703ac4f23496dd66c", null ],
+ [ "channel_remove", "Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa", null ],
+ [ "channelx_by_hash", "Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258", null ],
+ [ "channelx_by_n", "Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc", null ],
+ [ "channelx_by_nick", "Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e", null ],
+ [ "contact_remove", "Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6", null ],
+ [ "contacts_not_grouped", "Contact_8php.html#a228fc01f90ae9bfdde4c2ad0772bd7dc", null ],
+ [ "random_profile", "Contact_8php.html#a91281b5d4bbbb2ed468e27ec82ca083c", null ],
+ [ "remove_all_xchan_resources", "Contact_8php.html#acc12cda999c88c4d6185cca967c15125", null ],
+ [ "terminate_friendship", "Contact_8php.html#a38daa1c210b78385307123450ca9a1fc", null ],
+ [ "user_remove", "Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15", null ],
+ [ "vcard_from_xchan", "Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960", null ]
+]; \ No newline at end of file
diff --git a/doc/html/ConversationObject_8php.html b/doc/html/ConversationObject_8php.html
new file mode 100644
index 000000000..e89d0e39d
--- /dev/null
+++ b/doc/html/ConversationObject_8php.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/ConversationObject.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ConversationObject_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ConversationObject.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html">Conversation</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/ITemplateEngine_8php.html b/doc/html/ITemplateEngine_8php.html
new file mode 100644
index 000000000..34cb6577b
--- /dev/null
+++ b/doc/html/ITemplateEngine_8php.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/ITemplateEngine.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ITemplateEngine_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ITemplateEngine.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceITemplateEngine.html">ITemplateEngine</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/ItemObject_8php.html b/doc/html/ItemObject_8php.html
new file mode 100644
index 000000000..4a72f4ca8
--- /dev/null
+++ b/doc/html/ItemObject_8php.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/ItemObject.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ItemObject_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ItemObject.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html">Item</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/ProtoDriver_8php.html b/doc/html/ProtoDriver_8php.html
new file mode 100644
index 000000000..e419d0c4d
--- /dev/null
+++ b/doc/html/ProtoDriver_8php.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/ProtoDriver.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ProtoDriver_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ProtoDriver.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html">ProtoDriver</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZotDriver.html">ZotDriver</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/README_8md.html b/doc/html/README_8md.html
new file mode 100644
index 000000000..723b5d96a
--- /dev/null
+++ b/doc/html/README_8md.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redstrap/README.md File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('README_8md.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">view/theme/redstrap/README.md File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/Scrape_8php.html b/doc/html/Scrape_8php.html
new file mode 100644
index 000000000..59c15f35b
--- /dev/null
+++ b/doc/html/Scrape_8php.html
@@ -0,0 +1,171 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: include/Scrape.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('Scrape_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">Scrape.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a32883beb7dbf311fc9bfa99200a7402c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Scrape_8php.html#a32883beb7dbf311fc9bfa99200a7402c">probe_url</a> ($url, $mode=<a class="el" href="Scrape_8php.html#aa6b0bdcf6e8f9d44e699fd94d2207c98">PROBE_NORMAL</a>)</td></tr>
+<tr class="separator:a32883beb7dbf311fc9bfa99200a7402c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:aa6b0bdcf6e8f9d44e699fd94d2207c98"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Scrape_8php.html#aa6b0bdcf6e8f9d44e699fd94d2207c98">PROBE_NORMAL</a> (!function_exists('scrape_feed')) 0</td></tr>
+<tr class="separator:aa6b0bdcf6e8f9d44e699fd94d2207c98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a32883beb7dbf311fc9bfa99200a7402c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">probe_url </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$mode</em> = <code><a class="el" href="Scrape_8php.html#aa6b0bdcf6e8f9d44e699fd94d2207c98">PROBE_NORMAL</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="aa6b0bdcf6e8f9d44e699fd94d2207c98"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PROBE_NORMAL(!function_exists('scrape_feed')) 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Probe a network address to discover what kind of protocols we need to communicate with it.</p>
+<p>Warning: this function is a bit touchy and there are some subtle dependencies within the logic flow. Edit with care.</p>
+<p>PROBE_DIASPORA has a bias towards returning Diaspora information while PROBE_NORMAL has a bias towards dfrn/zot - in the case where an address (such as a <a class="el" href="namespaceFriendica.html">Friendica</a> address) supports more than one type of network. </p>
+
+<p>Referenced by <a class="el" href="Scrape_8php.html#a32883beb7dbf311fc9bfa99200a7402c">probe_url()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/Scrape_8php.js b/doc/html/Scrape_8php.js
new file mode 100644
index 000000000..6bdfb178d
--- /dev/null
+++ b/doc/html/Scrape_8php.js
@@ -0,0 +1,5 @@
+var Scrape_8php =
+[
+ [ "probe_url", "Scrape_8php.html#a32883beb7dbf311fc9bfa99200a7402c", null ],
+ [ "PROBE_NORMAL", "Scrape_8php.html#aa6b0bdcf6e8f9d44e699fd94d2207c98", null ]
+]; \ No newline at end of file
diff --git a/doc/html/__well__known_8php.html b/doc/html/__well__known_8php.html
new file mode 100644
index 000000000..b78d77c12
--- /dev/null
+++ b/doc/html/__well__known_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/_well_known.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('__well__known_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">_well_known.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a6ebfa937a2024f0b5dab53f0ac90fed0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a6ebfa937a2024f0b5dab53f0ac90fed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a6ebfa937a2024f0b5dab53f0ac90fed0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">_well_known_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/__well__known_8php.js b/doc/html/__well__known_8php.js
new file mode 100644
index 000000000..47e6777dd
--- /dev/null
+++ b/doc/html/__well__known_8php.js
@@ -0,0 +1,4 @@
+var __well__known_8php =
+[
+ [ "_well_known_init", "__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0", null ]
+]; \ No newline at end of file
diff --git a/doc/html/account_8php.html b/doc/html/account_8php.html
new file mode 100644
index 000000000..868539d8e
--- /dev/null
+++ b/doc/html/account_8php.html
@@ -0,0 +1,328 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/account.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('account_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">account.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae052bd5558847bd38e89c213561a9771"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email</a> ($email)</td></tr>
+<tr class="separator:ae052bd5558847bd38e89c213561a9771"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a144b4891022567668375b58ea61cfff0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#a144b4891022567668375b58ea61cfff0">check_account_password</a> ($password)</td></tr>
+<tr class="separator:a144b4891022567668375b58ea61cfff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaff7720423417a4333697894ffd9ddeb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite</a> ($invite_code)</td></tr>
+<tr class="separator:aaff7720423417a4333697894ffd9ddeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a917d74aad0baf3e0c4b51cf1051e654f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">check_account_admin</a> ($arr)</td></tr>
+<tr class="separator:a917d74aad0baf3e0c4b51cf1051e654f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43e3042b2723d76915a030bac3c668b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#a43e3042b2723d76915a030bac3c668b6">account_total</a> ()</td></tr>
+<tr class="separator:a43e3042b2723d76915a030bac3c668b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a141fe579c351c78209d425473f978eb5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account</a> ($arr)</td></tr>
+<tr class="separator:a141fe579c351c78209d425473f978eb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a014de2d5d5c9785de5bf547a485822fa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email</a> ($arr)</td></tr>
+<tr class="separator:a014de2d5d5c9785de5bf547a485822fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa9c29c497c17d8f9344dce8631ad8761"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email</a> ($email, $password)</td></tr>
+<tr class="separator:aa9c29c497c17d8f9344dce8631ad8761"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5c570a2d46446bad4dd2501e9c5a4b1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow</a> ($hash)</td></tr>
+<tr class="separator:ac5c570a2d46446bad4dd2501e9c5a4b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1653efba62493b9d87513e1b6c04c83"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny</a> ($hash)</td></tr>
+<tr class="separator:ac1653efba62493b9d87513e1b6c04c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a43e3042b2723d76915a030bac3c668b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">account_total </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a917d74aad0baf3e0c4b51cf1051e654f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_account_admin </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae052bd5558847bd38e89c213561a9771"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_account_email </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$email</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, and <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaff7720423417a4333697894ffd9ddeb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_account_invite </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$invite_code</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, and <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a144b4891022567668375b58ea61cfff0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_account_password </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$password</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, and <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a141fe579c351c78209d425473f978eb5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">create_account </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd">create_dir_account()</a>, and <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a014de2d5d5c9785de5bf547a485822fa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">send_reg_approval_email </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa9c29c497c17d8f9344dce8631ad8761"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">send_verification_email </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$email</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$password</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac5c570a2d46446bad4dd2501e9c5a4b1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">user_allow </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hash</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, and <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac1653efba62493b9d87513e1b6c04c83"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">user_deny </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hash</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, and <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/account_8php.js b/doc/html/account_8php.js
new file mode 100644
index 000000000..2e43e4b46
--- /dev/null
+++ b/doc/html/account_8php.js
@@ -0,0 +1,13 @@
+var account_8php =
+[
+ [ "account_total", "account_8php.html#a43e3042b2723d76915a030bac3c668b6", null ],
+ [ "check_account_admin", "account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f", null ],
+ [ "check_account_email", "account_8php.html#ae052bd5558847bd38e89c213561a9771", null ],
+ [ "check_account_invite", "account_8php.html#aaff7720423417a4333697894ffd9ddeb", null ],
+ [ "check_account_password", "account_8php.html#a144b4891022567668375b58ea61cfff0", null ],
+ [ "create_account", "account_8php.html#a141fe579c351c78209d425473f978eb5", null ],
+ [ "send_reg_approval_email", "account_8php.html#a014de2d5d5c9785de5bf547a485822fa", null ],
+ [ "send_verification_email", "account_8php.html#aa9c29c497c17d8f9344dce8631ad8761", null ],
+ [ "user_allow", "account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1", null ],
+ [ "user_deny", "account_8php.html#ac1653efba62493b9d87513e1b6c04c83", null ]
+]; \ No newline at end of file
diff --git a/doc/html/acl_8php.html b/doc/html/acl_8php.html
new file mode 100644
index 000000000..933631019
--- /dev/null
+++ b/doc/html/acl_8php.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/acl.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('acl_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">acl.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac6776dba871806ecdb5d1659bc2eb07a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ac6776dba871806ecdb5d1659bc2eb07a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57dceff370d4a0e7ae673d50fbfda61f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete</a> (&amp;$a)</td></tr>
+<tr class="separator:a57dceff370d4a0e7ae673d50fbfda61f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ac6776dba871806ecdb5d1659bc2eb07a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">acl_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a57dceff370d4a0e7ae673d50fbfda61f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">navbar_complete </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/acl_8php.js b/doc/html/acl_8php.js
new file mode 100644
index 000000000..f4e646edd
--- /dev/null
+++ b/doc/html/acl_8php.js
@@ -0,0 +1,5 @@
+var acl_8php =
+[
+ [ "acl_init", "acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a", null ],
+ [ "navbar_complete", "acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f", null ]
+]; \ No newline at end of file
diff --git a/doc/html/acl__selectors_8php.html b/doc/html/acl__selectors_8php.html
new file mode 100644
index 000000000..13b61c28c
--- /dev/null
+++ b/doc/html/acl__selectors_8php.html
@@ -0,0 +1,279 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/acl_selectors.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('acl__selectors_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">acl_selectors.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceacl__selectors"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceacl__selectors.html">acl_selectors</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aa1e3bc344ca2b29f97eb9860216d21a0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select</a> ($selname, $selclass, $preselected=false, $size=4)</td></tr>
+<tr class="separator:aa1e3bc344ca2b29f97eb9860216d21a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9476997d2968a5794f3723878ed89c91"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select</a> ($selname, $selclass, $preselected=false, $size=4, $privmail=false, $celeb=false, $privatenet=false, $tabindex=null)</td></tr>
+<tr class="separator:a9476997d2968a5794f3723878ed89c91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6664fb8330308e23f2645cd6624727e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="acl__selectors_8php.html#ad6664fb8330308e23f2645cd6624727e">fixacl</a> (&amp;$item)</td></tr>
+<tr class="separator:ad6664fb8330308e23f2645cd6624727e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51f2ec7a143d5a5b38e35efd5f3d6e2c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="acl__selectors_8php.html#a51f2ec7a143d5a5b38e35efd5f3d6e2c">populate_acl</a> ($user=null, $celeb=false)</td></tr>
+<tr class="separator:a51f2ec7a143d5a5b38e35efd5f3d6e2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a9476997d2968a5794f3723878ed89c91"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">contact_select </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$selname</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$selclass</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$preselected</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$size</em> = <code>4</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$privmail</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$celeb</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$privatenet</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$tabindex</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad6664fb8330308e23f2645cd6624727e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fixacl </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa1e3bc344ca2b29f97eb9860216d21a0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">group_select </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$selname</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$selclass</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$preselected</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$size</em> = <code>4</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a51f2ec7a143d5a5b38e35efd5f3d6e2c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">populate_acl </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user</em> = <code>null</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$celeb</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/acl__selectors_8php.js b/doc/html/acl__selectors_8php.js
new file mode 100644
index 000000000..1958789d9
--- /dev/null
+++ b/doc/html/acl__selectors_8php.js
@@ -0,0 +1,7 @@
+var acl__selectors_8php =
+[
+ [ "contact_select", "acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91", null ],
+ [ "fixacl", "acl__selectors_8php.html#ad6664fb8330308e23f2645cd6624727e", null ],
+ [ "group_select", "acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0", null ],
+ [ "populate_acl", "acl__selectors_8php.html#a51f2ec7a143d5a5b38e35efd5f3d6e2c", null ]
+]; \ No newline at end of file
diff --git a/doc/html/activities_8php.html b/doc/html/activities_8php.html
new file mode 100644
index 000000000..31a786664
--- /dev/null
+++ b/doc/html/activities_8php.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/activities.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('activities_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">activities.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a80134e807719b3c54aba971958d2e132"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity</a> ($changed, $value)</td></tr>
+<tr class="separator:a80134e807719b3c54aba971958d2e132"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a80134e807719b3c54aba971958d2e132"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profile_activity </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$changed</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/activities_8php.js b/doc/html/activities_8php.js
new file mode 100644
index 000000000..73188de88
--- /dev/null
+++ b/doc/html/activities_8php.js
@@ -0,0 +1,4 @@
+var activities_8php =
+[
+ [ "profile_activity", "activities_8php.html#a80134e807719b3c54aba971958d2e132", null ]
+]; \ No newline at end of file
diff --git a/doc/html/admin_8php.html b/doc/html/admin_8php.html
new file mode 100644
index 000000000..f7b01d939
--- /dev/null
+++ b/doc/html/admin_8php.html
@@ -0,0 +1,550 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/admin.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('admin_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">admin.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:acf51f5837a7427832144c2bf7308ada3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post</a> (&amp;$a)</td></tr>
+<tr class="separator:acf51f5837a7427832144c2bf7308ada3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afef415e4011607fbb665610441595015"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content</a> (&amp;$a)</td></tr>
+<tr class="separator:afef415e4011607fbb665610441595015"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6e95b920b5abd030cc522964987087a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary</a> (&amp;$a)</td></tr>
+<tr class="separator:ac6e95b920b5abd030cc522964987087a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add865f4ae806ecbf716f423fc3e50e4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post</a> (&amp;$a)</td></tr>
+<tr class="separator:add865f4ae806ecbf716f423fc3e50e4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac0f3bd12431c056aad77bac9d09fa30e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site</a> (&amp;$a)</td></tr>
+<tr class="separator:ac0f3bd12431c056aad77bac9d09fa30e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa6addf2dbc3f3fcf99244a56b41eade"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync</a> (&amp;$a)</td></tr>
+<tr class="separator:aaa6addf2dbc3f3fcf99244a56b41eade"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a696706a3869800e65fb365214241b7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a5a696706a3869800e65fb365214241b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a62f10f90c47686c9c3c37c4c03a108d2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users</a> (&amp;$a)</td></tr>
+<tr class="separator:a62f10f90c47686c9c3c37c4c03a108d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a54128076986ba80c4a103de3fc3e19a8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins</a> (&amp;$a)</td></tr>
+<tr class="separator:a54128076986ba80c4a103de3fc3e19a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af81f081851791cd15e49e8ff6722dc27"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#af81f081851791cd15e49e8ff6722dc27">toggle_theme</a> (&amp;$themes, $th, &amp;$result)</td></tr>
+<tr class="separator:af81f081851791cd15e49e8ff6722dc27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4f74f33944a98b56d2c8c7601f124a4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4">theme_status</a> ($themes, $th)</td></tr>
+<tr class="separator:ad4f74f33944a98b56d2c8c7601f124a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae46311a3fefc21abc838a26e91789de6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#ae46311a3fefc21abc838a26e91789de6">rebuild_theme_table</a> ($themes)</td></tr>
+<tr class="separator:ae46311a3fefc21abc838a26e91789de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af124619fdc278fe2bf14c45ddaa260fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes</a> (&amp;$a)</td></tr>
+<tr class="separator:af124619fdc278fe2bf14c45ddaa260fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a233b7c8c31776b7020532003c6e44e1c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a233b7c8c31776b7020532003c6e44e1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d1362698af14d209aa3a0fb655551dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs</a> (&amp;$a)</td></tr>
+<tr class="separator:a1d1362698af14d209aa3a0fb655551dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="afef415e4011607fbb665610441595015"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">admin_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+<p>Side bar links</p>
+<p>Page content</p>
+
+</div>
+</div>
+<a class="anchor" id="aaa6addf2dbc3f3fcf99244a56b41eade"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">admin_page_dbsync </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1d1362698af14d209aa3a0fb655551dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">admin_page_logs </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a233b7c8c31776b7020532003c6e44e1c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">admin_page_logs_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Logs admin page</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a54128076986ba80c4a103de3fc3e19a8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">admin_page_plugins </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Plugins admin page</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+<p>Single plugin</p>
+<p>List plugins</p>
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac0f3bd12431c056aad77bac9d09fa30e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">admin_page_site </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="add865f4ae806ecbf716f423fc3e50e4f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">admin_page_site_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Admin Site Page </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac6e95b920b5abd030cc522964987087a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">admin_page_summary </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Admin Summary Page </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af124619fdc278fe2bf14c45ddaa260fb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">admin_page_themes </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Themes admin page</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+<p>Single theme</p>
+<p>List themes</p>
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a62f10f90c47686c9c3c37c4c03a108d2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">admin_page_users </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5a696706a3869800e65fb365214241b7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">admin_page_users_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Users admin page</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acf51f5837a7427832144c2bf7308ada3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">admin_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Red admin </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ae46311a3fefc21abc838a26e91789de6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">rebuild_theme_table </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$themes</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">array</td><td class="paramname">$themes</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad4f74f33944a98b56d2c8c7601f124a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">theme_status </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$themes</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$th</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">array</td><td class="paramname">$themes</td><td></td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$th</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>int </dd></dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af81f081851791cd15e49e8ff6722dc27"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">toggle_theme </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$themes</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$th</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">array</td><td class="paramname">$themes</td><td></td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$th</td><td></td></tr>
+ <tr><td class="paramtype">int</td><td class="paramname">$result</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/admin_8php.js b/doc/html/admin_8php.js
new file mode 100644
index 000000000..c3f42aa49
--- /dev/null
+++ b/doc/html/admin_8php.js
@@ -0,0 +1,18 @@
+var admin_8php =
+[
+ [ "admin_content", "admin_8php.html#afef415e4011607fbb665610441595015", null ],
+ [ "admin_page_dbsync", "admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade", null ],
+ [ "admin_page_logs", "admin_8php.html#a1d1362698af14d209aa3a0fb655551dd", null ],
+ [ "admin_page_logs_post", "admin_8php.html#a233b7c8c31776b7020532003c6e44e1c", null ],
+ [ "admin_page_plugins", "admin_8php.html#a54128076986ba80c4a103de3fc3e19a8", null ],
+ [ "admin_page_site", "admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e", null ],
+ [ "admin_page_site_post", "admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f", null ],
+ [ "admin_page_summary", "admin_8php.html#ac6e95b920b5abd030cc522964987087a", null ],
+ [ "admin_page_themes", "admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb", null ],
+ [ "admin_page_users", "admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2", null ],
+ [ "admin_page_users_post", "admin_8php.html#a5a696706a3869800e65fb365214241b7", null ],
+ [ "admin_post", "admin_8php.html#acf51f5837a7427832144c2bf7308ada3", null ],
+ [ "rebuild_theme_table", "admin_8php.html#ae46311a3fefc21abc838a26e91789de6", null ],
+ [ "theme_status", "admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4", null ],
+ [ "toggle_theme", "admin_8php.html#af81f081851791cd15e49e8ff6722dc27", null ]
+]; \ No newline at end of file
diff --git a/doc/html/allfriends_8php.html b/doc/html/allfriends_8php.html
new file mode 100644
index 000000000..9d55a584d
--- /dev/null
+++ b/doc/html/allfriends_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/allfriends.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('allfriends_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">allfriends.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aad992ddbb5f20e81c5cf2259718aec83"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aad992ddbb5f20e81c5cf2259718aec83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aad992ddbb5f20e81c5cf2259718aec83"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">allfriends_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/allfriends_8php.js b/doc/html/allfriends_8php.js
new file mode 100644
index 000000000..906fc42b8
--- /dev/null
+++ b/doc/html/allfriends_8php.js
@@ -0,0 +1,4 @@
+var allfriends_8php =
+[
+ [ "allfriends_content", "allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83", null ]
+]; \ No newline at end of file
diff --git a/doc/html/annotated.html b/doc/html/annotated.html
new file mode 100644
index 000000000..a1b4d0318
--- /dev/null
+++ b/doc/html/annotated.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('annotated.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Class List</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceacl__selectors.html" target="_self">acl_selectors</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceFriendica.html" target="_self">Friendica</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespacefriendica-to-smarty-tpl.html" target="_self">friendica-to-smarty-tpl</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceupdatetpl.html" target="_self">updatetpl</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceutil.html" target="_self">util</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classApp.html" target="_self">App</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classBaseObject.html" target="_self">BaseObject</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classCache.html" target="_self">Cache</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classConversation.html" target="_self">Conversation</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classdba__driver.html" target="_self">dba_driver</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classdba__mysql.html" target="_self">dba_mysql</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classdba__mysqli.html" target="_self">dba_mysqli</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classenotify.html" target="_self">enotify</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classFKOAuth1.html" target="_self">FKOAuth1</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classFKOAuthDataStore.html" target="_self">FKOAuthDataStore</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classFriendicaSmarty.html" target="_self">FriendicaSmarty</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classFriendicaSmartyEngine.html" target="_self">FriendicaSmartyEngine</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classItem.html" target="_self">Item</a></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="interfaceITemplateEngine.html" target="_self">ITemplateEngine</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classphoto__driver.html" target="_self">photo_driver</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classphoto__gd.html" target="_self">photo_gd</a></td><td class="desc"></td></tr>
+<tr id="row_21_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classphoto__imagick.html" target="_self">photo_imagick</a></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classProtoDriver.html" target="_self">ProtoDriver</a></td><td class="desc"></td></tr>
+<tr id="row_23_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classTemplate.html" target="_self">Template</a></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classZotDriver.html" target="_self">ZotDriver</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/annotated.js b/doc/html/annotated.js
new file mode 100644
index 000000000..243dc679f
--- /dev/null
+++ b/doc/html/annotated.js
@@ -0,0 +1,28 @@
+var annotated =
+[
+ [ "acl_selectors", "namespaceacl__selectors.html", null ],
+ [ "Friendica", "namespaceFriendica.html", null ],
+ [ "friendica-to-smarty-tpl", "namespacefriendica-to-smarty-tpl.html", null ],
+ [ "updatetpl", "namespaceupdatetpl.html", null ],
+ [ "util", "namespaceutil.html", null ],
+ [ "App", "classApp.html", "classApp" ],
+ [ "BaseObject", "classBaseObject.html", "classBaseObject" ],
+ [ "Cache", "classCache.html", null ],
+ [ "Conversation", "classConversation.html", "classConversation" ],
+ [ "dba_driver", "classdba__driver.html", "classdba__driver" ],
+ [ "dba_mysql", "classdba__mysql.html", "classdba__mysql" ],
+ [ "dba_mysqli", "classdba__mysqli.html", "classdba__mysqli" ],
+ [ "enotify", "classenotify.html", null ],
+ [ "FKOAuth1", "classFKOAuth1.html", "classFKOAuth1" ],
+ [ "FKOAuthDataStore", "classFKOAuthDataStore.html", "classFKOAuthDataStore" ],
+ [ "FriendicaSmarty", "classFriendicaSmarty.html", "classFriendicaSmarty" ],
+ [ "FriendicaSmartyEngine", "classFriendicaSmartyEngine.html", "classFriendicaSmartyEngine" ],
+ [ "Item", "classItem.html", "classItem" ],
+ [ "ITemplateEngine", "interfaceITemplateEngine.html", "interfaceITemplateEngine" ],
+ [ "photo_driver", "classphoto__driver.html", "classphoto__driver" ],
+ [ "photo_gd", "classphoto__gd.html", "classphoto__gd" ],
+ [ "photo_imagick", "classphoto__imagick.html", "classphoto__imagick" ],
+ [ "ProtoDriver", "classProtoDriver.html", "classProtoDriver" ],
+ [ "Template", "classTemplate.html", "classTemplate" ],
+ [ "ZotDriver", "classZotDriver.html", "classZotDriver" ]
+]; \ No newline at end of file
diff --git a/doc/html/apps_8php.html b/doc/html/apps_8php.html
new file mode 100644
index 000000000..67b133d31
--- /dev/null
+++ b/doc/html/apps_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/apps.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('apps_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">apps.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a546016cb960d0b110ee8e489dfa6c27c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a546016cb960d0b110ee8e489dfa6c27c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a546016cb960d0b110ee8e489dfa6c27c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">apps_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/apps_8php.js b/doc/html/apps_8php.js
new file mode 100644
index 000000000..a2ca0a3d7
--- /dev/null
+++ b/doc/html/apps_8php.js
@@ -0,0 +1,4 @@
+var apps_8php =
+[
+ [ "apps_content", "apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c", null ]
+]; \ No newline at end of file
diff --git a/doc/html/auth_8php.html b/doc/html/auth_8php.html
new file mode 100644
index 000000000..9666c84f4
--- /dev/null
+++ b/doc/html/auth_8php.html
@@ -0,0 +1,199 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/auth.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('auth_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">auth.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a2add3a1129ffa4d5515442a9d52a9b1a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a">nuke_session</a> ()</td></tr>
+<tr class="separator:a2add3a1129ffa4d5515442a9d52a9b1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a07bae0e623e2daa9ee2cd5a8aa294dee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password</a> ($email, $pass)</td></tr>
+<tr class="separator:a07bae0e623e2daa9ee2cd5a8aa294dee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a0950af7c2888ca1d4743fe5d0bff9ae5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>((isset($_SESSION))&amp;&amp;(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_SESSION,'authenticated'))&amp;&amp;((!(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_POST,'auth-params')))||($_POST['auth-params']!== <br class="typebreak"/>
+'<a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login</a>')))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5">else</a></td></tr>
+<tr class="separator:a0950af7c2888ca1d4743fe5d0bff9ae5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a07bae0e623e2daa9ee2cd5a8aa294dee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">account_verify_password </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$email</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pass</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Verify login credentials</p>
+<p>Returns account record on success, null on failure </p>
+<p>A plugin indicates successful login by setting 'authenticated' to non-zero value and returning a user record Plugins should never set 'authenticated' except to indicate success - as hooks may be chained and later plugins should not interfere with an earlier one that succeeded.</p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2add3a1129ffa4d5515442a9d52a9b1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">nuke_session </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a2e94eab9d6c164bfef7a1b2ab87b339b">api_account_logout()</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a0950af7c2888ca1d4743fe5d0bff9ae5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> ((isset($_SESSION))&amp;&amp;(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_SESSION,'authenticated'))&amp;&amp;((!(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_POST,'auth-params')))||($_POST['auth-params']!== '<a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login</a>'))) else</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Initial value:</b><div class="fragment"><div class="line">{</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span>(isset($_SESSION)) {</div>
+<div class="line"> <a class="code" href="auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a">nuke_session</a>();</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span>((<a class="code" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_POST,<span class="stringliteral">&#39;password&#39;</span>)) &amp;&amp; strlen($_POST[<span class="stringliteral">&#39;password&#39;</span>]))</div>
+<div class="line"> $encrypted = hash(<span class="stringliteral">&#39;whirlpool&#39;</span>,trim($_POST[<span class="stringliteral">&#39;password&#39;</span>]))</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/auth_8php.js b/doc/html/auth_8php.js
new file mode 100644
index 000000000..88b106675
--- /dev/null
+++ b/doc/html/auth_8php.js
@@ -0,0 +1,6 @@
+var auth_8php =
+[
+ [ "account_verify_password", "auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee", null ],
+ [ "nuke_session", "auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a", null ],
+ [ "else", "auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5", null ]
+]; \ No newline at end of file
diff --git a/doc/html/bb2diaspora_8php.html b/doc/html/bb2diaspora_8php.html
new file mode 100644
index 000000000..d7293a518
--- /dev/null
+++ b/doc/html/bb2diaspora_8php.html
@@ -0,0 +1,342 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/bb2diaspora.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('bb2diaspora_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">bb2diaspora.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a4c2f8f11b29a06809d9b07782215b1b2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2">get_bb_tag_pos</a> ($s, $name, $occurance=1)</td></tr>
+<tr class="separator:a4c2f8f11b29a06809d9b07782215b1b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0abe1a7ee50aa0736a233df0a422eba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba">bb_tag_preg_replace</a> ($pattern, $replace, $name, $s)</td></tr>
+<tr class="separator:ad0abe1a7ee50aa0736a233df0a422eba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26c09c218413610e62e60754c579f6c6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6">diaspora2bb</a> ($s)</td></tr>
+<tr class="separator:a26c09c218413610e62e60754c579f6c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a180b0e3a7d702998be19e3c3b44b0e93"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93">stripdcode_br_cb</a> ($s)</td></tr>
+<tr class="separator:a180b0e3a7d702998be19e3c3b44b0e93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc92ccda5f85ed27e64fcc17712c89cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc">diaspora_ul</a> ($s)</td></tr>
+<tr class="separator:adc92ccda5f85ed27e64fcc17712c89cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b96bd45884fa1c40b942939354197d4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#a8b96bd45884fa1c40b942939354197d4">diaspora_ol</a> ($s)</td></tr>
+<tr class="separator:a8b96bd45884fa1c40b942939354197d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f10e0876b27373c762bc1abbe745f5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora</a> ($Text, $preserve_nl=false, $fordiaspora=true)</td></tr>
+<tr class="separator:a4f10e0876b27373c762bc1abbe745f5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a599428bceb6f6d82a6a78cb66811f747"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#a599428bceb6f6d82a6a78cb66811f747">unescape_underscores_in_links</a> ($m)</td></tr>
+<tr class="separator:a599428bceb6f6d82a6a78cb66811f747"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29a2ad41f5826f3975fa9a49934ff863"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora</a> ($ev)</td></tr>
+<tr class="separator:a29a2ad41f5826f3975fa9a49934ff863"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a4f10e0876b27373c762bc1abbe745f5c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bb2diaspora </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$Text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$preserve_nl</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$fordiaspora</em> = <code>true</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Transform #tags, strip off the [url] and replace spaces with underscore</p>
+
+<p>Referenced by <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad0abe1a7ee50aa0736a233df0a422eba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bb_tag_preg_replace </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pattern</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$replace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6">diaspora2bb()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a26c09c218413610e62e60754c579f6c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">diaspora2bb </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8b96bd45884fa1c40b942939354197d4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">diaspora_ol </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adc92ccda5f85ed27e64fcc17712c89cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">diaspora_ul </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a29a2ad41f5826f3975fa9a49934ff863"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">format_event_diaspora </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$ev</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4c2f8f11b29a06809d9b07782215b1b2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_bb_tag_pos </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$occurance</em> = <code>1</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba">bb_tag_preg_replace()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a180b0e3a7d702998be19e3c3b44b0e93"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">stripdcode_br_cb </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a599428bceb6f6d82a6a78cb66811f747"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unescape_underscores_in_links </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/bb2diaspora_8php.js b/doc/html/bb2diaspora_8php.js
new file mode 100644
index 000000000..4b7e4db0f
--- /dev/null
+++ b/doc/html/bb2diaspora_8php.js
@@ -0,0 +1,12 @@
+var bb2diaspora_8php =
+[
+ [ "bb2diaspora", "bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c", null ],
+ [ "bb_tag_preg_replace", "bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba", null ],
+ [ "diaspora2bb", "bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6", null ],
+ [ "diaspora_ol", "bb2diaspora_8php.html#a8b96bd45884fa1c40b942939354197d4", null ],
+ [ "diaspora_ul", "bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc", null ],
+ [ "format_event_diaspora", "bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863", null ],
+ [ "get_bb_tag_pos", "bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2", null ],
+ [ "stripdcode_br_cb", "bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93", null ],
+ [ "unescape_underscores_in_links", "bb2diaspora_8php.html#a599428bceb6f6d82a6a78cb66811f747", null ]
+]; \ No newline at end of file
diff --git a/doc/html/bbcode_8php.html b/doc/html/bbcode_8php.html
new file mode 100644
index 000000000..5948b387c
--- /dev/null
+++ b/doc/html/bbcode_8php.html
@@ -0,0 +1,246 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/bbcode.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('bbcode_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">bbcode.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a55b0cb6973f1ec731de0e726bcc0efa7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7">tryoembed</a> ($match)</td></tr>
+<tr class="separator:a55b0cb6973f1ec731de0e726bcc0efa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8911e027907820df3db03b4f76724b50"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a8911e027907820df3db03b4f76724b50">bb_spacefy</a> ($st)</td></tr>
+<tr class="separator:a8911e027907820df3db03b4f76724b50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a064dcfd9767df6f53be1a0e11ceeb15d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d">bb_unspacefy_and_trim</a> ($st)</td></tr>
+<tr class="separator:a064dcfd9767df6f53be1a0e11ceeb15d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52c45273fbb7ce5ec27094f7936856e1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(!function_exists('bb_extract_images')) <br class="typebreak"/>
+<a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(!function_exists('bb_replace_images'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a52c45273fbb7ce5ec27094f7936856e1">bb_ShareAttributes</a> ($match)</td></tr>
+<tr class="separator:a52c45273fbb7ce5ec27094f7936856e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2be26414a367118143cc89e2d58e7377"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a2be26414a367118143cc89e2d58e7377">bb_ShareAttributesSimple</a> ($match)</td></tr>
+<tr class="separator:a2be26414a367118143cc89e2d58e7377"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a009f61aaf78771737ed0765c8463911b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode</a> ($Text, $preserve_nl=false, $<a class="el" href="bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7">tryoembed</a>=true)</td></tr>
+<tr class="separator:a009f61aaf78771737ed0765c8463911b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a52c45273fbb7ce5ec27094f7936856e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (!function_exists('bb_extract_images')) <a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (!function_exists('bb_replace_images')) bb_ShareAttributes </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$match</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2be26414a367118143cc89e2d58e7377"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bb_ShareAttributesSimple </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$match</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8911e027907820df3db03b4f76724b50"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bb_spacefy </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$st</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a064dcfd9767df6f53be1a0e11ceeb15d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bb_unspacefy_and_trim </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$st</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a009f61aaf78771737ed0765c8463911b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bbcode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$Text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$preserve_nl</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$tryoembed</em> = <code>true</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#ae82608c317421f27446465aa6724733d">api_format_messages()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora()</a>, <a class="el" href="items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee">construct_activity_object()</a>, <a class="el" href="items_8php.html#aa579bc4445d60098b1410961ca8e96b7">construct_activity_target()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">format_event_html()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, and <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a55b0cb6973f1ec731de0e726bcc0efa7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tryoembed </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$match</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/bbcode_8php.js b/doc/html/bbcode_8php.js
new file mode 100644
index 000000000..9cd2e8919
--- /dev/null
+++ b/doc/html/bbcode_8php.js
@@ -0,0 +1,9 @@
+var bbcode_8php =
+[
+ [ "bb_ShareAttributes", "bbcode_8php.html#a52c45273fbb7ce5ec27094f7936856e1", null ],
+ [ "bb_ShareAttributesSimple", "bbcode_8php.html#a2be26414a367118143cc89e2d58e7377", null ],
+ [ "bb_spacefy", "bbcode_8php.html#a8911e027907820df3db03b4f76724b50", null ],
+ [ "bb_unspacefy_and_trim", "bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d", null ],
+ [ "bbcode", "bbcode_8php.html#a009f61aaf78771737ed0765c8463911b", null ],
+ [ "tryoembed", "bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7", null ]
+]; \ No newline at end of file
diff --git a/doc/html/bc_s.png b/doc/html/bc_s.png
new file mode 100644
index 000000000..224b29aa9
--- /dev/null
+++ b/doc/html/bc_s.png
Binary files differ
diff --git a/doc/html/bdwn.png b/doc/html/bdwn.png
new file mode 100644
index 000000000..940a0b950
--- /dev/null
+++ b/doc/html/bdwn.png
Binary files differ
diff --git a/doc/html/boot_8php.html b/doc/html/boot_8php.html
new file mode 100644
index 000000000..5b5c95f1e
--- /dev/null
+++ b/doc/html/boot_8php.html
@@ -0,0 +1,4306 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: boot.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('boot_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">boot.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html">App</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aca47505b8732177f52bb2d647eb2741c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aca47505b8732177f52bb2d647eb2741c">startup</a> ()</td></tr>
+<tr class="separator:aca47505b8732177f52bb2d647eb2741c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e6db7e365f2b041a828b93786f694bc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0e6db7e365f2b041a828b93786f694bc">get_app</a> ()</td></tr>
+<tr class="separator:a0e6db7e365f2b041a828b93786f694bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a01353c9abebc3544ea080ac161729632"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a> ($s, $k=NULL)</td></tr>
+<tr class="separator:a01353c9abebc3544ea080ac161729632"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac608a34f3bc180e7724192e0fd31f9b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0">system_unavailable</a> ()</td></tr>
+<tr class="separator:ac608a34f3bc180e7724192e0fd31f9b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab79b8b4555cae20d03f8200666d89d63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab79b8b4555cae20d03f8200666d89d63">clean_urls</a> ()</td></tr>
+<tr class="separator:ab79b8b4555cae20d03f8200666d89d63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba208673515cbb8a55e5fa4a1da99fda"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda">z_path</a> ()</td></tr>
+<tr class="separator:aba208673515cbb8a55e5fa4a1da99fda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add517a0958ac684792c62142a3877f81"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#add517a0958ac684792c62142a3877f81">z_root</a> ()</td></tr>
+<tr class="separator:add517a0958ac684792c62142a3877f81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a081307d681d7d04f17b9ced2076e7c85"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a081307d681d7d04f17b9ced2076e7c85">absurl</a> ($path)</td></tr>
+<tr class="separator:a081307d681d7d04f17b9ced2076e7c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac17fc8a416ea79e9d5cb4dc9a8ff8c5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c">is_ajax</a> ()</td></tr>
+<tr class="separator:ac17fc8a416ea79e9d5cb4dc9a8ff8c5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c02d88e66852a01bd5a1feecb7c3ce3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config</a> (&amp;$a)</td></tr>
+<tr class="separator:a4c02d88e66852a01bd5a1feecb7c3ce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca5e42678e178c6b9034610d66666fd7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls</a> ($oldurl, $newurl)</td></tr>
+<tr class="separator:aca5e42678e178c6b9034610d66666fd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aefecf8599036df7f1b95d6820e0e2fa4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login</a> ($register=false, $form_id= 'main-login', $hiddens=false)</td></tr>
+<tr class="separator:aefecf8599036df7f1b95d6820e0e2fa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea7fc57a4d8e9dcb42f2601b0b9b761c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aea7fc57a4d8e9dcb42f2601b0b9b761c">killme</a> ()</td></tr>
+<tr class="separator:aea7fc57a4d8e9dcb42f2601b0b9b761c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ab6181607a090bcdbaa13b15b85aba1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1">goaway</a> ($s)</td></tr>
+<tr class="separator:a5ab6181607a090bcdbaa13b15b85aba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe88b920aa285982edb817a0dd44eb37"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#afe88b920aa285982edb817a0dd44eb37">get_account_id</a> ()</td></tr>
+<tr class="separator:afe88b920aa285982edb817a0dd44eb37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4c9dc2c8a82e8f52b7404c1655eab44"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">local_user</a> ()</td></tr>
+<tr class="separator:ad4c9dc2c8a82e8f52b7404c1655eab44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5542c5c2806ab8bca04bad53d47b5209"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209">remote_user</a> ()</td></tr>
+<tr class="separator:a5542c5c2806ab8bca04bad53d47b5209"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9255af5ae9c887520091ea04763c1a88"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice</a> ($s)</td></tr>
+<tr class="separator:a9255af5ae9c887520091ea04763c1a88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfb2fc7be5a4226c0a8e24131da9d498"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info</a> ($s)</td></tr>
+<tr class="separator:adfb2fc7be5a4226c0a8e24131da9d498"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97769915c9f14adc4f8ab1ea2cecfd90"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90">get_max_import_size</a> ()</td></tr>
+<tr class="separator:a97769915c9f14adc4f8ab1ea2cecfd90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4751b522ea913d0e7ed43e03d22e9e68"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load</a> (&amp;$a, $nickname, $profile= '')</td></tr>
+<tr class="separator:a4751b522ea913d0e7ed43e03d22e9e68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b45d647da3743a7fc8c6223350b4d67"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5b45d647da3743a7fc8c6223350b4d67">profile_create_sidebar</a> (&amp;$a)</td></tr>
+<tr class="separator:a5b45d647da3743a7fc8c6223350b4d67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a646123ebbb10eb6f5b6ff26f4288da9b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar</a> ($profile, $block=0)</td></tr>
+<tr class="separator:a646123ebbb10eb6f5b6ff26f4288da9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2c97627a313d53df1a1c7b4215ddb51"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays</a> ()</td></tr>
+<tr class="separator:ad2c97627a313d53df1a1c7b4215ddb51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae381db3d43f8e7c1da8b15d14ecf5312"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events</a> ()</td></tr>
+<tr class="separator:ae381db3d43f8e7c1da8b15d14ecf5312"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab346a2ece14993861f3e4206befa94f0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run</a> ($cmd)</td></tr>
+<tr class="separator:ab346a2ece14993861f3e4206befa94f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad206598b909e8eb67eb0e0bb5ef69c13"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme</a> ()</td></tr>
+<tr class="separator:ad206598b909e8eb67eb0e0bb5ef69c13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a926cad0b3d8b9d9ee5da1898fc063ba3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">current_theme_url</a> ($installing=false)</td></tr>
+<tr class="separator:a926cad0b3d8b9d9ee5da1898fc063ba3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab55e545b72ec8c097e052ea7d373491f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab55e545b72ec8c097e052ea7d373491f">z_birthday</a> ($<a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob</a>, $tz, $format=&quot;Y-m-d H:i:s&quot;)</td></tr>
+<tr class="separator:ab55e545b72ec8c097e052ea7d373491f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1e828bbbcba170265eb2668d8daf42e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">is_site_admin</a> ()</td></tr>
+<tr class="separator:aa1e828bbbcba170265eb2668d8daf42e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a719c7f3972d5f9268f37a41c76cd4ef6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links</a> ($uid)</td></tr>
+<tr class="separator:a719c7f3972d5f9268f37a41c76cd4ef6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1dfcb5146e9d1eca4528bc580ad5d273"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">profile_tabs</a> ($a, $is_owner=False, $nickname=Null)</td></tr>
+<tr class="separator:a1dfcb5146e9d1eca4528bc580ad5d273"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa46321e1cd6a3b8dfde8bf9510112fec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec">get_my_url</a> ()</td></tr>
+<tr class="separator:aa46321e1cd6a3b8dfde8bf9510112fec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a490972c02fdb638c52ec0e012a30bfd2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a490972c02fdb638c52ec0e012a30bfd2">get_my_address</a> ()</td></tr>
+<tr class="separator:a490972c02fdb638c52ec0e012a30bfd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a680fbafc2db023c5b1309e0180e81315"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a680fbafc2db023c5b1309e0180e81315"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b815330f3d177ab383af37a6c12e532"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5b815330f3d177ab383af37a6c12e532">zid</a> ($s, $address= '')</td></tr>
+<tr class="separator:a5b815330f3d177ab383af37a6c12e532"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9cbab4ee728e9a8b4ce952bae643044e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a9cbab4ee728e9a8b4ce952bae643044e">build_querystring</a> ($params, $name=null)</td></tr>
+<tr class="separator:a9cbab4ee728e9a8b4ce952bae643044e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc0a90a1a77f5b668aa7e4b57d1776a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a> ()</td></tr>
+<tr class="separator:abc0a90a1a77f5b668aa7e4b57d1776a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a768f00b7d66be0daf7ef4eea2e862006"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="separator:a768f00b7d66be0daf7ef4eea2e862006"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e0930933fb2c0bf8211cc7ab4e1c3b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4">dba_timer</a> ()</td></tr>
+<tr class="separator:a3e0930933fb2c0bf8211cc7ab4e1c3b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a623e49c79943f3e7bdb770d021683cf7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a623e49c79943f3e7bdb770d021683cf7">get_observer_hash</a> ()</td></tr>
+<tr class="separator:a623e49c79943f3e7bdb770d021683cf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4221641e5c21db69fa52c426b9017f5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa4221641e5c21db69fa52c426b9017f5">curPageURL</a> ()</td></tr>
+<tr class="separator:aa4221641e5c21db69fa52c426b9017f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc4e0c910af066148b810e5fde55fff1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page</a> (&amp;$a)</td></tr>
+<tr class="separator:acc4e0c910af066148b810e5fde55fff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75a90b0eadd0df510f7e63210733634d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a75a90b0eadd0df510f7e63210733634d">appdirpath</a> ()</td></tr>
+<tr class="separator:a75a90b0eadd0df510f7e63210733634d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e4701c9742c3ef88f02ac450a042a84"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84">head_set_icon</a> ($icon)</td></tr>
+<tr class="separator:a0e4701c9742c3ef88f02ac450a042a84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24a7a70afedd5d85fe0eadc85afa9f77"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77">head_get_icon</a> ()</td></tr>
+<tr class="separator:a24a7a70afedd5d85fe0eadc85afa9f77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaeb666872995e3ab8da8f7bc5f3b2bd3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid</a> ()</td></tr>
+<tr class="separator:aaeb666872995e3ab8da8f7bc5f3b2bd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a96ad56755a21e1361dbd7bf93c9e7ff4"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4">RED_PLATFORM</a> 'Red Matrix'</td></tr>
+<tr class="separator:a96ad56755a21e1361dbd7bf93c9e7ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21cc29e0025943e7c28ff58cb4856ac3"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3">RED_VERSION</a> trim(file_get_contents('version.inc')) . 'R'</td></tr>
+<tr class="separator:a21cc29e0025943e7c28ff58cb4856ac3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36b31575f992a10b5927b76efba9362e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a36b31575f992a10b5927b76efba9362e">ZOT_REVISION</a> 1</td></tr>
+<tr class="separator:a36b31575f992a10b5927b76efba9362e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac59a18a4838710d6c2de37aed6b21f03"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03">DB_UPDATE_VERSION</a> 1057</td></tr>
+<tr class="separator:ac59a18a4838710d6c2de37aed6b21f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0603d6ece8c5d37b4b7db697db053a4b"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b">EOL</a> '&lt;br /&gt;' . &quot;\r\n&quot;</td></tr>
+<tr class="separator:a0603d6ece8c5d37b4b7db697db053a4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad34c1547020a305915bcc39707744690"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ad34c1547020a305915bcc39707744690">ATOM_TIME</a> 'Y-m-d\TH:i:s\Z'</td></tr>
+<tr class="separator:ad34c1547020a305915bcc39707744690"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7d65a7e7417825a4db62906bb600729"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab7d65a7e7417825a4db62906bb600729">DIRECTORY_MODE_NORMAL</a> 0x0000</td></tr>
+<tr class="separator:ab7d65a7e7417825a4db62906bb600729"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a60cc38bb567765fd926fef70205f16"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a8a60cc38bb567765fd926fef70205f16">DIRECTORY_MODE_PRIMARY</a> 0x0001</td></tr>
+<tr class="separator:a8a60cc38bb567765fd926fef70205f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedfb9501ed408278667995524e0d15cf"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aedfb9501ed408278667995524e0d15cf">DIRECTORY_MODE_SECONDARY</a> 0x0002</td></tr>
+<tr class="separator:aedfb9501ed408278667995524e0d15cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25476eec71fceda237f7dc1d78b0adb8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a25476eec71fceda237f7dc1d78b0adb8">DIRECTORY_MODE_STANDALONE</a> 0x0100</td></tr>
+<tr class="separator:a25476eec71fceda237f7dc1d78b0adb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b9909db6a7ec80ec6fdd40ba74014dd"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a6b9909db6a7ec80ec6fdd40ba74014dd">DIRECTORY_REALM</a> 'RED_GLOBAL'</td></tr>
+<tr class="separator:a6b9909db6a7ec80ec6fdd40ba74014dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abedd940e664017c61b48c6efa31d0cb8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#abedd940e664017c61b48c6efa31d0cb8">DIRECTORY_FALLBACK_MASTER</a> 'https://zothub.com'</td></tr>
+<tr class="separator:abedd940e664017c61b48c6efa31d0cb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3475ff6c2e575f946ea0ee377e944173"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a3475ff6c2e575f946ea0ee377e944173">JPEG_QUALITY</a> 100</td></tr>
+<tr class="separator:a3475ff6c2e575f946ea0ee377e944173"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8df201788c9dd0ca91384e3a14c08bce"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a8df201788c9dd0ca91384e3a14c08bce">PNG_QUALITY</a> 8</td></tr>
+<tr class="separator:a8df201788c9dd0ca91384e3a14c08bce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17cf72338b040891781a4bcbdd9a8595"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a17cf72338b040891781a4bcbdd9a8595">LANGUAGE_DETECT_MIN_LENGTH</a> 128</td></tr>
+<tr class="separator:a17cf72338b040891781a4bcbdd9a8595"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a68d1d5bc9c7ccb663dc671b48c66df11"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a68d1d5bc9c7ccb663dc671b48c66df11">LANGUAGE_DETECT_MIN_CONFIDENCE</a> 0.01</td></tr>
+<tr class="separator:a68d1d5bc9c7ccb663dc671b48c66df11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a525ca93ff35d3535d1a2b8ba57876afa"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa">MAX_IMAGE_LENGTH</a> -1</td></tr>
+<tr class="separator:a525ca93ff35d3535d1a2b8ba57876afa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8a2b61e70900139d1ca28e46f1da49d"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d">DEFAULT_DB_ENGINE</a> 'MyISAM'</td></tr>
+<tr class="separator:aa8a2b61e70900139d1ca28e46f1da49d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af86c651547aa8f9e549ee40a09455549"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#af86c651547aa8f9e549ee40a09455549">SSL_POLICY_NONE</a> 0</td></tr>
+<tr class="separator:af86c651547aa8f9e549ee40a09455549"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02566ac9d891369a1d3ebb81a15722fc"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a02566ac9d891369a1d3ebb81a15722fc">SSL_POLICY_FULL</a> 1</td></tr>
+<tr class="separator:a02566ac9d891369a1d3ebb81a15722fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adca48aee78465ae3064ca4432c0d87b5"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#adca48aee78465ae3064ca4432c0d87b5">SSL_POLICY_SELFSIGN</a> 2</td></tr>
+<tr class="separator:adca48aee78465ae3064ca4432c0d87b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17b4ea23d9ecf628d9c8f53b7abcb805"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a17b4ea23d9ecf628d9c8f53b7abcb805">LOGGER_NORMAL</a> 0</td></tr>
+<tr class="separator:a17b4ea23d9ecf628d9c8f53b7abcb805"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a022cea669f9f13ef7c6268b63884c57f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a022cea669f9f13ef7c6268b63884c57f">LOGGER_TRACE</a> 1</td></tr>
+<tr class="separator:a022cea669f9f13ef7c6268b63884c57f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93823d15ae07548a4c49de88d325cd26"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a93823d15ae07548a4c49de88d325cd26">LOGGER_DEBUG</a> 2</td></tr>
+<tr class="separator:a93823d15ae07548a4c49de88d325cd26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6969947145a139ec374ce098224d8e81"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a6969947145a139ec374ce098224d8e81">LOGGER_DATA</a> 3</td></tr>
+<tr class="separator:a6969947145a139ec374ce098224d8e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe63ae69ba55299f813766e54df06ede"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#afe63ae69ba55299f813766e54df06ede">LOGGER_ALL</a> 4</td></tr>
+<tr class="separator:afe63ae69ba55299f813766e54df06ede"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69aac276ed82e010dc382b16ab4d59e1"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a69aac276ed82e010dc382b16ab4d59e1">REGISTER_CLOSED</a> 0</td></tr>
+<tr class="separator:a69aac276ed82e010dc382b16ab4d59e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7176c0f9f1c98421b97735d892cf6252"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a7176c0f9f1c98421b97735d892cf6252">REGISTER_APPROVE</a> 1</td></tr>
+<tr class="separator:a7176c0f9f1c98421b97735d892cf6252"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8887b49bbb02dd30b4eb9f6c7773c63"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ad8887b49bbb02dd30b4eb9f6c7773c63">REGISTER_OPEN</a> 2</td></tr>
+<tr class="separator:ad8887b49bbb02dd30b4eb9f6c7773c63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada72d88ae39a7e3b45baea201cb49a29"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ada72d88ae39a7e3b45baea201cb49a29">CONTACT_IS_FOLLOWER</a> 1</td></tr>
+<tr class="separator:ada72d88ae39a7e3b45baea201cb49a29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c5e9e293c8242dcb9bc2c3ea2fee2c9"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a6c5e9e293c8242dcb9bc2c3ea2fee2c9">CONTACT_IS_SHARING</a> 2</td></tr>
+<tr class="separator:a6c5e9e293c8242dcb9bc2c3ea2fee2c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27299ecfb9e9a99826f17a1c14c6995f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a27299ecfb9e9a99826f17a1c14c6995f">CONTACT_IS_FRIEND</a> 3</td></tr>
+<tr class="separator:a27299ecfb9e9a99826f17a1c14c6995f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac86615ddc0763a00f5311c90e991730c"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac86615ddc0763a00f5311c90e991730c">UPDATE_SUCCESS</a> 0</td></tr>
+<tr class="separator:ac86615ddc0763a00f5311c90e991730c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75fc600186b13c3b25e661afefb5eac8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a75fc600186b13c3b25e661afefb5eac8">UPDATE_FAILED</a> 1</td></tr>
+<tr class="separator:a75fc600186b13c3b25e661afefb5eac8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43c6c7d84d880e9500bd4f8f8ecc5731"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731">CLIENT_MODE_NORMAL</a> 0x0000</td></tr>
+<tr class="separator:a43c6c7d84d880e9500bd4f8f8ecc5731"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6f6f6f40139f12fc09ec47373b30919"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#af6f6f6f40139f12fc09ec47373b30919">CLIENT_MODE_LOAD</a> 0x0001</td></tr>
+<tr class="separator:af6f6f6f40139f12fc09ec47373b30919"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f40aa5bafff8c4eebdc62e5121daf77"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a3f40aa5bafff8c4eebdc62e5121daf77">CLIENT_MODE_UPDATE</a> 0x0002</td></tr>
+<tr class="separator:a3f40aa5bafff8c4eebdc62e5121daf77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09532c3f750ae8c4527e63b2b790cbf3"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3">PAGE_NORMAL</a> 0x0000</td></tr>
+<tr class="separator:a09532c3f750ae8c4527e63b2b790cbf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e322a2a2d0f51924c0b2e874988e640"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640">PAGE_HIDDEN</a> 0x0001</td></tr>
+<tr class="separator:a5e322a2a2d0f51924c0b2e874988e640"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa275653b9c87abc7391bb8040c1c2de9"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa275653b9c87abc7391bb8040c1c2de9">PAGE_AUTOCONNECT</a> 0x0002</td></tr>
+<tr class="separator:aa275653b9c87abc7391bb8040c1c2de9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8231d115060d41a9c2a677f2c86f10ed"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a8231d115060d41a9c2a677f2c86f10ed">PAGE_APPLICATION</a> 0x0004</td></tr>
+<tr class="separator:a8231d115060d41a9c2a677f2c86f10ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b8484922918946d041e5e0515dbe718"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5b8484922918946d041e5e0515dbe718">PAGE_DIRECTORY_CHANNEL</a> 0x0008</td></tr>
+<tr class="separator:a5b8484922918946d041e5e0515dbe718"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4edce16cb7f21cdafa1e85bf63d713e6"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6">PAGE_REMOVED</a> 0x8000</td></tr>
+<tr class="separator:a4edce16cb7f21cdafa1e85bf63d713e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a49b29838ef2c45ab3556b52baec6a4"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4">PHOTO_NORMAL</a> 0x0000</td></tr>
+<tr class="separator:a4a49b29838ef2c45ab3556b52baec6a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4bc9c50ecc927b92d519e36562b0df0"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab4bc9c50ecc927b92d519e36562b0df0">PHOTO_PROFILE</a> 0x0001</td></tr>
+<tr class="separator:ab4bc9c50ecc927b92d519e36562b0df0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac43182e0d8bae7576a30b603774974f8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac43182e0d8bae7576a30b603774974f8">PHOTO_XCHAN</a> 0x0002</td></tr>
+<tr class="separator:ac43182e0d8bae7576a30b603774974f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78849a1bf8ce8d9804b4cbb502e8f383"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383">PHOTO_THING</a> 0x0004</td></tr>
+<tr class="separator:a78849a1bf8ce8d9804b4cbb502e8f383"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3cef7b63e25e7bafea3fcf6b99fad0e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e">NETWORK_DFRN</a> 'dfrn'</td></tr>
+<tr class="separator:ae3cef7b63e25e7bafea3fcf6b99fad0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c65e925994566a63e6c03c381f1b4a0"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a2c65e925994566a63e6c03c381f1b4a0">NETWORK_ZOT</a> 'zot!'</td></tr>
+<tr class="separator:a2c65e925994566a63e6c03c381f1b4a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef4b6c558c68c88c10f13c5a00c20e3d"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aef4b6c558c68c88c10f13c5a00c20e3d">NETWORK_OSTATUS</a> 'stat'</td></tr>
+<tr class="separator:aef4b6c558c68c88c10f13c5a00c20e3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4bddb41a0cf407178ec5278b950c393"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab4bddb41a0cf407178ec5278b950c393">NETWORK_FEED</a> 'feed'</td></tr>
+<tr class="separator:ab4bddb41a0cf407178ec5278b950c393"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a38f6c7fe33b5434a24b4314567753dfa"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a38f6c7fe33b5434a24b4314567753dfa">NETWORK_DIASPORA</a> 'dspr'</td></tr>
+<tr class="separator:a38f6c7fe33b5434a24b4314567753dfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7236b2cdcf59f02a42302e893a99013b"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a7236b2cdcf59f02a42302e893a99013b">NETWORK_MAIL</a> 'mail'</td></tr>
+<tr class="separator:a7236b2cdcf59f02a42302e893a99013b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa17a4f9c63f5cbc5c06f1066b6aebc42"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa17a4f9c63f5cbc5c06f1066b6aebc42">NETWORK_MAIL2</a> 'mai2'</td></tr>
+<tr class="separator:aa17a4f9c63f5cbc5c06f1066b6aebc42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3905ea8f8568d0236db13fca40514e3"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#af3905ea8f8568d0236db13fca40514e3">NETWORK_FACEBOOK</a> 'face'</td></tr>
+<tr class="separator:af3905ea8f8568d0236db13fca40514e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b043b7fdcfd4e8c9c3747574afc6caa"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5b043b7fdcfd4e8c9c3747574afc6caa">NETWORK_LINKEDIN</a> 'lnkd'</td></tr>
+<tr class="separator:a5b043b7fdcfd4e8c9c3747574afc6caa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43296b1b4398aacbf92a4b2d56bab91e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a43296b1b4398aacbf92a4b2d56bab91e">NETWORK_XMPP</a> 'xmpp'</td></tr>
+<tr class="separator:a43296b1b4398aacbf92a4b2d56bab91e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae94f7c7c0909629a75aed1c41f10bc95"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ae94f7c7c0909629a75aed1c41f10bc95">NETWORK_MYSPACE</a> 'mysp'</td></tr>
+<tr class="separator:ae94f7c7c0909629a75aed1c41f10bc95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8905fde0a5b7882bdc083b20d9b34701"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a8905fde0a5b7882bdc083b20d9b34701">NETWORK_GPLUS</a> 'goog'</td></tr>
+<tr class="separator:a8905fde0a5b7882bdc083b20d9b34701"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab21fb0f3e6b962419955c6fc7f26734f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab21fb0f3e6b962419955c6fc7f26734f">NETWORK_PHANTOM</a> 'unkn'</td></tr>
+<tr class="separator:ab21fb0f3e6b962419955c6fc7f26734f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aec36f8fcd4cb14a52934590b3d6666b4"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aec36f8fcd4cb14a52934590b3d6666b4">PERMS_R_STREAM</a> 0x0001</td></tr>
+<tr class="separator:aec36f8fcd4cb14a52934590b3d6666b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad789aef3cb95fc1eb36be7c4283d0137"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ad789aef3cb95fc1eb36be7c4283d0137">PERMS_R_PROFILE</a> 0x0002</td></tr>
+<tr class="separator:ad789aef3cb95fc1eb36be7c4283d0137"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29e921c0c72412cc738e44cca6ca1f62"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a29e921c0c72412cc738e44cca6ca1f62">PERMS_R_PHOTOS</a> 0x0004</td></tr>
+<tr class="separator:a29e921c0c72412cc738e44cca6ca1f62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d6d4fc5fafcc9156811669158541caf"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a3d6d4fc5fafcc9156811669158541caf">PERMS_R_ABOOK</a> 0x0008</td></tr>
+<tr class="separator:a3d6d4fc5fafcc9156811669158541caf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8bb0395933b5e886f086f6a2fb0bfa55"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a8bb0395933b5e886f086f6a2fb0bfa55">PERMS_W_STREAM</a> 0x0010</td></tr>
+<tr class="separator:a8bb0395933b5e886f086f6a2fb0bfa55"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b14a31a8aa9f3452a13383f413bffa2"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2">PERMS_W_WALL</a> 0x0020</td></tr>
+<tr class="separator:a6b14a31a8aa9f3452a13383f413bffa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a99a4a17cb644e7e6826ea07ecaf09777"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777">PERMS_W_TAGWALL</a> 0x0040</td></tr>
+<tr class="separator:a99a4a17cb644e7e6826ea07ecaf09777"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a32df13fec0e43281da5979e1f5579aa8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a32df13fec0e43281da5979e1f5579aa8">PERMS_W_COMMENT</a> 0x0080</td></tr>
+<tr class="separator:a32df13fec0e43281da5979e1f5579aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b31dd451bc6c37fe7c9c766ff385aaf"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a6b31dd451bc6c37fe7c9c766ff385aaf">PERMS_W_MAIL</a> 0x0100</td></tr>
+<tr class="separator:a6b31dd451bc6c37fe7c9c766ff385aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57eee7352714c004d36c26dda74af73e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a57eee7352714c004d36c26dda74af73e">PERMS_W_PHOTOS</a> 0x0200</td></tr>
+<tr class="separator:a57eee7352714c004d36c26dda74af73e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acd877c405b06b348b37b6f7e62a211e9"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#acd877c405b06b348b37b6f7e62a211e9">PERMS_W_CHAT</a> 0x0400</td></tr>
+<tr class="separator:acd877c405b06b348b37b6f7e62a211e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a423505ab8dbd8e39d04ae3fe1374102b"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b">PERMS_A_DELEGATE</a> 0x0800</td></tr>
+<tr class="separator:a423505ab8dbd8e39d04ae3fe1374102b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1db4f0009c9cb4e107eab0f914a3c8dc"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a1db4f0009c9cb4e107eab0f914a3c8dc">PERMS_R_STORAGE</a> 0x1000</td></tr>
+<tr class="separator:a1db4f0009c9cb4e107eab0f914a3c8dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fefd7486d3b888a05cfd3dc9575f115"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a4fefd7486d3b888a05cfd3dc9575f115">PERMS_W_STORAGE</a> 0x2000</td></tr>
+<tr class="separator:a4fefd7486d3b888a05cfd3dc9575f115"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab51965fabe54dc031e9a0ce1142ee83e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab51965fabe54dc031e9a0ce1142ee83e">PERMS_R_PAGES</a> 0x4000</td></tr>
+<tr class="separator:ab51965fabe54dc031e9a0ce1142ee83e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa9244fc9cc221980c07a20cc534111be"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa9244fc9cc221980c07a20cc534111be">PERMS_W_PAGES</a> 0x8000</td></tr>
+<tr class="separator:aa9244fc9cc221980c07a20cc534111be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff210e8403dd72368522b17fb6e5d4e7"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7">PERMS_PUBLIC</a> 0x0001</td></tr>
+<tr class="separator:aff210e8403dd72368522b17fb6e5d4e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6df1102664f64b274810db85197c2755"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a6df1102664f64b274810db85197c2755">PERMS_NETWORK</a> 0x0002</td></tr>
+<tr class="separator:a6df1102664f64b274810db85197c2755"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ff652e5cb83cd11cbb0350844e7b28f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f">PERMS_SITE</a> 0x0004</td></tr>
+<tr class="separator:a9ff652e5cb83cd11cbb0350844e7b28f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2d0e8a9b81ee548ef2ce8e4560da2f6"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6">PERMS_CONTACTS</a> 0x0008</td></tr>
+<tr class="separator:ab2d0e8a9b81ee548ef2ce8e4560da2f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9cc986b4f9dd6558cbb2e25aadbfd964"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a9cc986b4f9dd6558cbb2e25aadbfd964">PERMS_SPECIFIC</a> 0x0080</td></tr>
+<tr class="separator:a9cc986b4f9dd6558cbb2e25aadbfd964"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52b599cd13e152ebc80d7e4413683195"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a52b599cd13e152ebc80d7e4413683195">ABOOK_FLAG_BLOCKED</a> 0x0001</td></tr>
+<tr class="separator:a52b599cd13e152ebc80d7e4413683195"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3425e2de85b08f7041656d3a8502cb6"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa3425e2de85b08f7041656d3a8502cb6">ABOOK_FLAG_IGNORED</a> 0x0002</td></tr>
+<tr class="separator:aa3425e2de85b08f7041656d3a8502cb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34c756469ebed32e2fc987bcde62d382"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a34c756469ebed32e2fc987bcde62d382">ABOOK_FLAG_HIDDEN</a> 0x0004</td></tr>
+<tr class="separator:a34c756469ebed32e2fc987bcde62d382"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a222395aa223cfbff6166fab0b4e2e1d5"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a222395aa223cfbff6166fab0b4e2e1d5">ABOOK_FLAG_ARCHIVED</a> 0x0008</td></tr>
+<tr class="separator:a222395aa223cfbff6166fab0b4e2e1d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a68eebe493e6f729ffd1aeda7a4b11155"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a68eebe493e6f729ffd1aeda7a4b11155">ABOOK_FLAG_PENDING</a> 0x0010</td></tr>
+<tr class="separator:a68eebe493e6f729ffd1aeda7a4b11155"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0450389f24c632906fbc24347700a543"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0450389f24c632906fbc24347700a543">ABOOK_FLAG_SELF</a> 0x0080</td></tr>
+<tr class="separator:a0450389f24c632906fbc24347700a543"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0876e837cf3fad8a26417e315f6e2c8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ad0876e837cf3fad8a26417e315f6e2c8">MAIL_DELETED</a> 0x0001</td></tr>
+<tr class="separator:ad0876e837cf3fad8a26417e315f6e2c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3679df31c8dad1b71816b0322d5baff"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa3679df31c8dad1b71816b0322d5baff">MAIL_REPLIED</a> 0x0002</td></tr>
+<tr class="separator:aa3679df31c8dad1b71816b0322d5baff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa544a6c078130d0967a1f4ed8ce0a2d2"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa544a6c078130d0967a1f4ed8ce0a2d2">MAIL_ISREPLY</a> 0x0004</td></tr>
+<tr class="separator:aa544a6c078130d0967a1f4ed8ce0a2d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1fbb93cf030f07391f22cc2948744869"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a1fbb93cf030f07391f22cc2948744869">MAIL_SEEN</a> 0x0008</td></tr>
+<tr class="separator:a1fbb93cf030f07391f22cc2948744869"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4861de36017fe399c1839f778bad9f5"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ae4861de36017fe399c1839f778bad9f5">MAIL_RECALLED</a> 0x0010</td></tr>
+<tr class="separator:ae4861de36017fe399c1839f778bad9f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44ae1542a805ffd7f826fb511db07374"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a44ae1542a805ffd7f826fb511db07374">MAIL_OBSCURED</a> 0x0020</td></tr>
+<tr class="separator:a44ae1542a805ffd7f826fb511db07374"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa74438cf71e48e37bf7b440b94243985"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa74438cf71e48e37bf7b440b94243985">ATTACH_FLAG_DIR</a> 0x0001</td></tr>
+<tr class="separator:aa74438cf71e48e37bf7b440b94243985"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a781916f83fcc8ff1035649afa45f0292"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a781916f83fcc8ff1035649afa45f0292">ATTACH_FLAG_OS</a> 0x0002</td></tr>
+<tr class="separator:a781916f83fcc8ff1035649afa45f0292"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35625dacd2158b9f1f1a8e77f9f081fd"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd">MAX_LIKERS</a> 75</td></tr>
+<tr class="separator:a35625dacd2158b9f1f1a8e77f9f081fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3cd42a70c6b3999590e4fd7a1a9096af"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af">ZCURL_TIMEOUT</a> (-1)</td></tr>
+<tr class="separator:a3cd42a70c6b3999590e4fd7a1a9096af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56fd673eaa7014150297ce1162502db5"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a56fd673eaa7014150297ce1162502db5">NOTIFY_INTRO</a> 0x0001</td></tr>
+<tr class="separator:a56fd673eaa7014150297ce1162502db5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8c0cb0744c9a6b5d6d3baafb1f1e71d"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#af8c0cb0744c9a6b5d6d3baafb1f1e71d">NOTIFY_CONFIRM</a> 0x0002</td></tr>
+<tr class="separator:af8c0cb0744c9a6b5d6d3baafb1f1e71d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a505410c7edc5f5bb5fa227b98359793e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a505410c7edc5f5bb5fa227b98359793e">NOTIFY_WALL</a> 0x0004</td></tr>
+<tr class="separator:a505410c7edc5f5bb5fa227b98359793e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20f0eed431d25870b624b8937a07a59f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a20f0eed431d25870b624b8937a07a59f">NOTIFY_COMMENT</a> 0x0008</td></tr>
+<tr class="separator:a20f0eed431d25870b624b8937a07a59f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a285732e7889fa7f333cbe431111e1029"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a285732e7889fa7f333cbe431111e1029">NOTIFY_MAIL</a> 0x0010</td></tr>
+<tr class="separator:a285732e7889fa7f333cbe431111e1029"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d01ef178b72b145016cca1393415bc4"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a9d01ef178b72b145016cca1393415bc4">NOTIFY_SUGGEST</a> 0x0020</td></tr>
+<tr class="separator:a9d01ef178b72b145016cca1393415bc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a981d46380f9f23c308bac1f9cb00dc5b"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a981d46380f9f23c308bac1f9cb00dc5b">NOTIFY_PROFILE</a> 0x0040</td></tr>
+<tr class="separator:a981d46380f9f23c308bac1f9cb00dc5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab724491497ab2618b23a01d5da60aec0"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab724491497ab2618b23a01d5da60aec0">NOTIFY_TAGSELF</a> 0x0080</td></tr>
+<tr class="separator:ab724491497ab2618b23a01d5da60aec0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6937db5f581d006bf4a5c3d9c7e0461"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#af6937db5f581d006bf4a5c3d9c7e0461">NOTIFY_TAGSHARE</a> 0x0100</td></tr>
+<tr class="separator:af6937db5f581d006bf4a5c3d9c7e0461"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca08bc4f1554ba877500f6abcc99e1e8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aca08bc4f1554ba877500f6abcc99e1e8">NOTIFY_POKE</a> 0x0200</td></tr>
+<tr class="separator:aca08bc4f1554ba877500f6abcc99e1e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14d44d4a00223dc3db4ea962325db192"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a14d44d4a00223dc3db4ea962325db192">NOTIFY_SYSTEM</a> 0x8000</td></tr>
+<tr class="separator:a14d44d4a00223dc3db4ea962325db192"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ad9cc5d4354be741fa1de12b96e9955"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a3ad9cc5d4354be741fa1de12b96e9955">HUBLOC_FLAGS_PRIMARY</a> 0x0001</td></tr>
+<tr class="separator:a3ad9cc5d4354be741fa1de12b96e9955"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab54b24cc302e1a42a67a49d788b6b764"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab54b24cc302e1a42a67a49d788b6b764">HUBLOC_FLAGS_UNVERIFIED</a> 0x0002</td></tr>
+<tr class="separator:ab54b24cc302e1a42a67a49d788b6b764"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1af3ed96de14aa0d7891b39cc75b60f2"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2">XCHAN_FLAGS_HIDDEN</a> 0x0001</td></tr>
+<tr class="separator:a1af3ed96de14aa0d7891b39cc75b60f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c59dde058efebbc66520d136cbd1631"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0c59dde058efebbc66520d136cbd1631">TERM_UNKNOWN</a> 0</td></tr>
+<tr class="separator:a0c59dde058efebbc66520d136cbd1631"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2750985ec445617d7e82ae3098c91e3f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a2750985ec445617d7e82ae3098c91e3f">TERM_HASHTAG</a> 1</td></tr>
+<tr class="separator:a2750985ec445617d7e82ae3098c91e3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae37444eaa42705185080ccf3e670cbc2"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ae37444eaa42705185080ccf3e670cbc2">TERM_MENTION</a> 2</td></tr>
+<tr class="separator:ae37444eaa42705185080ccf3e670cbc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af33d1b2e98a1e21af672005525d46dfe"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#af33d1b2e98a1e21af672005525d46dfe">TERM_CATEGORY</a> 3</td></tr>
+<tr class="separator:af33d1b2e98a1e21af672005525d46dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45b12aefab9675baffc7a07a09486db8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a45b12aefab9675baffc7a07a09486db8">TERM_PCATEGORY</a> 4</td></tr>
+<tr class="separator:a45b12aefab9675baffc7a07a09486db8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afb97615e985a013799839b68b99018d7"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#afb97615e985a013799839b68b99018d7">TERM_FILE</a> 5</td></tr>
+<tr class="separator:afb97615e985a013799839b68b99018d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd7bb40da9cc073297e49736b338ca07"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#abd7bb40da9cc073297e49736b338ca07">TERM_SAVEDSEARCH</a> 6</td></tr>
+<tr class="separator:abd7bb40da9cc073297e49736b338ca07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d877df1e20bae765e1708be50f6b503"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0d877df1e20bae765e1708be50f6b503">TERM_THING</a> 7</td></tr>
+<tr class="separator:a0d877df1e20bae765e1708be50f6b503"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9eeb8989272d5ff804a616898bb13659"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a9eeb8989272d5ff804a616898bb13659">TERM_OBJ_POST</a> 1</td></tr>
+<tr class="separator:a9eeb8989272d5ff804a616898bb13659"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64617d4655804de2a3c86501ab4fdbfd"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a64617d4655804de2a3c86501ab4fdbfd">TERM_OBJ_PHOTO</a> 2</td></tr>
+<tr class="separator:a64617d4655804de2a3c86501ab4fdbfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aead84fa27d7516b855220fe004964a45"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aead84fa27d7516b855220fe004964a45">TERM_OBJ_PROFILE</a> 3</td></tr>
+<tr class="separator:aead84fa27d7516b855220fe004964a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8892374789fd261eb32a7969d934a14a"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a8892374789fd261eb32a7969d934a14a">TERM_OBJ_CHANNEL</a> 4</td></tr>
+<tr class="separator:a8892374789fd261eb32a7969d934a14a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a882b666adfe21f035a0f8c02806066d6"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a882b666adfe21f035a0f8c02806066d6">TERM_OBJ_OBJECT</a> 5</td></tr>
+<tr class="separator:a882b666adfe21f035a0f8c02806066d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0cc8dc76bd10ac0ec81bac08a46f82fe"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0cc8dc76bd10ac0ec81bac08a46f82fe">TERM_OBJ_THING</a> 6</td></tr>
+<tr class="separator:a0cc8dc76bd10ac0ec81bac08a46f82fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49f2a70b3b43aa904223a8d19e986a47"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> 'http://purl.org/zot'</td></tr>
+<tr class="separator:a49f2a70b3b43aa904223a8d19e986a47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ed4581ab66ebcde97f6b3730856b028"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a7ed4581ab66ebcde97f6b3730856b028">NAMESPACE_DFRN</a> 'http://purl.org/macgirvin/dfrn/1.0'</td></tr>
+<tr class="separator:a7ed4581ab66ebcde97f6b3730856b028"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d6e7f4c08bb68e4a424326a811bdd86"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86">NAMESPACE_THREAD</a> 'http://purl.org/syndication/thread/1.0'</td></tr>
+<tr class="separator:a1d6e7f4c08bb68e4a424326a811bdd86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4bfe22e163657690dfb6d5b1d04cb47e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e">NAMESPACE_TOMB</a> 'http://purl.org/atompub/tombstones/1.0'</td></tr>
+<tr class="separator:a4bfe22e163657690dfb6d5b1d04cb47e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5df5359090d1f8e898c36d7cf8878ad2"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2">NAMESPACE_ACTIVITY</a> 'http://activitystrea.ms/spec/1.0/'</td></tr>
+<tr class="separator:a5df5359090d1f8e898c36d7cf8878ad2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b8f8ad9dbe82711257d23891ef6b133"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> 'http://activitystrea.ms/schema/1.0/'</td></tr>
+<tr class="separator:a7b8f8ad9dbe82711257d23891ef6b133"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6626f383c3d2d459f731ab8b4f237d16"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a6626f383c3d2d459f731ab8b4f237d16">NAMESPACE_MEDIA</a> 'http://purl.org/syndication/atommedia'</td></tr>
+<tr class="separator:a6626f383c3d2d459f731ab8b4f237d16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee324eca9de4e0fedf01ab5f92e27c67"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aee324eca9de4e0fedf01ab5f92e27c67">NAMESPACE_SALMON_ME</a> 'http://salmon-protocol.org/ns/magic-env'</td></tr>
+<tr class="separator:aee324eca9de4e0fedf01ab5f92e27c67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a181c111f4b6c14d091dfd3bf0d0a22cd"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a181c111f4b6c14d091dfd3bf0d0a22cd">NAMESPACE_OSTATUSSUB</a> 'http://ostatus.org/schema/1.0/subscribe'</td></tr>
+<tr class="separator:a181c111f4b6c14d091dfd3bf0d0a22cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03d19251c245587de7ed959300b87bdf"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a03d19251c245587de7ed959300b87bdf">NAMESPACE_GEORSS</a> 'http://www.georss.org/georss'</td></tr>
+<tr class="separator:a03d19251c245587de7ed959300b87bdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b73e2548d6f9beb9c93211f488e336a"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0b73e2548d6f9beb9c93211f488e336a">NAMESPACE_POCO</a> 'http://portablecontacts.net/spec/1.0'</td></tr>
+<tr class="separator:a0b73e2548d6f9beb9c93211f488e336a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac195fc9003298923ea81f144388e24b1"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac195fc9003298923ea81f144388e24b1">NAMESPACE_FEED</a> 'http://schemas.google.com/g/2010#updates-from'</td></tr>
+<tr class="separator:ac195fc9003298923ea81f144388e24b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acca19aae62e1a6951a856b945de20d67"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#acca19aae62e1a6951a856b945de20d67">NAMESPACE_OSTATUS</a> 'http://ostatus.org/schema/1.0'</td></tr>
+<tr class="separator:acca19aae62e1a6951a856b945de20d67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afaf93b7026f784b113b4f8921745891e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#afaf93b7026f784b113b4f8921745891e">NAMESPACE_STATUSNET</a> 'http://status.net/schema/api/1/'</td></tr>
+<tr class="separator:afaf93b7026f784b113b4f8921745891e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a444ce608ce34efb82ee11852f36e825f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a444ce608ce34efb82ee11852f36e825f">NAMESPACE_ATOM1</a> 'http://www.w3.org/2005/Atom'</td></tr>
+<tr class="separator:a444ce608ce34efb82ee11852f36e825f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abdcdfc873ace4e0902177bad934de0c0"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#abdcdfc873ace4e0902177bad934de0c0">ACTIVITY_LIKE</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'like'</td></tr>
+<tr class="separator:abdcdfc873ace4e0902177bad934de0c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e57f846e6d47a308feced0f7274f178"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0e57f846e6d47a308feced0f7274f178">ACTIVITY_DISLIKE</a> <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/dislike'</td></tr>
+<tr class="separator:a0e57f846e6d47a308feced0f7274f178"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad302cb26b838898d475f57f61b0fcc9f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ad302cb26b838898d475f57f61b0fcc9f">ACTIVITY_OBJ_HEART</a> <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/heart'</td></tr>
+<tr class="separator:ad302cb26b838898d475f57f61b0fcc9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a176664e78dcb9132e16be69418223eb2"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a176664e78dcb9132e16be69418223eb2">ACTIVITY_FRIEND</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'make-friend'</td></tr>
+<tr class="separator:a176664e78dcb9132e16be69418223eb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe084c30a1810c10442edb4fbcbc0086"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#afe084c30a1810c10442edb4fbcbc0086">ACTIVITY_REQ_FRIEND</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'request-friend'</td></tr>
+<tr class="separator:afe084c30a1810c10442edb4fbcbc0086"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29528a2544373cc19a378f350040c6a1"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a29528a2544373cc19a378f350040c6a1">ACTIVITY_UNFRIEND</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'remove-friend'</td></tr>
+<tr class="separator:a29528a2544373cc19a378f350040c6a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ae728ac966ea1d3525a19e7fec59434"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5ae728ac966ea1d3525a19e7fec59434">ACTIVITY_FOLLOW</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'follow'</td></tr>
+<tr class="separator:a5ae728ac966ea1d3525a19e7fec59434"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a53e4bdb6f225da55115acb9277f75e53"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a53e4bdb6f225da55115acb9277f75e53">ACTIVITY_UNFOLLOW</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'stop-following'</td></tr>
+<tr class="separator:a53e4bdb6f225da55115acb9277f75e53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aced60c7285192e80b7c4757e45a7f1e3"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aced60c7285192e80b7c4757e45a7f1e3">ACTIVITY_JOIN</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'join'</td></tr>
+<tr class="separator:aced60c7285192e80b7c4757e45a7f1e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c3747e0f505f0d5271dc4c54e3feaf4"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5c3747e0f505f0d5271dc4c54e3feaf4">ACTIVITY_POST</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'post'</td></tr>
+<tr class="separator:a5c3747e0f505f0d5271dc4c54e3feaf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f4264232dbb6c3b41f2617deecb1866"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a7f4264232dbb6c3b41f2617deecb1866">ACTIVITY_UPDATE</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'update'</td></tr>
+<tr class="separator:a7f4264232dbb6c3b41f2617deecb1866"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a12c781cefc20167231e2e3fd5866b1b5"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a12c781cefc20167231e2e3fd5866b1b5">ACTIVITY_TAG</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'tag'</td></tr>
+<tr class="separator:a12c781cefc20167231e2e3fd5866b1b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e2ea123d29a72012db1241f96280b0e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a3e2ea123d29a72012db1241f96280b0e">ACTIVITY_FAVORITE</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'favorite'</td></tr>
+<tr class="separator:a3e2ea123d29a72012db1241f96280b0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14ba8f9e162f2559831ee3bf98e0c3bd"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a14ba8f9e162f2559831ee3bf98e0c3bd">ACTIVITY_POKE</a> <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/poke'</td></tr>
+<tr class="separator:a14ba8f9e162f2559831ee3bf98e0c3bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7aa57438db03834aaa0b468bdce773a6"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a7aa57438db03834aaa0b468bdce773a6">ACTIVITY_MOOD</a> <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/mood'</td></tr>
+<tr class="separator:a7aa57438db03834aaa0b468bdce773a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a98dd0110dc6c8e24cefc8ae74d5562"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0a98dd0110dc6c8e24cefc8ae74d5562">ACTIVITY_OBJ_COMMENT</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'comment'</td></tr>
+<tr class="separator:a0a98dd0110dc6c8e24cefc8ae74d5562"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44d069c8a1cfcc6d2007c506a17ff28f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a44d069c8a1cfcc6d2007c506a17ff28f">ACTIVITY_OBJ_NOTE</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'note'</td></tr>
+<tr class="separator:a44d069c8a1cfcc6d2007c506a17ff28f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f8f25b13480c37a5f22511f53da8bab"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a2f8f25b13480c37a5f22511f53da8bab">ACTIVITY_OBJ_PERSON</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'person'</td></tr>
+<tr class="separator:a2f8f25b13480c37a5f22511f53da8bab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a774f0f792ebfec1e774c5a17bb9d5966"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a774f0f792ebfec1e774c5a17bb9d5966">ACTIVITY_OBJ_PHOTO</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'photo'</td></tr>
+<tr class="separator:a774f0f792ebfec1e774c5a17bb9d5966"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a74bf27f7564c9a37975e7b37d973dcab"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a74bf27f7564c9a37975e7b37d973dcab">ACTIVITY_OBJ_P_PHOTO</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'profile-photo'</td></tr>
+<tr class="separator:a74bf27f7564c9a37975e7b37d973dcab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf9b76832ee5f85e56466af162ba8a14"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aaf9b76832ee5f85e56466af162ba8a14">ACTIVITY_OBJ_ALBUM</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'photo-album'</td></tr>
+<tr class="separator:aaf9b76832ee5f85e56466af162ba8a14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e90096fede6acce16abf0da8cb2febe"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a2e90096fede6acce16abf0da8cb2febe">ACTIVITY_OBJ_EVENT</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'event'</td></tr>
+<tr class="separator:a2e90096fede6acce16abf0da8cb2febe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7bff2278e68a71e524afd1c7c951e1e3"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a7bff2278e68a71e524afd1c7c951e1e3">ACTIVITY_OBJ_GROUP</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'group'</td></tr>
+<tr class="separator:a7bff2278e68a71e524afd1c7c951e1e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1da180f961f49a11573cac4ff6c62c05"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a1da180f961f49a11573cac4ff6c62c05">ACTIVITY_OBJ_TAGTERM</a> <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/tagterm'</td></tr>
+<tr class="separator:a1da180f961f49a11573cac4ff6c62c05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a62c832a95e38b1fa23e6cef39521b7d5"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a62c832a95e38b1fa23e6cef39521b7d5">ACTIVITY_OBJ_PROFILE</a> <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/profile'</td></tr>
+<tr class="separator:a62c832a95e38b1fa23e6cef39521b7d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0fb63e51c2a9814941842ae8f2f4dff8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0fb63e51c2a9814941842ae8f2f4dff8">ACTIVITY_OBJ_THING</a> <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/thing'</td></tr>
+<tr class="separator:a0fb63e51c2a9814941842ae8f2f4dff8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2af173e4e9836ee7c90757b4793a2be3"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a2af173e4e9836ee7c90757b4793a2be3">GRAVITY_PARENT</a> 0</td></tr>
+<tr class="separator:a2af173e4e9836ee7c90757b4793a2be3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f5906598e90b5ea2b4245f682be4348"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a1f5906598e90b5ea2b4245f682be4348">GRAVITY_LIKE</a> 3</td></tr>
+<tr class="separator:a1f5906598e90b5ea2b4245f682be4348"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a12ce5de39789b0361e308d89925a20"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a4a12ce5de39789b0361e308d89925a20">GRAVITY_COMMENT</a> 6</td></tr>
+<tr class="separator:a4a12ce5de39789b0361e308d89925a20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84057c5bfa1bca5fba8497fe005ee4d8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a84057c5bfa1bca5fba8497fe005ee4d8">ACCOUNT_OK</a> 0x0000</td></tr>
+<tr class="separator:a84057c5bfa1bca5fba8497fe005ee4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3a4271630aabd8be592213f925d6a36"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#af3a4271630aabd8be592213f925d6a36">ACCOUNT_UNVERIFIED</a> 0x0001</td></tr>
+<tr class="separator:af3a4271630aabd8be592213f925d6a36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3bdfc20979c16f15bb9c60446a480f9"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#af3bdfc20979c16f15bb9c60446a480f9">ACCOUNT_BLOCKED</a> 0x0002</td></tr>
+<tr class="separator:af3bdfc20979c16f15bb9c60446a480f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a400519fa181591cd6fdbb8f25fbcba0a"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a400519fa181591cd6fdbb8f25fbcba0a">ACCOUNT_EXPIRED</a> 0x0004</td></tr>
+<tr class="separator:a400519fa181591cd6fdbb8f25fbcba0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab5ddbe69d3d03acd06e1fb281488cb78"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78">ACCOUNT_REMOVED</a> 0x0008</td></tr>
+<tr class="separator:ab5ddbe69d3d03acd06e1fb281488cb78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a032bbd6d0321e99e9117332c9ed2b1b8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a032bbd6d0321e99e9117332c9ed2b1b8">ACCOUNT_PENDING</a> 0x0010</td></tr>
+<tr class="separator:a032bbd6d0321e99e9117332c9ed2b1b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8400313df2c831653f9036f71ebd86d"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac8400313df2c831653f9036f71ebd86d">ACCOUNT_ROLE_ADMIN</a> 0x1000</td></tr>
+<tr class="separator:ac8400313df2c831653f9036f71ebd86d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab55b16ae7fc19fafe5afaedd49163bbf"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab55b16ae7fc19fafe5afaedd49163bbf">ITEM_VISIBLE</a> 0x0000</td></tr>
+<tr class="separator:ab55b16ae7fc19fafe5afaedd49163bbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac99fc4d040764eac1736bec6973556fe"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac99fc4d040764eac1736bec6973556fe">ITEM_HIDDEN</a> 0x0001</td></tr>
+<tr class="separator:ac99fc4d040764eac1736bec6973556fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab28dc518fa90b6f617dd8c564eb4f35f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f">ITEM_BLOCKED</a> 0x0002</td></tr>
+<tr class="separator:ab28dc518fa90b6f617dd8c564eb4f35f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac01230c7655e0705b2e99c9bc03c4450"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac01230c7655e0705b2e99c9bc03c4450">ITEM_MODERATED</a> 0x0004</td></tr>
+<tr class="separator:ac01230c7655e0705b2e99c9bc03c4450"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40d885b2cfd736aab4234ae641ca4dfb"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb">ITEM_SPAM</a> 0x0008</td></tr>
+<tr class="separator:a40d885b2cfd736aab4234ae641ca4dfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3515ea6bf77495de89b93e9ccd881c49"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a3515ea6bf77495de89b93e9ccd881c49">ITEM_DELETED</a> 0x0010</td></tr>
+<tr class="separator:a3515ea6bf77495de89b93e9ccd881c49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adaeb4f590c56326b2dca3b19f31b6272"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#adaeb4f590c56326b2dca3b19f31b6272">ITEM_UNPUBLISHED</a> 0x0020</td></tr>
+<tr class="separator:adaeb4f590c56326b2dca3b19f31b6272"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af489d0c3166551b93e63a79ff2c9be35"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#af489d0c3166551b93e63a79ff2c9be35">ITEM_WEBPAGE</a> 0x0040</td></tr>
+<tr class="separator:af489d0c3166551b93e63a79ff2c9be35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac890557fedc5b5a3b1d996249b1e1a20"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac890557fedc5b5a3b1d996249b1e1a20">ITEM_DELAYED_PUBLISH</a> 0x0080</td></tr>
+<tr class="separator:ac890557fedc5b5a3b1d996249b1e1a20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c9dce0ef27b35397e29298eb966f7f7"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a8c9dce0ef27b35397e29298eb966f7f7">ITEM_ORIGIN</a> 0x0001</td></tr>
+<tr class="separator:a8c9dce0ef27b35397e29298eb966f7f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a009e6a0637cb65804ea8094ecc4450b0"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a009e6a0637cb65804ea8094ecc4450b0">ITEM_UNSEEN</a> 0x0002</td></tr>
+<tr class="separator:a009e6a0637cb65804ea8094ecc4450b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7af107fab8d62b9a73801713b774ed30"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a7af107fab8d62b9a73801713b774ed30">ITEM_STARRED</a> 0x0004</td></tr>
+<tr class="separator:a7af107fab8d62b9a73801713b774ed30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aefba06f1c0842036329033e7567ecf6d"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aefba06f1c0842036329033e7567ecf6d">ITEM_UPLINK</a> 0x0008</td></tr>
+<tr class="separator:aefba06f1c0842036329033e7567ecf6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad33b494084f729b6ee3b0bc457718a1"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aad33b494084f729b6ee3b0bc457718a1">ITEM_UPLINK_PRV</a> 0x0010</td></tr>
+<tr class="separator:aad33b494084f729b6ee3b0bc457718a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6788e99021ec8ffb0fa94d651f22a322"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a6788e99021ec8ffb0fa94d651f22a322">ITEM_WALL</a> 0x0020</td></tr>
+<tr class="separator:a6788e99021ec8ffb0fa94d651f22a322"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a749144d8dd9c1366596a0213c277d050"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a749144d8dd9c1366596a0213c277d050">ITEM_THREAD_TOP</a> 0x0040</td></tr>
+<tr class="separator:a749144d8dd9c1366596a0213c277d050"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8663f32171568489dbb2a01dd00371f8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a8663f32171568489dbb2a01dd00371f8">ITEM_NOTSHOWN</a> 0x0080</td></tr>
+<tr class="separator:a8663f32171568489dbb2a01dd00371f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a939de9a99278f4fd7dcd0ee67f243f08"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a939de9a99278f4fd7dcd0ee67f243f08">ITEM_NSFW</a> 0x0100</td></tr>
+<tr class="separator:a939de9a99278f4fd7dcd0ee67f243f08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2958a2bd5422b85329d7c36c06dbc221"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221">ITEM_RELAY</a> 0x0200</td></tr>
+<tr class="separator:a2958a2bd5422b85329d7c36c06dbc221"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8da836617174eed9fc2ac8054125354b"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a8da836617174eed9fc2ac8054125354b">ITEM_MENTIONSME</a> 0x0400</td></tr>
+<tr class="separator:a8da836617174eed9fc2ac8054125354b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a949116d9a295b214293006c060ca4848"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a949116d9a295b214293006c060ca4848">ITEM_NOCOMMENT</a> 0x0800</td></tr>
+<tr class="separator:a949116d9a295b214293006c060ca4848"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c8906f1af94a3559a5b4661067bb79d"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a2c8906f1af94a3559a5b4661067bb79d">ITEM_OBSCURED</a> 0x1000</td></tr>
+<tr class="separator:a2c8906f1af94a3559a5b4661067bb79d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a081307d681d7d04f17b9ced2076e7c85"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">absurl </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$path</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a75a90b0eadd0df510f7e63210733634d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">appdirpath </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7">get_capath()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abc0a90a1a77f5b668aa7e4b57d1776a7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">argc </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>, <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles_aside()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a768f00b7d66be0daf7ef4eea2e862006"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">argv </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>, <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message_aside()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">profile_tabs()</a>, <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles_aside()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e">view_init()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9cbab4ee728e9a8b4ce952bae643044e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">build_querystring </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$params</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>returns querystring as string from a mapped array</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">params</td><td>Array </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4c02d88e66852a01bd5a1feecb7c3ce3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_config </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Synchronise plugins:</p>
+<p>$a-&gt;config['system']['addon'] contains a comma-separated list of names of plugins/addons which are used on this system. Go through the database list of already installed addons, and if we have an entry, but it isn't in the config list, call the unload procedure and mark it uninstalled in the database (for now we'll remove it). Then go through the config list and if we have a plugin that isn't installed, call the install procedure and add it to the database.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab79b8b4555cae20d03f8200666d89d63"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">clean_urls </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda">z_path()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acc4e0c910af066148b810e5fde55fff1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">construct_page </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Build the page - now that we have all the components</p>
+
+</div>
+</div>
+<a class="anchor" id="aa4221641e5c21db69fa52c426b9017f5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">curPageURL </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Returns the complete URL of the current page, e.g.: http(s)://something.com/network</p>
+<p>Taken from <a href="http://webcheatsheet.com/php/get_current_page_url.php">http://webcheatsheet.com/php/get_current_page_url.php</a> </p>
+
+<p>Referenced by <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad206598b909e8eb67eb0e0bb5ef69c13"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">current_theme </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty\__construct()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">current_theme_url()</a>, and <a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">theme_include()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a926cad0b3d8b9d9ee5da1898fc063ba3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">current_theme_url </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$installing</em> = <code>false</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Return full URL to theme which is currently in effect. Provide a sane default if nothing is chosen or the specified theme does not exist. </p>
+
+<p>Referenced by <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3e0930933fb2c0bf8211cc7ab4e1c3b4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_timer </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, and <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">Template\replace_macros()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aca5e42678e178c6b9034610d66666fd7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fix_system_urls </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$oldurl</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$newurl</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afe88b920aa285982edb817a0dd44eb37"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_account_id </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0e6db7e365f2b041a828b93786f694bc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_app </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty\__construct()</a>, <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine\__construct()</a>, <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template()</a>, <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc()</a>, <a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks()</a>, <a class="el" href="items_8php.html#a1e75047cf175aaee8dd16aa761913ff9">can_comment_on_post()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa">channel_remove()</a>, <a class="el" href="security_8php.html#a9c6180e82150a5a9af91a1255d096b5c">check_form_security_token()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="include_2network_8php.html#a37ddeb88a3fd1dee9e8339723f9edf9a">fetch_url()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, <a class="el" href="boot_8php.html#afe88b920aa285982edb817a0dd44eb37">get_account_id()</a>, <a class="el" href="language_8php.html#a980dee1d8715a98ab02e36b59facf8ed">get_best_language()</a>, <a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="security_8php.html#acd06ef411116115c2f0a92633700db8a">get_form_security_token()</a>, <a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">FriendicaSmartyEngine\get_intltext_template()</a>, <a class="el" href="plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295">get_intltext_template()</a>, <a class="el" href="plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4">get_markup_template()</a>, <a class="el" href="boot_8php.html#a623e49c79943f3e7bdb770d021683cf7">get_observer_hash()</a>, <a class="el" href="text_8php.html#a05b7f26dc2df78681f57eeade53040c6">get_plink()</a>, <a class="el" href="settings_8php.html#a39abc76ff5459c57e3b957664f273f18">get_theme_config_file()</a>, <a class="el" href="plugin_8php.html#a48047edfbef770125a5508dcc2f9282f">get_theme_screenshot()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="photo__driver_8php.html#a7273b82b017fd96d29b2c57bab03aea6">guess_image_type()</a>, <a class="el" href="plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a">head_add_css()</a>, <a class="el" href="plugin_8php.html#a516591850f4fd49fd1425cfa54089db8">head_add_js()</a>, <a class="el" href="plugin_8php.html#af92789f559b89a380e49d303218aeeca">head_get_css()</a>, <a class="el" href="plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1">head_get_js()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info()</a>, <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">is_site_admin()</a>, <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">item_redir_and_replace_images()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">load_hooks()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="items_8php.html#ac1fcf621dce7370515b420a7753f4726">map_scope()</a>, <a class="el" href="nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a">nav_set_selected()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="include_2network_8php.html#aa44d9e33a579d930e9e79c4ebb3d6b5e">post_url()</a>, <a class="el" href="text_8php.html#ac19d2b33a58372a357a43d51eed19162">preg_heart()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">public_permissions_sql()</a>, <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">terminate_friendship()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">theme_include()</a>, <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">what_next()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, and <a class="el" href="zot_8php.html#a77720d6b59894e9b609af89c310c8a4d">zot_finger()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad2c97627a313d53df1a1c7b4215ddb51"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_birthdays </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae381db3d43f8e7c1da8b15d14ecf5312"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_events </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a97769915c9f14adc4f8ab1ea2cecfd90"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_max_import_size </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#af94c281016c6c912d06e064113336c5c">limit_body_size()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a490972c02fdb638c52ec0e012a30bfd2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_my_address </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="boot_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>, and <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa46321e1cd6a3b8dfde8bf9510112fec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_my_url </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, and <a class="el" href="boot_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a623e49c79943f3e7bdb770d021683cf7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_observer_hash </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, and <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaeb666872995e3ab8da8f7bc5f3b2bd3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_theme_uid </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5ab6181607a090bcdbaa13b15b85aba1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">goaway </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa">channel_remove()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254">toggle_mobile_init()</a>, and <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a24a7a70afedd5d85fe0eadc85afa9f77"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">head_get_icon </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0e4701c9742c3ef88f02ac450a042a84"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">head_set_icon </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$icon</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, and <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adfb2fc7be5a4226c0a8e24131da9d498"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">info </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac17fc8a416ea79e9d5cb4dc9a8ff8c5c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">is_ajax </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa1e828bbbcba170265eb2668d8daf42e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">is_site_admin </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">check_account_admin()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aea7fc57a4d8e9dcb42f2601b0b9b761c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">killme </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine\__construct()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8">api_ff_ids()</a>, <a class="el" href="include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74">api_friendica_version()</a>, <a class="el" href="include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0">api_oauth_access_token()</a>, <a class="el" href="include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3">api_oauth_request_token()</a>, <a class="el" href="include_2api_8php.html#a8969e8d9c683f12ba17dcd4b059e020d">api_statusnet_version()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1">goaway()</a>, <a class="el" href="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">http_status_exit()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="include_2network_8php.html#a4c5d50079e089168d9248427018fffd4">json_return_and_die()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch_init()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6">php_init()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="pretheme_8php.html#af5660943ee99db5fd75182316522eafe">pretheme_init()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="classApp.html#abf46a653d8499e7c253cc1be894a6d83">App\register_template_engine()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0">system_unavailable()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="classApp.html#a94a1ed2dc493c58612d17035b74ae736">App\template_engine()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1">update_community_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e">view_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6">xml_status()</a>, and <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a719c7f3972d5f9268f37a41c76cd4ef6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">load_contact_links </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, and <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad4c9dc2c8a82e8f52b7404c1655eab44"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">local_user </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa">channel_remove()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="community_8php.html#a56c94ec978a38633c5628fa6f8e386d9">community_init()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198">crepair_init()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory_aside()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592">follow_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="boot_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid()</a>, <a class="el" href="mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c">group_aside()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30">nogroup_content()</a>, <a class="el" href="nogroup_8php.html#a099cb353bf62e8453069ce107b763212">nogroup_init()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="boot_8php.html#a5b45d647da3743a7fc8c6223350b4d67">profile_create_sidebar()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3">profile_photo_aside()</a>, <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">profile_tabs()</a>, <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles_aside()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc">profperm_aside()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm_init()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search_saved_searches()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings_init()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">stream_perms_api_uids()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">theme_post()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections_aside()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</a>, and <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aefecf8599036df7f1b95d6820e0e2fa4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">login </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$register</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$form_id</em> = <code>'main-login'</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hiddens</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592">follow_content()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, and <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9255af5ae9c887520091ea04763c1a88"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">notice </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0">group_add()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30">nogroup_content()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</a>, and <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab346a2ece14993861f3e4206befa94f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">proc_run </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$cmd</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Wrap calls to proc_close(proc_open()) and call hook so plugins can take part in process :)</p>
+<p>args: $cmd program to run next args are passed as $cmd command line</p>
+<p>e.g.: proc_run("ls","-la","/tmp");</p>
+<p>$cmd and string args are surrounded with "" </p>
+
+<p>Referenced by <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">send_message()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5b45d647da3743a7fc8c6223350b4d67"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profile_create_sidebar </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a">common_aside()</a>, <a class="el" href="hcard_8php.html#a956c7cae2009652a37900306e5b7b73d">hcard_aside()</a>, <a class="el" href="profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e">profile_aside()</a>, <a class="el" href="profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3">profile_photo_aside()</a>, <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles_aside()</a>, <a class="el" href="profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc">profperm_aside()</a>, and <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections_aside()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4751b522ea913d0e7ed43e03d22e9e68"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profile_load </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$nickname</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$profile</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Function : profile_load <a class="el" href="classApp.html">App</a> $a string $nickname string $profile</p>
+<p>Summary: Loads a profile into the page sidebar. The function requires a writeable copy of the main <a class="el" href="classApp.html">App</a> structure, and the nickname of a registered local account.</p>
+<p>If the viewer is an authenticated remote viewer, the profile displayed is the one that has been configured for his/her viewing in the Contact manager. Passing a non-zero profile ID can also allow a preview of a selected profile by the owner.</p>
+<p>Profile information is placed in the <a class="el" href="classApp.html">App</a> structure for later retrieval. Honours the owner's chosen theme for display. </p>
+<p>load/reload current theme info</p>
+
+<p>Referenced by <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo_init()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm_init()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, and <a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a646123ebbb10eb6f5b6ff26f4288da9b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profile_sidebar </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$profile</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$block</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Function: profile_sidebar</p>
+<p>Formats a profile for display in the sidebar. It is very difficult to templatise the HTML completely because of all the conditional logic.</p>
+<p>: array $profile</p>
+<p>Returns HTML string stuitable for sidebar inclusion Exceptions: Returns empty string if passed $profile is wrong type or not populated </p>
+
+<p>Referenced by <a class="el" href="boot_8php.html#a5b45d647da3743a7fc8c6223350b4d67">profile_create_sidebar()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1dfcb5146e9d1eca4528bc580ad5d273"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profile_tabs </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$is_owner</em> = <code>False</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$nickname</em> = <code>Null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, and <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5542c5c2806ab8bca04bad53d47b5209"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">remote_user </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="boot_8php.html#a5b45d647da3743a7fc8c6223350b4d67">profile_create_sidebar()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections_aside()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aca47505b8732177f52bb2d647eb2741c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">startup </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Reverse the effect of magic_quotes_gpc if it is enabled. Please disable magic_quotes_gpc so we don't have to do this. See <a href="http://php.net/manual/en/security.magicquotes.disabling.php">http://php.net/manual/en/security.magicquotes.disabling.php</a> </p>
+
+<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac608a34f3bc180e7724192e0fd31f9b0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">system_unavailable </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a01353c9abebc3544ea080ac161729632"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">x </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$k</em> = <code>NULL</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty\__construct()</a>, <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#ae82608c317421f27446465aa6724733d">api_format_messages()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="event_8php.html#a180cccd63c2a2f00ff432b03113531f3">bbtoevent()</a>, <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="security_8php.html#a9c6180e82150a5a9af91a1255d096b5c">check_form_security_token()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198">crepair_init()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirfind_8php.html#ac689a812c84f161b3a0d42349f83981c">dirfind_init()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="items_8php.html#aa723c0571e314a1853a24c5854b4f54f">encode_rel_links()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="classApp.html#a604d659d6977a99de42a160343e5289a">App\get_baseurl()</a>, <a class="el" href="language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e">get_browser_language()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90">get_max_import_size()</a>, <a class="el" href="boot_8php.html#a490972c02fdb638c52ec0e012a30bfd2">get_my_address()</a>, <a class="el" href="boot_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec">get_my_url()</a>, <a class="el" href="text_8php.html#a05b7f26dc2df78681f57eeade53040c6">get_plink()</a>, <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0">group_add()</a>, <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group_rmv()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">local_user()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="mod_2network_8php.html#aeaa518c1a317516a3da337b88d358666">network_query_get_sel_tab()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="nogroup_8php.html#a099cb353bf62e8453069ce107b763212">nogroup_init()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249">printable()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">profile_tabs()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e">ref_session_read()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="classApp.html#abf46a653d8499e7c253cc1be894a6d83">App\register_template_engine()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209">remote_user()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, <a class="el" href="search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7">search_post()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classApp.html#a78788f6e9d8b713b138f81e457c5cd08">App\set_baseurl()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init()</a>, <a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="classApp.html#a94a1ed2dc493c58612d17035b74ae736">App\template_engine()</a>, <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3">webfinger_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab55e545b72ec8c097e052ea7d373491f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">z_birthday </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dob</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$tz</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$format</em> = <code>&quot;Y-m-d&#160;H:i:s&quot;</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aba208673515cbb8a55e5fa4a1da99fda"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">z_path </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="boot_8php.html#a081307d681d7d04f17b9ced2076e7c85">absurl()</a>, and <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="add517a0958ac684792c62142a3877f81"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">z_root </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="text_8php.html#a85e3a4851c16674834010d8419a5d7ca">chanlink_cid()</a>, <a class="el" href="text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0">chanlink_hash()</a>, <a class="el" href="text_8php.html#a2e8d6c402603be3a1256a16605e09c2a">chanlink_url()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6">format_css_if_exists()</a>, <a class="el" href="plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f">format_js_if_exists()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166">App\head_get_icon()</a>, <a class="el" href="boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77">head_get_icon()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6">magiclink_url()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, and <a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot_new_uid()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5b815330f3d177ab383af37a6c12e532"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zid </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$address</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>zid($s,$address = '') Adds a zid parameter to a url </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$s</td><td>The url to accept the zid </td></tr>
+ <tr><td class="paramtype">boolean</td><td class="paramname">$address</td><td>$address to use instead of session environment </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string</dd></dl>
+<p>'zid' string url - url to accept zid string zid - urlencoded zid string result - the return string we calculated, change it if you want to return something else </p>
+
+<p>Referenced by <a class="el" href="bbcode_8php.html#a52c45273fbb7ce5ec27094f7936856e1">bb_ShareAttributes()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind_content()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a680fbafc2db023c5b1309e0180e81315"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zid_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>zid_init(&amp;$a) If somebody arrives at our site using a zid, add their xchan to our DB if we don't have it already. And if they aren't already authenticated here, attempt reverse magic auth.</p>
+<p>'zid_init' string 'zid' - their zid string 'url' - the destination url </p>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a222395aa223cfbff6166fab0b4e2e1d5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ABOOK_FLAG_ARCHIVED 0x0008</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, and <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a52b599cd13e152ebc80d7e4413683195"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ABOOK_FLAG_BLOCKED 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, and <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a34c756469ebed32e2fc987bcde62d382"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ABOOK_FLAG_HIDDEN 0x0004</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa3425e2de85b08f7041656d3a8502cb6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ABOOK_FLAG_IGNORED 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, and <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a68eebe493e6f729ffd1aeda7a4b11155"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ABOOK_FLAG_PENDING 0x0010</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0450389f24c632906fbc24347700a543"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ABOOK_FLAG_SELF 0x0080</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e">abook_connections()</a>, <a class="el" href="Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5">abook_self()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af3bdfc20979c16f15bb9c60446a480f9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACCOUNT_BLOCKED 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, and <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a400519fa181591cd6fdbb8f25fbcba0a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACCOUNT_EXPIRED 0x0004</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a84057c5bfa1bca5fba8497fe005ee4d8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACCOUNT_OK 0x0000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Account Flags </p>
+
+<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a032bbd6d0321e99e9117332c9ed2b1b8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACCOUNT_PENDING 0x0010</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, and <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab5ddbe69d3d03acd06e1fb281488cb78"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACCOUNT_REMOVED 0x0008</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac8400313df2c831653f9036f71ebd86d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACCOUNT_ROLE_ADMIN 0x1000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Account roles </p>
+
+<p>Referenced by <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">is_site_admin()</a>, and <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af3a4271630aabd8be592213f925d6a36"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACCOUNT_UNVERIFIED 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, and <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0e57f846e6d47a308feced0f7274f178"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_DISLIKE <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/dislike'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item\add_child()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, and <a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">visible_activity()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3e2ea123d29a72012db1241f96280b0e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_FAVORITE <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'favorite'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5ae728ac966ea1d3525a19e7fec59434"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_FOLLOW <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'follow'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, and <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a176664e78dcb9132e16be69418223eb2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_FRIEND <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'make-friend'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, and <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aced60c7285192e80b7c4757e45a7f1e3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_JOIN <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'join'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abdcdfc873ace4e0902177bad934de0c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_LIKE <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'like'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>activity stream defines </p>
+
+<p>Referenced by <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item\add_child()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, and <a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">visible_activity()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7aa57438db03834aaa0b468bdce773a6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_MOOD <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/mood'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, and <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaf9b76832ee5f85e56466af162ba8a14"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_OBJ_ALBUM <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'photo-album'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0a98dd0110dc6c8e24cefc8ae74d5562"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_OBJ_COMMENT <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'comment'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2e90096fede6acce16abf0da8cb2febe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_OBJ_EVENT <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'event'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7bff2278e68a71e524afd1c7c951e1e3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_OBJ_GROUP <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'group'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad302cb26b838898d475f57f61b0fcc9f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_OBJ_HEART <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/heart'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a44d069c8a1cfcc6d2007c506a17ff28f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_OBJ_NOTE <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'note'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a74bf27f7564c9a37975e7b37d973dcab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_OBJ_P_PHOTO <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'profile-photo'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2f8f25b13480c37a5f22511f53da8bab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_OBJ_PERSON <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'person'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a774f0f792ebfec1e774c5a17bb9d5966"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_OBJ_PHOTO <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'photo'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a62c832a95e38b1fa23e6cef39521b7d5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_OBJ_PROFILE <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/profile'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1da180f961f49a11573cac4ff6c62c05"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_OBJ_TAGTERM <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/tagterm'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0fb63e51c2a9814941842ae8f2f4dff8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_OBJ_THING <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/thing'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a14ba8f9e162f2559831ee3bf98e0c3bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_POKE <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/poke'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, and <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5c3747e0f505f0d5271dc4c54e3feaf4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_POST <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'post'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8">construct_verb()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e">item_post_type()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, and <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afe084c30a1810c10442edb4fbcbc0086"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_REQ_FRIEND <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'request-friend'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, and <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a12c781cefc20167231e2e3fd5866b1b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_TAG <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'tag'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a53e4bdb6f225da55115acb9277f75e53"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_UNFOLLOW <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'stop-following'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, and <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a29528a2544373cc19a378f350040c6a1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_UNFRIEND <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'remove-friend'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7f4264232dbb6c3b41f2617deecb1866"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACTIVITY_UPDATE <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'update'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad34c1547020a305915bcc39707744690"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ATOM_TIME 'Y-m-d\TH:i:s\Z'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5">api_account_rate_limit_status()</a>, <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api_rss_extra()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">format_event_html()</a>, and <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa74438cf71e48e37bf7b440b94243985"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ATTACH_FLAG_DIR 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a781916f83fcc8ff1035649afa45f0292"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ATTACH_FLAG_OS 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af6f6f6f40139f12fc09ec47373b30919"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const CLIENT_MODE_LOAD 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a43c6c7d84d880e9500bd4f8f8ecc5731"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const CLIENT_MODE_NORMAL 0x0000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, and <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3f40aa5bafff8c4eebdc62e5121daf77"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const CLIENT_MODE_UPDATE 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ada72d88ae39a7e3b45baea201cb49a29"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const CONTACT_IS_FOLLOWER 1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>relationship types </p>
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="items_8php.html#a3a218d5e8ffbe261f773225ecded86a2">lose_sharer()</a>, and <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a27299ecfb9e9a99826f17a1c14c6995f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const CONTACT_IS_FRIEND 3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#ade53043e7bc5ab9cc9ef1e4fed6569d4">lose_follower()</a>, <a class="el" href="items_8php.html#a3a218d5e8ffbe261f773225ecded86a2">lose_sharer()</a>, and <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6c5e9e293c8242dcb9bc2c3ea2fee2c9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const CONTACT_IS_SHARING 2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="items_8php.html#ade53043e7bc5ab9cc9ef1e4fed6569d4">lose_follower()</a>, and <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac59a18a4838710d6c2de37aed6b21f03"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const DB_UPDATE_VERSION 1057</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa8a2b61e70900139d1ca28e46f1da49d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const DEFAULT_DB_ENGINE 'MyISAM'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Not yet used </p>
+
+</div>
+</div>
+<a class="anchor" id="abedd940e664017c61b48c6efa31d0cb8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const DIRECTORY_FALLBACK_MASTER 'https://zothub.com'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, and <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab7d65a7e7417825a4db62906bb600729"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const DIRECTORY_MODE_NORMAL 0x0000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8a60cc38bb567765fd926fef70205f16"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const DIRECTORY_MODE_PRIMARY 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aedfb9501ed408278667995524e0d15cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const DIRECTORY_MODE_SECONDARY 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a25476eec71fceda237f7dc1d78b0adb8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const DIRECTORY_MODE_STANDALONE 0x0100</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6b9909db6a7ec80ec6fdd40ba74014dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const DIRECTORY_REALM 'RED_GLOBAL'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0603d6ece8c5d37b4b7db697db053a4b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const EOL '&lt;br /&gt;' . &quot;\r\n&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="security_8php.html#a20f8b9851f23ee8894b8925584ef6821">check_form_security_std_err_msg()</a>, <a class="el" href="setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76">check_keys()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">format_like()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0">group_add()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30">nogroup_content()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</a>, and <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4a12ce5de39789b0361e308d89925a20"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const GRAVITY_COMMENT 6</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1f5906598e90b5ea2b4245f682be4348"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const GRAVITY_LIKE 3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, and <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2af173e4e9836ee7c90757b4793a2be3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const GRAVITY_PARENT 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>item weight for query ordering </p>
+
+</div>
+</div>
+<a class="anchor" id="a3ad9cc5d4354be741fa1de12b96e9955"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const HUBLOC_FLAGS_PRIMARY 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a77720d6b59894e9b609af89c310c8a4d">zot_finger()</a>, <a class="el" href="zot_8php.html#acdea9362d78a63dce948fdf0ea73ef0e">zot_get_hubloc()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab54b24cc302e1a42a67a49d788b6b764"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const HUBLOC_FLAGS_UNVERIFIED 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab28dc518fa90b6f617dd8c564eb4f35f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_BLOCKED 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac890557fedc5b5a3b1d996249b1e1a20"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_DELAYED_PUBLISH 0x0080</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, and <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3515ea6bf77495de89b93e9ccd881c49"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_DELETED 0x0010</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, and <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac99fc4d040764eac1736bec6973556fe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_HIDDEN 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, and <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8da836617174eed9fc2ac8054125354b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_MENTIONSME 0x0400</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac01230c7655e0705b2e99c9bc03c4450"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_MODERATED 0x0004</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a949116d9a295b214293006c060ca4848"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_NOCOMMENT 0x0800</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, and <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8663f32171568489dbb2a01dd00371f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_NOTSHOWN 0x0080</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a939de9a99278f4fd7dcd0ee67f243f08"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_NSFW 0x0100</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a5f690fc2484abec07840b4f9dd525bd9">encode_item_flags()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2c8906f1af94a3559a5b4661067bb79d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_OBSCURED 0x1000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, and <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8c9dce0ef27b35397e29298eb966f7f7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_ORIGIN 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p><a class="el" href="classItem.html">Item</a> Flags </p>
+
+<p>Referenced by <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2958a2bd5422b85329d7c36c06dbc221"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_RELAY 0x0200</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a40d885b2cfd736aab4234ae641ca4dfb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_SPAM 0x0008</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7af107fab8d62b9a73801713b774ed30"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_STARRED 0x0004</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a749144d8dd9c1366596a0213c277d050"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_THREAD_TOP 0x0040</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="items_8php.html#a5f690fc2484abec07840b4f9dd525bd9">encode_item_flags()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adaeb4f590c56326b2dca3b19f31b6272"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_UNPUBLISHED 0x0020</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a009e6a0637cb65804ea8094ecc4450b0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_UNSEEN 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aefba06f1c0842036329033e7567ecf6d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_UPLINK 0x0008</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, and <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aad33b494084f729b6ee3b0bc457718a1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_UPLINK_PRV 0x0010</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab55b16ae7fc19fafe5afaedd49163bbf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_VISIBLE 0x0000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p><a class="el" href="classItem.html">Item</a> visibility </p>
+
+<p>Referenced by <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, and <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6788e99021ec8ffb0fa94d651f22a322"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_WALL 0x0020</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af489d0c3166551b93e63a79ff2c9be35"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_WEBPAGE 0x0040</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, and <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3475ff6c2e575f946ea0ee377e944173"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const JPEG_QUALITY 100</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Image storage quality. Lower numbers save space at cost of image detail. For ease of upgrade, please do not change here. Change jpeg quality with $a-&gt;config['system']['jpeg_quality'] = n; in .htconfig.php, where n is netween 1 and 100, and with very poor results below about 50 </p>
+
+<p>Referenced by <a class="el" href="classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00">photo_gd\imageString()</a>, and <a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">photo_imagick\load()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a68d1d5bc9c7ccb663dc671b48c66df11"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const LANGUAGE_DETECT_MIN_CONFIDENCE 0.01</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a17cf72338b040891781a4bcbdd9a8595"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const LANGUAGE_DETECT_MIN_LENGTH 128</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Language detection parameters </p>
+
+<p>Referenced by <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afe63ae69ba55299f813766e54df06ede"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const LOGGER_ALL 4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6969947145a139ec374ce098224d8e81"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const LOGGER_DATA 3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f">mini_group_select()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">parse_xml_string()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">webfinger_dfrn()</a>, <a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">xml2array()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a93823d15ae07548a4c49de88d325cd26"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const LOGGER_DEBUG 2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item\add_child()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="classConversation.html#a2a96b7a6573ae53db861624659e831cb">Conversation\get_template_data()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="photo__driver_8php.html#a7273b82b017fd96d29b2c57bab03aea6">guess_image_type()</a>, <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">import_directory_profile()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="items_8php.html#af94c281016c6c912d06e064113336c5c">limit_body_size()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">Item\remove_child()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="classenotify.html#afbc088860f534c6c05788b48cfc262c6">enotify\send()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="plugin_8php.html#a90538627db68605aeb6db17a8ead6523">unload_plugin()</a>, <a class="el" href="zot_8php.html#a77720d6b59894e9b609af89c310c8a4d">zot_finger()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a17b4ea23d9ecf628d9c8f53b7abcb805"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const LOGGER_NORMAL 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>log levels </p>
+
+<p>Referenced by <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a022cea669f9f13ef7c6268b63884c57f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const LOGGER_TRACE 1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad0876e837cf3fad8a26417e315f6e2c8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const MAIL_DELETED 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa544a6c078130d0967a1f4ed8ce0a2d2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const MAIL_ISREPLY 0x0004</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a44ae1542a805ffd7f826fb511db07374"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const MAIL_OBSCURED 0x0020</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, and <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">send_message()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae4861de36017fe399c1839f778bad9f5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const MAIL_RECALLED 0x0010</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, and <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa3679df31c8dad1b71816b0322d5baff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const MAIL_REPLIED 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1fbb93cf030f07391f22cc2948744869"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const MAIL_SEEN 0x0008</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, and <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a525ca93ff35d3535d1a2b8ba57876afa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const MAX_IMAGE_LENGTH -1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>An alternate way of limiting picture upload sizes. Specify the maximum pixel length that pictures are allowed to be (for non-square pictures, it will apply to the longest side). Pictures longer than this length will be resized to be this length (on the longest side, the other side will be scaled appropriately). Modify this value using</p>
+<p>$a-&gt;config['system']['max_image_length'] = n;</p>
+<p>in .htconfig.php</p>
+<p>If you don't want to set a maximum length, set to -1. The default value is defined by 'MAX_IMAGE_LENGTH' below. </p>
+
+<p>Referenced by <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a35625dacd2158b9f1f1a8e77f9f081fd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const MAX_LIKERS 75</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Maximum number of "people who like (or don't like) this" that we will list by name </p>
+
+</div>
+</div>
+<a class="anchor" id="a5df5359090d1f8e898c36d7cf8878ad2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_ACTIVITY 'http://activitystrea.ms/spec/1.0/'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, and <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7b8f8ad9dbe82711257d23891ef6b133"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_ACTIVITY_SCHEMA 'http://activitystrea.ms/schema/1.0/'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="text_8php.html#af8a3e3a66a7b862d4510f145d2e13186">activity_match()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a444ce608ce34efb82ee11852f36e825f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_ATOM1 'http://www.w3.org/2005/Atom'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7ed4581ab66ebcde97f6b3730856b028"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_DFRN 'http://purl.org/macgirvin/dfrn/1.0'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, and <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">webfinger_dfrn()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac195fc9003298923ea81f144388e24b1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_FEED 'http://schemas.google.com/g/2010#updates-from'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a03d19251c245587de7ed959300b87bdf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_GEORSS 'http://www.georss.org/georss'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6626f383c3d2d459f731ab8b4f237d16"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_MEDIA 'http://purl.org/syndication/atommedia'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#aa723c0571e314a1853a24c5854b4f54f">encode_rel_links()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acca19aae62e1a6951a856b945de20d67"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_OSTATUS 'http://ostatus.org/schema/1.0'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a181c111f4b6c14d091dfd3bf0d0a22cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_OSTATUSSUB 'http://ostatus.org/schema/1.0/subscribe'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">webfinger_dfrn()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0b73e2548d6f9beb9c93211f488e336a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_POCO 'http://portablecontacts.net/spec/1.0'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aee324eca9de4e0fedf01ab5f92e27c67"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_SALMON_ME 'http://salmon-protocol.org/ns/magic-env'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afaf93b7026f784b113b4f8921745891e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_STATUSNET 'http://status.net/schema/api/1/'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1d6e7f4c08bb68e4a424326a811bdd86"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_THREAD 'http://purl.org/syndication/thread/1.0'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, and <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4bfe22e163657690dfb6d5b1d04cb47e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_TOMB 'http://purl.org/atompub/tombstones/1.0'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, and <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a49f2a70b3b43aa904223a8d19e986a47"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_ZOT 'http://purl.org/zot'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>various namespaces we may need to parse </p>
+
+</div>
+</div>
+<a class="anchor" id="ae3cef7b63e25e7bafea3fcf6b99fad0e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NETWORK_DFRN 'dfrn'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Network and protocol family types </p>
+
+<p>Referenced by <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, and <a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">terminate_friendship()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a38f6c7fe33b5434a24b4314567753dfa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NETWORK_DIASPORA 'dspr'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, and <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af3905ea8f8568d0236db13fca40514e3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NETWORK_FACEBOOK 'face'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab4bddb41a0cf407178ec5278b950c393"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NETWORK_FEED 'feed'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8905fde0a5b7882bdc083b20d9b34701"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NETWORK_GPLUS 'goog'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5b043b7fdcfd4e8c9c3747574afc6caa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NETWORK_LINKEDIN 'lnkd'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7236b2cdcf59f02a42302e893a99013b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NETWORK_MAIL 'mail'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa17a4f9c63f5cbc5c06f1066b6aebc42"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NETWORK_MAIL2 'mai2'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae94f7c7c0909629a75aed1c41f10bc95"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NETWORK_MYSPACE 'mysp'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aef4b6c558c68c88c10f13c5a00c20e3d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NETWORK_OSTATUS 'stat'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, and <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab21fb0f3e6b962419955c6fc7f26734f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NETWORK_PHANTOM 'unkn'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a43296b1b4398aacbf92a4b2d56bab91e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NETWORK_XMPP 'xmpp'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2c65e925994566a63e6c03c381f1b4a0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NETWORK_ZOT 'zot!'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, and <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a20f0eed431d25870b624b8937a07a59f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NOTIFY_COMMENT 0x0008</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, and <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af8c0cb0744c9a6b5d6d3baafb1f1e71d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NOTIFY_CONFIRM 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a56fd673eaa7014150297ce1162502db5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NOTIFY_INTRO 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>email notification options </p>
+
+<p>Referenced by <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, and <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a285732e7889fa7f333cbe431111e1029"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NOTIFY_MAIL 0x0010</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, and <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aca08bc4f1554ba877500f6abcc99e1e8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NOTIFY_POKE 0x0200</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, and <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a981d46380f9f23c308bac1f9cb00dc5b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NOTIFY_PROFILE 0x0040</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9d01ef178b72b145016cca1393415bc4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NOTIFY_SUGGEST 0x0020</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, and <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a14d44d4a00223dc3db4ea962325db192"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NOTIFY_SYSTEM 0x8000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab724491497ab2618b23a01d5da60aec0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NOTIFY_TAGSELF 0x0080</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, and <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af6937db5f581d006bf4a5c3d9c7e0461"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NOTIFY_TAGSHARE 0x0100</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a505410c7edc5f5bb5fa227b98359793e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NOTIFY_WALL 0x0004</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, and <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8231d115060d41a9c2a677f2c86f10ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PAGE_APPLICATION 0x0004</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa275653b9c87abc7391bb8040c1c2de9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PAGE_AUTOCONNECT 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5b8484922918946d041e5e0515dbe718"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PAGE_DIRECTORY_CHANNEL 0x0008</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd">create_dir_account()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5e322a2a2d0f51924c0b2e874988e640"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PAGE_HIDDEN 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd">create_dir_account()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a09532c3f750ae8c4527e63b2b790cbf3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PAGE_NORMAL 0x0000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>page/profile types</p>
+<p>PAGE_NORMAL is a typical personal profile account PAGE_SOAPBOX automatically approves all friend requests as CONTACT_IS_SHARING, (readonly) PAGE_COMMUNITY automatically approves all friend requests as CONTACT_IS_SHARING, but with write access to wall and comments (no email and not included in page owner's ACL lists) PAGE_FREELOVE automatically approves all friend requests as full friends (CONTACT_IS_FRIEND). </p>
+
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, and <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4edce16cb7f21cdafa1e85bf63d713e6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PAGE_REMOVED 0x8000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa">channel_remove()</a>, <a class="el" href="Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258">channelx_by_hash()</a>, <a class="el" href="Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc">channelx_by_n()</a>, and <a class="el" href="Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e">channelx_by_nick()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a423505ab8dbd8e39d04ae3fe1374102b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_A_DELEGATE 0x0800</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab2d0e8a9b81ee548ef2ce8e4560da2f6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_CONTACTS 0x0008</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#ac1fcf621dce7370515b420a7753f4726">map_scope()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, and <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6df1102664f64b274810db85197c2755"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_NETWORK 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#ac1fcf621dce7370515b420a7753f4726">map_scope()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, and <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aff210e8403dd72368522b17fb6e5d4e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_PUBLIC 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#ac1fcf621dce7370515b420a7753f4726">map_scope()</a>, and <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3d6d4fc5fafcc9156811669158541caf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_R_ABOOK 0x0008</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab51965fabe54dc031e9a0ce1142ee83e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_R_PAGES 0x4000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a29e921c0c72412cc738e44cca6ca1f62"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_R_PHOTOS 0x0004</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad789aef3cb95fc1eb36be7c4283d0137"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_R_PROFILE 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1db4f0009c9cb4e107eab0f914a3c8dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_R_STORAGE 0x1000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aec36f8fcd4cb14a52934590b3d6666b4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_R_STREAM 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Permissions </p>
+
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9ff652e5cb83cd11cbb0350844e7b28f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_SITE 0x0004</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#ac1fcf621dce7370515b420a7753f4726">map_scope()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, and <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9cc986b4f9dd6558cbb2e25aadbfd964"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_SPECIFIC 0x0080</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, and <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acd877c405b06b348b37b6f7e62a211e9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_W_CHAT 0x0400</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a32df13fec0e43281da5979e1f5579aa8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_W_COMMENT 0x0080</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a1e75047cf175aaee8dd16aa761913ff9">can_comment_on_post()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6b31dd451bc6c37fe7c9c766ff385aaf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_W_MAIL 0x0100</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, and <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa9244fc9cc221980c07a20cc534111be"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_W_PAGES 0x8000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a57eee7352714c004d36c26dda74af73e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_W_PHOTOS 0x0200</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4fefd7486d3b888a05cfd3dc9575f115"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_W_STORAGE 0x2000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8bb0395933b5e886f086f6a2fb0bfa55"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_W_STREAM 0x0010</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8">api_ff_ids()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a99a4a17cb644e7e6826ea07ecaf09777"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_W_TAGWALL 0x0040</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6b14a31a8aa9f3452a13383f413bffa2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_W_WALL 0x0020</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4a49b29838ef2c45ab3556b52baec6a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PHOTO_NORMAL 0x0000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Photo types </p>
+
+<p>Referenced by <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, and <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab4bc9c50ecc927b92d519e36562b0df0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PHOTO_PROFILE 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, and <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a78849a1bf8ce8d9804b4cbb502e8f383"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PHOTO_THING 0x0004</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac43182e0d8bae7576a30b603774974f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PHOTO_XCHAN 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8df201788c9dd0ca91384e3a14c08bce"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PNG_QUALITY 8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>$a-&gt;config['system']['png_quality'] from 0 (uncompressed) to 9 </p>
+
+<p>Referenced by <a class="el" href="classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00">photo_gd\imageString()</a>, and <a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">photo_imagick\load()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a96ad56755a21e1361dbd7bf93c9e7ff4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const RED_PLATFORM 'Red Matrix'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Red Matrix.</p>
+<p>The Red Matrix (aka "Red") is an open source decentralised communications platform combined with a decentralised identity/authentication framework wrapped in an extensible content management system, providing website designers the ability to embed fully decentralised communications and social tools into many traditional website designs (blogs, forums, small business websites, charitable organisations, etc.). Red also provides DNS mobility and internet scale privacy/access control.</p>
+<p>This allows any individual website to participate in a matrix of linked sites and people and media sharing which is far greater than the reach of an individual site.</p>
+<p>If you are reading the source code and come across a function or code block which is not documented, but you have a good idea what it does, please add some descriptive comments and push it to the main project. Even if your description isn't perfect, it gives us a base which we can build on and correct - so that eventually everything is fully documented. </p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a21cc29e0025943e7c28ff58cb4856ac3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const RED_VERSION trim(file_get_contents('version.inc')) . 'R'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74">api_friendica_version()</a>, <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7176c0f9f1c98421b97735d892cf6252"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const REGISTER_APPROVE 1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a69aac276ed82e010dc382b16ab4d59e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const REGISTER_CLOSED 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>registration policies </p>
+
+<p>Referenced by <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad8887b49bbb02dd30b4eb9f6c7773c63"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const REGISTER_OPEN 2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a02566ac9d891369a1d3ebb81a15722fc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const SSL_POLICY_FULL 1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="include_2network_8php.html#a2729d012410e470c527a62a3f777ded8">fix_contact_ssl_policy()</a>, and <a class="el" href="classApp.html#a604d659d6977a99de42a160343e5289a">App\get_baseurl()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af86c651547aa8f9e549ee40a09455549"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const SSL_POLICY_NONE 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>SSL redirection policies </p>
+
+<p>Referenced by <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, and <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adca48aee78465ae3064ca4432c0d87b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const SSL_POLICY_SELFSIGN 2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, and <a class="el" href="include_2network_8php.html#a2729d012410e470c527a62a3f777ded8">fix_contact_ssl_policy()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af33d1b2e98a1e21af672005525d46dfe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_CATEGORY 3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>, <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, and <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afb97615e985a013799839b68b99018d7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_FILE 5</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2750985ec445617d7e82ae3098c91e3f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_HASHTAG 1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>, <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag()</a>, <a class="el" href="items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7">item_getfeedtags()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae37444eaa42705185080ccf3e670cbc2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_MENTION 2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="text_8php.html#a76d1b3435c067978d7b484c45f56472b">get_mentions()</a>, <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag()</a>, <a class="el" href="items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7">item_getfeedtags()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8892374789fd261eb32a7969d934a14a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_OBJ_CHANNEL 4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a882b666adfe21f035a0f8c02806066d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_OBJ_OBJECT 5</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a64617d4655804de2a3c86501ab4fdbfd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_OBJ_PHOTO 2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9eeb8989272d5ff804a616898bb13659"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_OBJ_POST 1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="taxonomy_8php.html#a061b3db9426d4b074395f5824062cad4">tagadelic()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aead84fa27d7516b855220fe004964a45"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_OBJ_PROFILE 3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0cc8dc76bd10ac0ec81bac08a46f82fe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_OBJ_THING 6</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a45b12aefab9675baffc7a07a09486db8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_PCATEGORY 4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abd7bb40da9cc073297e49736b338ca07"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_SAVEDSEARCH 6</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, and <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search_saved_searches()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0d877df1e20bae765e1708be50f6b503"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_THING 7</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0c59dde058efebbc66520d136cbd1631"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_UNKNOWN 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Tag/term types </p>
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag()</a>, and <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a75fc600186b13c3b25e661afefb5eac8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const UPDATE_FAILED 1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac86615ddc0763a00f5311c90e991730c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const UPDATE_SUCCESS 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>DB update return values </p>
+
+<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1af3ed96de14aa0d7891b39cc75b60f2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XCHAN_FLAGS_HIDDEN 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">suggestion_query()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3cd42a70c6b3999590e4fd7a1a9096af"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ZCURL_TIMEOUT (-1)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Communication timeout </p>
+
+</div>
+</div>
+<a class="anchor" id="a36b31575f992a10b5927b76efba9362e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ZOT_REVISION 1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, and <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/boot_8php.js b/doc/html/boot_8php.js
new file mode 100644
index 000000000..c0401fd33
--- /dev/null
+++ b/doc/html/boot_8php.js
@@ -0,0 +1,249 @@
+var boot_8php =
+[
+ [ "App", "classApp.html", "classApp" ],
+ [ "absurl", "boot_8php.html#a081307d681d7d04f17b9ced2076e7c85", null ],
+ [ "appdirpath", "boot_8php.html#a75a90b0eadd0df510f7e63210733634d", null ],
+ [ "argc", "boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7", null ],
+ [ "argv", "boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006", null ],
+ [ "build_querystring", "boot_8php.html#a9cbab4ee728e9a8b4ce952bae643044e", null ],
+ [ "check_config", "boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3", null ],
+ [ "clean_urls", "boot_8php.html#ab79b8b4555cae20d03f8200666d89d63", null ],
+ [ "construct_page", "boot_8php.html#acc4e0c910af066148b810e5fde55fff1", null ],
+ [ "curPageURL", "boot_8php.html#aa4221641e5c21db69fa52c426b9017f5", null ],
+ [ "current_theme", "boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13", null ],
+ [ "current_theme_url", "boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3", null ],
+ [ "dba_timer", "boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4", null ],
+ [ "fix_system_urls", "boot_8php.html#aca5e42678e178c6b9034610d66666fd7", null ],
+ [ "get_account_id", "boot_8php.html#afe88b920aa285982edb817a0dd44eb37", null ],
+ [ "get_app", "boot_8php.html#a0e6db7e365f2b041a828b93786f694bc", null ],
+ [ "get_birthdays", "boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51", null ],
+ [ "get_events", "boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312", null ],
+ [ "get_max_import_size", "boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90", null ],
+ [ "get_my_address", "boot_8php.html#a490972c02fdb638c52ec0e012a30bfd2", null ],
+ [ "get_my_url", "boot_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec", null ],
+ [ "get_observer_hash", "boot_8php.html#a623e49c79943f3e7bdb770d021683cf7", null ],
+ [ "get_theme_uid", "boot_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3", null ],
+ [ "goaway", "boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1", null ],
+ [ "head_get_icon", "boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77", null ],
+ [ "head_set_icon", "boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84", null ],
+ [ "info", "boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498", null ],
+ [ "is_ajax", "boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c", null ],
+ [ "is_site_admin", "boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e", null ],
+ [ "killme", "boot_8php.html#aea7fc57a4d8e9dcb42f2601b0b9b761c", null ],
+ [ "load_contact_links", "boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6", null ],
+ [ "local_user", "boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44", null ],
+ [ "login", "boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4", null ],
+ [ "notice", "boot_8php.html#a9255af5ae9c887520091ea04763c1a88", null ],
+ [ "proc_run", "boot_8php.html#ab346a2ece14993861f3e4206befa94f0", null ],
+ [ "profile_create_sidebar", "boot_8php.html#a5b45d647da3743a7fc8c6223350b4d67", null ],
+ [ "profile_load", "boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68", null ],
+ [ "profile_sidebar", "boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b", null ],
+ [ "profile_tabs", "boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273", null ],
+ [ "remote_user", "boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209", null ],
+ [ "startup", "boot_8php.html#aca47505b8732177f52bb2d647eb2741c", null ],
+ [ "system_unavailable", "boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0", null ],
+ [ "x", "boot_8php.html#a01353c9abebc3544ea080ac161729632", null ],
+ [ "z_birthday", "boot_8php.html#ab55e545b72ec8c097e052ea7d373491f", null ],
+ [ "z_path", "boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda", null ],
+ [ "z_root", "boot_8php.html#add517a0958ac684792c62142a3877f81", null ],
+ [ "zid", "boot_8php.html#a5b815330f3d177ab383af37a6c12e532", null ],
+ [ "zid_init", "boot_8php.html#a680fbafc2db023c5b1309e0180e81315", null ],
+ [ "ABOOK_FLAG_ARCHIVED", "boot_8php.html#a222395aa223cfbff6166fab0b4e2e1d5", null ],
+ [ "ABOOK_FLAG_BLOCKED", "boot_8php.html#a52b599cd13e152ebc80d7e4413683195", null ],
+ [ "ABOOK_FLAG_HIDDEN", "boot_8php.html#a34c756469ebed32e2fc987bcde62d382", null ],
+ [ "ABOOK_FLAG_IGNORED", "boot_8php.html#aa3425e2de85b08f7041656d3a8502cb6", null ],
+ [ "ABOOK_FLAG_PENDING", "boot_8php.html#a68eebe493e6f729ffd1aeda7a4b11155", null ],
+ [ "ABOOK_FLAG_SELF", "boot_8php.html#a0450389f24c632906fbc24347700a543", null ],
+ [ "ACCOUNT_BLOCKED", "boot_8php.html#af3bdfc20979c16f15bb9c60446a480f9", null ],
+ [ "ACCOUNT_EXPIRED", "boot_8php.html#a400519fa181591cd6fdbb8f25fbcba0a", null ],
+ [ "ACCOUNT_OK", "boot_8php.html#a84057c5bfa1bca5fba8497fe005ee4d8", null ],
+ [ "ACCOUNT_PENDING", "boot_8php.html#a032bbd6d0321e99e9117332c9ed2b1b8", null ],
+ [ "ACCOUNT_REMOVED", "boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78", null ],
+ [ "ACCOUNT_ROLE_ADMIN", "boot_8php.html#ac8400313df2c831653f9036f71ebd86d", null ],
+ [ "ACCOUNT_UNVERIFIED", "boot_8php.html#af3a4271630aabd8be592213f925d6a36", null ],
+ [ "ACTIVITY_DISLIKE", "boot_8php.html#a0e57f846e6d47a308feced0f7274f178", null ],
+ [ "ACTIVITY_FAVORITE", "boot_8php.html#a3e2ea123d29a72012db1241f96280b0e", null ],
+ [ "ACTIVITY_FOLLOW", "boot_8php.html#a5ae728ac966ea1d3525a19e7fec59434", null ],
+ [ "ACTIVITY_FRIEND", "boot_8php.html#a176664e78dcb9132e16be69418223eb2", null ],
+ [ "ACTIVITY_JOIN", "boot_8php.html#aced60c7285192e80b7c4757e45a7f1e3", null ],
+ [ "ACTIVITY_LIKE", "boot_8php.html#abdcdfc873ace4e0902177bad934de0c0", null ],
+ [ "ACTIVITY_MOOD", "boot_8php.html#a7aa57438db03834aaa0b468bdce773a6", null ],
+ [ "ACTIVITY_OBJ_ALBUM", "boot_8php.html#aaf9b76832ee5f85e56466af162ba8a14", null ],
+ [ "ACTIVITY_OBJ_COMMENT", "boot_8php.html#a0a98dd0110dc6c8e24cefc8ae74d5562", null ],
+ [ "ACTIVITY_OBJ_EVENT", "boot_8php.html#a2e90096fede6acce16abf0da8cb2febe", null ],
+ [ "ACTIVITY_OBJ_GROUP", "boot_8php.html#a7bff2278e68a71e524afd1c7c951e1e3", null ],
+ [ "ACTIVITY_OBJ_HEART", "boot_8php.html#ad302cb26b838898d475f57f61b0fcc9f", null ],
+ [ "ACTIVITY_OBJ_NOTE", "boot_8php.html#a44d069c8a1cfcc6d2007c506a17ff28f", null ],
+ [ "ACTIVITY_OBJ_P_PHOTO", "boot_8php.html#a74bf27f7564c9a37975e7b37d973dcab", null ],
+ [ "ACTIVITY_OBJ_PERSON", "boot_8php.html#a2f8f25b13480c37a5f22511f53da8bab", null ],
+ [ "ACTIVITY_OBJ_PHOTO", "boot_8php.html#a774f0f792ebfec1e774c5a17bb9d5966", null ],
+ [ "ACTIVITY_OBJ_PROFILE", "boot_8php.html#a62c832a95e38b1fa23e6cef39521b7d5", null ],
+ [ "ACTIVITY_OBJ_TAGTERM", "boot_8php.html#a1da180f961f49a11573cac4ff6c62c05", null ],
+ [ "ACTIVITY_OBJ_THING", "boot_8php.html#a0fb63e51c2a9814941842ae8f2f4dff8", null ],
+ [ "ACTIVITY_POKE", "boot_8php.html#a14ba8f9e162f2559831ee3bf98e0c3bd", null ],
+ [ "ACTIVITY_POST", "boot_8php.html#a5c3747e0f505f0d5271dc4c54e3feaf4", null ],
+ [ "ACTIVITY_REQ_FRIEND", "boot_8php.html#afe084c30a1810c10442edb4fbcbc0086", null ],
+ [ "ACTIVITY_TAG", "boot_8php.html#a12c781cefc20167231e2e3fd5866b1b5", null ],
+ [ "ACTIVITY_UNFOLLOW", "boot_8php.html#a53e4bdb6f225da55115acb9277f75e53", null ],
+ [ "ACTIVITY_UNFRIEND", "boot_8php.html#a29528a2544373cc19a378f350040c6a1", null ],
+ [ "ACTIVITY_UPDATE", "boot_8php.html#a7f4264232dbb6c3b41f2617deecb1866", null ],
+ [ "ATOM_TIME", "boot_8php.html#ad34c1547020a305915bcc39707744690", null ],
+ [ "ATTACH_FLAG_DIR", "boot_8php.html#aa74438cf71e48e37bf7b440b94243985", null ],
+ [ "ATTACH_FLAG_OS", "boot_8php.html#a781916f83fcc8ff1035649afa45f0292", null ],
+ [ "CLIENT_MODE_LOAD", "boot_8php.html#af6f6f6f40139f12fc09ec47373b30919", null ],
+ [ "CLIENT_MODE_NORMAL", "boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731", null ],
+ [ "CLIENT_MODE_UPDATE", "boot_8php.html#a3f40aa5bafff8c4eebdc62e5121daf77", null ],
+ [ "CONTACT_IS_FOLLOWER", "boot_8php.html#ada72d88ae39a7e3b45baea201cb49a29", null ],
+ [ "CONTACT_IS_FRIEND", "boot_8php.html#a27299ecfb9e9a99826f17a1c14c6995f", null ],
+ [ "CONTACT_IS_SHARING", "boot_8php.html#a6c5e9e293c8242dcb9bc2c3ea2fee2c9", null ],
+ [ "DB_UPDATE_VERSION", "boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03", null ],
+ [ "DEFAULT_DB_ENGINE", "boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d", null ],
+ [ "DIRECTORY_FALLBACK_MASTER", "boot_8php.html#abedd940e664017c61b48c6efa31d0cb8", null ],
+ [ "DIRECTORY_MODE_NORMAL", "boot_8php.html#ab7d65a7e7417825a4db62906bb600729", null ],
+ [ "DIRECTORY_MODE_PRIMARY", "boot_8php.html#a8a60cc38bb567765fd926fef70205f16", null ],
+ [ "DIRECTORY_MODE_SECONDARY", "boot_8php.html#aedfb9501ed408278667995524e0d15cf", null ],
+ [ "DIRECTORY_MODE_STANDALONE", "boot_8php.html#a25476eec71fceda237f7dc1d78b0adb8", null ],
+ [ "DIRECTORY_REALM", "boot_8php.html#a6b9909db6a7ec80ec6fdd40ba74014dd", null ],
+ [ "EOL", "boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b", null ],
+ [ "GRAVITY_COMMENT", "boot_8php.html#a4a12ce5de39789b0361e308d89925a20", null ],
+ [ "GRAVITY_LIKE", "boot_8php.html#a1f5906598e90b5ea2b4245f682be4348", null ],
+ [ "GRAVITY_PARENT", "boot_8php.html#a2af173e4e9836ee7c90757b4793a2be3", null ],
+ [ "HUBLOC_FLAGS_PRIMARY", "boot_8php.html#a3ad9cc5d4354be741fa1de12b96e9955", null ],
+ [ "HUBLOC_FLAGS_UNVERIFIED", "boot_8php.html#ab54b24cc302e1a42a67a49d788b6b764", null ],
+ [ "ITEM_BLOCKED", "boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f", null ],
+ [ "ITEM_DELAYED_PUBLISH", "boot_8php.html#ac890557fedc5b5a3b1d996249b1e1a20", null ],
+ [ "ITEM_DELETED", "boot_8php.html#a3515ea6bf77495de89b93e9ccd881c49", null ],
+ [ "ITEM_HIDDEN", "boot_8php.html#ac99fc4d040764eac1736bec6973556fe", null ],
+ [ "ITEM_MENTIONSME", "boot_8php.html#a8da836617174eed9fc2ac8054125354b", null ],
+ [ "ITEM_MODERATED", "boot_8php.html#ac01230c7655e0705b2e99c9bc03c4450", null ],
+ [ "ITEM_NOCOMMENT", "boot_8php.html#a949116d9a295b214293006c060ca4848", null ],
+ [ "ITEM_NOTSHOWN", "boot_8php.html#a8663f32171568489dbb2a01dd00371f8", null ],
+ [ "ITEM_NSFW", "boot_8php.html#a939de9a99278f4fd7dcd0ee67f243f08", null ],
+ [ "ITEM_OBSCURED", "boot_8php.html#a2c8906f1af94a3559a5b4661067bb79d", null ],
+ [ "ITEM_ORIGIN", "boot_8php.html#a8c9dce0ef27b35397e29298eb966f7f7", null ],
+ [ "ITEM_RELAY", "boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221", null ],
+ [ "ITEM_SPAM", "boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb", null ],
+ [ "ITEM_STARRED", "boot_8php.html#a7af107fab8d62b9a73801713b774ed30", null ],
+ [ "ITEM_THREAD_TOP", "boot_8php.html#a749144d8dd9c1366596a0213c277d050", null ],
+ [ "ITEM_UNPUBLISHED", "boot_8php.html#adaeb4f590c56326b2dca3b19f31b6272", null ],
+ [ "ITEM_UNSEEN", "boot_8php.html#a009e6a0637cb65804ea8094ecc4450b0", null ],
+ [ "ITEM_UPLINK", "boot_8php.html#aefba06f1c0842036329033e7567ecf6d", null ],
+ [ "ITEM_UPLINK_PRV", "boot_8php.html#aad33b494084f729b6ee3b0bc457718a1", null ],
+ [ "ITEM_VISIBLE", "boot_8php.html#ab55b16ae7fc19fafe5afaedd49163bbf", null ],
+ [ "ITEM_WALL", "boot_8php.html#a6788e99021ec8ffb0fa94d651f22a322", null ],
+ [ "ITEM_WEBPAGE", "boot_8php.html#af489d0c3166551b93e63a79ff2c9be35", null ],
+ [ "JPEG_QUALITY", "boot_8php.html#a3475ff6c2e575f946ea0ee377e944173", null ],
+ [ "LANGUAGE_DETECT_MIN_CONFIDENCE", "boot_8php.html#a68d1d5bc9c7ccb663dc671b48c66df11", null ],
+ [ "LANGUAGE_DETECT_MIN_LENGTH", "boot_8php.html#a17cf72338b040891781a4bcbdd9a8595", null ],
+ [ "LOGGER_ALL", "boot_8php.html#afe63ae69ba55299f813766e54df06ede", null ],
+ [ "LOGGER_DATA", "boot_8php.html#a6969947145a139ec374ce098224d8e81", null ],
+ [ "LOGGER_DEBUG", "boot_8php.html#a93823d15ae07548a4c49de88d325cd26", null ],
+ [ "LOGGER_NORMAL", "boot_8php.html#a17b4ea23d9ecf628d9c8f53b7abcb805", null ],
+ [ "LOGGER_TRACE", "boot_8php.html#a022cea669f9f13ef7c6268b63884c57f", null ],
+ [ "MAIL_DELETED", "boot_8php.html#ad0876e837cf3fad8a26417e315f6e2c8", null ],
+ [ "MAIL_ISREPLY", "boot_8php.html#aa544a6c078130d0967a1f4ed8ce0a2d2", null ],
+ [ "MAIL_OBSCURED", "boot_8php.html#a44ae1542a805ffd7f826fb511db07374", null ],
+ [ "MAIL_RECALLED", "boot_8php.html#ae4861de36017fe399c1839f778bad9f5", null ],
+ [ "MAIL_REPLIED", "boot_8php.html#aa3679df31c8dad1b71816b0322d5baff", null ],
+ [ "MAIL_SEEN", "boot_8php.html#a1fbb93cf030f07391f22cc2948744869", null ],
+ [ "MAX_IMAGE_LENGTH", "boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa", null ],
+ [ "MAX_LIKERS", "boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd", null ],
+ [ "NAMESPACE_ACTIVITY", "boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2", null ],
+ [ "NAMESPACE_ACTIVITY_SCHEMA", "boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133", null ],
+ [ "NAMESPACE_ATOM1", "boot_8php.html#a444ce608ce34efb82ee11852f36e825f", null ],
+ [ "NAMESPACE_DFRN", "boot_8php.html#a7ed4581ab66ebcde97f6b3730856b028", null ],
+ [ "NAMESPACE_FEED", "boot_8php.html#ac195fc9003298923ea81f144388e24b1", null ],
+ [ "NAMESPACE_GEORSS", "boot_8php.html#a03d19251c245587de7ed959300b87bdf", null ],
+ [ "NAMESPACE_MEDIA", "boot_8php.html#a6626f383c3d2d459f731ab8b4f237d16", null ],
+ [ "NAMESPACE_OSTATUS", "boot_8php.html#acca19aae62e1a6951a856b945de20d67", null ],
+ [ "NAMESPACE_OSTATUSSUB", "boot_8php.html#a181c111f4b6c14d091dfd3bf0d0a22cd", null ],
+ [ "NAMESPACE_POCO", "boot_8php.html#a0b73e2548d6f9beb9c93211f488e336a", null ],
+ [ "NAMESPACE_SALMON_ME", "boot_8php.html#aee324eca9de4e0fedf01ab5f92e27c67", null ],
+ [ "NAMESPACE_STATUSNET", "boot_8php.html#afaf93b7026f784b113b4f8921745891e", null ],
+ [ "NAMESPACE_THREAD", "boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86", null ],
+ [ "NAMESPACE_TOMB", "boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e", null ],
+ [ "NAMESPACE_ZOT", "boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47", null ],
+ [ "NETWORK_DFRN", "boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e", null ],
+ [ "NETWORK_DIASPORA", "boot_8php.html#a38f6c7fe33b5434a24b4314567753dfa", null ],
+ [ "NETWORK_FACEBOOK", "boot_8php.html#af3905ea8f8568d0236db13fca40514e3", null ],
+ [ "NETWORK_FEED", "boot_8php.html#ab4bddb41a0cf407178ec5278b950c393", null ],
+ [ "NETWORK_GPLUS", "boot_8php.html#a8905fde0a5b7882bdc083b20d9b34701", null ],
+ [ "NETWORK_LINKEDIN", "boot_8php.html#a5b043b7fdcfd4e8c9c3747574afc6caa", null ],
+ [ "NETWORK_MAIL", "boot_8php.html#a7236b2cdcf59f02a42302e893a99013b", null ],
+ [ "NETWORK_MAIL2", "boot_8php.html#aa17a4f9c63f5cbc5c06f1066b6aebc42", null ],
+ [ "NETWORK_MYSPACE", "boot_8php.html#ae94f7c7c0909629a75aed1c41f10bc95", null ],
+ [ "NETWORK_OSTATUS", "boot_8php.html#aef4b6c558c68c88c10f13c5a00c20e3d", null ],
+ [ "NETWORK_PHANTOM", "boot_8php.html#ab21fb0f3e6b962419955c6fc7f26734f", null ],
+ [ "NETWORK_XMPP", "boot_8php.html#a43296b1b4398aacbf92a4b2d56bab91e", null ],
+ [ "NETWORK_ZOT", "boot_8php.html#a2c65e925994566a63e6c03c381f1b4a0", null ],
+ [ "NOTIFY_COMMENT", "boot_8php.html#a20f0eed431d25870b624b8937a07a59f", null ],
+ [ "NOTIFY_CONFIRM", "boot_8php.html#af8c0cb0744c9a6b5d6d3baafb1f1e71d", null ],
+ [ "NOTIFY_INTRO", "boot_8php.html#a56fd673eaa7014150297ce1162502db5", null ],
+ [ "NOTIFY_MAIL", "boot_8php.html#a285732e7889fa7f333cbe431111e1029", null ],
+ [ "NOTIFY_POKE", "boot_8php.html#aca08bc4f1554ba877500f6abcc99e1e8", null ],
+ [ "NOTIFY_PROFILE", "boot_8php.html#a981d46380f9f23c308bac1f9cb00dc5b", null ],
+ [ "NOTIFY_SUGGEST", "boot_8php.html#a9d01ef178b72b145016cca1393415bc4", null ],
+ [ "NOTIFY_SYSTEM", "boot_8php.html#a14d44d4a00223dc3db4ea962325db192", null ],
+ [ "NOTIFY_TAGSELF", "boot_8php.html#ab724491497ab2618b23a01d5da60aec0", null ],
+ [ "NOTIFY_TAGSHARE", "boot_8php.html#af6937db5f581d006bf4a5c3d9c7e0461", null ],
+ [ "NOTIFY_WALL", "boot_8php.html#a505410c7edc5f5bb5fa227b98359793e", null ],
+ [ "PAGE_APPLICATION", "boot_8php.html#a8231d115060d41a9c2a677f2c86f10ed", null ],
+ [ "PAGE_AUTOCONNECT", "boot_8php.html#aa275653b9c87abc7391bb8040c1c2de9", null ],
+ [ "PAGE_DIRECTORY_CHANNEL", "boot_8php.html#a5b8484922918946d041e5e0515dbe718", null ],
+ [ "PAGE_HIDDEN", "boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640", null ],
+ [ "PAGE_NORMAL", "boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3", null ],
+ [ "PAGE_REMOVED", "boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6", null ],
+ [ "PERMS_A_DELEGATE", "boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b", null ],
+ [ "PERMS_CONTACTS", "boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6", null ],
+ [ "PERMS_NETWORK", "boot_8php.html#a6df1102664f64b274810db85197c2755", null ],
+ [ "PERMS_PUBLIC", "boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7", null ],
+ [ "PERMS_R_ABOOK", "boot_8php.html#a3d6d4fc5fafcc9156811669158541caf", null ],
+ [ "PERMS_R_PAGES", "boot_8php.html#ab51965fabe54dc031e9a0ce1142ee83e", null ],
+ [ "PERMS_R_PHOTOS", "boot_8php.html#a29e921c0c72412cc738e44cca6ca1f62", null ],
+ [ "PERMS_R_PROFILE", "boot_8php.html#ad789aef3cb95fc1eb36be7c4283d0137", null ],
+ [ "PERMS_R_STORAGE", "boot_8php.html#a1db4f0009c9cb4e107eab0f914a3c8dc", null ],
+ [ "PERMS_R_STREAM", "boot_8php.html#aec36f8fcd4cb14a52934590b3d6666b4", null ],
+ [ "PERMS_SITE", "boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f", null ],
+ [ "PERMS_SPECIFIC", "boot_8php.html#a9cc986b4f9dd6558cbb2e25aadbfd964", null ],
+ [ "PERMS_W_CHAT", "boot_8php.html#acd877c405b06b348b37b6f7e62a211e9", null ],
+ [ "PERMS_W_COMMENT", "boot_8php.html#a32df13fec0e43281da5979e1f5579aa8", null ],
+ [ "PERMS_W_MAIL", "boot_8php.html#a6b31dd451bc6c37fe7c9c766ff385aaf", null ],
+ [ "PERMS_W_PAGES", "boot_8php.html#aa9244fc9cc221980c07a20cc534111be", null ],
+ [ "PERMS_W_PHOTOS", "boot_8php.html#a57eee7352714c004d36c26dda74af73e", null ],
+ [ "PERMS_W_STORAGE", "boot_8php.html#a4fefd7486d3b888a05cfd3dc9575f115", null ],
+ [ "PERMS_W_STREAM", "boot_8php.html#a8bb0395933b5e886f086f6a2fb0bfa55", null ],
+ [ "PERMS_W_TAGWALL", "boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777", null ],
+ [ "PERMS_W_WALL", "boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2", null ],
+ [ "PHOTO_NORMAL", "boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4", null ],
+ [ "PHOTO_PROFILE", "boot_8php.html#ab4bc9c50ecc927b92d519e36562b0df0", null ],
+ [ "PHOTO_THING", "boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383", null ],
+ [ "PHOTO_XCHAN", "boot_8php.html#ac43182e0d8bae7576a30b603774974f8", null ],
+ [ "PNG_QUALITY", "boot_8php.html#a8df201788c9dd0ca91384e3a14c08bce", null ],
+ [ "RED_PLATFORM", "boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4", null ],
+ [ "RED_VERSION", "boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3", null ],
+ [ "REGISTER_APPROVE", "boot_8php.html#a7176c0f9f1c98421b97735d892cf6252", null ],
+ [ "REGISTER_CLOSED", "boot_8php.html#a69aac276ed82e010dc382b16ab4d59e1", null ],
+ [ "REGISTER_OPEN", "boot_8php.html#ad8887b49bbb02dd30b4eb9f6c7773c63", null ],
+ [ "SSL_POLICY_FULL", "boot_8php.html#a02566ac9d891369a1d3ebb81a15722fc", null ],
+ [ "SSL_POLICY_NONE", "boot_8php.html#af86c651547aa8f9e549ee40a09455549", null ],
+ [ "SSL_POLICY_SELFSIGN", "boot_8php.html#adca48aee78465ae3064ca4432c0d87b5", null ],
+ [ "TERM_CATEGORY", "boot_8php.html#af33d1b2e98a1e21af672005525d46dfe", null ],
+ [ "TERM_FILE", "boot_8php.html#afb97615e985a013799839b68b99018d7", null ],
+ [ "TERM_HASHTAG", "boot_8php.html#a2750985ec445617d7e82ae3098c91e3f", null ],
+ [ "TERM_MENTION", "boot_8php.html#ae37444eaa42705185080ccf3e670cbc2", null ],
+ [ "TERM_OBJ_CHANNEL", "boot_8php.html#a8892374789fd261eb32a7969d934a14a", null ],
+ [ "TERM_OBJ_OBJECT", "boot_8php.html#a882b666adfe21f035a0f8c02806066d6", null ],
+ [ "TERM_OBJ_PHOTO", "boot_8php.html#a64617d4655804de2a3c86501ab4fdbfd", null ],
+ [ "TERM_OBJ_POST", "boot_8php.html#a9eeb8989272d5ff804a616898bb13659", null ],
+ [ "TERM_OBJ_PROFILE", "boot_8php.html#aead84fa27d7516b855220fe004964a45", null ],
+ [ "TERM_OBJ_THING", "boot_8php.html#a0cc8dc76bd10ac0ec81bac08a46f82fe", null ],
+ [ "TERM_PCATEGORY", "boot_8php.html#a45b12aefab9675baffc7a07a09486db8", null ],
+ [ "TERM_SAVEDSEARCH", "boot_8php.html#abd7bb40da9cc073297e49736b338ca07", null ],
+ [ "TERM_THING", "boot_8php.html#a0d877df1e20bae765e1708be50f6b503", null ],
+ [ "TERM_UNKNOWN", "boot_8php.html#a0c59dde058efebbc66520d136cbd1631", null ],
+ [ "UPDATE_FAILED", "boot_8php.html#a75fc600186b13c3b25e661afefb5eac8", null ],
+ [ "UPDATE_SUCCESS", "boot_8php.html#ac86615ddc0763a00f5311c90e991730c", null ],
+ [ "XCHAN_FLAGS_HIDDEN", "boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2", null ],
+ [ "ZCURL_TIMEOUT", "boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af", null ],
+ [ "ZOT_REVISION", "boot_8php.html#a36b31575f992a10b5927b76efba9362e", null ]
+]; \ No newline at end of file
diff --git a/doc/html/cache_8php.html b/doc/html/cache_8php.html
new file mode 100644
index 000000000..f88decc38
--- /dev/null
+++ b/doc/html/cache_8php.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/cache.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('cache_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">cache.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCache.html">Cache</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/channel_8php.html b/doc/html/channel_8php.html
new file mode 100644
index 000000000..76ac3beb6
--- /dev/null
+++ b/doc/html/channel_8php.html
@@ -0,0 +1,192 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/channel.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('channel_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">channel.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac7c8c7845741baadf87fae6bc279f3dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ac7c8c7845741baadf87fae6bc279f3dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea8e189f2fbabfda779349dd94082e8e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:aea8e189f2fbabfda779349dd94082e8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c6a6179e0e626398ebecc6151905ef1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content</a> (&amp;$a, $update=0, $load=false)</td></tr>
+<tr class="separator:a9c6a6179e0e626398ebecc6151905ef1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aea8e189f2fbabfda779349dd94082e8e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">channel_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9c6a6179e0e626398ebecc6151905ef1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">channel_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$update</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$load</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get permissions SQL - if $remote_contact is true, our remote user has been pre-verified and we already have fetched his/her groups</p>
+
+<p>Referenced by <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac7c8c7845741baadf87fae6bc279f3dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">channel_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/channel_8php.js b/doc/html/channel_8php.js
new file mode 100644
index 000000000..4aa5d2d20
--- /dev/null
+++ b/doc/html/channel_8php.js
@@ -0,0 +1,6 @@
+var channel_8php =
+[
+ [ "channel_aside", "channel_8php.html#aea8e189f2fbabfda779349dd94082e8e", null ],
+ [ "channel_content", "channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1", null ],
+ [ "channel_init", "channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc", null ]
+]; \ No newline at end of file
diff --git a/doc/html/chanview_8php.html b/doc/html/chanview_8php.html
new file mode 100644
index 000000000..dafe62257
--- /dev/null
+++ b/doc/html/chanview_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/chanview.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('chanview_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">chanview.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a4192c6da888c8c1165851acf9ad4cb8b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a4192c6da888c8c1165851acf9ad4cb8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a4192c6da888c8c1165851acf9ad4cb8b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chanview_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/chanview_8php.js b/doc/html/chanview_8php.js
new file mode 100644
index 000000000..cbf2b353b
--- /dev/null
+++ b/doc/html/chanview_8php.js
@@ -0,0 +1,4 @@
+var chanview_8php =
+[
+ [ "chanview_content", "chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classApp-members.html b/doc/html/classApp-members.html
new file mode 100644
index 000000000..57efce016
--- /dev/null
+++ b/doc/html/classApp-members.html
@@ -0,0 +1,210 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classApp.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">App Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classApp.html">App</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a14bd4b1c29f3aff371fe5d4cb11aeea3">$account</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a230e975296cf164da2fee35ef720964f">$apps</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#af58db526040829b1c8bd95561b329262">$argc</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#ab3da757abe5cb45bf88f07cc51a73b58">$argv</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#ad5175536561021548ae8188e24c7b80c">$baseurl</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#abe0e4fa91097f7a6588e1213a834121c">$cached_profile_image</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e">$cached_profile_picdate</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a5cfc098c061b7d765add58fd2ca97445">$category</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a050b0696118da47e8b30859ad1a2c149">$channel</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0">$cid</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a495ec082c2719314e536070ca1ce073d">$cmd</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#ac73dc90e4764497e2f1b7e6612c8fb88">$config</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a98ef4cfd36693a3457c879b76bc6d694">$contact</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2">$contacts</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#ac1d80a14492acc932715d54567d8a589">$content</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a6f55d087e1ff4710132c1b0863faa2ee">$css_sources</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a256360c9184fed6d7556e0bc0a835d7f">$curl_code</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#af5007c42a693afd9c4899c243b2e1363">$curl_headers</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a0ce85be198e46570366cb3344f3c55b8">$data</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a330410a288f3393d53772f5e98f857ea">$db</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#ac1a8b2cd40609b231a560201a08852ba">$error</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#ae3f47830543d0d902f66913def8db66b">$force_max_items</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#ac6e6b1c7d6df408580ff79977fcfa656">$groups</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a3694aa1907aa103a2adbc71f926f0fa0">$hooks</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3">$hostname</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a7954862f44f606b0ff83d4c74d15e792">$identities</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a4c7cfc62d39508086cf300dc2e39c4df">$interactive</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d">$js_sources</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f">$language</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a59dd4b665c70e7dbd80682c014ff7145">$ldelim</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d">$module</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165">$module_loaded</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c">$nav_sel</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f">$observer</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a4b67935096f66d1f14b657399a8461ac">$page</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a6bcb19cdc4907077da72864686d5a780">$pager</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#acad5896b7a79ae31433ad8f89606c728">$path</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#ab47de68fa39806d1fb0976407e188b77">$perms</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#ae9f96338f32187d308b67b980eea0008">$plugins</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a57d041fcc003d08c127dfa99a02bc192">$profile</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a08c24d6a6fc52fcc784b0f765f13b820">$profile_uid</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f">$query_string</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a244b2d53b21be269aad2269d23192f95">$rdelim</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#ad082d63acc078e5bf23825a03bdd6a76">$scheme</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11">$sourcename</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a5f64620473a9727a48ebe9cf6f335a98">$strings</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a6844aedad10e201b8c3d80cfc9e876d3">$template_engine_instance</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a6859a4848a5c0049b4134cc4b34228b6">$template_engines</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a764cc6cd7578132c21d2b4545de9301c">$theme</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#aeca29fd4f7192ca07369b3c598c36e67">$theme_info</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a487332f8de40414ca1a54a4265570b70">$theme_thread_allow</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#ab35b01a366a2ea95725e97af278f87ab">$timezone</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a91fd3c8b89016113b05f3be24805ccff">$user</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a56b1a432c96aef8b1971f779c9d93c8c">$videoheight</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8">$videowidth</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a4833bee2eae4ad1691a04fa19e11a766">$widgetlist</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#aa5a87c46ab3fee21362c466bf78042ef">$widgets</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">__construct</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">build_pagehead</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a08bc87aff64f39fbc084e9d6545cee4d">get_account</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a5c63eabdc7fdd8b6e3348980ec16a3ad">get_apps</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a604d659d6977a99de42a160343e5289a">get_baseurl</a>($ssl=false)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a084e03c77686d8c13390fef3f7428a2b">get_channel</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#ab410451f132910773d0a02e35d0dced9">get_curl_code</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#abaf2173711e861ae4aebf43a7f70157e">get_curl_headers</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a4659785d13e4bac0bed50dbb1b0d4299">get_groups</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a622eace13f8fc9f4b5672a68e2bc4396">get_hostname</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2">get_observer</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be">get_path</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#adb5a4bb657881e553978ff390babd01f">get_perms</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#acb27e607fe4c82603444676e25c36b70">get_template_engine</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a2eb832a8577dee7d40b93abdf6d1d35a">get_template_ldelim</a>($engine= 'smarty3')</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#aab23c59172310fd30f2d60dc039d3eea">get_template_rdelim</a>($engine= 'smarty3')</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">get_widgets</a>($location= '')</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166">head_get_icon</a>()</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a8863703a0305eaa45eb970dbd2046291">head_set_icon</a>($icon)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#abf46a653d8499e7c253cc1be894a6d83">register_template_engine</a>($class, $name= '')</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#aeb1fe1c8ad9aa639909bd183ce578536">set_account</a>($acct)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#abea5a4f77dcd53c928dc4eed86616637">set_apps</a>($arr)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a78788f6e9d8b713b138f81e457c5cd08">set_baseurl</a>($url)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a89e9feb2bfb5253883a9720beaffe876">set_channel</a>($channel)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a5e6a6bd641e4d9909df56f0283c03821">set_curl_code</a>($code)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a9632092d9e8fdaa82a9fc4586433fd31">set_curl_headers</a>($headers)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a3d84af5e42082098672531cd1a618853">set_groups</a>($g)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a344d2b7dc2f276648d521aee4da1731c">set_hostname</a>($h)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a4776d9322edea17fae56afa5d01a323e">set_observer</a>($xchan)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a4bdd7bfed62f50515fce652127bf481b">set_pager_itemspage</a>($n)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a560189f048d3db2f526841963cc43e97">set_pager_total</a>($n)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#adb060d5c7f35a521ec7ec0effbe08097">set_path</a>($p)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a557d7b779d8259027f4724ebf7b248dc">set_perms</a>($perms)</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7">set_template_engine</a>($engine= 'smarty3')</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">set_widget</a>($title, $html, $location= 'aside')</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a94a1ed2dc493c58612d17035b74ae736">template_engine</a>($name= '')</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classApp.html b/doc/html/classApp.html
new file mode 100644
index 000000000..2328b52bd
--- /dev/null
+++ b/doc/html/classApp.html
@@ -0,0 +1,1797 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: App Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classApp.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classApp-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">App Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:af6d39f63fb7116bbeb04e51696f99474"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">__construct</a> ()</td></tr>
+<tr class="separator:af6d39f63fb7116bbeb04e51696f99474"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a604d659d6977a99de42a160343e5289a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a604d659d6977a99de42a160343e5289a">get_baseurl</a> ($ssl=false)</td></tr>
+<tr class="separator:a604d659d6977a99de42a160343e5289a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78788f6e9d8b713b138f81e457c5cd08"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a78788f6e9d8b713b138f81e457c5cd08">set_baseurl</a> ($url)</td></tr>
+<tr class="separator:a78788f6e9d8b713b138f81e457c5cd08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a622eace13f8fc9f4b5672a68e2bc4396"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a622eace13f8fc9f4b5672a68e2bc4396">get_hostname</a> ()</td></tr>
+<tr class="separator:a622eace13f8fc9f4b5672a68e2bc4396"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a344d2b7dc2f276648d521aee4da1731c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a344d2b7dc2f276648d521aee4da1731c">set_hostname</a> ($h)</td></tr>
+<tr class="separator:a344d2b7dc2f276648d521aee4da1731c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb060d5c7f35a521ec7ec0effbe08097"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#adb060d5c7f35a521ec7ec0effbe08097">set_path</a> ($p)</td></tr>
+<tr class="separator:adb060d5c7f35a521ec7ec0effbe08097"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5293a8543ba338dcf38cd4ff3bc5d4be"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be">get_path</a> ()</td></tr>
+<tr class="separator:a5293a8543ba338dcf38cd4ff3bc5d4be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb1fe1c8ad9aa639909bd183ce578536"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#aeb1fe1c8ad9aa639909bd183ce578536">set_account</a> ($acct)</td></tr>
+<tr class="separator:aeb1fe1c8ad9aa639909bd183ce578536"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08bc87aff64f39fbc084e9d6545cee4d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a08bc87aff64f39fbc084e9d6545cee4d">get_account</a> ()</td></tr>
+<tr class="separator:a08bc87aff64f39fbc084e9d6545cee4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89e9feb2bfb5253883a9720beaffe876"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a89e9feb2bfb5253883a9720beaffe876">set_channel</a> ($channel)</td></tr>
+<tr class="separator:a89e9feb2bfb5253883a9720beaffe876"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a084e03c77686d8c13390fef3f7428a2b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a084e03c77686d8c13390fef3f7428a2b">get_channel</a> ()</td></tr>
+<tr class="separator:a084e03c77686d8c13390fef3f7428a2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4776d9322edea17fae56afa5d01a323e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a4776d9322edea17fae56afa5d01a323e">set_observer</a> ($xchan)</td></tr>
+<tr class="separator:a4776d9322edea17fae56afa5d01a323e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1ad3bb1b68439b3b7cbe630918e618d2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2">get_observer</a> ()</td></tr>
+<tr class="separator:a1ad3bb1b68439b3b7cbe630918e618d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a557d7b779d8259027f4724ebf7b248dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a557d7b779d8259027f4724ebf7b248dc">set_perms</a> ($perms)</td></tr>
+<tr class="separator:a557d7b779d8259027f4724ebf7b248dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb5a4bb657881e553978ff390babd01f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#adb5a4bb657881e553978ff390babd01f">get_perms</a> ()</td></tr>
+<tr class="separator:adb5a4bb657881e553978ff390babd01f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c63eabdc7fdd8b6e3348980ec16a3ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a5c63eabdc7fdd8b6e3348980ec16a3ad">get_apps</a> ()</td></tr>
+<tr class="separator:a5c63eabdc7fdd8b6e3348980ec16a3ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abea5a4f77dcd53c928dc4eed86616637"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#abea5a4f77dcd53c928dc4eed86616637">set_apps</a> ($arr)</td></tr>
+<tr class="separator:abea5a4f77dcd53c928dc4eed86616637"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d84af5e42082098672531cd1a618853"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a3d84af5e42082098672531cd1a618853">set_groups</a> ($g)</td></tr>
+<tr class="separator:a3d84af5e42082098672531cd1a618853"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4659785d13e4bac0bed50dbb1b0d4299"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a4659785d13e4bac0bed50dbb1b0d4299">get_groups</a> ()</td></tr>
+<tr class="separator:a4659785d13e4bac0bed50dbb1b0d4299"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a123b903dfe5d3488cc68db3471d36fd2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">set_widget</a> ($title, $html, $location= 'aside')</td></tr>
+<tr class="separator:a123b903dfe5d3488cc68db3471d36fd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a871898becd0697d778f36d9336253ae8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">get_widgets</a> ($location= '')</td></tr>
+<tr class="separator:a871898becd0697d778f36d9336253ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a560189f048d3db2f526841963cc43e97"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a560189f048d3db2f526841963cc43e97">set_pager_total</a> ($<a class="el" href="php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b">n</a>)</td></tr>
+<tr class="separator:a560189f048d3db2f526841963cc43e97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4bdd7bfed62f50515fce652127bf481b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a4bdd7bfed62f50515fce652127bf481b">set_pager_itemspage</a> ($<a class="el" href="php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b">n</a>)</td></tr>
+<tr class="separator:a4bdd7bfed62f50515fce652127bf481b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08f0537964d98958d218066364cff785"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">build_pagehead</a> ()</td></tr>
+<tr class="separator:a08f0537964d98958d218066364cff785"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e6a6bd641e4d9909df56f0283c03821"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a5e6a6bd641e4d9909df56f0283c03821">set_curl_code</a> ($code)</td></tr>
+<tr class="separator:a5e6a6bd641e4d9909df56f0283c03821"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab410451f132910773d0a02e35d0dced9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ab410451f132910773d0a02e35d0dced9">get_curl_code</a> ()</td></tr>
+<tr class="separator:ab410451f132910773d0a02e35d0dced9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9632092d9e8fdaa82a9fc4586433fd31"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a9632092d9e8fdaa82a9fc4586433fd31">set_curl_headers</a> ($headers)</td></tr>
+<tr class="separator:a9632092d9e8fdaa82a9fc4586433fd31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abaf2173711e861ae4aebf43a7f70157e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#abaf2173711e861ae4aebf43a7f70157e">get_curl_headers</a> ()</td></tr>
+<tr class="separator:abaf2173711e861ae4aebf43a7f70157e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf46a653d8499e7c253cc1be894a6d83"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#abf46a653d8499e7c253cc1be894a6d83">register_template_engine</a> ($class, $name= '')</td></tr>
+<tr class="separator:abf46a653d8499e7c253cc1be894a6d83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94a1ed2dc493c58612d17035b74ae736"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a94a1ed2dc493c58612d17035b74ae736">template_engine</a> ($name= '')</td></tr>
+<tr class="separator:a94a1ed2dc493c58612d17035b74ae736"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb27e607fe4c82603444676e25c36b70"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#acb27e607fe4c82603444676e25c36b70">get_template_engine</a> ()</td></tr>
+<tr class="separator:acb27e607fe4c82603444676e25c36b70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20d1890cc16b22ba79eeb0cbf2f719f7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7">set_template_engine</a> ($engine= 'smarty3')</td></tr>
+<tr class="separator:a20d1890cc16b22ba79eeb0cbf2f719f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2eb832a8577dee7d40b93abdf6d1d35a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a2eb832a8577dee7d40b93abdf6d1d35a">get_template_ldelim</a> ($engine= 'smarty3')</td></tr>
+<tr class="separator:a2eb832a8577dee7d40b93abdf6d1d35a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab23c59172310fd30f2d60dc039d3eea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#aab23c59172310fd30f2d60dc039d3eea">get_template_rdelim</a> ($engine= 'smarty3')</td></tr>
+<tr class="separator:aab23c59172310fd30f2d60dc039d3eea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8863703a0305eaa45eb970dbd2046291"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a8863703a0305eaa45eb970dbd2046291">head_set_icon</a> ($icon)</td></tr>
+<tr class="separator:a8863703a0305eaa45eb970dbd2046291"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af17df107f2216ddf5ad2a7e0f2ba2166"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166">head_get_icon</a> ()</td></tr>
+<tr class="separator:af17df107f2216ddf5ad2a7e0f2ba2166"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a14bd4b1c29f3aff371fe5d4cb11aeea3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a14bd4b1c29f3aff371fe5d4cb11aeea3">$account</a> = null</td></tr>
+<tr class="separator:a14bd4b1c29f3aff371fe5d4cb11aeea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a050b0696118da47e8b30859ad1a2c149"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a050b0696118da47e8b30859ad1a2c149">$channel</a> = null</td></tr>
+<tr class="separator:a050b0696118da47e8b30859ad1a2c149"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ffe529fb14389f7fedf5fdc5f722e7f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f">$observer</a> = null</td></tr>
+<tr class="separator:a4ffe529fb14389f7fedf5fdc5f722e7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08c24d6a6fc52fcc784b0f765f13b820"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a08c24d6a6fc52fcc784b0f765f13b820">$profile_uid</a> = 0</td></tr>
+<tr class="separator:a08c24d6a6fc52fcc784b0f765f13b820"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6e6b1c7d6df408580ff79977fcfa656"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ac6e6b1c7d6df408580ff79977fcfa656">$groups</a></td></tr>
+<tr class="separator:ac6e6b1c7d6df408580ff79977fcfa656"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a297e70b3667b83f4460aa7ed9f5d6f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f">$language</a></td></tr>
+<tr class="separator:a1a297e70b3667b83f4460aa7ed9f5d6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e4f0fbfa3cf6c11baebe22a03db6165"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165">$module_loaded</a> = false</td></tr>
+<tr class="separator:a6e4f0fbfa3cf6c11baebe22a03db6165"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e82da4aecfc2017a8d1d332ca501f9f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f">$query_string</a></td></tr>
+<tr class="separator:a2e82da4aecfc2017a8d1d332ca501f9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac73dc90e4764497e2f1b7e6612c8fb88"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ac73dc90e4764497e2f1b7e6612c8fb88">$config</a></td></tr>
+<tr class="separator:ac73dc90e4764497e2f1b7e6612c8fb88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b67935096f66d1f14b657399a8461ac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a4b67935096f66d1f14b657399a8461ac">$page</a></td></tr>
+<tr class="separator:a4b67935096f66d1f14b657399a8461ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57d041fcc003d08c127dfa99a02bc192"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a57d041fcc003d08c127dfa99a02bc192">$profile</a></td></tr>
+<tr class="separator:a57d041fcc003d08c127dfa99a02bc192"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a91fd3c8b89016113b05f3be24805ccff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a91fd3c8b89016113b05f3be24805ccff">$user</a></td></tr>
+<tr class="separator:a91fd3c8b89016113b05f3be24805ccff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad1c8eb91a6fd470b94f34b7fdad3a2d0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0">$cid</a></td></tr>
+<tr class="separator:ad1c8eb91a6fd470b94f34b7fdad3a2d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a98ef4cfd36693a3457c879b76bc6d694"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a98ef4cfd36693a3457c879b76bc6d694">$contact</a></td></tr>
+<tr class="separator:a98ef4cfd36693a3457c879b76bc6d694"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61ca6e3af82071ea25ff2fd5dbcddae2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2">$contacts</a></td></tr>
+<tr class="separator:a61ca6e3af82071ea25ff2fd5dbcddae2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1d80a14492acc932715d54567d8a589"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ac1d80a14492acc932715d54567d8a589">$content</a></td></tr>
+<tr class="separator:ac1d80a14492acc932715d54567d8a589"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ce85be198e46570366cb3344f3c55b8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a0ce85be198e46570366cb3344f3c55b8">$data</a> = array()</td></tr>
+<tr class="separator:a0ce85be198e46570366cb3344f3c55b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1a8b2cd40609b231a560201a08852ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ac1a8b2cd40609b231a560201a08852ba">$error</a> = false</td></tr>
+<tr class="separator:ac1a8b2cd40609b231a560201a08852ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a495ec082c2719314e536070ca1ce073d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a495ec082c2719314e536070ca1ce073d">$cmd</a></td></tr>
+<tr class="separator:a495ec082c2719314e536070ca1ce073d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3da757abe5cb45bf88f07cc51a73b58"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ab3da757abe5cb45bf88f07cc51a73b58">$argv</a></td></tr>
+<tr class="separator:ab3da757abe5cb45bf88f07cc51a73b58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af58db526040829b1c8bd95561b329262"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#af58db526040829b1c8bd95561b329262">$argc</a></td></tr>
+<tr class="separator:af58db526040829b1c8bd95561b329262"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9bf62f8e39585c0aa48fcffc3bf3484d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d">$module</a></td></tr>
+<tr class="separator:a9bf62f8e39585c0aa48fcffc3bf3484d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6bcb19cdc4907077da72864686d5a780"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a6bcb19cdc4907077da72864686d5a780">$pager</a></td></tr>
+<tr class="separator:a6bcb19cdc4907077da72864686d5a780"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f64620473a9727a48ebe9cf6f335a98"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a5f64620473a9727a48ebe9cf6f335a98">$strings</a></td></tr>
+<tr class="separator:a5f64620473a9727a48ebe9cf6f335a98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3694aa1907aa103a2adbc71f926f0fa0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a3694aa1907aa103a2adbc71f926f0fa0">$hooks</a></td></tr>
+<tr class="separator:a3694aa1907aa103a2adbc71f926f0fa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab35b01a366a2ea95725e97af278f87ab"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ab35b01a366a2ea95725e97af278f87ab">$timezone</a></td></tr>
+<tr class="separator:ab35b01a366a2ea95725e97af278f87ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c7cfc62d39508086cf300dc2e39c4df"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a4c7cfc62d39508086cf300dc2e39c4df">$interactive</a> = true</td></tr>
+<tr class="separator:a4c7cfc62d39508086cf300dc2e39c4df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae9f96338f32187d308b67b980eea0008"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ae9f96338f32187d308b67b980eea0008">$plugins</a></td></tr>
+<tr class="separator:ae9f96338f32187d308b67b980eea0008"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7954862f44f606b0ff83d4c74d15e792"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a7954862f44f606b0ff83d4c74d15e792">$identities</a></td></tr>
+<tr class="separator:a7954862f44f606b0ff83d4c74d15e792"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f55d087e1ff4710132c1b0863faa2ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a6f55d087e1ff4710132c1b0863faa2ee">$css_sources</a> = array()</td></tr>
+<tr class="separator:a6f55d087e1ff4710132c1b0863faa2ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11e24b3ed9b33ffee7dd41d110b4366d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d">$js_sources</a> = array()</td></tr>
+<tr class="separator:a11e24b3ed9b33ffee7dd41d110b4366d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeca29fd4f7192ca07369b3c598c36e67"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#aeca29fd4f7192ca07369b3c598c36e67">$theme_info</a> = array()</td></tr>
+<tr class="separator:aeca29fd4f7192ca07369b3c598c36e67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33a8e90b60ec4438f6fbf299d0f6839c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c">$nav_sel</a></td></tr>
+<tr class="separator:a33a8e90b60ec4438f6fbf299d0f6839c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5cfc098c061b7d765add58fd2ca97445"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a5cfc098c061b7d765add58fd2ca97445">$category</a></td></tr>
+<tr class="separator:a5cfc098c061b7d765add58fd2ca97445"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a13710907ef62554a0b4dd8a5eaa2eb11"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11">$sourcename</a> = ''</td></tr>
+<tr class="separator:a13710907ef62554a0b4dd8a5eaa2eb11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf2aaf95b062736a6fd5fc70fadf80e8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8">$videowidth</a> = 425</td></tr>
+<tr class="separator:adf2aaf95b062736a6fd5fc70fadf80e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56b1a432c96aef8b1971f779c9d93c8c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a56b1a432c96aef8b1971f779c9d93c8c">$videoheight</a> = 350</td></tr>
+<tr class="separator:a56b1a432c96aef8b1971f779c9d93c8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3f47830543d0d902f66913def8db66b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ae3f47830543d0d902f66913def8db66b">$force_max_items</a> = 0</td></tr>
+<tr class="separator:ae3f47830543d0d902f66913def8db66b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a487332f8de40414ca1a54a4265570b70"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a487332f8de40414ca1a54a4265570b70">$theme_thread_allow</a> = true</td></tr>
+<tr class="separator:a487332f8de40414ca1a54a4265570b70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6859a4848a5c0049b4134cc4b34228b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a6859a4848a5c0049b4134cc4b34228b6">$template_engines</a> = array()</td></tr>
+<tr class="separator:a6859a4848a5c0049b4134cc4b34228b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6844aedad10e201b8c3d80cfc9e876d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a6844aedad10e201b8c3d80cfc9e876d3">$template_engine_instance</a> = array()</td></tr>
+<tr class="separator:a6844aedad10e201b8c3d80cfc9e876d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:ab47de68fa39806d1fb0976407e188b77"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ab47de68fa39806d1fb0976407e188b77">$perms</a> = null</td></tr>
+<tr class="separator:ab47de68fa39806d1fb0976407e188b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa5a87c46ab3fee21362c466bf78042ef"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#aa5a87c46ab3fee21362c466bf78042ef">$widgets</a> = array()</td></tr>
+<tr class="separator:aa5a87c46ab3fee21362c466bf78042ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4833bee2eae4ad1691a04fa19e11a766"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a4833bee2eae4ad1691a04fa19e11a766">$widgetlist</a> = null</td></tr>
+<tr class="separator:a4833bee2eae4ad1691a04fa19e11a766"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a230e975296cf164da2fee35ef720964f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a230e975296cf164da2fee35ef720964f">$apps</a> = array()</td></tr>
+<tr class="separator:a230e975296cf164da2fee35ef720964f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a764cc6cd7578132c21d2b4545de9301c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a764cc6cd7578132c21d2b4545de9301c">$theme</a></td></tr>
+<tr class="separator:a764cc6cd7578132c21d2b4545de9301c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59dd4b665c70e7dbd80682c014ff7145"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a59dd4b665c70e7dbd80682c014ff7145">$ldelim</a></td></tr>
+<tr class="separator:a59dd4b665c70e7dbd80682c014ff7145"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a244b2d53b21be269aad2269d23192f95"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a244b2d53b21be269aad2269d23192f95">$rdelim</a></td></tr>
+<tr class="separator:a244b2d53b21be269aad2269d23192f95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad082d63acc078e5bf23825a03bdd6a76"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ad082d63acc078e5bf23825a03bdd6a76">$scheme</a></td></tr>
+<tr class="separator:ad082d63acc078e5bf23825a03bdd6a76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a037049cba88dfc6ff94f4b5b779e3fd3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3">$hostname</a></td></tr>
+<tr class="separator:a037049cba88dfc6ff94f4b5b779e3fd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5175536561021548ae8188e24c7b80c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ad5175536561021548ae8188e24c7b80c">$baseurl</a></td></tr>
+<tr class="separator:ad5175536561021548ae8188e24c7b80c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acad5896b7a79ae31433ad8f89606c728"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#acad5896b7a79ae31433ad8f89606c728">$path</a></td></tr>
+<tr class="separator:acad5896b7a79ae31433ad8f89606c728"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a330410a288f3393d53772f5e98f857ea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a330410a288f3393d53772f5e98f857ea">$db</a></td></tr>
+<tr class="separator:a330410a288f3393d53772f5e98f857ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a256360c9184fed6d7556e0bc0a835d7f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a256360c9184fed6d7556e0bc0a835d7f">$curl_code</a></td></tr>
+<tr class="separator:a256360c9184fed6d7556e0bc0a835d7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5007c42a693afd9c4899c243b2e1363"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#af5007c42a693afd9c4899c243b2e1363">$curl_headers</a></td></tr>
+<tr class="separator:af5007c42a693afd9c4899c243b2e1363"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe0e4fa91097f7a6588e1213a834121c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#abe0e4fa91097f7a6588e1213a834121c">$cached_profile_image</a></td></tr>
+<tr class="separator:abe0e4fa91097f7a6588e1213a834121c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab4a685d15a363bb1d7edbbc20bfb94e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e">$cached_profile_picdate</a></td></tr>
+<tr class="separator:aab4a685d15a363bb1d7edbbc20bfb94e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>class: <a class="el" href="classApp.html">App</a></p>
+<p>Our main application structure for the life of this page Primarily deals with the URL that got us here and tries to make some sense of it, and stores our page contents and config storage and anything else that might need to be passed around before we spit the page out. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="af6d39f63fb7116bbeb04e51696f99474"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::__construct </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Figure out if we are running at the top of a domain or in a sub-directory and adjust accordingly</p>
+<p>Break the URL path into C style argc/argv style arguments for our modules. Given "http://example.com/module/arg1/arg2", $this-&gt;argc will be 3 (integer) and $this-&gt;argv will contain: [0] =&gt; 'module' [1] =&gt; 'arg1' [2] =&gt; 'arg2'</p>
+<p>There will always be one argument. If provided a naked domain URL, $this-&gt;argv[0] is set to "home".</p>
+<p>See if there is any page number information, and initialise pagination</p>
+<p>Detect mobile devices</p>
+<p>register template engines</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a08f0537964d98958d218066364cff785"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::build_pagehead </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a08bc87aff64f39fbc084e9d6545cee4d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_account </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5c63eabdc7fdd8b6e3348980ec16a3ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_apps </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a604d659d6977a99de42a160343e5289a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_baseurl </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$ssl</em> = <code>false</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">build_pagehead()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a084e03c77686d8c13390fef3f7428a2b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_channel </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab410451f132910773d0a02e35d0dced9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_curl_code </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abaf2173711e861ae4aebf43a7f70157e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_curl_headers </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4659785d13e4bac0bed50dbb1b0d4299"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_groups </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a622eace13f8fc9f4b5672a68e2bc4396"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_hostname </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1ad3bb1b68439b3b7cbe630918e618d2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_observer </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5293a8543ba338dcf38cd4ff3bc5d4be"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_path </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adb5a4bb657881e553978ff390babd01f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_perms </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acb27e607fe4c82603444676e25c36b70"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_template_engine </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2eb832a8577dee7d40b93abdf6d1d35a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_template_ldelim </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$engine</em> = <code>'smarty3'</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aab23c59172310fd30f2d60dc039d3eea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_template_rdelim </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$engine</em> = <code>'smarty3'</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a871898becd0697d778f36d9336253ae8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::get_widgets </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$location</em> = <code>''</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af17df107f2216ddf5ad2a7e0f2ba2166"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::head_get_icon </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">build_pagehead()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8863703a0305eaa45eb970dbd2046291"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::head_set_icon </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$icon</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">__construct()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abf46a653d8499e7c253cc1be894a6d83"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::register_template_engine </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$class</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>register template engine class if $name is "", is used class static property $class::$name </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$class</td><td></td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$name</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">__construct()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aeb1fe1c8ad9aa639909bd183ce578536"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_account </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$acct</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abea5a4f77dcd53c928dc4eed86616637"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_apps </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a78788f6e9d8b713b138f81e457c5cd08"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_baseurl </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a89e9feb2bfb5253883a9720beaffe876"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_channel </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5e6a6bd641e4d9909df56f0283c03821"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_curl_code </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$code</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9632092d9e8fdaa82a9fc4586433fd31"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_curl_headers </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$headers</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3d84af5e42082098672531cd1a618853"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_groups </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$g</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a344d2b7dc2f276648d521aee4da1731c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_hostname </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$h</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4776d9322edea17fae56afa5d01a323e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_observer </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4bdd7bfed62f50515fce652127bf481b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_pager_itemspage </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$n</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a560189f048d3db2f526841963cc43e97"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_pager_total </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$n</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adb060d5c7f35a521ec7ec0effbe08097"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_path </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a557d7b779d8259027f4724ebf7b248dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_perms </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$perms</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a20d1890cc16b22ba79eeb0cbf2f719f7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_template_engine </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$engine</em> = <code>'smarty3'</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a123b903dfe5d3488cc68db3471d36fd2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::set_widget </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$title</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$html</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$location</em> = <code>'aside'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a94a1ed2dc493c58612d17035b74ae736"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::template_engine </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em> = <code>''</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>return template engine instance. If $name is not defined, return engine defined by theme, or default</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">strin</td><td class="paramname">$name</td><td><a class="el" href="classTemplate.html">Template</a> engine name </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>object <a class="el" href="classTemplate.html">Template</a> Engine instance </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a14bd4b1c29f3aff371fe5d4cb11aeea3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$account = null</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a08bc87aff64f39fbc084e9d6545cee4d">get_account()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a230e975296cf164da2fee35ef720964f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$apps = array()</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a5c63eabdc7fdd8b6e3348980ec16a3ad">get_apps()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af58db526040829b1c8bd95561b329262"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$argc</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab3da757abe5cb45bf88f07cc51a73b58"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$argv</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad5175536561021548ae8188e24c7b80c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$baseurl</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a604d659d6977a99de42a160343e5289a">get_baseurl()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abe0e4fa91097f7a6588e1213a834121c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$cached_profile_image</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aab4a685d15a363bb1d7edbbc20bfb94e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$cached_profile_picdate</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5cfc098c061b7d765add58fd2ca97445"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$category</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a050b0696118da47e8b30859ad1a2c149"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$channel = null</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a084e03c77686d8c13390fef3f7428a2b">get_channel()</a>, and <a class="el" href="classApp.html#a89e9feb2bfb5253883a9720beaffe876">set_channel()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad1c8eb91a6fd470b94f34b7fdad3a2d0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$cid</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a495ec082c2719314e536070ca1ce073d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$cmd</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac73dc90e4764497e2f1b7e6612c8fb88"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$config</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a98ef4cfd36693a3457c879b76bc6d694"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$contact</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a61ca6e3af82071ea25ff2fd5dbcddae2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$contacts</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac1d80a14492acc932715d54567d8a589"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$content</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6f55d087e1ff4710132c1b0863faa2ee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$css_sources = array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a256360c9184fed6d7556e0bc0a835d7f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$curl_code</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#ab410451f132910773d0a02e35d0dced9">get_curl_code()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af5007c42a693afd9c4899c243b2e1363"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$curl_headers</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#abaf2173711e861ae4aebf43a7f70157e">get_curl_headers()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0ce85be198e46570366cb3344f3c55b8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$data = array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a330410a288f3393d53772f5e98f857ea"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$db</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac1a8b2cd40609b231a560201a08852ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$error = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae3f47830543d0d902f66913def8db66b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$force_max_items = 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac6e6b1c7d6df408580ff79977fcfa656"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$groups</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a4659785d13e4bac0bed50dbb1b0d4299">get_groups()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3694aa1907aa103a2adbc71f926f0fa0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$hooks</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a037049cba88dfc6ff94f4b5b779e3fd3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$hostname</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a622eace13f8fc9f4b5672a68e2bc4396">get_hostname()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7954862f44f606b0ff83d4c74d15e792"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$identities</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4c7cfc62d39508086cf300dc2e39c4df"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$interactive = true</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a11e24b3ed9b33ffee7dd41d110b4366d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$js_sources = array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1a297e70b3667b83f4460aa7ed9f5d6f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$language</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a59dd4b665c70e7dbd80682c014ff7145"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$ldelim</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<b>Initial value:</b><div class="fragment"><div class="line">= array(</div>
+<div class="line"> <span class="stringliteral">&#39;internal&#39;</span> =&gt; <span class="stringliteral">&#39;&#39;</span>,</div>
+<div class="line"> <span class="stringliteral">&#39;smarty3&#39;</span> =&gt; <span class="stringliteral">&#39;{{&#39;</span></div>
+<div class="line"> )</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a9bf62f8e39585c0aa48fcffc3bf3484d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$module</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6e4f0fbfa3cf6c11baebe22a03db6165"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$module_loaded = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a33a8e90b60ec4438f6fbf299d0f6839c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$nav_sel</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4ffe529fb14389f7fedf5fdc5f722e7f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$observer = null</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2">get_observer()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4b67935096f66d1f14b657399a8461ac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$page</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6bcb19cdc4907077da72864686d5a780"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$pager</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acad5896b7a79ae31433ad8f89606c728"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$path</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">__construct()</a>, and <a class="el" href="classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be">get_path()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab47de68fa39806d1fb0976407e188b77"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$perms = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#adb5a4bb657881e553978ff390babd01f">get_perms()</a>, and <a class="el" href="classApp.html#a557d7b779d8259027f4724ebf7b248dc">set_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae9f96338f32187d308b67b980eea0008"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$plugins</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a57d041fcc003d08c127dfa99a02bc192"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$profile</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a08c24d6a6fc52fcc784b0f765f13b820"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$profile_uid = 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2e82da4aecfc2017a8d1d332ca501f9f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$query_string</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a244b2d53b21be269aad2269d23192f95"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$rdelim</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<b>Initial value:</b><div class="fragment"><div class="line">= array(</div>
+<div class="line"> <span class="stringliteral">&#39;internal&#39;</span> =&gt; <span class="stringliteral">&#39;&#39;</span>,</div>
+<div class="line"> <span class="stringliteral">&#39;smarty3&#39;</span> =&gt; <span class="stringliteral">&#39;}}&#39;</span></div>
+<div class="line"> )</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ad082d63acc078e5bf23825a03bdd6a76"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$scheme</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a604d659d6977a99de42a160343e5289a">get_baseurl()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a13710907ef62554a0b4dd8a5eaa2eb11"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$sourcename = ''</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5f64620473a9727a48ebe9cf6f335a98"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$strings</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6844aedad10e201b8c3d80cfc9e876d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$template_engine_instance = array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6859a4848a5c0049b4134cc4b34228b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$template_engines = array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a764cc6cd7578132c21d2b4545de9301c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$theme</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<b>Initial value:</b><div class="fragment"><div class="line">= array(</div>
+<div class="line"> <span class="stringliteral">&#39;sourcename&#39;</span> =&gt; <span class="stringliteral">&#39;&#39;</span>,</div>
+<div class="line"> <span class="stringliteral">&#39;videowidth&#39;</span> =&gt; 425,</div>
+<div class="line"> <span class="stringliteral">&#39;videoheight&#39;</span> =&gt; 350,</div>
+<div class="line"> <span class="stringliteral">&#39;force_max_items&#39;</span> =&gt; 0,</div>
+<div class="line"> <span class="stringliteral">&#39;thread_allow&#39;</span> =&gt; <span class="keyword">true</span>,</div>
+<div class="line"> <span class="stringliteral">&#39;stylesheet&#39;</span> =&gt; <span class="stringliteral">&#39;&#39;</span>,</div>
+<div class="line"> <span class="stringliteral">&#39;template_engine&#39;</span> =&gt; <span class="stringliteral">&#39;smarty3&#39;</span>,</div>
+<div class="line"> )</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aeca29fd4f7192ca07369b3c598c36e67"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$theme_info = array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a487332f8de40414ca1a54a4265570b70"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$theme_thread_allow = true</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab35b01a366a2ea95725e97af278f87ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$timezone</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a91fd3c8b89016113b05f3be24805ccff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$user</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a56b1a432c96aef8b1971f779c9d93c8c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$videoheight = 350</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adf2aaf95b062736a6fd5fc70fadf80e8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$videowidth = 425</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4833bee2eae4ad1691a04fa19e11a766"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$widgetlist = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa5a87c46ab3fee21362c466bf78042ef"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$widgets = array()</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">get_widgets()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="boot_8php.html">boot.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classApp.js b/doc/html/classApp.js
new file mode 100644
index 000000000..958b1fb6a
--- /dev/null
+++ b/doc/html/classApp.js
@@ -0,0 +1,96 @@
+var classApp =
+[
+ [ "__construct", "classApp.html#af6d39f63fb7116bbeb04e51696f99474", null ],
+ [ "build_pagehead", "classApp.html#a08f0537964d98958d218066364cff785", null ],
+ [ "get_account", "classApp.html#a08bc87aff64f39fbc084e9d6545cee4d", null ],
+ [ "get_apps", "classApp.html#a5c63eabdc7fdd8b6e3348980ec16a3ad", null ],
+ [ "get_baseurl", "classApp.html#a604d659d6977a99de42a160343e5289a", null ],
+ [ "get_channel", "classApp.html#a084e03c77686d8c13390fef3f7428a2b", null ],
+ [ "get_curl_code", "classApp.html#ab410451f132910773d0a02e35d0dced9", null ],
+ [ "get_curl_headers", "classApp.html#abaf2173711e861ae4aebf43a7f70157e", null ],
+ [ "get_groups", "classApp.html#a4659785d13e4bac0bed50dbb1b0d4299", null ],
+ [ "get_hostname", "classApp.html#a622eace13f8fc9f4b5672a68e2bc4396", null ],
+ [ "get_observer", "classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2", null ],
+ [ "get_path", "classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be", null ],
+ [ "get_perms", "classApp.html#adb5a4bb657881e553978ff390babd01f", null ],
+ [ "get_template_engine", "classApp.html#acb27e607fe4c82603444676e25c36b70", null ],
+ [ "get_template_ldelim", "classApp.html#a2eb832a8577dee7d40b93abdf6d1d35a", null ],
+ [ "get_template_rdelim", "classApp.html#aab23c59172310fd30f2d60dc039d3eea", null ],
+ [ "get_widgets", "classApp.html#a871898becd0697d778f36d9336253ae8", null ],
+ [ "head_get_icon", "classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166", null ],
+ [ "head_set_icon", "classApp.html#a8863703a0305eaa45eb970dbd2046291", null ],
+ [ "register_template_engine", "classApp.html#abf46a653d8499e7c253cc1be894a6d83", null ],
+ [ "set_account", "classApp.html#aeb1fe1c8ad9aa639909bd183ce578536", null ],
+ [ "set_apps", "classApp.html#abea5a4f77dcd53c928dc4eed86616637", null ],
+ [ "set_baseurl", "classApp.html#a78788f6e9d8b713b138f81e457c5cd08", null ],
+ [ "set_channel", "classApp.html#a89e9feb2bfb5253883a9720beaffe876", null ],
+ [ "set_curl_code", "classApp.html#a5e6a6bd641e4d9909df56f0283c03821", null ],
+ [ "set_curl_headers", "classApp.html#a9632092d9e8fdaa82a9fc4586433fd31", null ],
+ [ "set_groups", "classApp.html#a3d84af5e42082098672531cd1a618853", null ],
+ [ "set_hostname", "classApp.html#a344d2b7dc2f276648d521aee4da1731c", null ],
+ [ "set_observer", "classApp.html#a4776d9322edea17fae56afa5d01a323e", null ],
+ [ "set_pager_itemspage", "classApp.html#a4bdd7bfed62f50515fce652127bf481b", null ],
+ [ "set_pager_total", "classApp.html#a560189f048d3db2f526841963cc43e97", null ],
+ [ "set_path", "classApp.html#adb060d5c7f35a521ec7ec0effbe08097", null ],
+ [ "set_perms", "classApp.html#a557d7b779d8259027f4724ebf7b248dc", null ],
+ [ "set_template_engine", "classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7", null ],
+ [ "set_widget", "classApp.html#a123b903dfe5d3488cc68db3471d36fd2", null ],
+ [ "template_engine", "classApp.html#a94a1ed2dc493c58612d17035b74ae736", null ],
+ [ "$account", "classApp.html#a14bd4b1c29f3aff371fe5d4cb11aeea3", null ],
+ [ "$apps", "classApp.html#a230e975296cf164da2fee35ef720964f", null ],
+ [ "$argc", "classApp.html#af58db526040829b1c8bd95561b329262", null ],
+ [ "$argv", "classApp.html#ab3da757abe5cb45bf88f07cc51a73b58", null ],
+ [ "$baseurl", "classApp.html#ad5175536561021548ae8188e24c7b80c", null ],
+ [ "$cached_profile_image", "classApp.html#abe0e4fa91097f7a6588e1213a834121c", null ],
+ [ "$cached_profile_picdate", "classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e", null ],
+ [ "$category", "classApp.html#a5cfc098c061b7d765add58fd2ca97445", null ],
+ [ "$channel", "classApp.html#a050b0696118da47e8b30859ad1a2c149", null ],
+ [ "$cid", "classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0", null ],
+ [ "$cmd", "classApp.html#a495ec082c2719314e536070ca1ce073d", null ],
+ [ "$config", "classApp.html#ac73dc90e4764497e2f1b7e6612c8fb88", null ],
+ [ "$contact", "classApp.html#a98ef4cfd36693a3457c879b76bc6d694", null ],
+ [ "$contacts", "classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2", null ],
+ [ "$content", "classApp.html#ac1d80a14492acc932715d54567d8a589", null ],
+ [ "$css_sources", "classApp.html#a6f55d087e1ff4710132c1b0863faa2ee", null ],
+ [ "$curl_code", "classApp.html#a256360c9184fed6d7556e0bc0a835d7f", null ],
+ [ "$curl_headers", "classApp.html#af5007c42a693afd9c4899c243b2e1363", null ],
+ [ "$data", "classApp.html#a0ce85be198e46570366cb3344f3c55b8", null ],
+ [ "$db", "classApp.html#a330410a288f3393d53772f5e98f857ea", null ],
+ [ "$error", "classApp.html#ac1a8b2cd40609b231a560201a08852ba", null ],
+ [ "$force_max_items", "classApp.html#ae3f47830543d0d902f66913def8db66b", null ],
+ [ "$groups", "classApp.html#ac6e6b1c7d6df408580ff79977fcfa656", null ],
+ [ "$hooks", "classApp.html#a3694aa1907aa103a2adbc71f926f0fa0", null ],
+ [ "$hostname", "classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3", null ],
+ [ "$identities", "classApp.html#a7954862f44f606b0ff83d4c74d15e792", null ],
+ [ "$interactive", "classApp.html#a4c7cfc62d39508086cf300dc2e39c4df", null ],
+ [ "$js_sources", "classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d", null ],
+ [ "$language", "classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f", null ],
+ [ "$ldelim", "classApp.html#a59dd4b665c70e7dbd80682c014ff7145", null ],
+ [ "$module", "classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d", null ],
+ [ "$module_loaded", "classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165", null ],
+ [ "$nav_sel", "classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c", null ],
+ [ "$observer", "classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f", null ],
+ [ "$page", "classApp.html#a4b67935096f66d1f14b657399a8461ac", null ],
+ [ "$pager", "classApp.html#a6bcb19cdc4907077da72864686d5a780", null ],
+ [ "$path", "classApp.html#acad5896b7a79ae31433ad8f89606c728", null ],
+ [ "$perms", "classApp.html#ab47de68fa39806d1fb0976407e188b77", null ],
+ [ "$plugins", "classApp.html#ae9f96338f32187d308b67b980eea0008", null ],
+ [ "$profile", "classApp.html#a57d041fcc003d08c127dfa99a02bc192", null ],
+ [ "$profile_uid", "classApp.html#a08c24d6a6fc52fcc784b0f765f13b820", null ],
+ [ "$query_string", "classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f", null ],
+ [ "$rdelim", "classApp.html#a244b2d53b21be269aad2269d23192f95", null ],
+ [ "$scheme", "classApp.html#ad082d63acc078e5bf23825a03bdd6a76", null ],
+ [ "$sourcename", "classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11", null ],
+ [ "$strings", "classApp.html#a5f64620473a9727a48ebe9cf6f335a98", null ],
+ [ "$template_engine_instance", "classApp.html#a6844aedad10e201b8c3d80cfc9e876d3", null ],
+ [ "$template_engines", "classApp.html#a6859a4848a5c0049b4134cc4b34228b6", null ],
+ [ "$theme", "classApp.html#a764cc6cd7578132c21d2b4545de9301c", null ],
+ [ "$theme_info", "classApp.html#aeca29fd4f7192ca07369b3c598c36e67", null ],
+ [ "$theme_thread_allow", "classApp.html#a487332f8de40414ca1a54a4265570b70", null ],
+ [ "$timezone", "classApp.html#ab35b01a366a2ea95725e97af278f87ab", null ],
+ [ "$user", "classApp.html#a91fd3c8b89016113b05f3be24805ccff", null ],
+ [ "$videoheight", "classApp.html#a56b1a432c96aef8b1971f779c9d93c8c", null ],
+ [ "$videowidth", "classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8", null ],
+ [ "$widgetlist", "classApp.html#a4833bee2eae4ad1691a04fa19e11a766", null ],
+ [ "$widgets", "classApp.html#aa5a87c46ab3fee21362c466bf78042ef", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classBaseObject-members.html b/doc/html/classBaseObject-members.html
new file mode 100644
index 000000000..2cc4aed11
--- /dev/null
+++ b/doc/html/classBaseObject-members.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classBaseObject.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">BaseObject Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classBaseObject.html">BaseObject</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classBaseObject.html#a02cc4cd8fa26b6fc76d92fde54b4e4b1">$app</a></td><td class="entry"><a class="el" href="classBaseObject.html">BaseObject</a></td><td class="entry"><span class="mlabel">private</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2">get_app</a>()</td><td class="entry"><a class="el" href="classBaseObject.html">BaseObject</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classBaseObject.html#a0a9acda12d751692834cf6999f889223">set_app</a>($app)</td><td class="entry"><a class="el" href="classBaseObject.html">BaseObject</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classBaseObject.html b/doc/html/classBaseObject.html
new file mode 100644
index 000000000..f83c0e393
--- /dev/null
+++ b/doc/html/classBaseObject.html
@@ -0,0 +1,221 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: BaseObject Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classBaseObject.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a> &#124;
+<a href="classBaseObject-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">BaseObject Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for BaseObject:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classBaseObject.png" usemap="#BaseObject_map" alt=""/>
+ <map id="BaseObject_map" name="BaseObject_map">
+<area href="classConversation.html" alt="Conversation" shape="rect" coords="0,56,87,80"/>
+<area href="classItem.html" alt="Item" shape="rect" coords="97,56,184,80"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ac43f10e69ce80c78e4870636250fc8a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2">get_app</a> ()</td></tr>
+<tr class="separator:ac43f10e69ce80c78e4870636250fc8a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a0a9acda12d751692834cf6999f889223"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBaseObject.html#a0a9acda12d751692834cf6999f889223">set_app</a> ($app)</td></tr>
+<tr class="separator:a0a9acda12d751692834cf6999f889223"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr class="memitem:a02cc4cd8fa26b6fc76d92fde54b4e4b1"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBaseObject.html#a02cc4cd8fa26b6fc76d92fde54b4e4b1">$app</a> = null</td></tr>
+<tr class="separator:a02cc4cd8fa26b6fc76d92fde54b4e4b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Basic object</p>
+<p>Contains what is usefull to any object </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ac43f10e69ce80c78e4870636250fc8a2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">BaseObject::get_app </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get the app</p>
+<p>Same as get_app from <a class="el" href="boot_8php.html">boot.php</a> </p>
+
+<p>Referenced by <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item\__construct()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, and <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0a9acda12d751692834cf6999f889223"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static BaseObject::set_app </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$app</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Set the app </p>
+
+<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a02cc4cd8fa26b6fc76d92fde54b4e4b1"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">BaseObject::$app = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classBaseObject.html#a0a9acda12d751692834cf6999f889223">set_app()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="BaseObject_8php.html">BaseObject.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classBaseObject.js b/doc/html/classBaseObject.js
new file mode 100644
index 000000000..ba0c42902
--- /dev/null
+++ b/doc/html/classBaseObject.js
@@ -0,0 +1,4 @@
+var classBaseObject =
+[
+ [ "get_app", "classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classBaseObject.png b/doc/html/classBaseObject.png
new file mode 100644
index 000000000..8cbd659ec
--- /dev/null
+++ b/doc/html/classBaseObject.png
Binary files differ
diff --git a/doc/html/classCache-members.html b/doc/html/classCache-members.html
new file mode 100644
index 000000000..f45439a83
--- /dev/null
+++ b/doc/html/classCache-members.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classCache.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Cache Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classCache.html">Cache</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">clear</a>()</td><td class="entry"><a class="el" href="classCache.html">Cache</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">get</a>($key)</td><td class="entry"><a class="el" href="classCache.html">Cache</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">set</a>($key, $value)</td><td class="entry"><a class="el" href="classCache.html">Cache</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classCache.html b/doc/html/classCache.html
new file mode 100644
index 000000000..9eaf93380
--- /dev/null
+++ b/doc/html/classCache.html
@@ -0,0 +1,218 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Cache Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classCache.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="classCache-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">Cache Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a70392b109331897bf9fdd7f1960e21de"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">get</a> ($key)</td></tr>
+<tr class="separator:a70392b109331897bf9fdd7f1960e21de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae622b82adc1c2fb1f3e2cc4fd9688fce"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">set</a> ($key, $value)</td></tr>
+<tr class="separator:ae622b82adc1c2fb1f3e2cc4fd9688fce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab14d0f4bdf7116a94d545c574b38f568"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">clear</a> ()</td></tr>
+<tr class="separator:ab14d0f4bdf7116a94d545c574b38f568"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>cache api </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ab14d0f4bdf7116a94d545c574b38f568"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static Cache::clear </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a70392b109331897bf9fdd7f1960e21de"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static Cache::get </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae622b82adc1c2fb1f3e2cc4fd9688fce"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static Cache::set </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="cache_8php.html">cache.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classConversation-members.html b/doc/html/classConversation-members.html
new file mode 100644
index 000000000..e93c324c5
--- /dev/null
+++ b/doc/html/classConversation-members.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classConversation.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Conversation Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classConversation.html">Conversation</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classConversation.html#afd4965d22a6e4bfea2f35e931b3273c6">$commentable</a></td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a">$mode</a></td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classConversation.html#a8748445aa26047ebed5141f3c3cbc244">$observer</a></td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae">$preview</a></td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classConversation.html#a2f12724ef0244e9049fe1bb9641b516d">$profile_owner</a></td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classConversation.html#a41f4a549e6a99f98935c4742addd22c8">$threads</a></td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classConversation.html#ae81221251307e315f566a11f921ce0a9">$writable</a></td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classConversation.html#a6b064d00c56a6b7dec359d4348711c84">__construct</a>($mode, $preview)</td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">add_thread</a>($item)</td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2">get_app</a>()</td><td class="entry"><a class="el" href="classBaseObject.html">BaseObject</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd">get_mode</a>()</td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classConversation.html#ae3d4190142e12b57051f11f2911f77a0">get_observer</a>()</td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classConversation.html#a5effe8ad3007e01333df44b81432b813">get_profile_owner</a>()</td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classConversation.html#a2a96b7a6573ae53db861624659e831cb">get_template_data</a>($alike, $dlike)</td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8">get_thread</a>($id)</td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3">is_commentable</a>()</td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classConversation.html#adf25ce023b69a166c63c6e84e02c136a">is_preview</a>()</td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classConversation.html#a5879199008b96bee7550b576d614e1c1">is_writable</a>()</td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classBaseObject.html#a0a9acda12d751692834cf6999f889223">set_app</a>($app)</td><td class="entry"><a class="el" href="classBaseObject.html">BaseObject</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">set_mode</a>($mode)</td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classConversation.html#a8898bddc1e8990e81dab9a13a532cc93">set_profile_owner</a>($uid)</td><td class="entry"><a class="el" href="classConversation.html">Conversation</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classConversation.html b/doc/html/classConversation.html
new file mode 100644
index 000000000..22be4c4b0
--- /dev/null
+++ b/doc/html/classConversation.html
@@ -0,0 +1,585 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Conversation Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classConversation.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classConversation-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">Conversation Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Conversation:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classConversation.png" usemap="#Conversation_map" alt=""/>
+ <map id="Conversation_map" name="Conversation_map">
+<area href="classBaseObject.html" alt="BaseObject" shape="rect" coords="0,0,87,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a6b064d00c56a6b7dec359d4348711c84"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#a6b064d00c56a6b7dec359d4348711c84">__construct</a> ($mode, $preview)</td></tr>
+<tr class="separator:a6b064d00c56a6b7dec359d4348711c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87a0d704d5f2b1a008cc2e9ce06a1bcd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd">get_mode</a> ()</td></tr>
+<tr class="separator:a87a0d704d5f2b1a008cc2e9ce06a1bcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5879199008b96bee7550b576d614e1c1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#a5879199008b96bee7550b576d614e1c1">is_writable</a> ()</td></tr>
+<tr class="separator:a5879199008b96bee7550b576d614e1c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b47c92b69459d461ea3cc9aae9597a3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3">is_commentable</a> ()</td></tr>
+<tr class="separator:a8b47c92b69459d461ea3cc9aae9597a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf25ce023b69a166c63c6e84e02c136a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#adf25ce023b69a166c63c6e84e02c136a">is_preview</a> ()</td></tr>
+<tr class="separator:adf25ce023b69a166c63c6e84e02c136a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5effe8ad3007e01333df44b81432b813"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#a5effe8ad3007e01333df44b81432b813">get_profile_owner</a> ()</td></tr>
+<tr class="separator:a5effe8ad3007e01333df44b81432b813"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8898bddc1e8990e81dab9a13a532cc93"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#a8898bddc1e8990e81dab9a13a532cc93">set_profile_owner</a> ($uid)</td></tr>
+<tr class="separator:a8898bddc1e8990e81dab9a13a532cc93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3d4190142e12b57051f11f2911f77a0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#ae3d4190142e12b57051f11f2911f77a0">get_observer</a> ()</td></tr>
+<tr class="separator:ae3d4190142e12b57051f11f2911f77a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8335cdd43f1836e3c255638e61a09e16"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">add_thread</a> ($item)</td></tr>
+<tr class="separator:a8335cdd43f1836e3c255638e61a09e16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a96b7a6573ae53db861624659e831cb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#a2a96b7a6573ae53db861624659e831cb">get_template_data</a> ($alike, $dlike)</td></tr>
+<tr class="separator:a2a96b7a6573ae53db861624659e831cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classBaseObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classBaseObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classBaseObject.html">BaseObject</a></td></tr>
+<tr class="memitem:ac43f10e69ce80c78e4870636250fc8a2 inherit pub_methods_classBaseObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2">get_app</a> ()</td></tr>
+<tr class="separator:ac43f10e69ce80c78e4870636250fc8a2 inherit pub_methods_classBaseObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr class="memitem:a66f121ca4026246f86a732e5faa0682c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">set_mode</a> ($mode)</td></tr>
+<tr class="separator:a66f121ca4026246f86a732e5faa0682c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4cff75d8c46b517e7133e4d0da6fc1c8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8">get_thread</a> ($id)</td></tr>
+<tr class="separator:a4cff75d8c46b517e7133e4d0da6fc1c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a41f4a549e6a99f98935c4742addd22c8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#a41f4a549e6a99f98935c4742addd22c8">$threads</a> = array()</td></tr>
+<tr class="separator:a41f4a549e6a99f98935c4742addd22c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afb03d1648dbfafe62caa1e30f32f2b1a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a">$mode</a> = null</td></tr>
+<tr class="separator:afb03d1648dbfafe62caa1e30f32f2b1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8748445aa26047ebed5141f3c3cbc244"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#a8748445aa26047ebed5141f3c3cbc244">$observer</a> = null</td></tr>
+<tr class="separator:a8748445aa26047ebed5141f3c3cbc244"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae81221251307e315f566a11f921ce0a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#ae81221251307e315f566a11f921ce0a9">$writable</a> = false</td></tr>
+<tr class="separator:ae81221251307e315f566a11f921ce0a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd4965d22a6e4bfea2f35e931b3273c6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#afd4965d22a6e4bfea2f35e931b3273c6">$commentable</a> = false</td></tr>
+<tr class="separator:afd4965d22a6e4bfea2f35e931b3273c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f12724ef0244e9049fe1bb9641b516d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#a2f12724ef0244e9049fe1bb9641b516d">$profile_owner</a> = 0</td></tr>
+<tr class="separator:a2f12724ef0244e9049fe1bb9641b516d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae9937f9e0f3d927acc2bed46cc72e9ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae">$preview</a> = false</td></tr>
+<tr class="separator:ae9937f9e0f3d927acc2bed46cc72e9ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_static_methods_classBaseObject"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classBaseObject')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classBaseObject.html">BaseObject</a></td></tr>
+<tr class="memitem:a0a9acda12d751692834cf6999f889223 inherit pub_static_methods_classBaseObject"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBaseObject.html#a0a9acda12d751692834cf6999f889223">set_app</a> ($app)</td></tr>
+<tr class="separator:a0a9acda12d751692834cf6999f889223 inherit pub_static_methods_classBaseObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A list of threads </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a6b064d00c56a6b7dec359d4348711c84"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::__construct </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$mode</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$preview</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a8335cdd43f1836e3c255638e61a09e16"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::add_thread </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Add a thread to the conversation</p>
+<p>Returns: _ The inserted item on success _ false on failure </p>
+
+</div>
+</div>
+<a class="anchor" id="a87a0d704d5f2b1a008cc2e9ce06a1bcd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::get_mode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get mode </p>
+
+<p>Referenced by <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">set_mode()</a>, and <a class="el" href="classConversation.html#a8898bddc1e8990e81dab9a13a532cc93">set_profile_owner()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae3d4190142e12b57051f11f2911f77a0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::get_observer </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5effe8ad3007e01333df44b81432b813"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::get_profile_owner </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get profile owner </p>
+
+</div>
+</div>
+<a class="anchor" id="a2a96b7a6573ae53db861624659e831cb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::get_template_data </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$alike</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dlike</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get data in a form usable by a conversation template</p>
+<p>We should find a way to avoid using those arguments (at least most of them)</p>
+<p>Returns: _ The data requested on success _ false on failure </p>
+
+</div>
+</div>
+<a class="anchor" id="a4cff75d8c46b517e7133e4d0da6fc1c8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::get_thread </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Get a thread based on its item id</p>
+<p>Returns: _ The found item on success _ false on failure </p>
+
+<p>Referenced by <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">add_thread()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8b47c92b69459d461ea3cc9aae9597a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::is_commentable </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adf25ce023b69a166c63c6e84e02c136a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::is_preview </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Check if page is a preview </p>
+
+</div>
+</div>
+<a class="anchor" id="a5879199008b96bee7550b576d614e1c1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::is_writable </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Check if page is writable </p>
+
+</div>
+</div>
+<a class="anchor" id="a66f121ca4026246f86a732e5faa0682c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::set_mode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$mode</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Set the mode we'll be displayed on </p>
+
+<p>Referenced by <a class="el" href="classConversation.html#a6b064d00c56a6b7dec359d4348711c84">__construct()</a>, and <a class="el" href="classConversation.html#a8898bddc1e8990e81dab9a13a532cc93">set_profile_owner()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8898bddc1e8990e81dab9a13a532cc93"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::set_profile_owner </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="afd4965d22a6e4bfea2f35e931b3273c6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::$commentable = false</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3">is_commentable()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afb03d1648dbfafe62caa1e30f32f2b1a"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::$mode = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classConversation.html#a6b064d00c56a6b7dec359d4348711c84">__construct()</a>, <a class="el" href="classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd">get_mode()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">set_mode()</a>, and <a class="el" href="classConversation.html#a8898bddc1e8990e81dab9a13a532cc93">set_profile_owner()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8748445aa26047ebed5141f3c3cbc244"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::$observer = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classConversation.html#ae3d4190142e12b57051f11f2911f77a0">get_observer()</a>, and <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">set_mode()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae9937f9e0f3d927acc2bed46cc72e9ae"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::$preview = false</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classConversation.html#a6b064d00c56a6b7dec359d4348711c84">__construct()</a>, and <a class="el" href="classConversation.html#adf25ce023b69a166c63c6e84e02c136a">is_preview()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2f12724ef0244e9049fe1bb9641b516d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::$profile_owner = 0</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classConversation.html#a5effe8ad3007e01333df44b81432b813">get_profile_owner()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a41f4a549e6a99f98935c4742addd22c8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::$threads = array()</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae81221251307e315f566a11f921ce0a9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Conversation::$writable = false</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classConversation.html#a5879199008b96bee7550b576d614e1c1">is_writable()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="ConversationObject_8php.html">ConversationObject.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classConversation.js b/doc/html/classConversation.js
new file mode 100644
index 000000000..57f735fb5
--- /dev/null
+++ b/doc/html/classConversation.js
@@ -0,0 +1,22 @@
+var classConversation =
+[
+ [ "__construct", "classConversation.html#a6b064d00c56a6b7dec359d4348711c84", null ],
+ [ "add_thread", "classConversation.html#a8335cdd43f1836e3c255638e61a09e16", null ],
+ [ "get_mode", "classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd", null ],
+ [ "get_observer", "classConversation.html#ae3d4190142e12b57051f11f2911f77a0", null ],
+ [ "get_profile_owner", "classConversation.html#a5effe8ad3007e01333df44b81432b813", null ],
+ [ "get_template_data", "classConversation.html#a2a96b7a6573ae53db861624659e831cb", null ],
+ [ "get_thread", "classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8", null ],
+ [ "is_commentable", "classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3", null ],
+ [ "is_preview", "classConversation.html#adf25ce023b69a166c63c6e84e02c136a", null ],
+ [ "is_writable", "classConversation.html#a5879199008b96bee7550b576d614e1c1", null ],
+ [ "set_mode", "classConversation.html#a66f121ca4026246f86a732e5faa0682c", null ],
+ [ "set_profile_owner", "classConversation.html#a8898bddc1e8990e81dab9a13a532cc93", null ],
+ [ "$commentable", "classConversation.html#afd4965d22a6e4bfea2f35e931b3273c6", null ],
+ [ "$mode", "classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a", null ],
+ [ "$observer", "classConversation.html#a8748445aa26047ebed5141f3c3cbc244", null ],
+ [ "$preview", "classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae", null ],
+ [ "$profile_owner", "classConversation.html#a2f12724ef0244e9049fe1bb9641b516d", null ],
+ [ "$threads", "classConversation.html#a41f4a549e6a99f98935c4742addd22c8", null ],
+ [ "$writable", "classConversation.html#ae81221251307e315f566a11f921ce0a9", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classConversation.png b/doc/html/classConversation.png
new file mode 100644
index 000000000..c4ab9b0ed
--- /dev/null
+++ b/doc/html/classConversation.png
Binary files differ
diff --git a/doc/html/classFKOAuth1-members.html b/doc/html/classFKOAuth1-members.html
new file mode 100644
index 000000000..dd4343883
--- /dev/null
+++ b/doc/html/classFKOAuth1-members.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classFKOAuth1.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">FKOAuth1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classFKOAuth1.html">FKOAuth1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6">__construct</a>()</td><td class="entry"><a class="el" href="classFKOAuth1.html">FKOAuth1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">loginUser</a>($uid)</td><td class="entry"><a class="el" href="classFKOAuth1.html">FKOAuth1</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classFKOAuth1.html b/doc/html/classFKOAuth1.html
new file mode 100644
index 000000000..7e3fb8590
--- /dev/null
+++ b/doc/html/classFKOAuth1.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: FKOAuth1 Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classFKOAuth1.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classFKOAuth1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">FKOAuth1 Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for FKOAuth1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classFKOAuth1.png" usemap="#FKOAuth1_map" alt=""/>
+ <map id="FKOAuth1_map" name="FKOAuth1_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a2f1276872329a6f0b704ccda1a4b9fa6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6">__construct</a> ()</td></tr>
+<tr class="separator:a2f1276872329a6f0b704ccda1a4b9fa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b1dac2ed31fc6ef84668afdda8b263f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">loginUser</a> ($uid)</td></tr>
+<tr class="separator:a2b1dac2ed31fc6ef84668afdda8b263f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a2f1276872329a6f0b704ccda1a4b9fa6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FKOAuth1::__construct </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a2b1dac2ed31fc6ef84668afdda8b263f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FKOAuth1::loginUser </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="oauth_8php.html">oauth.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classFKOAuth1.js b/doc/html/classFKOAuth1.js
new file mode 100644
index 000000000..dbaf2c2d5
--- /dev/null
+++ b/doc/html/classFKOAuth1.js
@@ -0,0 +1,5 @@
+var classFKOAuth1 =
+[
+ [ "__construct", "classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6", null ],
+ [ "loginUser", "classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classFKOAuth1.png b/doc/html/classFKOAuth1.png
new file mode 100644
index 000000000..740172c10
--- /dev/null
+++ b/doc/html/classFKOAuth1.png
Binary files differ
diff --git a/doc/html/classFKOAuthDataStore-members.html b/doc/html/classFKOAuthDataStore-members.html
new file mode 100644
index 000000000..d5cab373b
--- /dev/null
+++ b/doc/html/classFKOAuthDataStore-members.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classFKOAuthDataStore.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">FKOAuthDataStore Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classFKOAuthDataStore.html">FKOAuthDataStore</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819">gen_token</a>()</td><td class="entry"><a class="el" href="classFKOAuthDataStore.html">FKOAuthDataStore</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1">lookup_consumer</a>($consumer_key)</td><td class="entry"><a class="el" href="classFKOAuthDataStore.html">FKOAuthDataStore</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599">lookup_nonce</a>($consumer, $token, $nonce, $timestamp)</td><td class="entry"><a class="el" href="classFKOAuthDataStore.html">FKOAuthDataStore</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab">lookup_token</a>($consumer, $token_type, $token)</td><td class="entry"><a class="el" href="classFKOAuthDataStore.html">FKOAuthDataStore</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">new_access_token</a>($token, $consumer, $verifier=null)</td><td class="entry"><a class="el" href="classFKOAuthDataStore.html">FKOAuthDataStore</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">new_request_token</a>($consumer, $callback=null)</td><td class="entry"><a class="el" href="classFKOAuthDataStore.html">FKOAuthDataStore</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classFKOAuthDataStore.html b/doc/html/classFKOAuthDataStore.html
new file mode 100644
index 000000000..9966c83e1
--- /dev/null
+++ b/doc/html/classFKOAuthDataStore.html
@@ -0,0 +1,306 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: FKOAuthDataStore Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classFKOAuthDataStore.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classFKOAuthDataStore-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">FKOAuthDataStore Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for FKOAuthDataStore:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classFKOAuthDataStore.png" usemap="#FKOAuthDataStore_map" alt=""/>
+ <map id="FKOAuthDataStore_map" name="FKOAuthDataStore_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aa1a268be88ad3979bb4cc35bbb4dc819"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819">gen_token</a> ()</td></tr>
+<tr class="separator:aa1a268be88ad3979bb4cc35bbb4dc819"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1148d47b546350bf440bdd92792c5df1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1">lookup_consumer</a> ($consumer_key)</td></tr>
+<tr class="separator:a1148d47b546350bf440bdd92792c5df1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96f76387c3a93b0abe27a98013804bab"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab">lookup_token</a> ($consumer, $token_type, $token)</td></tr>
+<tr class="separator:a96f76387c3a93b0abe27a98013804bab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4edfe2e77ecd2e16ff6b5eb516ed3599"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599">lookup_nonce</a> ($consumer, $token, $nonce, $timestamp)</td></tr>
+<tr class="separator:a4edfe2e77ecd2e16ff6b5eb516ed3599"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a431b44d70e3da6a8256ab38f710e3050"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">new_request_token</a> ($consumer, $callback=null)</td></tr>
+<tr class="separator:a431b44d70e3da6a8256ab38f710e3050"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a434882f03e3cdb171ed89e09e337e934"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">new_access_token</a> ($token, $consumer, $verifier=null)</td></tr>
+<tr class="separator:a434882f03e3cdb171ed89e09e337e934"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aa1a268be88ad3979bb4cc35bbb4dc819"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FKOAuthDataStore::gen_token </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">new_access_token()</a>, and <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">new_request_token()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1148d47b546350bf440bdd92792c5df1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FKOAuthDataStore::lookup_consumer </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$consumer_key</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4edfe2e77ecd2e16ff6b5eb516ed3599"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FKOAuthDataStore::lookup_nonce </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$consumer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$token</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$nonce</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$timestamp</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a96f76387c3a93b0abe27a98013804bab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FKOAuthDataStore::lookup_token </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$consumer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$token_type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$token</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a434882f03e3cdb171ed89e09e337e934"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FKOAuthDataStore::new_access_token </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$token</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$consumer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$verifier</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a431b44d70e3da6a8256ab38f710e3050"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FKOAuthDataStore::new_request_token </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$consumer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$callback</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="oauth_8php.html">oauth.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classFKOAuthDataStore.js b/doc/html/classFKOAuthDataStore.js
new file mode 100644
index 000000000..29825cdac
--- /dev/null
+++ b/doc/html/classFKOAuthDataStore.js
@@ -0,0 +1,9 @@
+var classFKOAuthDataStore =
+[
+ [ "gen_token", "classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819", null ],
+ [ "lookup_consumer", "classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1", null ],
+ [ "lookup_nonce", "classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599", null ],
+ [ "lookup_token", "classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab", null ],
+ [ "new_access_token", "classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934", null ],
+ [ "new_request_token", "classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classFKOAuthDataStore.png b/doc/html/classFKOAuthDataStore.png
new file mode 100644
index 000000000..1d61bd0de
--- /dev/null
+++ b/doc/html/classFKOAuthDataStore.png
Binary files differ
diff --git a/doc/html/classFriendicaSmarty-members.html b/doc/html/classFriendicaSmarty-members.html
new file mode 100644
index 000000000..e160a346c
--- /dev/null
+++ b/doc/html/classFriendicaSmarty-members.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classFriendicaSmarty.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">FriendicaSmarty Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classFriendicaSmarty.html">FriendicaSmarty</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690">$filename</a></td><td class="entry"><a class="el" href="classFriendicaSmarty.html">FriendicaSmarty</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">__construct</a>()</td><td class="entry"><a class="el" href="classFriendicaSmarty.html">FriendicaSmarty</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classFriendicaSmarty.html#a6a4d4281d6fa9be1d37a97b188ffe8c9">parsed</a>($template= '')</td><td class="entry"><a class="el" href="classFriendicaSmarty.html">FriendicaSmarty</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classFriendicaSmarty.html b/doc/html/classFriendicaSmarty.html
new file mode 100644
index 000000000..49f77b903
--- /dev/null
+++ b/doc/html/classFriendicaSmarty.html
@@ -0,0 +1,188 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: FriendicaSmarty Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classFriendicaSmarty.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="classFriendicaSmarty-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">FriendicaSmarty Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for FriendicaSmarty:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classFriendicaSmarty.png" usemap="#FriendicaSmarty_map" alt=""/>
+ <map id="FriendicaSmarty_map" name="FriendicaSmarty_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:af12091b920b95eeef1218cbc48066ca6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">__construct</a> ()</td></tr>
+<tr class="separator:af12091b920b95eeef1218cbc48066ca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6a4d4281d6fa9be1d37a97b188ffe8c9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFriendicaSmarty.html#a6a4d4281d6fa9be1d37a97b188ffe8c9">parsed</a> ($template= '')</td></tr>
+<tr class="separator:a6a4d4281d6fa9be1d37a97b188ffe8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a33fabbd4d6eef869df496adf357ae690"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690">$filename</a></td></tr>
+<tr class="separator:a33fabbd4d6eef869df496adf357ae690"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="af12091b920b95eeef1218cbc48066ca6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FriendicaSmarty::__construct </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a6a4d4281d6fa9be1d37a97b188ffe8c9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FriendicaSmarty::parsed </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$template</em> = <code>''</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a33fabbd4d6eef869df496adf357ae690"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FriendicaSmarty::$filename</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="friendica__smarty_8php.html">friendica_smarty.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classFriendicaSmarty.js b/doc/html/classFriendicaSmarty.js
new file mode 100644
index 000000000..eded144b6
--- /dev/null
+++ b/doc/html/classFriendicaSmarty.js
@@ -0,0 +1,6 @@
+var classFriendicaSmarty =
+[
+ [ "__construct", "classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6", null ],
+ [ "parsed", "classFriendicaSmarty.html#a6a4d4281d6fa9be1d37a97b188ffe8c9", null ],
+ [ "$filename", "classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classFriendicaSmarty.png b/doc/html/classFriendicaSmarty.png
new file mode 100644
index 000000000..a2fffb758
--- /dev/null
+++ b/doc/html/classFriendicaSmarty.png
Binary files differ
diff --git a/doc/html/classFriendicaSmartyEngine-members.html b/doc/html/classFriendicaSmartyEngine-members.html
new file mode 100644
index 000000000..772ff8657
--- /dev/null
+++ b/doc/html/classFriendicaSmartyEngine-members.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classFriendicaSmartyEngine.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">FriendicaSmartyEngine Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classFriendicaSmartyEngine.html">FriendicaSmartyEngine</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02">$name</a></td><td class="entry"><a class="el" href="classFriendicaSmartyEngine.html">FriendicaSmartyEngine</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">__construct</a>()</td><td class="entry"><a class="el" href="classFriendicaSmartyEngine.html">FriendicaSmartyEngine</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">get_intltext_template</a>($file, $root='')</td><td class="entry"><a class="el" href="classFriendicaSmartyEngine.html">FriendicaSmartyEngine</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88">get_markup_template</a>($file, $root='')</td><td class="entry"><a class="el" href="classFriendicaSmartyEngine.html">FriendicaSmartyEngine</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2">replace_macros</a>($s, $r)</td><td class="entry"><a class="el" href="classFriendicaSmartyEngine.html">FriendicaSmartyEngine</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classFriendicaSmartyEngine.html b/doc/html/classFriendicaSmartyEngine.html
new file mode 100644
index 000000000..40f28092f
--- /dev/null
+++ b/doc/html/classFriendicaSmartyEngine.html
@@ -0,0 +1,267 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: FriendicaSmartyEngine Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classFriendicaSmartyEngine.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
+<a href="classFriendicaSmartyEngine-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">FriendicaSmartyEngine Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for FriendicaSmartyEngine:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classFriendicaSmartyEngine.png" usemap="#FriendicaSmartyEngine_map" alt=""/>
+ <map id="FriendicaSmartyEngine_map" name="FriendicaSmartyEngine_map">
+<area href="interfaceITemplateEngine.html" alt="ITemplateEngine" shape="rect" coords="0,0,144,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ab7c305bd8c386c2944e4dc9136cea5b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">__construct</a> ()</td></tr>
+<tr class="separator:ab7c305bd8c386c2944e4dc9136cea5b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad62f1181d2f02b54b46731ad2bd46db2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2">replace_macros</a> ($s, $r)</td></tr>
+<tr class="separator:ad62f1181d2f02b54b46731ad2bd46db2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab5994077fc3a64222e41b28e2bd8d88"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88">get_markup_template</a> ($file, $root='')</td></tr>
+<tr class="separator:aab5994077fc3a64222e41b28e2bd8d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35ec0ee828c36640ea25296bcb84a118"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">get_intltext_template</a> ($file, $root='')</td></tr>
+<tr class="separator:a35ec0ee828c36640ea25296bcb84a118"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr class="memitem:aaba6a42101bc9ae32e36b7fa2e243f02"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02">$name</a> =&quot;smarty3&quot;</td></tr>
+<tr class="separator:aaba6a42101bc9ae32e36b7fa2e243f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ab7c305bd8c386c2944e4dc9136cea5b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FriendicaSmartyEngine::__construct </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a35ec0ee828c36640ea25296bcb84a118"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FriendicaSmartyEngine::get_intltext_template </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$file</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$root</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aab5994077fc3a64222e41b28e2bd8d88"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FriendicaSmartyEngine::get_markup_template </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$file</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$root</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Implements <a class="el" href="interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442">ITemplateEngine</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad62f1181d2f02b54b46731ad2bd46db2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">FriendicaSmartyEngine::replace_macros </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$r</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Implements <a class="el" href="interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243">ITemplateEngine</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="aaba6a42101bc9ae32e36b7fa2e243f02"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">FriendicaSmartyEngine::$name =&quot;smarty3&quot;</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="friendica__smarty_8php.html">friendica_smarty.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classFriendicaSmartyEngine.js b/doc/html/classFriendicaSmartyEngine.js
new file mode 100644
index 000000000..cabd197d1
--- /dev/null
+++ b/doc/html/classFriendicaSmartyEngine.js
@@ -0,0 +1,7 @@
+var classFriendicaSmartyEngine =
+[
+ [ "__construct", "classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6", null ],
+ [ "get_intltext_template", "classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118", null ],
+ [ "get_markup_template", "classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88", null ],
+ [ "replace_macros", "classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classFriendicaSmartyEngine.png b/doc/html/classFriendicaSmartyEngine.png
new file mode 100644
index 000000000..afe04a5fc
--- /dev/null
+++ b/doc/html/classFriendicaSmartyEngine.png
Binary files differ
diff --git a/doc/html/classItem-members.html b/doc/html/classItem-members.html
new file mode 100644
index 000000000..3e67b71c0
--- /dev/null
+++ b/doc/html/classItem-members.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classItem.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Item Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classItem.html">Item</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#acc32426c0f465391be8a99ad810c7b8e">$channel</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a80dcd0fb7673776c0967839d429c2a0f">$children</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a90743c8348b13213275c223bb9333aa0">$comment_box_template</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a007424e3e3171dcfb4312a02161da6cd">$conversation</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#aec24e233f9098f902b1e57e60dcb2019">$data</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a9594df6014b0b6f45364ea7a34510130">$owner_name</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a078f95b4134ce3a1df344cf8d386f986">$owner_photo</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#afa54851df82962c7c42dea3cc9f5c92c">$owner_url</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a1a1e42877e6ac7af50286142ceb483d2">$parent</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a5b561415861f5b89b0733aacfe0428d1">$redirect_url</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a7f7bc059de377319282cb4ef4a828480">$template</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2">$threaded</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a5cfa6cf964f433a917a81cab079ff9d8">$toplevel</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8">$visiting</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189">$wall_to_wall</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">__construct</a>($data)</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">add_child</a>($item)</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8">check_wall_to_wall</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">count_descendants</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2">get_app</a>()</td><td class="entry"><a class="el" href="classBaseObject.html">BaseObject</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a632185dd25c5caf277067c76230a4320">get_child</a>($id)</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#aa0ee775ec94abccec6c798428835d001">get_children</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">get_comment_box</a>($indent)</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a904421c7a427411bb2ab473bca872f63">get_comment_box_template</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a0c301aaed2b7d682728d18db3a22afa3">get_conversation</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#ad3638f93065693c1f69eb349feb1b7aa">get_data</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c">get_data_value</a>($name)</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#ac0f27e58532612f6e7a54c8a621b9b92">get_id</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a67892aa23d19f4431bb2e5f43c74000e">get_owner_name</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#aa541bc4290e51bfd688d6921bebabc73">get_owner_photo</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a9f2d219da712390f59012fc32a342074">get_owner_url</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a4b92e3a9d6212c553aa2661489bd95d8">get_parent</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a428f448f89a8629055ea3294eb942aea">get_redirect_url</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#aba23a0a9d89e316d2b343cc46d695d91">get_template</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data</a>($alike, $dlike, $thread_level=1)</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a5b2fafdca55aefeaa08993a5a60529f0">is_threaded</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#aa49e40f961dff66da32c5ae110e32993">is_toplevel</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a97c7feeea7f26a73176cb19faa455e12">is_visiting</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#aabf87ded59c25b5fe2b2296678e70509">is_wall_to_wall</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">remove_child</a>($item)</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#aa452b5bcd8dea12119b09212c615cb41">remove_parent</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classBaseObject.html#a0a9acda12d751692834cf6999f889223">set_app</a>($app)</td><td class="entry"><a class="el" href="classBaseObject.html">BaseObject</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#aa8b1bbc4236890694635295e46d7fd72">set_conversation</a>($conv)</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7">set_parent</a>($item)</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classItem.html b/doc/html/classItem.html
new file mode 100644
index 000000000..de52cab07
--- /dev/null
+++ b/doc/html/classItem.html
@@ -0,0 +1,1177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Item Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classItem.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classItem-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">Item Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Item:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classItem.png" usemap="#Item_map" alt=""/>
+ <map id="Item_map" name="Item_map">
+<area href="classBaseObject.html" alt="BaseObject" shape="rect" coords="0,0,77,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a248f45871ecfe82a08d1d4c0769b2eb2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">__construct</a> ($data)</td></tr>
+<tr class="separator:a248f45871ecfe82a08d1d4c0769b2eb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5dcbe0b94cb2d5719bc5b6bd8ad60c8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data</a> ($alike, $dlike, $thread_level=1)</td></tr>
+<tr class="separator:ad5dcbe0b94cb2d5719bc5b6bd8ad60c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac0f27e58532612f6e7a54c8a621b9b92"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#ac0f27e58532612f6e7a54c8a621b9b92">get_id</a> ()</td></tr>
+<tr class="separator:ac0f27e58532612f6e7a54c8a621b9b92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b2fafdca55aefeaa08993a5a60529f0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a5b2fafdca55aefeaa08993a5a60529f0">is_threaded</a> ()</td></tr>
+<tr class="separator:a5b2fafdca55aefeaa08993a5a60529f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a80dcd9d0f548c3ad550abe7e6981fb51"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">add_child</a> ($item)</td></tr>
+<tr class="separator:a80dcd9d0f548c3ad550abe7e6981fb51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a632185dd25c5caf277067c76230a4320"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a632185dd25c5caf277067c76230a4320">get_child</a> ($id)</td></tr>
+<tr class="separator:a632185dd25c5caf277067c76230a4320"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa0ee775ec94abccec6c798428835d001"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#aa0ee775ec94abccec6c798428835d001">get_children</a> ()</td></tr>
+<tr class="separator:aa0ee775ec94abccec6c798428835d001"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ce70ef63f9f4d86a09c351678806925"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">remove_child</a> ($item)</td></tr>
+<tr class="separator:a2ce70ef63f9f4d86a09c351678806925"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8b1bbc4236890694635295e46d7fd72"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#aa8b1bbc4236890694635295e46d7fd72">set_conversation</a> ($conv)</td></tr>
+<tr class="separator:aa8b1bbc4236890694635295e46d7fd72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c301aaed2b7d682728d18db3a22afa3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a0c301aaed2b7d682728d18db3a22afa3">get_conversation</a> ()</td></tr>
+<tr class="separator:a0c301aaed2b7d682728d18db3a22afa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3638f93065693c1f69eb349feb1b7aa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#ad3638f93065693c1f69eb349feb1b7aa">get_data</a> ()</td></tr>
+<tr class="separator:ad3638f93065693c1f69eb349feb1b7aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6f1c96cc82a0dfb7e881fc70309ea3c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c">get_data_value</a> ($name)</td></tr>
+<tr class="separator:ac6f1c96cc82a0dfb7e881fc70309ea3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classBaseObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classBaseObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classBaseObject.html">BaseObject</a></td></tr>
+<tr class="memitem:ac43f10e69ce80c78e4870636250fc8a2 inherit pub_methods_classBaseObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2">get_app</a> ()</td></tr>
+<tr class="separator:ac43f10e69ce80c78e4870636250fc8a2 inherit pub_methods_classBaseObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:aec24e233f9098f902b1e57e60dcb2019"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#aec24e233f9098f902b1e57e60dcb2019">$data</a> = array()</td></tr>
+<tr class="separator:aec24e233f9098f902b1e57e60dcb2019"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a9890ff72662d5bba301d1f2dd8aec9d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7">set_parent</a> ($item)</td></tr>
+<tr class="separator:a9890ff72662d5bba301d1f2dd8aec9d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa452b5bcd8dea12119b09212c615cb41"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#aa452b5bcd8dea12119b09212c615cb41">remove_parent</a> ()</td></tr>
+<tr class="separator:aa452b5bcd8dea12119b09212c615cb41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b92e3a9d6212c553aa2661489bd95d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a4b92e3a9d6212c553aa2661489bd95d8">get_parent</a> ()</td></tr>
+<tr class="separator:a4b92e3a9d6212c553aa2661489bd95d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcdb0ea9bcd1576bc99bba9b8f700bb8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8">check_wall_to_wall</a> ()</td></tr>
+<tr class="separator:abcdb0ea9bcd1576bc99bba9b8f700bb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr class="memitem:aba23a0a9d89e316d2b343cc46d695d91"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#aba23a0a9d89e316d2b343cc46d695d91">get_template</a> ()</td></tr>
+<tr class="separator:aba23a0a9d89e316d2b343cc46d695d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa49e40f961dff66da32c5ae110e32993"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#aa49e40f961dff66da32c5ae110e32993">is_toplevel</a> ()</td></tr>
+<tr class="separator:aa49e40f961dff66da32c5ae110e32993"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca1e66988ed00cd627b2a359b72cd0ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">count_descendants</a> ()</td></tr>
+<tr class="separator:aca1e66988ed00cd627b2a359b72cd0ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a904421c7a427411bb2ab473bca872f63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a904421c7a427411bb2ab473bca872f63">get_comment_box_template</a> ()</td></tr>
+<tr class="separator:a904421c7a427411bb2ab473bca872f63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ee7667c2ec6cd7657328e27848c0bdf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">get_comment_box</a> ($indent)</td></tr>
+<tr class="separator:a3ee7667c2ec6cd7657328e27848c0bdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a428f448f89a8629055ea3294eb942aea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a428f448f89a8629055ea3294eb942aea">get_redirect_url</a> ()</td></tr>
+<tr class="separator:a428f448f89a8629055ea3294eb942aea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aabf87ded59c25b5fe2b2296678e70509"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#aabf87ded59c25b5fe2b2296678e70509">is_wall_to_wall</a> ()</td></tr>
+<tr class="separator:aabf87ded59c25b5fe2b2296678e70509"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f2d219da712390f59012fc32a342074"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a9f2d219da712390f59012fc32a342074">get_owner_url</a> ()</td></tr>
+<tr class="separator:a9f2d219da712390f59012fc32a342074"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa541bc4290e51bfd688d6921bebabc73"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#aa541bc4290e51bfd688d6921bebabc73">get_owner_photo</a> ()</td></tr>
+<tr class="separator:aa541bc4290e51bfd688d6921bebabc73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a67892aa23d19f4431bb2e5f43c74000e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a67892aa23d19f4431bb2e5f43c74000e">get_owner_name</a> ()</td></tr>
+<tr class="separator:a67892aa23d19f4431bb2e5f43c74000e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97c7feeea7f26a73176cb19faa455e12"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a97c7feeea7f26a73176cb19faa455e12">is_visiting</a> ()</td></tr>
+<tr class="separator:a97c7feeea7f26a73176cb19faa455e12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a7f7bc059de377319282cb4ef4a828480"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a7f7bc059de377319282cb4ef4a828480">$template</a> = 'conv_item.tpl'</td></tr>
+<tr class="separator:a7f7bc059de377319282cb4ef4a828480"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a90743c8348b13213275c223bb9333aa0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a90743c8348b13213275c223bb9333aa0">$comment_box_template</a> = 'comment_item.tpl'</td></tr>
+<tr class="separator:a90743c8348b13213275c223bb9333aa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5cfa6cf964f433a917a81cab079ff9d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a5cfa6cf964f433a917a81cab079ff9d8">$toplevel</a> = false</td></tr>
+<tr class="separator:a5cfa6cf964f433a917a81cab079ff9d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a80dcd0fb7673776c0967839d429c2a0f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a80dcd0fb7673776c0967839d429c2a0f">$children</a> = array()</td></tr>
+<tr class="separator:a80dcd0fb7673776c0967839d429c2a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a1e42877e6ac7af50286142ceb483d2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a1a1e42877e6ac7af50286142ceb483d2">$parent</a> = null</td></tr>
+<tr class="separator:a1a1e42877e6ac7af50286142ceb483d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a007424e3e3171dcfb4312a02161da6cd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a007424e3e3171dcfb4312a02161da6cd">$conversation</a> = null</td></tr>
+<tr class="separator:a007424e3e3171dcfb4312a02161da6cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b561415861f5b89b0733aacfe0428d1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a5b561415861f5b89b0733aacfe0428d1">$redirect_url</a> = null</td></tr>
+<tr class="separator:a5b561415861f5b89b0733aacfe0428d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa54851df82962c7c42dea3cc9f5c92c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#afa54851df82962c7c42dea3cc9f5c92c">$owner_url</a> = ''</td></tr>
+<tr class="separator:afa54851df82962c7c42dea3cc9f5c92c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a078f95b4134ce3a1df344cf8d386f986"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a078f95b4134ce3a1df344cf8d386f986">$owner_photo</a> = ''</td></tr>
+<tr class="separator:a078f95b4134ce3a1df344cf8d386f986"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9594df6014b0b6f45364ea7a34510130"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a9594df6014b0b6f45364ea7a34510130">$owner_name</a> = ''</td></tr>
+<tr class="separator:a9594df6014b0b6f45364ea7a34510130"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d29ddecc073151a65a8e2ea2f6e4189"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189">$wall_to_wall</a> = false</td></tr>
+<tr class="separator:a5d29ddecc073151a65a8e2ea2f6e4189"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1cb6aa8abdf7ea7daca647e40c8ea3a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2">$threaded</a> = false</td></tr>
+<tr class="separator:a1cb6aa8abdf7ea7daca647e40c8ea3a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a123ae98987c1e30ecb15c4edf5a3b8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8">$visiting</a> = false</td></tr>
+<tr class="separator:a4a123ae98987c1e30ecb15c4edf5a3b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc32426c0f465391be8a99ad810c7b8e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#acc32426c0f465391be8a99ad810c7b8e">$channel</a> = null</td></tr>
+<tr class="separator:acc32426c0f465391be8a99ad810c7b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_static_methods_classBaseObject"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classBaseObject')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classBaseObject.html">BaseObject</a></td></tr>
+<tr class="memitem:a0a9acda12d751692834cf6999f889223 inherit pub_static_methods_classBaseObject"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBaseObject.html#a0a9acda12d751692834cf6999f889223">set_app</a> ($app)</td></tr>
+<tr class="separator:a0a9acda12d751692834cf6999f889223 inherit pub_static_methods_classBaseObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>An item </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a248f45871ecfe82a08d1d4c0769b2eb2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::__construct </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a80dcd9d0f548c3ad550abe7e6981fb51"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::add_child </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Add a child item </p>
+
+<p>Referenced by <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">__construct()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abcdb0ea9bcd1576bc99bba9b8f700bb8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::check_wall_to_wall </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Check if we are a wall to wall item and set the relevant properties </p>
+
+<p>Referenced by <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aca1e66988ed00cd627b2a359b72cd0ae"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::count_descendants </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Count the total of our descendants </p>
+
+<p>Referenced by <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a632185dd25c5caf277067c76230a4320"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_child </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get a child by its ID </p>
+
+<p>Referenced by <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">add_child()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa0ee775ec94abccec6c798428835d001"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_children </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get all our children </p>
+
+<p>Referenced by <a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">count_descendants()</a>, <a class="el" href="classItem.html#a632185dd25c5caf277067c76230a4320">get_child()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>, <a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">remove_child()</a>, and <a class="el" href="classItem.html#aa8b1bbc4236890694635295e46d7fd72">set_conversation()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3ee7667c2ec6cd7657328e27848c0bdf"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_comment_box </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$indent</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Get the comment box</p>
+<p>Returns: _ The comment box string (empty if no comment box) _ false on failure </p>
+
+<p>Referenced by <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a904421c7a427411bb2ab473bca872f63"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_comment_box_template </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Get the template for the comment box </p>
+
+<p>Referenced by <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">get_comment_box()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0c301aaed2b7d682728d18db3a22afa3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_conversation </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>get conversation </p>
+
+<p>Referenced by <a class="el" href="classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8">check_wall_to_wall()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">get_comment_box()</a>, and <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad3638f93065693c1f69eb349feb1b7aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_data </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get raw data</p>
+<p>We shouldn't need this </p>
+
+<p>Referenced by <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac6f1c96cc82a0dfb7e881fc70309ea3c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_data_value </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get a data value</p>
+<p>Returns: _ value on success _ false on failure </p>
+
+<p>Referenced by <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">__construct()</a>, <a class="el" href="classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8">check_wall_to_wall()</a>, <a class="el" href="classItem.html#ac0f27e58532612f6e7a54c8a621b9b92">get_id()</a>, and <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac0f27e58532612f6e7a54c8a621b9b92"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_id </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">__construct()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">get_comment_box()</a>, and <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a67892aa23d19f4431bb2e5f43c74000e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_owner_name </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa541bc4290e51bfd688d6921bebabc73"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_owner_photo </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9f2d219da712390f59012fc32a342074"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_owner_url </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4b92e3a9d6212c553aa2661489bd95d8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_parent </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Get parent item </p>
+
+<p>Referenced by <a class="el" href="classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7">set_parent()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a428f448f89a8629055ea3294eb942aea"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_redirect_url </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aba23a0a9d89e316d2b343cc46d695d91"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_template </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Get template </p>
+
+<p>Referenced by <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad5dcbe0b94cb2d5719bc5b6bd8ad60c8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_template_data </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$alike</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dlike</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$thread_level</em> = <code>1</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get data in a form usable by a conversation template</p>
+<p>Returns: _ The data requested on success _ false on failure </p>
+
+</div>
+</div>
+<a class="anchor" id="a5b2fafdca55aefeaa08993a5a60529f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::is_threaded </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">get_comment_box()</a>, and <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa49e40f961dff66da32c5ae110e32993"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::is_toplevel </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Check if this is a toplevel post </p>
+
+<p>Referenced by <a class="el" href="classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8">check_wall_to_wall()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">get_comment_box()</a>, and <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a97c7feeea7f26a73176cb19faa455e12"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::is_visiting </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aabf87ded59c25b5fe2b2296678e70509"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::is_wall_to_wall </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2ce70ef63f9f4d86a09c351678806925"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::remove_child </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Remove a child </p>
+
+</div>
+</div>
+<a class="anchor" id="aa452b5bcd8dea12119b09212c615cb41"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::remove_parent </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Remove our parent </p>
+
+</div>
+</div>
+<a class="anchor" id="aa8b1bbc4236890694635295e46d7fd72"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::set_conversation </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$conv</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>set conversation </p>
+
+<p>Referenced by <a class="el" href="classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7">set_parent()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9890ff72662d5bba301d1f2dd8aec9d7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::set_parent </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Set our parent </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="acc32426c0f465391be8a99ad810c7b8e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$channel = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a80dcd0fb7673776c0967839d429c2a0f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$children = array()</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">count_descendants()</a>, <a class="el" href="classItem.html#aa0ee775ec94abccec6c798428835d001">get_children()</a>, and <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a90743c8348b13213275c223bb9333aa0"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$comment_box_template = 'comment_item.tpl'</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a904421c7a427411bb2ab473bca872f63">get_comment_box_template()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a007424e3e3171dcfb4312a02161da6cd"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$conversation = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a0c301aaed2b7d682728d18db3a22afa3">get_conversation()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aec24e233f9098f902b1e57e60dcb2019"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$data = array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">__construct()</a>, and <a class="el" href="classItem.html#ad3638f93065693c1f69eb349feb1b7aa">get_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9594df6014b0b6f45364ea7a34510130"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$owner_name = ''</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a67892aa23d19f4431bb2e5f43c74000e">get_owner_name()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a078f95b4134ce3a1df344cf8d386f986"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$owner_photo = ''</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#aa541bc4290e51bfd688d6921bebabc73">get_owner_photo()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afa54851df82962c7c42dea3cc9f5c92c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$owner_url = ''</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a9f2d219da712390f59012fc32a342074">get_owner_url()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1a1e42877e6ac7af50286142ceb483d2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$parent = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a4b92e3a9d6212c553aa2661489bd95d8">get_parent()</a>, and <a class="el" href="classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7">set_parent()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5b561415861f5b89b0733aacfe0428d1"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$redirect_url = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a428f448f89a8629055ea3294eb942aea">get_redirect_url()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7f7bc059de377319282cb4ef4a828480"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$template = 'conv_item.tpl'</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">get_comment_box()</a>, and <a class="el" href="classItem.html#aba23a0a9d89e316d2b343cc46d695d91">get_template()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1cb6aa8abdf7ea7daca647e40c8ea3a2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$threaded = false</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a5b2fafdca55aefeaa08993a5a60529f0">is_threaded()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5cfa6cf964f433a917a81cab079ff9d8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$toplevel = false</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#aa49e40f961dff66da32c5ae110e32993">is_toplevel()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4a123ae98987c1e30ecb15c4edf5a3b8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$visiting = false</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a97c7feeea7f26a73176cb19faa455e12">is_visiting()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5d29ddecc073151a65a8e2ea2f6e4189"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$wall_to_wall = false</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#aabf87ded59c25b5fe2b2296678e70509">is_wall_to_wall()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="ItemObject_8php.html">ItemObject.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classItem.js b/doc/html/classItem.js
new file mode 100644
index 000000000..a47a3a8e3
--- /dev/null
+++ b/doc/html/classItem.js
@@ -0,0 +1,45 @@
+var classItem =
+[
+ [ "__construct", "classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2", null ],
+ [ "add_child", "classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51", null ],
+ [ "check_wall_to_wall", "classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8", null ],
+ [ "count_descendants", "classItem.html#aca1e66988ed00cd627b2a359b72cd0ae", null ],
+ [ "get_child", "classItem.html#a632185dd25c5caf277067c76230a4320", null ],
+ [ "get_children", "classItem.html#aa0ee775ec94abccec6c798428835d001", null ],
+ [ "get_comment_box", "classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf", null ],
+ [ "get_comment_box_template", "classItem.html#a904421c7a427411bb2ab473bca872f63", null ],
+ [ "get_conversation", "classItem.html#a0c301aaed2b7d682728d18db3a22afa3", null ],
+ [ "get_data", "classItem.html#ad3638f93065693c1f69eb349feb1b7aa", null ],
+ [ "get_data_value", "classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c", null ],
+ [ "get_id", "classItem.html#ac0f27e58532612f6e7a54c8a621b9b92", null ],
+ [ "get_owner_name", "classItem.html#a67892aa23d19f4431bb2e5f43c74000e", null ],
+ [ "get_owner_photo", "classItem.html#aa541bc4290e51bfd688d6921bebabc73", null ],
+ [ "get_owner_url", "classItem.html#a9f2d219da712390f59012fc32a342074", null ],
+ [ "get_parent", "classItem.html#a4b92e3a9d6212c553aa2661489bd95d8", null ],
+ [ "get_redirect_url", "classItem.html#a428f448f89a8629055ea3294eb942aea", null ],
+ [ "get_template", "classItem.html#aba23a0a9d89e316d2b343cc46d695d91", null ],
+ [ "get_template_data", "classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8", null ],
+ [ "is_threaded", "classItem.html#a5b2fafdca55aefeaa08993a5a60529f0", null ],
+ [ "is_toplevel", "classItem.html#aa49e40f961dff66da32c5ae110e32993", null ],
+ [ "is_visiting", "classItem.html#a97c7feeea7f26a73176cb19faa455e12", null ],
+ [ "is_wall_to_wall", "classItem.html#aabf87ded59c25b5fe2b2296678e70509", null ],
+ [ "remove_child", "classItem.html#a2ce70ef63f9f4d86a09c351678806925", null ],
+ [ "remove_parent", "classItem.html#aa452b5bcd8dea12119b09212c615cb41", null ],
+ [ "set_conversation", "classItem.html#aa8b1bbc4236890694635295e46d7fd72", null ],
+ [ "set_parent", "classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7", null ],
+ [ "$channel", "classItem.html#acc32426c0f465391be8a99ad810c7b8e", null ],
+ [ "$children", "classItem.html#a80dcd0fb7673776c0967839d429c2a0f", null ],
+ [ "$comment_box_template", "classItem.html#a90743c8348b13213275c223bb9333aa0", null ],
+ [ "$conversation", "classItem.html#a007424e3e3171dcfb4312a02161da6cd", null ],
+ [ "$data", "classItem.html#aec24e233f9098f902b1e57e60dcb2019", null ],
+ [ "$owner_name", "classItem.html#a9594df6014b0b6f45364ea7a34510130", null ],
+ [ "$owner_photo", "classItem.html#a078f95b4134ce3a1df344cf8d386f986", null ],
+ [ "$owner_url", "classItem.html#afa54851df82962c7c42dea3cc9f5c92c", null ],
+ [ "$parent", "classItem.html#a1a1e42877e6ac7af50286142ceb483d2", null ],
+ [ "$redirect_url", "classItem.html#a5b561415861f5b89b0733aacfe0428d1", null ],
+ [ "$template", "classItem.html#a7f7bc059de377319282cb4ef4a828480", null ],
+ [ "$threaded", "classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2", null ],
+ [ "$toplevel", "classItem.html#a5cfa6cf964f433a917a81cab079ff9d8", null ],
+ [ "$visiting", "classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8", null ],
+ [ "$wall_to_wall", "classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classItem.png b/doc/html/classItem.png
new file mode 100644
index 000000000..d1000fab9
--- /dev/null
+++ b/doc/html/classItem.png
Binary files differ
diff --git a/doc/html/classPhoto-members.html b/doc/html/classPhoto-members.html
new file mode 100644
index 000000000..02914e5d0
--- /dev/null
+++ b/doc/html/classPhoto-members.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classPhoto.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Photo Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classPhoto.html">Photo</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#a2b05906daa294e0c904aff0ba24b5bd3">$height</a></td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#aa09af89979e3e46c0c58989ee063d69d">$image</a></td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#a040b23beaab0c0db4311b31cae6b8106">$imagick</a></td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#af87e8ec7587bbcb28f91e7548f560695">$type</a></td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#a338d80512bdfeb6a6a00a9381d76de5f">$types</a></td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#a50e0b85ea8a3f724dd74366756669e61">$valid</a></td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#af18778643b1f6c637d9d7f5abd561f11">$width</a></td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#ad06199e7c1222350ef8c1cdcfade265c">__construct</a>($data, $type=null)</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#a0906cba2a2a895cc22179de27449cbd2">__destruct</a>()</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#a4ace266825f6b2bbc3c7f990f5d92500">cropImage</a>($max, $x, $y, $w, $h)</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#a7acd95a0380f95999dd069fbb5629ea5">flip</a>($horiz=true, $vert=false)</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#a1f00f0e1b6d90c5d83d8d3febb703075">get_FormatsMap</a>()</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#ade61db6eb69c065e4df66feaa1942d29">getExt</a>()</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#ab83e29500828ead47ac0a8cb9439082c">getHeight</a>()</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#a29213571e2688f17240cd2b3892d7a62">getImage</a>()</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#ad17537abe440ac133c3b2d951f92677b">getType</a>()</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#a74a04f56215cee00533b85b24daecfb1">getWidth</a>()</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#a7c4be19101d5a289a491428c2f8d747c">imageString</a>()</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#abad44c9fc7a1853920555398bf905433">is_imagick</a>()</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#a66705cd7db1f8dce59ceac57dbf14476">is_valid</a>()</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#a32ff09cd464a48bc8e510a1403410753">orient</a>($filename)</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#a8b2b0a7f949a566c21e0160fbf047666">rotate</a>($degrees)</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#af522871c8ab451155b9745fa7f057943">saveImage</a>($path)</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#a4ff11117ada771637a61a668d2af6636">scaleImage</a>($max)</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#a080a5219eb09c2621dabeae153ce6a03">scaleImageSquare</a>($dim)</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#a735eb657277e7a46cebe7f6fde0af80a">scaleImageUp</a>($min)</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classPhoto.html#a15e21237805d5f1019b4e40322389194">store</a>($aid, $uid, $xchan, $rid, $filename, $album, $scale, $profile=0, $allow_cid= '', $allow_gid= '', $deny_cid= '', $deny_gid= '')</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classPhoto.html#af46fdc365916728deb59adf5c99f528d">supportedTypes</a>()</td><td class="entry"><a class="el" href="classPhoto.html">Photo</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classPhoto.html b/doc/html/classPhoto.html
new file mode 100644
index 000000000..8c86285e3
--- /dev/null
+++ b/doc/html/classPhoto.html
@@ -0,0 +1,826 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: Photo Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classPhoto.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classPhoto-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">Photo Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ad06199e7c1222350ef8c1cdcfade265c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#ad06199e7c1222350ef8c1cdcfade265c">__construct</a> ($data, $type=null)</td></tr>
+<tr class="separator:ad06199e7c1222350ef8c1cdcfade265c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0906cba2a2a895cc22179de27449cbd2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a0906cba2a2a895cc22179de27449cbd2">__destruct</a> ()</td></tr>
+<tr class="separator:a0906cba2a2a895cc22179de27449cbd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abad44c9fc7a1853920555398bf905433"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#abad44c9fc7a1853920555398bf905433">is_imagick</a> ()</td></tr>
+<tr class="separator:abad44c9fc7a1853920555398bf905433"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f00f0e1b6d90c5d83d8d3febb703075"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a1f00f0e1b6d90c5d83d8d3febb703075">get_FormatsMap</a> ()</td></tr>
+<tr class="separator:a1f00f0e1b6d90c5d83d8d3febb703075"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66705cd7db1f8dce59ceac57dbf14476"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a66705cd7db1f8dce59ceac57dbf14476">is_valid</a> ()</td></tr>
+<tr class="separator:a66705cd7db1f8dce59ceac57dbf14476"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a74a04f56215cee00533b85b24daecfb1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a74a04f56215cee00533b85b24daecfb1">getWidth</a> ()</td></tr>
+<tr class="separator:a74a04f56215cee00533b85b24daecfb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab83e29500828ead47ac0a8cb9439082c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#ab83e29500828ead47ac0a8cb9439082c">getHeight</a> ()</td></tr>
+<tr class="separator:ab83e29500828ead47ac0a8cb9439082c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29213571e2688f17240cd2b3892d7a62"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a29213571e2688f17240cd2b3892d7a62">getImage</a> ()</td></tr>
+<tr class="separator:a29213571e2688f17240cd2b3892d7a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad17537abe440ac133c3b2d951f92677b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#ad17537abe440ac133c3b2d951f92677b">getType</a> ()</td></tr>
+<tr class="separator:ad17537abe440ac133c3b2d951f92677b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade61db6eb69c065e4df66feaa1942d29"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#ade61db6eb69c065e4df66feaa1942d29">getExt</a> ()</td></tr>
+<tr class="separator:ade61db6eb69c065e4df66feaa1942d29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ff11117ada771637a61a668d2af6636"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a4ff11117ada771637a61a668d2af6636">scaleImage</a> ($max)</td></tr>
+<tr class="separator:a4ff11117ada771637a61a668d2af6636"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b2b0a7f949a566c21e0160fbf047666"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a8b2b0a7f949a566c21e0160fbf047666">rotate</a> ($degrees)</td></tr>
+<tr class="separator:a8b2b0a7f949a566c21e0160fbf047666"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7acd95a0380f95999dd069fbb5629ea5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a7acd95a0380f95999dd069fbb5629ea5">flip</a> ($horiz=true, $vert=false)</td></tr>
+<tr class="separator:a7acd95a0380f95999dd069fbb5629ea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a32ff09cd464a48bc8e510a1403410753"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a32ff09cd464a48bc8e510a1403410753">orient</a> ($filename)</td></tr>
+<tr class="separator:a32ff09cd464a48bc8e510a1403410753"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a735eb657277e7a46cebe7f6fde0af80a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a735eb657277e7a46cebe7f6fde0af80a">scaleImageUp</a> ($min)</td></tr>
+<tr class="separator:a735eb657277e7a46cebe7f6fde0af80a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a080a5219eb09c2621dabeae153ce6a03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a080a5219eb09c2621dabeae153ce6a03">scaleImageSquare</a> ($dim)</td></tr>
+<tr class="separator:a080a5219eb09c2621dabeae153ce6a03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ace266825f6b2bbc3c7f990f5d92500"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a4ace266825f6b2bbc3c7f990f5d92500">cropImage</a> ($max, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>, $y, $w, $h)</td></tr>
+<tr class="separator:a4ace266825f6b2bbc3c7f990f5d92500"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af522871c8ab451155b9745fa7f057943"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#af522871c8ab451155b9745fa7f057943">saveImage</a> ($path)</td></tr>
+<tr class="separator:af522871c8ab451155b9745fa7f057943"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c4be19101d5a289a491428c2f8d747c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a7c4be19101d5a289a491428c2f8d747c">imageString</a> ()</td></tr>
+<tr class="separator:a7c4be19101d5a289a491428c2f8d747c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15e21237805d5f1019b4e40322389194"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a15e21237805d5f1019b4e40322389194">store</a> ($aid, $uid, $xchan, $rid, $filename, $album, $scale, $profile=0, $allow_cid= '', $allow_gid= '', $deny_cid= '', $deny_gid= '')</td></tr>
+<tr class="separator:a15e21237805d5f1019b4e40322389194"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:af46fdc365916728deb59adf5c99f528d"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#af46fdc365916728deb59adf5c99f528d">supportedTypes</a> ()</td></tr>
+<tr class="separator:af46fdc365916728deb59adf5c99f528d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:aa09af89979e3e46c0c58989ee063d69d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#aa09af89979e3e46c0c58989ee063d69d">$image</a></td></tr>
+<tr class="separator:aa09af89979e3e46c0c58989ee063d69d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a040b23beaab0c0db4311b31cae6b8106"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a040b23beaab0c0db4311b31cae6b8106">$imagick</a></td></tr>
+<tr class="separator:a040b23beaab0c0db4311b31cae6b8106"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af18778643b1f6c637d9d7f5abd561f11"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#af18778643b1f6c637d9d7f5abd561f11">$width</a></td></tr>
+<tr class="separator:af18778643b1f6c637d9d7f5abd561f11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b05906daa294e0c904aff0ba24b5bd3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a2b05906daa294e0c904aff0ba24b5bd3">$height</a></td></tr>
+<tr class="separator:a2b05906daa294e0c904aff0ba24b5bd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50e0b85ea8a3f724dd74366756669e61"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a50e0b85ea8a3f724dd74366756669e61">$valid</a></td></tr>
+<tr class="separator:a50e0b85ea8a3f724dd74366756669e61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af87e8ec7587bbcb28f91e7548f560695"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#af87e8ec7587bbcb28f91e7548f560695">$type</a></td></tr>
+<tr class="separator:af87e8ec7587bbcb28f91e7548f560695"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a338d80512bdfeb6a6a00a9381d76de5f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPhoto.html#a338d80512bdfeb6a6a00a9381d76de5f">$types</a></td></tr>
+<tr class="separator:a338d80512bdfeb6a6a00a9381d76de5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ad06199e7c1222350ef8c1cdcfade265c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::__construct </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Setup the image to the format it will be saved to</p>
+<p>setup the compression here, so we'll do it only once</p>
+<p>From <a href="http://www.imagemagick.org/script/command-line-options.php#quality:">http://www.imagemagick.org/script/command-line-options.php#quality:</a></p>
+<p>'For the MNG and PNG image formats, the quality value sets the zlib compression level (quality / 10) and filter-type (quality % 10). The default PNG "quality" is 75, which means compression level 7 with adaptive PNG filtering, unless the image has a color map, in which case it means compression level 7 with no PNG filtering'</p>
+
+</div>
+</div>
+<a class="anchor" id="a0906cba2a2a895cc22179de27449cbd2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::__destruct </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a4ace266825f6b2bbc3c7f990f5d92500"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::cropImage </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$max</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$w</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$h</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>We need to remove the canva, or the image is not resized to the crop: <a href="http://php.net/manual/en/imagick.cropimage.php#97232">http://php.net/manual/en/imagick.cropimage.php#97232</a></p>
+
+</div>
+</div>
+<a class="anchor" id="a7acd95a0380f95999dd069fbb5629ea5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::flip </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$horiz</em> = <code>true</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$vert</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classPhoto.html#a32ff09cd464a48bc8e510a1403410753">orient()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1f00f0e1b6d90c5d83d8d3febb703075"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::get_FormatsMap </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Maps Mime types to Imagick formats </p>
+
+<p>Referenced by <a class="el" href="classPhoto.html#ad06199e7c1222350ef8c1cdcfade265c">__construct()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ade61db6eb69c065e4df66feaa1942d29"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::getExt </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab83e29500828ead47ac0a8cb9439082c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::getHeight </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classPhoto.html#a15e21237805d5f1019b4e40322389194">store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a29213571e2688f17240cd2b3892d7a62"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::getImage </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad17537abe440ac133c3b2d951f92677b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::getType </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classPhoto.html#ad06199e7c1222350ef8c1cdcfade265c">__construct()</a>, <a class="el" href="classPhoto.html#ade61db6eb69c065e4df66feaa1942d29">getExt()</a>, <a class="el" href="classPhoto.html#a7c4be19101d5a289a491428c2f8d747c">imageString()</a>, <a class="el" href="classPhoto.html#a32ff09cd464a48bc8e510a1403410753">orient()</a>, and <a class="el" href="classPhoto.html#a15e21237805d5f1019b4e40322389194">store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a74a04f56215cee00533b85b24daecfb1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::getWidth </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classPhoto.html#a15e21237805d5f1019b4e40322389194">store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7c4be19101d5a289a491428c2f8d747c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::imageString </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classPhoto.html#af522871c8ab451155b9745fa7f057943">saveImage()</a>, and <a class="el" href="classPhoto.html#a15e21237805d5f1019b4e40322389194">store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abad44c9fc7a1853920555398bf905433"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::is_imagick </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classPhoto.html#ad06199e7c1222350ef8c1cdcfade265c">__construct()</a>, <a class="el" href="classPhoto.html#a0906cba2a2a895cc22179de27449cbd2">__destruct()</a>, <a class="el" href="classPhoto.html#a4ace266825f6b2bbc3c7f990f5d92500">cropImage()</a>, <a class="el" href="classPhoto.html#a7acd95a0380f95999dd069fbb5629ea5">flip()</a>, <a class="el" href="classPhoto.html#ab83e29500828ead47ac0a8cb9439082c">getHeight()</a>, <a class="el" href="classPhoto.html#a29213571e2688f17240cd2b3892d7a62">getImage()</a>, <a class="el" href="classPhoto.html#a74a04f56215cee00533b85b24daecfb1">getWidth()</a>, <a class="el" href="classPhoto.html#a7c4be19101d5a289a491428c2f8d747c">imageString()</a>, <a class="el" href="classPhoto.html#a66705cd7db1f8dce59ceac57dbf14476">is_valid()</a>, <a class="el" href="classPhoto.html#a8b2b0a7f949a566c21e0160fbf047666">rotate()</a>, <a class="el" href="classPhoto.html#a4ff11117ada771637a61a668d2af6636">scaleImage()</a>, <a class="el" href="classPhoto.html#a080a5219eb09c2621dabeae153ce6a03">scaleImageSquare()</a>, and <a class="el" href="classPhoto.html#a735eb657277e7a46cebe7f6fde0af80a">scaleImageUp()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a66705cd7db1f8dce59ceac57dbf14476"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::is_valid </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classPhoto.html#a4ace266825f6b2bbc3c7f990f5d92500">cropImage()</a>, <a class="el" href="classPhoto.html#a7acd95a0380f95999dd069fbb5629ea5">flip()</a>, <a class="el" href="classPhoto.html#ade61db6eb69c065e4df66feaa1942d29">getExt()</a>, <a class="el" href="classPhoto.html#ab83e29500828ead47ac0a8cb9439082c">getHeight()</a>, <a class="el" href="classPhoto.html#a29213571e2688f17240cd2b3892d7a62">getImage()</a>, <a class="el" href="classPhoto.html#ad17537abe440ac133c3b2d951f92677b">getType()</a>, <a class="el" href="classPhoto.html#a74a04f56215cee00533b85b24daecfb1">getWidth()</a>, <a class="el" href="classPhoto.html#a7c4be19101d5a289a491428c2f8d747c">imageString()</a>, <a class="el" href="classPhoto.html#a32ff09cd464a48bc8e510a1403410753">orient()</a>, <a class="el" href="classPhoto.html#a8b2b0a7f949a566c21e0160fbf047666">rotate()</a>, <a class="el" href="classPhoto.html#af522871c8ab451155b9745fa7f057943">saveImage()</a>, <a class="el" href="classPhoto.html#a4ff11117ada771637a61a668d2af6636">scaleImage()</a>, <a class="el" href="classPhoto.html#a080a5219eb09c2621dabeae153ce6a03">scaleImageSquare()</a>, and <a class="el" href="classPhoto.html#a735eb657277e7a46cebe7f6fde0af80a">scaleImageUp()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a32ff09cd464a48bc8e510a1403410753"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::orient </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$filename</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8b2b0a7f949a566c21e0160fbf047666"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::rotate </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$degrees</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classPhoto.html#a32ff09cd464a48bc8e510a1403410753">orient()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af522871c8ab451155b9745fa7f057943"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::saveImage </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$path</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4ff11117ada771637a61a668d2af6636"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::scaleImage </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$max</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>If it is not animated, there will be only one iteration here, so don't bother checking</p>
+
+<p>Referenced by <a class="el" href="classPhoto.html#a4ace266825f6b2bbc3c7f990f5d92500">cropImage()</a>, and <a class="el" href="classPhoto.html#a735eb657277e7a46cebe7f6fde0af80a">scaleImageUp()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a080a5219eb09c2621dabeae153ce6a03"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::scaleImageSquare </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dim</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a735eb657277e7a46cebe7f6fde0af80a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::scaleImageUp </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$min</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a15e21237805d5f1019b4e40322389194"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::store </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$aid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$rid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$filename</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$album</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$scale</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$profile</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$allow_cid</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$allow_gid</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$deny_cid</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$deny_gid</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af46fdc365916728deb59adf5c99f528d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static Photo::supportedTypes </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>supported mimetypes and corresponding file extensions </p>
+<p>Imagick::queryFormats won't help us a lot there... At least, not yet, other parts of friendica uses this array</p>
+
+<p>Referenced by <a class="el" href="classPhoto.html#ad06199e7c1222350ef8c1cdcfade265c">__construct()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="Photo_8php.html#a7273b82b017fd96d29b2c57bab03aea6">guess_image_type()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, and <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a2b05906daa294e0c904aff0ba24b5bd3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::$height</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classPhoto.html#ab83e29500828ead47ac0a8cb9439082c">getHeight()</a>, <a class="el" href="classPhoto.html#a4ff11117ada771637a61a668d2af6636">scaleImage()</a>, and <a class="el" href="classPhoto.html#a735eb657277e7a46cebe7f6fde0af80a">scaleImageUp()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa09af89979e3e46c0c58989ee063d69d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::$image</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classPhoto.html#a29213571e2688f17240cd2b3892d7a62">getImage()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a040b23beaab0c0db4311b31cae6b8106"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::$imagick</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Put back gd stuff, not everybody have Imagick </p>
+
+<p>Referenced by <a class="el" href="classPhoto.html#abad44c9fc7a1853920555398bf905433">is_imagick()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af87e8ec7587bbcb28f91e7548f560695"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::$type</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classPhoto.html#ad06199e7c1222350ef8c1cdcfade265c">__construct()</a>, and <a class="el" href="classPhoto.html#ad17537abe440ac133c3b2d951f92677b">getType()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a338d80512bdfeb6a6a00a9381d76de5f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::$types</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a50e0b85ea8a3f724dd74366756669e61"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::$valid</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classPhoto.html#a66705cd7db1f8dce59ceac57dbf14476">is_valid()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af18778643b1f6c637d9d7f5abd561f11"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Photo::$width</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classPhoto.html#a74a04f56215cee00533b85b24daecfb1">getWidth()</a>, <a class="el" href="classPhoto.html#a4ff11117ada771637a61a668d2af6636">scaleImage()</a>, and <a class="el" href="classPhoto.html#a735eb657277e7a46cebe7f6fde0af80a">scaleImageUp()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="Photo_8php.html">Photo.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classPhoto.js b/doc/html/classPhoto.js
new file mode 100644
index 000000000..dd688af4b
--- /dev/null
+++ b/doc/html/classPhoto.js
@@ -0,0 +1,30 @@
+var classPhoto =
+[
+ [ "__construct", "classPhoto.html#ad06199e7c1222350ef8c1cdcfade265c", null ],
+ [ "__destruct", "classPhoto.html#a0906cba2a2a895cc22179de27449cbd2", null ],
+ [ "cropImage", "classPhoto.html#a4ace266825f6b2bbc3c7f990f5d92500", null ],
+ [ "flip", "classPhoto.html#a7acd95a0380f95999dd069fbb5629ea5", null ],
+ [ "get_FormatsMap", "classPhoto.html#a1f00f0e1b6d90c5d83d8d3febb703075", null ],
+ [ "getExt", "classPhoto.html#ade61db6eb69c065e4df66feaa1942d29", null ],
+ [ "getHeight", "classPhoto.html#ab83e29500828ead47ac0a8cb9439082c", null ],
+ [ "getImage", "classPhoto.html#a29213571e2688f17240cd2b3892d7a62", null ],
+ [ "getType", "classPhoto.html#ad17537abe440ac133c3b2d951f92677b", null ],
+ [ "getWidth", "classPhoto.html#a74a04f56215cee00533b85b24daecfb1", null ],
+ [ "imageString", "classPhoto.html#a7c4be19101d5a289a491428c2f8d747c", null ],
+ [ "is_imagick", "classPhoto.html#abad44c9fc7a1853920555398bf905433", null ],
+ [ "is_valid", "classPhoto.html#a66705cd7db1f8dce59ceac57dbf14476", null ],
+ [ "orient", "classPhoto.html#a32ff09cd464a48bc8e510a1403410753", null ],
+ [ "rotate", "classPhoto.html#a8b2b0a7f949a566c21e0160fbf047666", null ],
+ [ "saveImage", "classPhoto.html#af522871c8ab451155b9745fa7f057943", null ],
+ [ "scaleImage", "classPhoto.html#a4ff11117ada771637a61a668d2af6636", null ],
+ [ "scaleImageSquare", "classPhoto.html#a080a5219eb09c2621dabeae153ce6a03", null ],
+ [ "scaleImageUp", "classPhoto.html#a735eb657277e7a46cebe7f6fde0af80a", null ],
+ [ "store", "classPhoto.html#a15e21237805d5f1019b4e40322389194", null ],
+ [ "$height", "classPhoto.html#a2b05906daa294e0c904aff0ba24b5bd3", null ],
+ [ "$image", "classPhoto.html#aa09af89979e3e46c0c58989ee063d69d", null ],
+ [ "$imagick", "classPhoto.html#a040b23beaab0c0db4311b31cae6b8106", null ],
+ [ "$type", "classPhoto.html#af87e8ec7587bbcb28f91e7548f560695", null ],
+ [ "$types", "classPhoto.html#a338d80512bdfeb6a6a00a9381d76de5f", null ],
+ [ "$valid", "classPhoto.html#a50e0b85ea8a3f724dd74366756669e61", null ],
+ [ "$width", "classPhoto.html#af18778643b1f6c637d9d7f5abd561f11", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classProtoDriver-members.html b/doc/html/classProtoDriver-members.html
new file mode 100644
index 000000000..6eebcbc54
--- /dev/null
+++ b/doc/html/classProtoDriver-members.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classProtoDriver.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">ProtoDriver Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classProtoDriver.html">ProtoDriver</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a">acknowledge_permissions</a>($permissions, $channel, $recipient)</td><td class="entry"><a class="el" href="classProtoDriver.html">ProtoDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classProtoDriver.html#a34b97ca5ef2165f2e16eb2fe59ff6c67">change_permissions</a>($permissions, $channel, $recipient)</td><td class="entry"><a class="el" href="classProtoDriver.html">ProtoDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d">collect</a>($channel, $connection)</td><td class="entry"><a class="el" href="classProtoDriver.html">ProtoDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b">collect_private</a>($channel, $connection)</td><td class="entry"><a class="el" href="classProtoDriver.html">ProtoDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classProtoDriver.html#a85e9063f6d0c304410cd246f7900ea1b">deliver</a>($item, $channel, $recipients)</td><td class="entry"><a class="el" href="classProtoDriver.html">ProtoDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classProtoDriver.html#ae5b44739f84c10d00a9b65adf3785181">deliver_private</a>($item, $channel, $recipients)</td><td class="entry"><a class="el" href="classProtoDriver.html">ProtoDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classProtoDriver.html#a64a3868cffe27d601d55f69a2ecc4337">discover</a>($channel, $location)</td><td class="entry"><a class="el" href="classProtoDriver.html">ProtoDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classProtoDriver.html b/doc/html/classProtoDriver.html
new file mode 100644
index 000000000..cb869b65b
--- /dev/null
+++ b/doc/html/classProtoDriver.html
@@ -0,0 +1,410 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: ProtoDriver Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classProtoDriver.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classProtoDriver-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">ProtoDriver Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for ProtoDriver:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classProtoDriver.png" usemap="#ProtoDriver_map" alt=""/>
+ <map id="ProtoDriver_map" name="ProtoDriver_map">
+<area href="classZotDriver.html" alt="ZotDriver" shape="rect" coords="0,56,78,80"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a64a3868cffe27d601d55f69a2ecc4337"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#a64a3868cffe27d601d55f69a2ecc4337">discover</a> ($channel, $location)</td></tr>
+<tr class="separator:a64a3868cffe27d601d55f69a2ecc4337"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a85e9063f6d0c304410cd246f7900ea1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#a85e9063f6d0c304410cd246f7900ea1b">deliver</a> ($item, $channel, $recipients)</td></tr>
+<tr class="separator:a85e9063f6d0c304410cd246f7900ea1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ba1758f0f9e3564580b6ff85292804d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d">collect</a> ($channel, $connection)</td></tr>
+<tr class="separator:a2ba1758f0f9e3564580b6ff85292804d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34b97ca5ef2165f2e16eb2fe59ff6c67"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#a34b97ca5ef2165f2e16eb2fe59ff6c67">change_permissions</a> ($permissions, $channel, $recipient)</td></tr>
+<tr class="separator:a34b97ca5ef2165f2e16eb2fe59ff6c67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1593f3abae050edbd9304f4f8bc4894a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a">acknowledge_permissions</a> ($permissions, $channel, $recipient)</td></tr>
+<tr class="separator:a1593f3abae050edbd9304f4f8bc4894a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5b44739f84c10d00a9b65adf3785181"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#ae5b44739f84c10d00a9b65adf3785181">deliver_private</a> ($item, $channel, $recipients)</td></tr>
+<tr class="separator:ae5b44739f84c10d00a9b65adf3785181"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af66171aa7dab9b62cee915cb4f1abe1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b">collect_private</a> ($channel, $connection)</td></tr>
+<tr class="separator:af66171aa7dab9b62cee915cb4f1abe1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a1593f3abae050edbd9304f4f8bc4894a"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ProtoDriver::acknowledge_permissions </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$permissions</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$recipient</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a34b97ca5ef2165f2e16eb2fe59ff6c67"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ProtoDriver::change_permissions </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$permissions</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$recipient</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2ba1758f0f9e3564580b6ff85292804d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ProtoDriver::collect </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$connection</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af66171aa7dab9b62cee915cb4f1abe1b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ProtoDriver::collect_private </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$connection</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a85e9063f6d0c304410cd246f7900ea1b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ProtoDriver::deliver </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$recipients</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae5b44739f84c10d00a9b65adf3785181"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ProtoDriver::deliver_private </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$recipients</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a64a3868cffe27d601d55f69a2ecc4337"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ProtoDriver::discover </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$location</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="ProtoDriver_8php.html">ProtoDriver.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classProtoDriver.js b/doc/html/classProtoDriver.js
new file mode 100644
index 000000000..f5b39cecb
--- /dev/null
+++ b/doc/html/classProtoDriver.js
@@ -0,0 +1,10 @@
+var classProtoDriver =
+[
+ [ "acknowledge_permissions", "classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a", null ],
+ [ "change_permissions", "classProtoDriver.html#a34b97ca5ef2165f2e16eb2fe59ff6c67", null ],
+ [ "collect", "classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d", null ],
+ [ "collect_private", "classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b", null ],
+ [ "deliver", "classProtoDriver.html#a85e9063f6d0c304410cd246f7900ea1b", null ],
+ [ "deliver_private", "classProtoDriver.html#ae5b44739f84c10d00a9b65adf3785181", null ],
+ [ "discover", "classProtoDriver.html#a64a3868cffe27d601d55f69a2ecc4337", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classProtoDriver.png b/doc/html/classProtoDriver.png
new file mode 100644
index 000000000..08fe5d4c4
--- /dev/null
+++ b/doc/html/classProtoDriver.png
Binary files differ
diff --git a/doc/html/classTemplate-members.html b/doc/html/classTemplate-members.html
new file mode 100644
index 000000000..ced57d9fa
--- /dev/null
+++ b/doc/html/classTemplate-members.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classTemplate.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Template Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classTemplate.html">Template</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38">$d</a></td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a">$debug</a></td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTemplate.html#abda4c8d049f70553338eae7c905e9d5c">$done</a></td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTemplate.html#ace26b8a4252fbc1c385d2b5e1e93e5c8">$lang</a></td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae">$name</a></td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1">$nodes</a></td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTemplate.html#aac9a4638f11271e1b1dcc9f247242718">$r</a></td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10">$replace</a></td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTemplate.html#a317d535946dc065c35dd5cd38380e6c6">$search</a></td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTemplate.html#a6f0efc256688c36110180b501067ff11">$stack</a></td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4">_build_nodes</a>($s)</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTemplate.html#aae9c4d761ea1298e745e8052d7910194">_get_var</a>($name, $retNoKey=false)</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTemplate.html#a35d599c9b53a02e2fe2232e5b7ed5da7">_pop_stack</a>()</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTemplate.html#a37c15f6d1ade500943629f27a62808b7">_preg_error</a>()</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTemplate.html#aa6a087e0b7b887dd1c98c9e0ecbd3b29">_push_stack</a>()</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTemplate.html#ae791766c3d055f7f1ba5a5e60d647934">_replcb</a>($m)</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTemplate.html#a4b933954086d9e01a1804b0b1c6ee93e">_replcb_debug</a>($args)</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">_replcb_for</a>($args)</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228">_replcb_if</a>($args)</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677">_replcb_inc</a>($args)</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTemplate.html#aa6f9bd7a8f7512efcf90e8d376fe05ee">_replcb_node</a>($m)</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTemplate.html#afd97b4b1e7754a550e67c0ea79159059">get_markup_template</a>($file, $root='')</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTemplate.html#a285b5b2007dbbf733476273df3fed4ef">replace</a>($s, $r)</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">replace_macros</a>($s, $r)</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTemplate.html#abbc484016ddf5d818f55b823cae6feb0">var_replace</a>($s)</td><td class="entry"><a class="el" href="classTemplate.html">Template</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classTemplate.html b/doc/html/classTemplate.html
new file mode 100644
index 000000000..18a4ee771
--- /dev/null
+++ b/doc/html/classTemplate.html
@@ -0,0 +1,742 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Template Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classTemplate.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="classTemplate-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">Template Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Template:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classTemplate.png" usemap="#Template_map" alt=""/>
+ <map id="Template_map" name="Template_map">
+<area href="interfaceITemplateEngine.html" alt="ITemplateEngine" shape="rect" coords="0,0,104,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a07737733f6949bdedea1e3d301b2ab7b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">replace_macros</a> ($s, $r)</td></tr>
+<tr class="separator:a07737733f6949bdedea1e3d301b2ab7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd97b4b1e7754a550e67c0ea79159059"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#afd97b4b1e7754a550e67c0ea79159059">get_markup_template</a> ($file, $root='')</td></tr>
+<tr class="separator:afd97b4b1e7754a550e67c0ea79159059"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:aac9a4638f11271e1b1dcc9f247242718"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#aac9a4638f11271e1b1dcc9f247242718">$r</a></td></tr>
+<tr class="separator:aac9a4638f11271e1b1dcc9f247242718"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a317d535946dc065c35dd5cd38380e6c6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#a317d535946dc065c35dd5cd38380e6c6">$search</a></td></tr>
+<tr class="separator:a317d535946dc065c35dd5cd38380e6c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e86b566c3f728e95ce5db1b33665c10"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10">$replace</a></td></tr>
+<tr class="separator:a4e86b566c3f728e95ce5db1b33665c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f0efc256688c36110180b501067ff11"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#a6f0efc256688c36110180b501067ff11">$stack</a> = array()</td></tr>
+<tr class="separator:a6f0efc256688c36110180b501067ff11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f4d17e49f42b876a97364c13fb572d1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1">$nodes</a> = array()</td></tr>
+<tr class="separator:a8f4d17e49f42b876a97364c13fb572d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abda4c8d049f70553338eae7c905e9d5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#abda4c8d049f70553338eae7c905e9d5c">$done</a> = false</td></tr>
+<tr class="separator:abda4c8d049f70553338eae7c905e9d5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8469ab2988b6be2681516dc4b4e07d38"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38">$d</a> = false</td></tr>
+<tr class="separator:a8469ab2988b6be2681516dc4b4e07d38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace26b8a4252fbc1c385d2b5e1e93e5c8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#ace26b8a4252fbc1c385d2b5e1e93e5c8">$lang</a> = null</td></tr>
+<tr class="separator:ace26b8a4252fbc1c385d2b5e1e93e5c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc4afb6f89bebcd5480022312a56cb4a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a">$debug</a> =false</td></tr>
+<tr class="separator:afc4afb6f89bebcd5480022312a56cb4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr class="memitem:a6eb301a51cc94d8b94f4548fbad85eae"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae">$name</a> =&quot;internal&quot;</td></tr>
+<tr class="separator:a6eb301a51cc94d8b94f4548fbad85eae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr class="memitem:a37c15f6d1ade500943629f27a62808b7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#a37c15f6d1ade500943629f27a62808b7">_preg_error</a> ()</td></tr>
+<tr class="separator:a37c15f6d1ade500943629f27a62808b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6a087e0b7b887dd1c98c9e0ecbd3b29"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#aa6a087e0b7b887dd1c98c9e0ecbd3b29">_push_stack</a> ()</td></tr>
+<tr class="separator:aa6a087e0b7b887dd1c98c9e0ecbd3b29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35d599c9b53a02e2fe2232e5b7ed5da7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#a35d599c9b53a02e2fe2232e5b7ed5da7">_pop_stack</a> ()</td></tr>
+<tr class="separator:a35d599c9b53a02e2fe2232e5b7ed5da7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae9c4d761ea1298e745e8052d7910194"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#aae9c4d761ea1298e745e8052d7910194">_get_var</a> ($name, $retNoKey=false)</td></tr>
+<tr class="separator:aae9c4d761ea1298e745e8052d7910194"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0836e7d5bd5afceb04f50fd635f1228"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228">_replcb_if</a> ($args)</td></tr>
+<tr class="separator:ae0836e7d5bd5afceb04f50fd635f1228"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf71098c80fd1f218a59452b3408309e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">_replcb_for</a> ($args)</td></tr>
+<tr class="separator:abf71098c80fd1f218a59452b3408309e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a86e8fd27955ef10cadfd86f3fca70677"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677">_replcb_inc</a> ($args)</td></tr>
+<tr class="separator:a86e8fd27955ef10cadfd86f3fca70677"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b933954086d9e01a1804b0b1c6ee93e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#a4b933954086d9e01a1804b0b1c6ee93e">_replcb_debug</a> ($args)</td></tr>
+<tr class="separator:a4b933954086d9e01a1804b0b1c6ee93e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6f9bd7a8f7512efcf90e8d376fe05ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#aa6f9bd7a8f7512efcf90e8d376fe05ee">_replcb_node</a> ($m)</td></tr>
+<tr class="separator:aa6f9bd7a8f7512efcf90e8d376fe05ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae791766c3d055f7f1ba5a5e60d647934"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#ae791766c3d055f7f1ba5a5e60d647934">_replcb</a> ($m)</td></tr>
+<tr class="separator:ae791766c3d055f7f1ba5a5e60d647934"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac41c96e1f407b1a910029e5f4b7de8e4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4">_build_nodes</a> ($s)</td></tr>
+<tr class="separator:ac41c96e1f407b1a910029e5f4b7de8e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abbc484016ddf5d818f55b823cae6feb0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#abbc484016ddf5d818f55b823cae6feb0">var_replace</a> ($s)</td></tr>
+<tr class="separator:abbc484016ddf5d818f55b823cae6feb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a285b5b2007dbbf733476273df3fed4ef"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html#a285b5b2007dbbf733476273df3fed4ef">replace</a> ($s, $r)</td></tr>
+<tr class="separator:a285b5b2007dbbf733476273df3fed4ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ac41c96e1f407b1a910029e5f4b7de8e4"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::_build_nodes </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">replace_macros()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aae9c4d761ea1298e745e8052d7910194"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::_get_var </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$retNoKey</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classTemplate.html#a4b933954086d9e01a1804b0b1c6ee93e">_replcb_debug()</a>, <a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">_replcb_for()</a>, <a class="el" href="classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228">_replcb_if()</a>, <a class="el" href="classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677">_replcb_inc()</a>, and <a class="el" href="classTemplate.html#abbc484016ddf5d818f55b823cae6feb0">var_replace()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a35d599c9b53a02e2fe2232e5b7ed5da7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::_pop_stack </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">_replcb_for()</a>, and <a class="el" href="classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677">_replcb_inc()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a37c15f6d1ade500943629f27a62808b7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::_preg_error </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4">_build_nodes()</a>, and <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">replace_macros()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa6a087e0b7b887dd1c98c9e0ecbd3b29"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::_push_stack </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">_replcb_for()</a>, and <a class="el" href="classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677">_replcb_inc()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae791766c3d055f7f1ba5a5e60d647934"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::_replcb </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4b933954086d9e01a1804b0b1c6ee93e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::_replcb_debug </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$args</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>DEBUG node</p>
+<p>{{ debug $var [$var [$var [...]]] }}{{ enddebug }}</p>
+<p>replace node with </p>
+<pre>var_dump($var, $var, ...);</pre>
+</div>
+</div>
+<a class="anchor" id="abf71098c80fd1f218a59452b3408309e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::_replcb_for </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$args</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>FOR node</p>
+<p>{{ for &lt; $var&gt;=""&gt; as $name }}...{{ endfor }} {{ for &lt; $var&gt;=""&gt; as $key=&gt;$name }}...{{ endfor }} </p>
+
+</div>
+</div>
+<a class="anchor" id="ae0836e7d5bd5afceb04f50fd635f1228"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::_replcb_if </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$args</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>IF node</p>
+<p>{{ if &lt; $var&gt;=""&gt; }}...[{{ else }} ...] {{ endif }} {{ if &lt; $var&gt;=""&gt;==&lt;val|$var&gt; }}...[{{ else }} ...]{{ endif }} {{ if &lt; $var&gt;=""&gt;!=&lt;val|$var&gt; }}...[{{ else }} ...]{{ endif }} </p>
+
+</div>
+</div>
+<a class="anchor" id="a86e8fd27955ef10cadfd86f3fca70677"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::_replcb_inc </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$args</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>INC node</p>
+<p>{{ inc &lt;templatefile&gt; [with $var1=$var2] }}{{ endinc }} </p>
+
+</div>
+</div>
+<a class="anchor" id="aa6f9bd7a8f7512efcf90e8d376fe05ee"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::_replcb_node </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afd97b4b1e7754a550e67c0ea79159059"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::get_markup_template </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$file</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$root</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Implements <a class="el" href="interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442">ITemplateEngine</a>.</p>
+
+<p>Referenced by <a class="el" href="classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677">_replcb_inc()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a285b5b2007dbbf733476273df3fed4ef"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::replace </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$r</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">_replcb_for()</a>, and <a class="el" href="classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677">_replcb_inc()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a07737733f6949bdedea1e3d301b2ab7b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::replace_macros </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$r</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Implements <a class="el" href="interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243">ITemplateEngine</a>.</p>
+
+<p>Referenced by <a class="el" href="classTemplate.html#a285b5b2007dbbf733476273df3fed4ef">replace()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abbc484016ddf5d818f55b823cae6feb0"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::var_replace </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>regexp: $ literal $ ([)? optional open square bracket ([a-zA-Z0-9-_]+.?)+ var name, followed by optional dot, repeated at least 1 time (?(1)]) if there was opened square bracket (subgrup 1), match close bracket</p>
+
+<p>Referenced by <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">replace_macros()</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a8469ab2988b6be2681516dc4b4e07d38"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::$d = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afc4afb6f89bebcd5480022312a56cb4a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::$debug =false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abda4c8d049f70553338eae7c905e9d5c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::$done = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ace26b8a4252fbc1c385d2b5e1e93e5c8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::$lang = null</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6eb301a51cc94d8b94f4548fbad85eae"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::$name =&quot;internal&quot;</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classTemplate.html#aae9c4d761ea1298e745e8052d7910194">_get_var()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8f4d17e49f42b876a97364c13fb572d1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::$nodes = array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aac9a4638f11271e1b1dcc9f247242718"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::$r</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classTemplate.html#aae9c4d761ea1298e745e8052d7910194">_get_var()</a>, <a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">_replcb_for()</a>, <a class="el" href="classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677">_replcb_inc()</a>, <a class="el" href="classTemplate.html#a285b5b2007dbbf733476273df3fed4ef">replace()</a>, and <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">replace_macros()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4e86b566c3f728e95ce5db1b33665c10"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::$replace</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a317d535946dc065c35dd5cd38380e6c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::$search</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6f0efc256688c36110180b501067ff11"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Template::$stack = array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="template__processor_8php.html">template_processor.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classTemplate.js b/doc/html/classTemplate.js
new file mode 100644
index 000000000..9b5a06744
--- /dev/null
+++ b/doc/html/classTemplate.js
@@ -0,0 +1,27 @@
+var classTemplate =
+[
+ [ "_build_nodes", "classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4", null ],
+ [ "_get_var", "classTemplate.html#aae9c4d761ea1298e745e8052d7910194", null ],
+ [ "_pop_stack", "classTemplate.html#a35d599c9b53a02e2fe2232e5b7ed5da7", null ],
+ [ "_preg_error", "classTemplate.html#a37c15f6d1ade500943629f27a62808b7", null ],
+ [ "_push_stack", "classTemplate.html#aa6a087e0b7b887dd1c98c9e0ecbd3b29", null ],
+ [ "_replcb", "classTemplate.html#ae791766c3d055f7f1ba5a5e60d647934", null ],
+ [ "_replcb_debug", "classTemplate.html#a4b933954086d9e01a1804b0b1c6ee93e", null ],
+ [ "_replcb_for", "classTemplate.html#abf71098c80fd1f218a59452b3408309e", null ],
+ [ "_replcb_if", "classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228", null ],
+ [ "_replcb_inc", "classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677", null ],
+ [ "_replcb_node", "classTemplate.html#aa6f9bd7a8f7512efcf90e8d376fe05ee", null ],
+ [ "get_markup_template", "classTemplate.html#afd97b4b1e7754a550e67c0ea79159059", null ],
+ [ "replace", "classTemplate.html#a285b5b2007dbbf733476273df3fed4ef", null ],
+ [ "replace_macros", "classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b", null ],
+ [ "var_replace", "classTemplate.html#abbc484016ddf5d818f55b823cae6feb0", null ],
+ [ "$d", "classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38", null ],
+ [ "$debug", "classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a", null ],
+ [ "$done", "classTemplate.html#abda4c8d049f70553338eae7c905e9d5c", null ],
+ [ "$lang", "classTemplate.html#ace26b8a4252fbc1c385d2b5e1e93e5c8", null ],
+ [ "$nodes", "classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1", null ],
+ [ "$r", "classTemplate.html#aac9a4638f11271e1b1dcc9f247242718", null ],
+ [ "$replace", "classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10", null ],
+ [ "$search", "classTemplate.html#a317d535946dc065c35dd5cd38380e6c6", null ],
+ [ "$stack", "classTemplate.html#a6f0efc256688c36110180b501067ff11", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classTemplate.png b/doc/html/classTemplate.png
new file mode 100644
index 000000000..3c073c726
--- /dev/null
+++ b/doc/html/classTemplate.png
Binary files differ
diff --git a/doc/html/classZotDriver-members.html b/doc/html/classZotDriver-members.html
new file mode 100644
index 000000000..5970e2144
--- /dev/null
+++ b/doc/html/classZotDriver-members.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classZotDriver.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">ZotDriver Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classZotDriver.html">ZotDriver</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classZotDriver.html#a3cfdf443da4e5326e205855d7c0054f2">acknowledge_permissions</a>($permissions, $channel, $recipient)</td><td class="entry"><a class="el" href="classZotDriver.html">ZotDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classZotDriver.html#a6776935156accb0f170e2e24577133db">change_permissions</a>($permissions, $channel, $recipient)</td><td class="entry"><a class="el" href="classZotDriver.html">ZotDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classZotDriver.html#af65febb26031eb7f39871b9e2a539797">collect</a>($channel, $connection)</td><td class="entry"><a class="el" href="classZotDriver.html">ZotDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classZotDriver.html#a2e15ff09772f0608203dad1c98299394">collect_private</a>($channel, $connection)</td><td class="entry"><a class="el" href="classZotDriver.html">ZotDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f">deliver</a>($item, $channel, $recipients)</td><td class="entry"><a class="el" href="classZotDriver.html">ZotDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classZotDriver.html#afaaf9941169fc966e43e25b25e6daea6">deliver_private</a>($item, $channel, $recipients)</td><td class="entry"><a class="el" href="classZotDriver.html">ZotDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classZotDriver.html#a40d328ff9f6b0a238afe286dddee1514">discover</a>($channel, $location)</td><td class="entry"><a class="el" href="classZotDriver.html">ZotDriver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classZotDriver.html b/doc/html/classZotDriver.html
new file mode 100644
index 000000000..5983ecd39
--- /dev/null
+++ b/doc/html/classZotDriver.html
@@ -0,0 +1,425 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: ZotDriver Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classZotDriver.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classZotDriver-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">ZotDriver Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for ZotDriver:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classZotDriver.png" usemap="#ZotDriver_map" alt=""/>
+ <map id="ZotDriver_map" name="ZotDriver_map">
+<area href="classProtoDriver.html" alt="ProtoDriver" shape="rect" coords="0,0,78,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a40d328ff9f6b0a238afe286dddee1514"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZotDriver.html#a40d328ff9f6b0a238afe286dddee1514">discover</a> ($channel, $location)</td></tr>
+<tr class="separator:a40d328ff9f6b0a238afe286dddee1514"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a876e3e0e4cad83c0b58c8696b344be6f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f">deliver</a> ($item, $channel, $recipients)</td></tr>
+<tr class="separator:a876e3e0e4cad83c0b58c8696b344be6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af65febb26031eb7f39871b9e2a539797"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZotDriver.html#af65febb26031eb7f39871b9e2a539797">collect</a> ($channel, $connection)</td></tr>
+<tr class="separator:af65febb26031eb7f39871b9e2a539797"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6776935156accb0f170e2e24577133db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZotDriver.html#a6776935156accb0f170e2e24577133db">change_permissions</a> ($permissions, $channel, $recipient)</td></tr>
+<tr class="separator:a6776935156accb0f170e2e24577133db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3cfdf443da4e5326e205855d7c0054f2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZotDriver.html#a3cfdf443da4e5326e205855d7c0054f2">acknowledge_permissions</a> ($permissions, $channel, $recipient)</td></tr>
+<tr class="separator:a3cfdf443da4e5326e205855d7c0054f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afaaf9941169fc966e43e25b25e6daea6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZotDriver.html#afaaf9941169fc966e43e25b25e6daea6">deliver_private</a> ($item, $channel, $recipients)</td></tr>
+<tr class="separator:afaaf9941169fc966e43e25b25e6daea6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e15ff09772f0608203dad1c98299394"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZotDriver.html#a2e15ff09772f0608203dad1c98299394">collect_private</a> ($channel, $connection)</td></tr>
+<tr class="separator:a2e15ff09772f0608203dad1c98299394"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classProtoDriver"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classProtoDriver')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classProtoDriver.html">ProtoDriver</a></td></tr>
+<tr class="memitem:a64a3868cffe27d601d55f69a2ecc4337 inherit pro_methods_classProtoDriver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#a64a3868cffe27d601d55f69a2ecc4337">discover</a> ($channel, $location)</td></tr>
+<tr class="separator:a64a3868cffe27d601d55f69a2ecc4337 inherit pro_methods_classProtoDriver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a85e9063f6d0c304410cd246f7900ea1b inherit pro_methods_classProtoDriver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#a85e9063f6d0c304410cd246f7900ea1b">deliver</a> ($item, $channel, $recipients)</td></tr>
+<tr class="separator:a85e9063f6d0c304410cd246f7900ea1b inherit pro_methods_classProtoDriver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ba1758f0f9e3564580b6ff85292804d inherit pro_methods_classProtoDriver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d">collect</a> ($channel, $connection)</td></tr>
+<tr class="separator:a2ba1758f0f9e3564580b6ff85292804d inherit pro_methods_classProtoDriver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34b97ca5ef2165f2e16eb2fe59ff6c67 inherit pro_methods_classProtoDriver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#a34b97ca5ef2165f2e16eb2fe59ff6c67">change_permissions</a> ($permissions, $channel, $recipient)</td></tr>
+<tr class="separator:a34b97ca5ef2165f2e16eb2fe59ff6c67 inherit pro_methods_classProtoDriver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1593f3abae050edbd9304f4f8bc4894a inherit pro_methods_classProtoDriver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a">acknowledge_permissions</a> ($permissions, $channel, $recipient)</td></tr>
+<tr class="separator:a1593f3abae050edbd9304f4f8bc4894a inherit pro_methods_classProtoDriver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5b44739f84c10d00a9b65adf3785181 inherit pro_methods_classProtoDriver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#ae5b44739f84c10d00a9b65adf3785181">deliver_private</a> ($item, $channel, $recipients)</td></tr>
+<tr class="separator:ae5b44739f84c10d00a9b65adf3785181 inherit pro_methods_classProtoDriver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af66171aa7dab9b62cee915cb4f1abe1b inherit pro_methods_classProtoDriver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b">collect_private</a> ($channel, $connection)</td></tr>
+<tr class="separator:af66171aa7dab9b62cee915cb4f1abe1b inherit pro_methods_classProtoDriver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a3cfdf443da4e5326e205855d7c0054f2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ZotDriver::acknowledge_permissions </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$permissions</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$recipient</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6776935156accb0f170e2e24577133db"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ZotDriver::change_permissions </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$permissions</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$recipient</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af65febb26031eb7f39871b9e2a539797"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ZotDriver::collect </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$connection</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2e15ff09772f0608203dad1c98299394"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ZotDriver::collect_private </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$connection</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a876e3e0e4cad83c0b58c8696b344be6f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ZotDriver::deliver </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$recipients</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afaaf9941169fc966e43e25b25e6daea6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ZotDriver::deliver_private </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$recipients</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a40d328ff9f6b0a238afe286dddee1514"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">ZotDriver::discover </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$location</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="ProtoDriver_8php.html">ProtoDriver.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classZotDriver.js b/doc/html/classZotDriver.js
new file mode 100644
index 000000000..b5cdf4719
--- /dev/null
+++ b/doc/html/classZotDriver.js
@@ -0,0 +1,10 @@
+var classZotDriver =
+[
+ [ "acknowledge_permissions", "classZotDriver.html#a3cfdf443da4e5326e205855d7c0054f2", null ],
+ [ "change_permissions", "classZotDriver.html#a6776935156accb0f170e2e24577133db", null ],
+ [ "collect", "classZotDriver.html#af65febb26031eb7f39871b9e2a539797", null ],
+ [ "collect_private", "classZotDriver.html#a2e15ff09772f0608203dad1c98299394", null ],
+ [ "deliver", "classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f", null ],
+ [ "deliver_private", "classZotDriver.html#afaaf9941169fc966e43e25b25e6daea6", null ],
+ [ "discover", "classZotDriver.html#a40d328ff9f6b0a238afe286dddee1514", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classZotDriver.png b/doc/html/classZotDriver.png
new file mode 100644
index 000000000..38e96d6af
--- /dev/null
+++ b/doc/html/classZotDriver.png
Binary files differ
diff --git a/doc/html/classdba-members.html b/doc/html/classdba-members.html
new file mode 100644
index 000000000..a01572437
--- /dev/null
+++ b/doc/html/classdba-members.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classdba.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">dba Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classdba.html">dba</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classdba.html#a986eb5c3bbd4c70801a9ddd2f8e5c561">$connected</a></td><td class="entry"><a class="el" href="classdba.html">dba</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba.html#ab57b3a4399f22ce5cdafbd3cd542a414">$db</a></td><td class="entry"><a class="el" href="classdba.html">dba</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba.html#a4da56b3eb82ad26ba49ca5f97e1490cb">$debug</a></td><td class="entry"><a class="el" href="classdba.html">dba</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba.html#a6a1471c18c6530044d20db5d3532958b">$error</a></td><td class="entry"><a class="el" href="classdba.html">dba</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba.html#ab5dcbd758d3f8fb84702c323cd85067e">$mysqli</a></td><td class="entry"><a class="el" href="classdba.html">dba</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba.html#aa36df91d776eedd1b90b9518a610d9fb">__construct</a>($server, $user, $pass, $db, $install=false)</td><td class="entry"><a class="el" href="classdba.html">dba</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba.html#ac25853e4d454aec9cfead4814429550d">__destruct</a>()</td><td class="entry"><a class="el" href="classdba.html">dba</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba.html#a2c6fecf396c66e07f00276fc18d31ca7">dbg</a>($dbg)</td><td class="entry"><a class="el" href="classdba.html">dba</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba.html#a522329687ff042074c1cbc8bd3226d2f">escape</a>($str)</td><td class="entry"><a class="el" href="classdba.html">dba</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba.html#a066ce6eab1282c9220ac4652ac2dbd27">getdb</a>()</td><td class="entry"><a class="el" href="classdba.html">dba</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba.html#a0060c8611e3c3ee71049904ad028a695">q</a>($sql)</td><td class="entry"><a class="el" href="classdba.html">dba</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classdba.html b/doc/html/classdba.html
new file mode 100644
index 000000000..dcb6e4b3c
--- /dev/null
+++ b/doc/html/classdba.html
@@ -0,0 +1,363 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: dba Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classdba.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classdba-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">dba Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aa36df91d776eedd1b90b9518a610d9fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba.html#aa36df91d776eedd1b90b9518a610d9fb">__construct</a> ($server, $user, $pass, $db, $install=false)</td></tr>
+<tr class="separator:aa36df91d776eedd1b90b9518a610d9fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a066ce6eab1282c9220ac4652ac2dbd27"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba.html#a066ce6eab1282c9220ac4652ac2dbd27">getdb</a> ()</td></tr>
+<tr class="separator:a066ce6eab1282c9220ac4652ac2dbd27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0060c8611e3c3ee71049904ad028a695"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba.html#a0060c8611e3c3ee71049904ad028a695">q</a> ($sql)</td></tr>
+<tr class="separator:a0060c8611e3c3ee71049904ad028a695"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c6fecf396c66e07f00276fc18d31ca7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba.html#a2c6fecf396c66e07f00276fc18d31ca7">dbg</a> ($dbg)</td></tr>
+<tr class="separator:a2c6fecf396c66e07f00276fc18d31ca7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a522329687ff042074c1cbc8bd3226d2f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba.html#a522329687ff042074c1cbc8bd3226d2f">escape</a> ($str)</td></tr>
+<tr class="separator:a522329687ff042074c1cbc8bd3226d2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac25853e4d454aec9cfead4814429550d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba.html#ac25853e4d454aec9cfead4814429550d">__destruct</a> ()</td></tr>
+<tr class="separator:ac25853e4d454aec9cfead4814429550d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:ab5dcbd758d3f8fb84702c323cd85067e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba.html#ab5dcbd758d3f8fb84702c323cd85067e">$mysqli</a> = true</td></tr>
+<tr class="separator:ab5dcbd758d3f8fb84702c323cd85067e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a986eb5c3bbd4c70801a9ddd2f8e5c561"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba.html#a986eb5c3bbd4c70801a9ddd2f8e5c561">$connected</a> = false</td></tr>
+<tr class="separator:a986eb5c3bbd4c70801a9ddd2f8e5c561"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6a1471c18c6530044d20db5d3532958b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba.html#a6a1471c18c6530044d20db5d3532958b">$error</a> = false</td></tr>
+<tr class="separator:a6a1471c18c6530044d20db5d3532958b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a4da56b3eb82ad26ba49ca5f97e1490cb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba.html#a4da56b3eb82ad26ba49ca5f97e1490cb">$debug</a> = 0</td></tr>
+<tr class="separator:a4da56b3eb82ad26ba49ca5f97e1490cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab57b3a4399f22ce5cdafbd3cd542a414"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba.html#ab57b3a4399f22ce5cdafbd3cd542a414">$db</a></td></tr>
+<tr class="separator:ab57b3a4399f22ce5cdafbd3cd542a414"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>MySQL database class</p>
+<p>For debugging, insert 'dbg(1);' anywhere in the program flow. dbg(0); will turn it off. Logging is performed at LOGGER_DATA level. When logging, all binary info is converted to text and html entities are escaped so that the debugging stream is safe to view within both terminals and web pages. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="aa36df91d776eedd1b90b9518a610d9fb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba::__construct </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$server</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pass</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$db</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$install</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac25853e4d454aec9cfead4814429550d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba::__destruct </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a2c6fecf396c66e07f00276fc18d31ca7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba::dbg </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dbg</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a522329687ff042074c1cbc8bd3226d2f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba::escape </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a066ce6eab1282c9220ac4652ac2dbd27"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba::getdb </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0060c8611e3c3ee71049904ad028a695"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba::q </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sql</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>If dbfail.out exists, we will write any failed calls directly to it, regardless of any logging that may or may nor be in effect. These usually indicate SQL syntax errors that need to be resolved.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a986eb5c3bbd4c70801a9ddd2f8e5c561"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba::$connected = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab57b3a4399f22ce5cdafbd3cd542a414"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba::$db</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classdba.html#aa36df91d776eedd1b90b9518a610d9fb">__construct()</a>, and <a class="el" href="classdba.html#a066ce6eab1282c9220ac4652ac2dbd27">getdb()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4da56b3eb82ad26ba49ca5f97e1490cb"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba::$debug = 0</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6a1471c18c6530044d20db5d3532958b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba::$error = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classdba.html#a0060c8611e3c3ee71049904ad028a695">q()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab5dcbd758d3f8fb84702c323cd85067e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba::$mysqli = true</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="dba_8php.html">dba.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classdba.js b/doc/html/classdba.js
new file mode 100644
index 000000000..2b97b91eb
--- /dev/null
+++ b/doc/html/classdba.js
@@ -0,0 +1,14 @@
+var classdba =
+[
+ [ "__construct", "classdba.html#aa36df91d776eedd1b90b9518a610d9fb", null ],
+ [ "__destruct", "classdba.html#ac25853e4d454aec9cfead4814429550d", null ],
+ [ "dbg", "classdba.html#a2c6fecf396c66e07f00276fc18d31ca7", null ],
+ [ "escape", "classdba.html#a522329687ff042074c1cbc8bd3226d2f", null ],
+ [ "getdb", "classdba.html#a066ce6eab1282c9220ac4652ac2dbd27", null ],
+ [ "q", "classdba.html#a0060c8611e3c3ee71049904ad028a695", null ],
+ [ "$connected", "classdba.html#a986eb5c3bbd4c70801a9ddd2f8e5c561", null ],
+ [ "$db", "classdba.html#ab57b3a4399f22ce5cdafbd3cd542a414", null ],
+ [ "$debug", "classdba.html#a4da56b3eb82ad26ba49ca5f97e1490cb", null ],
+ [ "$error", "classdba.html#a6a1471c18c6530044d20db5d3532958b", null ],
+ [ "$mysqli", "classdba.html#ab5dcbd758d3f8fb84702c323cd85067e", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classdba__driver-members.html b/doc/html/classdba__driver-members.html
new file mode 100644
index 000000000..96b4a6225
--- /dev/null
+++ b/doc/html/classdba__driver-members.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classdba__driver.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">dba_driver Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classdba__driver.html">dba_driver</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a205f6535e399700b6fca2492f96f2229">$connected</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">$db</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">$debug</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">$error</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a>($server, $port, $user, $pass, $db, $install=false)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975">close</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">connect</a>($server, $port, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a>($dbg)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">escape</a>($str)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>($server, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555">q</a>($sql)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classdba__driver.html b/doc/html/classdba__driver.html
new file mode 100644
index 000000000..ffac32e66
--- /dev/null
+++ b/doc/html/classdba__driver.html
@@ -0,0 +1,483 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: dba_driver Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classdba__driver.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classdba__driver-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">dba_driver Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for dba_driver:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classdba__driver.png" usemap="#dba_driver_map" alt=""/>
+ <map id="dba_driver_map" name="dba_driver_map">
+<area href="classdba__mysql.html" alt="dba_mysql" shape="rect" coords="0,56,74,80"/>
+<area href="classdba__mysqli.html" alt="dba_mysqli" shape="rect" coords="84,56,158,80"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ae533e62a240a793f17aef5ab4ef10edc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">connect</a> ($server, $port, $user, $pass, $db)</td></tr>
+<tr class="separator:ae533e62a240a793f17aef5ab4ef10edc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a558e738b88ae893cc5d79ffa3793d555"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555">q</a> ($sql)</td></tr>
+<tr class="separator:a558e738b88ae893cc5d79ffa3793d555"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc95ffa103a3290581b537670cde5311"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">escape</a> ($str)</td></tr>
+<tr class="separator:afc95ffa103a3290581b537670cde5311"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5afa54172f3c837df61643f8f5b2c975"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975">close</a> ()</td></tr>
+<tr class="separator:a5afa54172f3c837df61643f8f5b2c975"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3541d13ccb7a3eddfc03e253c746186"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a> ($server, $port, $user, $pass, $db, $<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>=false)</td></tr>
+<tr class="separator:af3541d13ccb7a3eddfc03e253c746186"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ccb27243e62a8ca30dd8e1b8cc67746"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a> ($server, $user, $pass, $db)</td></tr>
+<tr class="separator:a4ccb27243e62a8ca30dd8e1b8cc67746"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcc1f8955120fec0708bce39202d0422"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a> ($dbg)</td></tr>
+<tr class="separator:adcc1f8955120fec0708bce39202d0422"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a8bc9dc839a6320a0e07d8047a6b721"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a> ()</td></tr>
+<tr class="separator:a1a8bc9dc839a6320a0e07d8047a6b721"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a205f6535e399700b6fca2492f96f2229"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a205f6535e399700b6fca2492f96f2229">$connected</a> = false</td></tr>
+<tr class="separator:a205f6535e399700b6fca2492f96f2229"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84675d28c7bd9b7290dd37e66dbd216c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">$error</a> = false</td></tr>
+<tr class="separator:a84675d28c7bd9b7290dd37e66dbd216c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:af48e2afeded5285766bf92e22123ed03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">$debug</a> = 0</td></tr>
+<tr class="separator:af48e2afeded5285766bf92e22123ed03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3033b5f1c2716b52202faeaae2592fe6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">$db</a></td></tr>
+<tr class="separator:a3033b5f1c2716b52202faeaae2592fe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="af3541d13ccb7a3eddfc03e253c746186"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::__construct </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$server</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$port</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pass</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$db</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$install</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1a8bc9dc839a6320a0e07d8047a6b721"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::__destruct </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a5afa54172f3c837df61643f8f5b2c975"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::close </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae533e62a240a793f17aef5ab4ef10edc"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::connect </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$server</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$port</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pass</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$db</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adcc1f8955120fec0708bce39202d0422"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::dbg </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dbg</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afc95ffa103a3290581b537670cde5311"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::escape </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4ccb27243e62a8ca30dd8e1b8cc67746"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::install </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$server</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pass</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$db</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a558e738b88ae893cc5d79ffa3793d555"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::q </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sql</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a205f6535e399700b6fca2492f96f2229"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::$connected = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3033b5f1c2716b52202faeaae2592fe6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::$db</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct()</a>, <a class="el" href="classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1">dba_mysqli\connect()</a>, and <a class="el" href="classdba__mysql.html#a1887338627ce0e28786839363014bd0b">dba_mysql\connect()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af48e2afeded5285766bf92e22123ed03"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::$debug = 0</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a84675d28c7bd9b7290dd37e66dbd216c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::$error = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/dba/<a class="el" href="dba__driver_8php.html">dba_driver.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classdba__driver.js b/doc/html/classdba__driver.js
new file mode 100644
index 000000000..14c656ca8
--- /dev/null
+++ b/doc/html/classdba__driver.js
@@ -0,0 +1,15 @@
+var classdba__driver =
+[
+ [ "__construct", "classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186", null ],
+ [ "__destruct", "classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721", null ],
+ [ "close", "classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975", null ],
+ [ "connect", "classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc", null ],
+ [ "dbg", "classdba__driver.html#adcc1f8955120fec0708bce39202d0422", null ],
+ [ "escape", "classdba__driver.html#afc95ffa103a3290581b537670cde5311", null ],
+ [ "install", "classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746", null ],
+ [ "q", "classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555", null ],
+ [ "$connected", "classdba__driver.html#a205f6535e399700b6fca2492f96f2229", null ],
+ [ "$db", "classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6", null ],
+ [ "$debug", "classdba__driver.html#af48e2afeded5285766bf92e22123ed03", null ],
+ [ "$error", "classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classdba__driver.png b/doc/html/classdba__driver.png
new file mode 100644
index 000000000..7c5b7cf41
--- /dev/null
+++ b/doc/html/classdba__driver.png
Binary files differ
diff --git a/doc/html/classdba__mysql-members.html b/doc/html/classdba__mysql-members.html
new file mode 100644
index 000000000..dfc7c777b
--- /dev/null
+++ b/doc/html/classdba__mysql-members.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classdba__mysql.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">dba_mysql Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classdba__mysql.html">dba_mysql</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a205f6535e399700b6fca2492f96f2229">$connected</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">$db</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">$debug</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">$error</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a>($server, $port, $user, $pass, $db, $install=false)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e">close</a>()</td><td class="entry"><a class="el" href="classdba__mysql.html">dba_mysql</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__mysql.html#a1887338627ce0e28786839363014bd0b">connect</a>($server, $port, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__mysql.html">dba_mysql</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a>($dbg)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e">escape</a>($str)</td><td class="entry"><a class="el" href="classdba__mysql.html">dba_mysql</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>($server, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">q</a>($sql)</td><td class="entry"><a class="el" href="classdba__mysql.html">dba_mysql</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classdba__mysql.html b/doc/html/classdba__mysql.html
new file mode 100644
index 000000000..0604ea688
--- /dev/null
+++ b/doc/html/classdba__mysql.html
@@ -0,0 +1,263 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: dba_mysql Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classdba__mysql.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classdba__mysql-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">dba_mysql Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for dba_mysql:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classdba__mysql.png" usemap="#dba_mysql_map" alt=""/>
+ <map id="dba_mysql_map" name="dba_mysql_map">
+<area href="classdba__driver.html" alt="dba_driver" shape="rect" coords="0,0,74,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a1887338627ce0e28786839363014bd0b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysql.html#a1887338627ce0e28786839363014bd0b">connect</a> ($server, $port, $user, $pass, $db)</td></tr>
+<tr class="separator:a1887338627ce0e28786839363014bd0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac3fd60c278f400907322dac578754a99"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">q</a> ($sql)</td></tr>
+<tr class="separator:ac3fd60c278f400907322dac578754a99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a99a7691ea6cb1300031fb6549379066e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e">escape</a> ($str)</td></tr>
+<tr class="separator:a99a7691ea6cb1300031fb6549379066e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a850586714ef897bd25f643c89b4ef76e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e">close</a> ()</td></tr>
+<tr class="separator:a850586714ef897bd25f643c89b4ef76e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classdba__driver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classdba__driver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
+<tr class="memitem:ae533e62a240a793f17aef5ab4ef10edc inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">connect</a> ($server, $port, $user, $pass, $db)</td></tr>
+<tr class="separator:ae533e62a240a793f17aef5ab4ef10edc inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a558e738b88ae893cc5d79ffa3793d555 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555">q</a> ($sql)</td></tr>
+<tr class="separator:a558e738b88ae893cc5d79ffa3793d555 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc95ffa103a3290581b537670cde5311 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">escape</a> ($str)</td></tr>
+<tr class="separator:afc95ffa103a3290581b537670cde5311 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5afa54172f3c837df61643f8f5b2c975 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975">close</a> ()</td></tr>
+<tr class="separator:a5afa54172f3c837df61643f8f5b2c975 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3541d13ccb7a3eddfc03e253c746186 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a> ($server, $port, $user, $pass, $db, $<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>=false)</td></tr>
+<tr class="separator:af3541d13ccb7a3eddfc03e253c746186 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ccb27243e62a8ca30dd8e1b8cc67746 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a> ($server, $user, $pass, $db)</td></tr>
+<tr class="separator:a4ccb27243e62a8ca30dd8e1b8cc67746 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcc1f8955120fec0708bce39202d0422 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a> ($dbg)</td></tr>
+<tr class="separator:adcc1f8955120fec0708bce39202d0422 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a8bc9dc839a6320a0e07d8047a6b721 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a> ()</td></tr>
+<tr class="separator:a1a8bc9dc839a6320a0e07d8047a6b721 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_attribs_classdba__driver"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classdba__driver')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
+<tr class="memitem:a205f6535e399700b6fca2492f96f2229 inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a205f6535e399700b6fca2492f96f2229">$connected</a> = false</td></tr>
+<tr class="separator:a205f6535e399700b6fca2492f96f2229 inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84675d28c7bd9b7290dd37e66dbd216c inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">$error</a> = false</td></tr>
+<tr class="separator:a84675d28c7bd9b7290dd37e66dbd216c inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classdba__driver"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classdba__driver')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
+<tr class="memitem:af48e2afeded5285766bf92e22123ed03 inherit pro_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">$debug</a> = 0</td></tr>
+<tr class="separator:af48e2afeded5285766bf92e22123ed03 inherit pro_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3033b5f1c2716b52202faeaae2592fe6 inherit pro_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">$db</a></td></tr>
+<tr class="separator:a3033b5f1c2716b52202faeaae2592fe6 inherit pro_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a850586714ef897bd25f643c89b4ef76e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_mysql::close </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1887338627ce0e28786839363014bd0b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_mysql::connect </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$server</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$port</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pass</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$db</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a99a7691ea6cb1300031fb6549379066e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_mysql::escape </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac3fd60c278f400907322dac578754a99"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_mysql::q </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sql</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/dba/<a class="el" href="dba__mysql_8php.html">dba_mysql.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classdba__mysql.js b/doc/html/classdba__mysql.js
new file mode 100644
index 000000000..9e5452f55
--- /dev/null
+++ b/doc/html/classdba__mysql.js
@@ -0,0 +1,7 @@
+var classdba__mysql =
+[
+ [ "close", "classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e", null ],
+ [ "connect", "classdba__mysql.html#a1887338627ce0e28786839363014bd0b", null ],
+ [ "escape", "classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e", null ],
+ [ "q", "classdba__mysql.html#ac3fd60c278f400907322dac578754a99", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classdba__mysql.png b/doc/html/classdba__mysql.png
new file mode 100644
index 000000000..38ea168b7
--- /dev/null
+++ b/doc/html/classdba__mysql.png
Binary files differ
diff --git a/doc/html/classdba__mysqli-members.html b/doc/html/classdba__mysqli-members.html
new file mode 100644
index 000000000..e58c0dad1
--- /dev/null
+++ b/doc/html/classdba__mysqli-members.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classdba__mysqli.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">dba_mysqli Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classdba__mysqli.html">dba_mysqli</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a205f6535e399700b6fca2492f96f2229">$connected</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">$db</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">$debug</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">$error</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a>($server, $port, $user, $pass, $db, $install=false)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55">close</a>()</td><td class="entry"><a class="el" href="classdba__mysqli.html">dba_mysqli</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1">connect</a>($server, $port, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__mysqli.html">dba_mysqli</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a>($dbg)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64">escape</a>($str)</td><td class="entry"><a class="el" href="classdba__mysqli.html">dba_mysqli</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>($server, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">q</a>($sql)</td><td class="entry"><a class="el" href="classdba__mysqli.html">dba_mysqli</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classdba__mysqli.html b/doc/html/classdba__mysqli.html
new file mode 100644
index 000000000..5b1ef74cb
--- /dev/null
+++ b/doc/html/classdba__mysqli.html
@@ -0,0 +1,263 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: dba_mysqli Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classdba__mysqli.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classdba__mysqli-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">dba_mysqli Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for dba_mysqli:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classdba__mysqli.png" usemap="#dba_mysqli_map" alt=""/>
+ <map id="dba_mysqli_map" name="dba_mysqli_map">
+<area href="classdba__driver.html" alt="dba_driver" shape="rect" coords="0,0,74,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:add062bd93961e5f0194d94820e9a51b1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1">connect</a> ($server, $port, $user, $pass, $db)</td></tr>
+<tr class="separator:add062bd93961e5f0194d94820e9a51b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a611c4de8d6d7512dffb83a38bb6701ec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">q</a> ($sql)</td></tr>
+<tr class="separator:a611c4de8d6d7512dffb83a38bb6701ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27d6a748af7f80028801306e7ea33f64"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64">escape</a> ($str)</td></tr>
+<tr class="separator:a27d6a748af7f80028801306e7ea33f64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb38f2c851187ad632ecfab30fdfab55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55">close</a> ()</td></tr>
+<tr class="separator:acb38f2c851187ad632ecfab30fdfab55"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classdba__driver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classdba__driver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
+<tr class="memitem:ae533e62a240a793f17aef5ab4ef10edc inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">connect</a> ($server, $port, $user, $pass, $db)</td></tr>
+<tr class="separator:ae533e62a240a793f17aef5ab4ef10edc inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a558e738b88ae893cc5d79ffa3793d555 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555">q</a> ($sql)</td></tr>
+<tr class="separator:a558e738b88ae893cc5d79ffa3793d555 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc95ffa103a3290581b537670cde5311 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">escape</a> ($str)</td></tr>
+<tr class="separator:afc95ffa103a3290581b537670cde5311 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5afa54172f3c837df61643f8f5b2c975 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975">close</a> ()</td></tr>
+<tr class="separator:a5afa54172f3c837df61643f8f5b2c975 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3541d13ccb7a3eddfc03e253c746186 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a> ($server, $port, $user, $pass, $db, $<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>=false)</td></tr>
+<tr class="separator:af3541d13ccb7a3eddfc03e253c746186 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ccb27243e62a8ca30dd8e1b8cc67746 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a> ($server, $user, $pass, $db)</td></tr>
+<tr class="separator:a4ccb27243e62a8ca30dd8e1b8cc67746 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcc1f8955120fec0708bce39202d0422 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a> ($dbg)</td></tr>
+<tr class="separator:adcc1f8955120fec0708bce39202d0422 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a8bc9dc839a6320a0e07d8047a6b721 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a> ()</td></tr>
+<tr class="separator:a1a8bc9dc839a6320a0e07d8047a6b721 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_attribs_classdba__driver"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classdba__driver')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
+<tr class="memitem:a205f6535e399700b6fca2492f96f2229 inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a205f6535e399700b6fca2492f96f2229">$connected</a> = false</td></tr>
+<tr class="separator:a205f6535e399700b6fca2492f96f2229 inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84675d28c7bd9b7290dd37e66dbd216c inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">$error</a> = false</td></tr>
+<tr class="separator:a84675d28c7bd9b7290dd37e66dbd216c inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classdba__driver"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classdba__driver')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
+<tr class="memitem:af48e2afeded5285766bf92e22123ed03 inherit pro_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">$debug</a> = 0</td></tr>
+<tr class="separator:af48e2afeded5285766bf92e22123ed03 inherit pro_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3033b5f1c2716b52202faeaae2592fe6 inherit pro_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">$db</a></td></tr>
+<tr class="separator:a3033b5f1c2716b52202faeaae2592fe6 inherit pro_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="acb38f2c851187ad632ecfab30fdfab55"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_mysqli::close </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="add062bd93961e5f0194d94820e9a51b1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_mysqli::connect </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$server</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$port</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pass</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$db</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a27d6a748af7f80028801306e7ea33f64"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_mysqli::escape </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a611c4de8d6d7512dffb83a38bb6701ec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_mysqli::q </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sql</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/dba/<a class="el" href="dba__mysqli_8php.html">dba_mysqli.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classdba__mysqli.js b/doc/html/classdba__mysqli.js
new file mode 100644
index 000000000..a5f54698e
--- /dev/null
+++ b/doc/html/classdba__mysqli.js
@@ -0,0 +1,7 @@
+var classdba__mysqli =
+[
+ [ "close", "classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55", null ],
+ [ "connect", "classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1", null ],
+ [ "escape", "classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64", null ],
+ [ "q", "classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classdba__mysqli.png b/doc/html/classdba__mysqli.png
new file mode 100644
index 000000000..1667829fc
--- /dev/null
+++ b/doc/html/classdba__mysqli.png
Binary files differ
diff --git a/doc/html/classenotify-members.html b/doc/html/classenotify-members.html
new file mode 100644
index 000000000..df4eae18a
--- /dev/null
+++ b/doc/html/classenotify-members.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classenotify.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">enotify Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classenotify.html">enotify</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classenotify.html#afbc088860f534c6c05788b48cfc262c6">send</a>($params)</td><td class="entry"><a class="el" href="classenotify.html">enotify</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classenotify.html b/doc/html/classenotify.html
new file mode 100644
index 000000000..99084ccb0
--- /dev/null
+++ b/doc/html/classenotify.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: enotify Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classenotify.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="classenotify-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">enotify Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:afbc088860f534c6c05788b48cfc262c6"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classenotify.html#afbc088860f534c6c05788b48cfc262c6">send</a> ($params)</td></tr>
+<tr class="separator:afbc088860f534c6c05788b48cfc262c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="afbc088860f534c6c05788b48cfc262c6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static enotify::send </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$params</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Send a multipart/alternative message with Text and HTML versions</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fromName</td><td>name of the sender </td></tr>
+ <tr><td class="paramname">fromEmail</td><td>email fo the sender </td></tr>
+ <tr><td class="paramname">replyTo</td><td>replyTo address to direct responses </td></tr>
+ <tr><td class="paramname">toEmail</td><td>destination email address </td></tr>
+ <tr><td class="paramname">messageSubject</td><td>subject of the message </td></tr>
+ <tr><td class="paramname">htmlVersion</td><td>html version of the message </td></tr>
+ <tr><td class="paramname">textVersion</td><td>text only version of the message </td></tr>
+ <tr><td class="paramname">additionalMailHeader</td><td>additions to the smtp mail header </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="enotify_8php.html">enotify.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classes.html b/doc/html/classes.html
new file mode 100644
index 000000000..3fbe05e31
--- /dev/null
+++ b/doc/html/classes.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li class="current"><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classes.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Class Index</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_Z">Z</a></div>
+<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;A&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classConversation.html">Conversation</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;F&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="interfaceITemplateEngine.html">ITemplateEngine</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_Z"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;Z&#160;&#160;</div></td></tr></table>
+</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;D&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
+</td></tr>
+<tr><td valign="top"><a class="el" href="classApp.html">App</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classFKOAuth1.html">FKOAuth1</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classZotDriver.html">ZotDriver</a>&#160;&#160;&#160;</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;B&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classdba__driver.html">dba_driver</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classFKOAuthDataStore.html">FKOAuthDataStore</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classphoto__driver.html">photo_driver</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classdba__mysql.html">dba_mysql</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classFriendicaSmarty.html">FriendicaSmarty</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classphoto__gd.html">photo_gd</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classBaseObject.html">BaseObject</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classdba__mysqli.html">dba_mysqli</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classFriendicaSmartyEngine.html">FriendicaSmartyEngine</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classphoto__imagick.html">photo_imagick</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;E&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classProtoDriver.html">ProtoDriver</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;T&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classCache.html">Cache</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classenotify.html">enotify</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classItem.html">Item</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="classTemplate.html">Template</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_Z">Z</a></div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classphoto__driver-members.html b/doc/html/classphoto__driver-members.html
new file mode 100644
index 000000000..570e6c1f7
--- /dev/null
+++ b/doc/html/classphoto__driver-members.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classphoto__driver.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">photo_driver Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classphoto__driver.html">photo_driver</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80">$height</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55">$image</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03">$type</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03">$types</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9">$valid</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1">$width</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">__construct</a>($data, $type='')</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#ae4501abdc9651359f81d036b63625686">__destruct</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">cropImage</a>($max, $x, $y, $w, $h)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#ae1a9edaf846983780dc65ea77d99e813">destroy</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f">doScaleImage</a>($new_width, $new_height)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832">flip</a>($horiz=true, $vert=false)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba">getExt</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468">getHeight</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5">getImage</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3">getType</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#acc30486acee9e89e32701f44a1738117">getWidth</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd">imageString</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab">is_valid</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712">load</a>($data, $type)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">orient</a>($filename)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec">rotate</a>($degrees)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3">saveImage</a>($path)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0">scaleImage</a>($max)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a56634842b071b96502716e9843ea5361">scaleImageSquare</a>($dim)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce">scaleImageUp</a>($min)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143">setDimensions</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">store</a>($aid, $uid, $xchan, $rid, $filename, $album, $scale, $profile=0, $allow_cid= '', $allow_gid= '', $deny_cid= '', $deny_gid= '')</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da">supportedTypes</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classphoto__driver.html b/doc/html/classphoto__driver.html
new file mode 100644
index 000000000..e65960566
--- /dev/null
+++ b/doc/html/classphoto__driver.html
@@ -0,0 +1,927 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: photo_driver Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classphoto__driver.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classphoto__driver-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">photo_driver Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for photo_driver:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classphoto__driver.png" usemap="#photo_driver_map" alt=""/>
+ <map id="photo_driver_map" name="photo_driver_map">
+<area href="classphoto__gd.html" alt="photo_gd" shape="rect" coords="0,56,92,80"/>
+<area href="classphoto__imagick.html" alt="photo_imagick" shape="rect" coords="102,56,194,80"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a6eee8e36eaf9339f4faf80ddd43162da"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da">supportedTypes</a> ()</td></tr>
+<tr class="separator:a6eee8e36eaf9339f4faf80ddd43162da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a19e1af2b6af4c63aa6230abe69f83712"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712">load</a> ($data, $type)</td></tr>
+<tr class="separator:a19e1af2b6af4c63aa6230abe69f83712"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1a9edaf846983780dc65ea77d99e813"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ae1a9edaf846983780dc65ea77d99e813">destroy</a> ()</td></tr>
+<tr class="separator:ae1a9edaf846983780dc65ea77d99e813"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae663867d2c4eaa2fae50d60670920143"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143">setDimensions</a> ()</td></tr>
+<tr class="separator:ae663867d2c4eaa2fae50d60670920143"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab98da263bd7341fc132c4fb6fc76e8d5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5">getImage</a> ()</td></tr>
+<tr class="separator:ab98da263bd7341fc132c4fb6fc76e8d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae18716018afcf362c7c24586b53e9e2f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f">doScaleImage</a> ($new_width, $new_height)</td></tr>
+<tr class="separator:ae18716018afcf362c7c24586b53e9e2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f2b6337cf9aa0688d10b422123f0eec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec">rotate</a> ($degrees)</td></tr>
+<tr class="separator:a2f2b6337cf9aa0688d10b422123f0eec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b2a99021fc63ed6465d703ddddcb832"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832">flip</a> ($horiz=true, $vert=false)</td></tr>
+<tr class="separator:a2b2a99021fc63ed6465d703ddddcb832"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e6e61f1e356a90bc978f4404a77137e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">cropImage</a> ($max, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>, $y, $w, $h)</td></tr>
+<tr class="separator:a2e6e61f1e356a90bc978f4404a77137e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc9f73ad90923772d52b9fcc4eb117dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd">imageString</a> ()</td></tr>
+<tr class="separator:abc9f73ad90923772d52b9fcc4eb117dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6e85f8e507cab4e755ed7acdec401ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">__construct</a> ($data, $type='')</td></tr>
+<tr class="separator:ac6e85f8e507cab4e755ed7acdec401ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4501abdc9651359f81d036b63625686"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ae4501abdc9651359f81d036b63625686">__destruct</a> ()</td></tr>
+<tr class="separator:ae4501abdc9651359f81d036b63625686"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97289aef3be43d9435ca3717ef10b8ab"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab">is_valid</a> ()</td></tr>
+<tr class="separator:a97289aef3be43d9435ca3717ef10b8ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc30486acee9e89e32701f44a1738117"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#acc30486acee9e89e32701f44a1738117">getWidth</a> ()</td></tr>
+<tr class="separator:acc30486acee9e89e32701f44a1738117"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af769e9abb144e57002c59aa2aa8f3468"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468">getHeight</a> ()</td></tr>
+<tr class="separator:af769e9abb144e57002c59aa2aa8f3468"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22ecb8c696de65a5a10bd185be9d90c3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3">saveImage</a> ($path)</td></tr>
+<tr class="separator:a22ecb8c696de65a5a10bd185be9d90c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c6c16dbc4f517ce799f9143ed61f0e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3">getType</a> ()</td></tr>
+<tr class="separator:a6c6c16dbc4f517ce799f9143ed61f0e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2efb5b2a6af3fd67e3f1c2b9852a5ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba">getExt</a> ()</td></tr>
+<tr class="separator:aa2efb5b2a6af3fd67e3f1c2b9852a5ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0f7ec48a31ae9b557b6e3f8bd5b4af0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0">scaleImage</a> ($max)</td></tr>
+<tr class="separator:af0f7ec48a31ae9b557b6e3f8bd5b4af0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a63c4ae17e892a115ab9cf6efb960ce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce">scaleImageUp</a> ($min)</td></tr>
+<tr class="separator:a1a63c4ae17e892a115ab9cf6efb960ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56634842b071b96502716e9843ea5361"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a56634842b071b96502716e9843ea5361">scaleImageSquare</a> ($dim)</td></tr>
+<tr class="separator:a56634842b071b96502716e9843ea5361"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4de5bac8daea8f291a33c80788019d0d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">orient</a> ($filename)</td></tr>
+<tr class="separator:a4de5bac8daea8f291a33c80788019d0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a642a8d0c4ad5f887c99c6af77cee287b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">store</a> ($aid, $uid, $xchan, $rid, $filename, $album, $scale, $profile=0, $allow_cid= '', $allow_gid= '', $deny_cid= '', $deny_gid= '')</td></tr>
+<tr class="separator:a642a8d0c4ad5f887c99c6af77cee287b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a7c78b5a01afe61ba3895ac07f4869b55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55">$image</a></td></tr>
+<tr class="separator:a7c78b5a01afe61ba3895ac07f4869b55"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e4215890f4a4894bf3799a7d2e0c0b1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1">$width</a></td></tr>
+<tr class="separator:a3e4215890f4a4894bf3799a7d2e0c0b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea560be5dfba09117d36c12bacbf3b80"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80">$height</a></td></tr>
+<tr class="separator:aea560be5dfba09117d36c12bacbf3b80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a01d28d43b404d6f6de219dc9c5069dc9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9">$valid</a></td></tr>
+<tr class="separator:a01d28d43b404d6f6de219dc9c5069dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4920ed7cbb1ac735ac84153067537f03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03">$type</a></td></tr>
+<tr class="separator:a4920ed7cbb1ac735ac84153067537f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00cb166c00b7502dbc456c94330e5b03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03">$types</a></td></tr>
+<tr class="separator:a00cb166c00b7502dbc456c94330e5b03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ac6e85f8e507cab4e755ed7acdec401ae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::__construct </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae4501abdc9651359f81d036b63625686"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::__destruct </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a2e6e61f1e356a90bc978f4404a77137e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::cropImage </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$max</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$w</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$h</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae1a9edaf846983780dc65ea77d99e813"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::destroy </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__driver.html#ae4501abdc9651359f81d036b63625686">__destruct()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae18716018afcf362c7c24586b53e9e2f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::doScaleImage </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$new_width</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$new_height</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0">scaleImage()</a>, <a class="el" href="classphoto__driver.html#a56634842b071b96502716e9843ea5361">scaleImageSquare()</a>, and <a class="el" href="classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce">scaleImageUp()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2b2a99021fc63ed6465d703ddddcb832"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::flip </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$horiz</em> = <code>true</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$vert</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">orient()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa2efb5b2a6af3fd67e3f1c2b9852a5ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::getExt </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af769e9abb144e57002c59aa2aa8f3468"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::getHeight </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab98da263bd7341fc132c4fb6fc76e8d5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::getImage </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6c6c16dbc4f517ce799f9143ed61f0e3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::getType </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba">getExt()</a>, <a class="el" href="classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00">photo_gd\imageString()</a>, <a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">photo_imagick\load()</a>, <a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">orient()</a>, and <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acc30486acee9e89e32701f44a1738117"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::getWidth </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abc9f73ad90923772d52b9fcc4eb117dd"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::imageString </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3">saveImage()</a>, and <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a97289aef3be43d9435ca3717ef10b8ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::is_valid </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__driver.html#ae4501abdc9651359f81d036b63625686">__destruct()</a>, <a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">photo_gd\cropImage()</a>, <a class="el" href="classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4">photo_imagick\cropImage()</a>, <a class="el" href="classphoto__gd.html#a724703ecf71b1f1d04a80e86c76db6b1">photo_gd\destroy()</a>, <a class="el" href="classphoto__imagick.html#afd49d64751ee3a298eac0c0ce0ba0207">photo_imagick\destroy()</a>, <a class="el" href="classphoto__gd.html#a44cedef376044018702d9355ddc813ce">photo_gd\flip()</a>, <a class="el" href="classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393">photo_imagick\flip()</a>, <a class="el" href="classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba">getExt()</a>, <a class="el" href="classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468">getHeight()</a>, <a class="el" href="classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484">photo_gd\getImage()</a>, <a class="el" href="classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc">photo_imagick\getImage()</a>, <a class="el" href="classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3">getType()</a>, <a class="el" href="classphoto__driver.html#acc30486acee9e89e32701f44a1738117">getWidth()</a>, <a class="el" href="classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00">photo_gd\imageString()</a>, <a class="el" href="classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019">photo_imagick\imageString()</a>, <a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">orient()</a>, <a class="el" href="classphoto__gd.html#a77f87730b11093b76980c541159df37d">photo_gd\rotate()</a>, <a class="el" href="classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f">photo_imagick\rotate()</a>, <a class="el" href="classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3">saveImage()</a>, <a class="el" href="classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0">scaleImage()</a>, <a class="el" href="classphoto__driver.html#a56634842b071b96502716e9843ea5361">scaleImageSquare()</a>, and <a class="el" href="classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce">scaleImageUp()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a19e1af2b6af4c63aa6230abe69f83712"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::load </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">__construct()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4de5bac8daea8f291a33c80788019d0d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::orient </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$filename</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>This function is a bit unusual, because it is operating on a file, but you must first create an image from that file to initialise the type and check validity of the image.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2f2b6337cf9aa0688d10b422123f0eec"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::rotate </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$degrees</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">orient()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a22ecb8c696de65a5a10bd185be9d90c3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::saveImage </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$path</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af0f7ec48a31ae9b557b6e3f8bd5b4af0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::scaleImage </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$max</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a56634842b071b96502716e9843ea5361"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::scaleImageSquare </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dim</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1a63c4ae17e892a115ab9cf6efb960ce"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::scaleImageUp </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$min</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae663867d2c4eaa2fae50d60670920143"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::setDimensions </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a642a8d0c4ad5f887c99c6af77cee287b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::store </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$aid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$rid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$filename</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$album</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$scale</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$profile</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$allow_cid</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$allow_gid</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$deny_cid</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$deny_gid</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6eee8e36eaf9339f4faf80ddd43162da"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::supportedTypes </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">__construct()</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="aea560be5dfba09117d36c12bacbf3b80"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::$height</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754">photo_gd\doScaleImage()</a>, <a class="el" href="classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468">getHeight()</a>, <a class="el" href="classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0">scaleImage()</a>, and <a class="el" href="classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce">scaleImageUp()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7c78b5a01afe61ba3895ac07f4869b55"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::$image</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484">photo_gd\getImage()</a>, and <a class="el" href="classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc">photo_imagick\getImage()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4920ed7cbb1ac735ac84153067537f03"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::$type</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">__construct()</a>, <a class="el" href="classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3">getType()</a>, and <a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">photo_imagick\load()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a00cb166c00b7502dbc456c94330e5b03"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::$types</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a01d28d43b404d6f6de219dc9c5069dc9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::$valid</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab">is_valid()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3e4215890f4a4894bf3799a7d2e0c0b1"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_driver::$width</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754">photo_gd\doScaleImage()</a>, <a class="el" href="classphoto__driver.html#acc30486acee9e89e32701f44a1738117">getWidth()</a>, <a class="el" href="classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0">scaleImage()</a>, and <a class="el" href="classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce">scaleImageUp()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/photo/<a class="el" href="photo__driver_8php.html">photo_driver.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classphoto__driver.js b/doc/html/classphoto__driver.js
new file mode 100644
index 000000000..37f5be6c5
--- /dev/null
+++ b/doc/html/classphoto__driver.js
@@ -0,0 +1,32 @@
+var classphoto__driver =
+[
+ [ "__construct", "classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae", null ],
+ [ "__destruct", "classphoto__driver.html#ae4501abdc9651359f81d036b63625686", null ],
+ [ "cropImage", "classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e", null ],
+ [ "destroy", "classphoto__driver.html#ae1a9edaf846983780dc65ea77d99e813", null ],
+ [ "doScaleImage", "classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f", null ],
+ [ "flip", "classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832", null ],
+ [ "getExt", "classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba", null ],
+ [ "getHeight", "classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468", null ],
+ [ "getImage", "classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5", null ],
+ [ "getType", "classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3", null ],
+ [ "getWidth", "classphoto__driver.html#acc30486acee9e89e32701f44a1738117", null ],
+ [ "imageString", "classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd", null ],
+ [ "is_valid", "classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab", null ],
+ [ "load", "classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712", null ],
+ [ "orient", "classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d", null ],
+ [ "rotate", "classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec", null ],
+ [ "saveImage", "classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3", null ],
+ [ "scaleImage", "classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0", null ],
+ [ "scaleImageSquare", "classphoto__driver.html#a56634842b071b96502716e9843ea5361", null ],
+ [ "scaleImageUp", "classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce", null ],
+ [ "setDimensions", "classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143", null ],
+ [ "store", "classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b", null ],
+ [ "supportedTypes", "classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da", null ],
+ [ "$height", "classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80", null ],
+ [ "$image", "classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55", null ],
+ [ "$type", "classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03", null ],
+ [ "$types", "classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03", null ],
+ [ "$valid", "classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9", null ],
+ [ "$width", "classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classphoto__driver.png b/doc/html/classphoto__driver.png
new file mode 100644
index 000000000..5ce112bd2
--- /dev/null
+++ b/doc/html/classphoto__driver.png
Binary files differ
diff --git a/doc/html/classphoto__gd-members.html b/doc/html/classphoto__gd-members.html
new file mode 100644
index 000000000..387b82f95
--- /dev/null
+++ b/doc/html/classphoto__gd-members.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classphoto__gd.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">photo_gd Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classphoto__gd.html">photo_gd</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80">$height</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55">$image</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03">$type</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03">$types</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9">$valid</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1">$width</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">__construct</a>($data, $type='')</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#ae4501abdc9651359f81d036b63625686">__destruct</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">cropImage</a>($max, $x, $y, $w, $h)</td><td class="entry"><a class="el" href="classphoto__gd.html">photo_gd</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__gd.html#a724703ecf71b1f1d04a80e86c76db6b1">destroy</a>()</td><td class="entry"><a class="el" href="classphoto__gd.html">photo_gd</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754">doScaleImage</a>($dest_width, $dest_height)</td><td class="entry"><a class="el" href="classphoto__gd.html">photo_gd</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__gd.html#a44cedef376044018702d9355ddc813ce">flip</a>($horiz=true, $vert=false)</td><td class="entry"><a class="el" href="classphoto__gd.html">photo_gd</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba">getExt</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468">getHeight</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484">getImage</a>()</td><td class="entry"><a class="el" href="classphoto__gd.html">photo_gd</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3">getType</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#acc30486acee9e89e32701f44a1738117">getWidth</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00">imageString</a>()</td><td class="entry"><a class="el" href="classphoto__gd.html">photo_gd</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab">is_valid</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9">load</a>($data, $type)</td><td class="entry"><a class="el" href="classphoto__gd.html">photo_gd</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">orient</a>($filename)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__gd.html#a77f87730b11093b76980c541159df37d">rotate</a>($degrees)</td><td class="entry"><a class="el" href="classphoto__gd.html">photo_gd</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3">saveImage</a>($path)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0">scaleImage</a>($max)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a56634842b071b96502716e9843ea5361">scaleImageSquare</a>($dim)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce">scaleImageUp</a>($min)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e">setDimensions</a>()</td><td class="entry"><a class="el" href="classphoto__gd.html">photo_gd</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">store</a>($aid, $uid, $xchan, $rid, $filename, $album, $scale, $profile=0, $allow_cid= '', $allow_gid= '', $deny_cid= '', $deny_gid= '')</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd">supportedTypes</a>()</td><td class="entry"><a class="el" href="classphoto__gd.html">photo_gd</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classphoto__gd.html b/doc/html/classphoto__gd.html
new file mode 100644
index 000000000..92cf97a60
--- /dev/null
+++ b/doc/html/classphoto__gd.html
@@ -0,0 +1,432 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: photo_gd Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classphoto__gd.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classphoto__gd-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">photo_gd Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for photo_gd:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classphoto__gd.png" usemap="#photo_gd_map" alt=""/>
+ <map id="photo_gd_map" name="photo_gd_map">
+<area href="classphoto__driver.html" alt="photo_driver" shape="rect" coords="0,0,84,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a16f3dd7d3559f715aa2fe3f7880836dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd">supportedTypes</a> ()</td></tr>
+<tr class="separator:a16f3dd7d3559f715aa2fe3f7880836dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33092b889875b68bfb1c97ff123012d9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9">load</a> ($data, $type)</td></tr>
+<tr class="separator:a33092b889875b68bfb1c97ff123012d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c75304bd15f3b9986f0b315fb59271e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e">setDimensions</a> ()</td></tr>
+<tr class="separator:a1c75304bd15f3b9986f0b315fb59271e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a724703ecf71b1f1d04a80e86c76db6b1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#a724703ecf71b1f1d04a80e86c76db6b1">destroy</a> ()</td></tr>
+<tr class="separator:a724703ecf71b1f1d04a80e86c76db6b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a86757ba021fd80d1a5cf8c2f766a8484"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484">getImage</a> ()</td></tr>
+<tr class="separator:a86757ba021fd80d1a5cf8c2f766a8484"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f2e5900e6d8b1667892ac631b1d4754"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754">doScaleImage</a> ($dest_width, $dest_height)</td></tr>
+<tr class="separator:a2f2e5900e6d8b1667892ac631b1d4754"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77f87730b11093b76980c541159df37d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#a77f87730b11093b76980c541159df37d">rotate</a> ($degrees)</td></tr>
+<tr class="separator:a77f87730b11093b76980c541159df37d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44cedef376044018702d9355ddc813ce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#a44cedef376044018702d9355ddc813ce">flip</a> ($horiz=true, $vert=false)</td></tr>
+<tr class="separator:a44cedef376044018702d9355ddc813ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2232d775c8bacf66773a03308105f0c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">cropImage</a> ($max, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>, $y, $w, $h)</td></tr>
+<tr class="separator:ab2232d775c8bacf66773a03308105f0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0795fc029be382557ae3f6e285f40e00"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00">imageString</a> ()</td></tr>
+<tr class="separator:a0795fc029be382557ae3f6e285f40e00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classphoto__driver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classphoto__driver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classphoto__driver.html">photo_driver</a></td></tr>
+<tr class="memitem:a6eee8e36eaf9339f4faf80ddd43162da inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da">supportedTypes</a> ()</td></tr>
+<tr class="separator:a6eee8e36eaf9339f4faf80ddd43162da inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a19e1af2b6af4c63aa6230abe69f83712 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712">load</a> ($data, $type)</td></tr>
+<tr class="separator:a19e1af2b6af4c63aa6230abe69f83712 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1a9edaf846983780dc65ea77d99e813 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ae1a9edaf846983780dc65ea77d99e813">destroy</a> ()</td></tr>
+<tr class="separator:ae1a9edaf846983780dc65ea77d99e813 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae663867d2c4eaa2fae50d60670920143 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143">setDimensions</a> ()</td></tr>
+<tr class="separator:ae663867d2c4eaa2fae50d60670920143 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab98da263bd7341fc132c4fb6fc76e8d5 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5">getImage</a> ()</td></tr>
+<tr class="separator:ab98da263bd7341fc132c4fb6fc76e8d5 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae18716018afcf362c7c24586b53e9e2f inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f">doScaleImage</a> ($new_width, $new_height)</td></tr>
+<tr class="separator:ae18716018afcf362c7c24586b53e9e2f inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f2b6337cf9aa0688d10b422123f0eec inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec">rotate</a> ($degrees)</td></tr>
+<tr class="separator:a2f2b6337cf9aa0688d10b422123f0eec inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b2a99021fc63ed6465d703ddddcb832 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832">flip</a> ($horiz=true, $vert=false)</td></tr>
+<tr class="separator:a2b2a99021fc63ed6465d703ddddcb832 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e6e61f1e356a90bc978f4404a77137e inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">cropImage</a> ($max, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>, $y, $w, $h)</td></tr>
+<tr class="separator:a2e6e61f1e356a90bc978f4404a77137e inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc9f73ad90923772d52b9fcc4eb117dd inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd">imageString</a> ()</td></tr>
+<tr class="separator:abc9f73ad90923772d52b9fcc4eb117dd inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6e85f8e507cab4e755ed7acdec401ae inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">__construct</a> ($data, $type='')</td></tr>
+<tr class="separator:ac6e85f8e507cab4e755ed7acdec401ae inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4501abdc9651359f81d036b63625686 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ae4501abdc9651359f81d036b63625686">__destruct</a> ()</td></tr>
+<tr class="separator:ae4501abdc9651359f81d036b63625686 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97289aef3be43d9435ca3717ef10b8ab inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab">is_valid</a> ()</td></tr>
+<tr class="separator:a97289aef3be43d9435ca3717ef10b8ab inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc30486acee9e89e32701f44a1738117 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#acc30486acee9e89e32701f44a1738117">getWidth</a> ()</td></tr>
+<tr class="separator:acc30486acee9e89e32701f44a1738117 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af769e9abb144e57002c59aa2aa8f3468 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468">getHeight</a> ()</td></tr>
+<tr class="separator:af769e9abb144e57002c59aa2aa8f3468 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22ecb8c696de65a5a10bd185be9d90c3 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3">saveImage</a> ($path)</td></tr>
+<tr class="separator:a22ecb8c696de65a5a10bd185be9d90c3 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c6c16dbc4f517ce799f9143ed61f0e3 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3">getType</a> ()</td></tr>
+<tr class="separator:a6c6c16dbc4f517ce799f9143ed61f0e3 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2efb5b2a6af3fd67e3f1c2b9852a5ba inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba">getExt</a> ()</td></tr>
+<tr class="separator:aa2efb5b2a6af3fd67e3f1c2b9852a5ba inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0f7ec48a31ae9b557b6e3f8bd5b4af0 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0">scaleImage</a> ($max)</td></tr>
+<tr class="separator:af0f7ec48a31ae9b557b6e3f8bd5b4af0 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a63c4ae17e892a115ab9cf6efb960ce inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce">scaleImageUp</a> ($min)</td></tr>
+<tr class="separator:a1a63c4ae17e892a115ab9cf6efb960ce inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56634842b071b96502716e9843ea5361 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a56634842b071b96502716e9843ea5361">scaleImageSquare</a> ($dim)</td></tr>
+<tr class="separator:a56634842b071b96502716e9843ea5361 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4de5bac8daea8f291a33c80788019d0d inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">orient</a> ($filename)</td></tr>
+<tr class="separator:a4de5bac8daea8f291a33c80788019d0d inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a642a8d0c4ad5f887c99c6af77cee287b inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">store</a> ($aid, $uid, $xchan, $rid, $filename, $album, $scale, $profile=0, $allow_cid= '', $allow_gid= '', $deny_cid= '', $deny_gid= '')</td></tr>
+<tr class="separator:a642a8d0c4ad5f887c99c6af77cee287b inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classphoto__driver"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classphoto__driver')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classphoto__driver.html">photo_driver</a></td></tr>
+<tr class="memitem:a7c78b5a01afe61ba3895ac07f4869b55 inherit pro_attribs_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55">$image</a></td></tr>
+<tr class="separator:a7c78b5a01afe61ba3895ac07f4869b55 inherit pro_attribs_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e4215890f4a4894bf3799a7d2e0c0b1 inherit pro_attribs_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1">$width</a></td></tr>
+<tr class="separator:a3e4215890f4a4894bf3799a7d2e0c0b1 inherit pro_attribs_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea560be5dfba09117d36c12bacbf3b80 inherit pro_attribs_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80">$height</a></td></tr>
+<tr class="separator:aea560be5dfba09117d36c12bacbf3b80 inherit pro_attribs_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a01d28d43b404d6f6de219dc9c5069dc9 inherit pro_attribs_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9">$valid</a></td></tr>
+<tr class="separator:a01d28d43b404d6f6de219dc9c5069dc9 inherit pro_attribs_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4920ed7cbb1ac735ac84153067537f03 inherit pro_attribs_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03">$type</a></td></tr>
+<tr class="separator:a4920ed7cbb1ac735ac84153067537f03 inherit pro_attribs_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00cb166c00b7502dbc456c94330e5b03 inherit pro_attribs_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03">$types</a></td></tr>
+<tr class="separator:a00cb166c00b7502dbc456c94330e5b03 inherit pro_attribs_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ab2232d775c8bacf66773a03308105f0c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_gd::cropImage </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$max</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$w</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$h</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a724703ecf71b1f1d04a80e86c76db6b1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_gd::destroy </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2f2e5900e6d8b1667892ac631b1d4754"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_gd::doScaleImage </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dest_width</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dest_height</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a44cedef376044018702d9355ddc813ce"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_gd::flip </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$horiz</em> = <code>true</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$vert</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a86757ba021fd80d1a5cf8c2f766a8484"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_gd::getImage </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0795fc029be382557ae3f6e285f40e00"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_gd::imageString </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a33092b889875b68bfb1c97ff123012d9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_gd::load </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a77f87730b11093b76980c541159df37d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_gd::rotate </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$degrees</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1c75304bd15f3b9986f0b315fb59271e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_gd::setDimensions </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">cropImage()</a>, <a class="el" href="classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754">doScaleImage()</a>, <a class="el" href="classphoto__gd.html#a44cedef376044018702d9355ddc813ce">flip()</a>, <a class="el" href="classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9">load()</a>, and <a class="el" href="classphoto__gd.html#a77f87730b11093b76980c541159df37d">rotate()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a16f3dd7d3559f715aa2fe3f7880836dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_gd::supportedTypes </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/photo/<a class="el" href="photo__gd_8php.html">photo_gd.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classphoto__gd.js b/doc/html/classphoto__gd.js
new file mode 100644
index 000000000..c9992ce63
--- /dev/null
+++ b/doc/html/classphoto__gd.js
@@ -0,0 +1,13 @@
+var classphoto__gd =
+[
+ [ "cropImage", "classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c", null ],
+ [ "destroy", "classphoto__gd.html#a724703ecf71b1f1d04a80e86c76db6b1", null ],
+ [ "doScaleImage", "classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754", null ],
+ [ "flip", "classphoto__gd.html#a44cedef376044018702d9355ddc813ce", null ],
+ [ "getImage", "classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484", null ],
+ [ "imageString", "classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00", null ],
+ [ "load", "classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9", null ],
+ [ "rotate", "classphoto__gd.html#a77f87730b11093b76980c541159df37d", null ],
+ [ "setDimensions", "classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e", null ],
+ [ "supportedTypes", "classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classphoto__gd.png b/doc/html/classphoto__gd.png
new file mode 100644
index 000000000..405dcaccd
--- /dev/null
+++ b/doc/html/classphoto__gd.png
Binary files differ
diff --git a/doc/html/classphoto__imagick-members.html b/doc/html/classphoto__imagick-members.html
new file mode 100644
index 000000000..dc021c835
--- /dev/null
+++ b/doc/html/classphoto__imagick-members.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classphoto__imagick.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">photo_imagick Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classphoto__imagick.html">photo_imagick</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80">$height</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55">$image</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03">$type</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03">$types</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9">$valid</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1">$width</a></td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">__construct</a>($data, $type='')</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#ae4501abdc9651359f81d036b63625686">__destruct</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4">cropImage</a>($max, $x, $y, $w, $h)</td><td class="entry"><a class="el" href="classphoto__imagick.html">photo_imagick</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__imagick.html#afd49d64751ee3a298eac0c0ce0ba0207">destroy</a>()</td><td class="entry"><a class="el" href="classphoto__imagick.html">photo_imagick</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66">doScaleImage</a>($dest_width, $dest_height)</td><td class="entry"><a class="el" href="classphoto__imagick.html">photo_imagick</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393">flip</a>($horiz=true, $vert=false)</td><td class="entry"><a class="el" href="classphoto__imagick.html">photo_imagick</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4">get_FormatsMap</a>()</td><td class="entry"><a class="el" href="classphoto__imagick.html">photo_imagick</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba">getExt</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468">getHeight</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc">getImage</a>()</td><td class="entry"><a class="el" href="classphoto__imagick.html">photo_imagick</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3">getType</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#acc30486acee9e89e32701f44a1738117">getWidth</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019">imageString</a>()</td><td class="entry"><a class="el" href="classphoto__imagick.html">photo_imagick</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab">is_valid</a>()</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">load</a>($data, $type)</td><td class="entry"><a class="el" href="classphoto__imagick.html">photo_imagick</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">orient</a>($filename)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f">rotate</a>($degrees)</td><td class="entry"><a class="el" href="classphoto__imagick.html">photo_imagick</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3">saveImage</a>($path)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0">scaleImage</a>($max)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__driver.html#a56634842b071b96502716e9843ea5361">scaleImageSquare</a>($dim)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce">scaleImageUp</a>($min)</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb">setDimensions</a>()</td><td class="entry"><a class="el" href="classphoto__imagick.html">photo_imagick</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">store</a>($aid, $uid, $xchan, $rid, $filename, $album, $scale, $profile=0, $allow_cid= '', $allow_gid= '', $deny_cid= '', $deny_gid= '')</td><td class="entry"><a class="el" href="classphoto__driver.html">photo_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7">supportedTypes</a>()</td><td class="entry"><a class="el" href="classphoto__imagick.html">photo_imagick</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classphoto__imagick.html b/doc/html/classphoto__imagick.html
new file mode 100644
index 000000000..fba45f957
--- /dev/null
+++ b/doc/html/classphoto__imagick.html
@@ -0,0 +1,459 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: photo_imagick Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classphoto__imagick.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classphoto__imagick-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">photo_imagick Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for photo_imagick:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classphoto__imagick.png" usemap="#photo_imagick_map" alt=""/>
+ <map id="photo_imagick_map" name="photo_imagick_map">
+<area href="classphoto__driver.html" alt="photo_driver" shape="rect" coords="0,0,92,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a27596faca6108d9d563674d1b654a0b7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7">supportedTypes</a> ()</td></tr>
+<tr class="separator:a27596faca6108d9d563674d1b654a0b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef020d929f66f4370e33fc158c8eebd4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4">get_FormatsMap</a> ()</td></tr>
+<tr class="separator:aef020d929f66f4370e33fc158c8eebd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c9168f110ccd6c264095d766615dfa8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">load</a> ($data, $type)</td></tr>
+<tr class="separator:a2c9168f110ccd6c264095d766615dfa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd49d64751ee3a298eac0c0ce0ba0207"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#afd49d64751ee3a298eac0c0ce0ba0207">destroy</a> ()</td></tr>
+<tr class="separator:afd49d64751ee3a298eac0c0ce0ba0207"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af92901d252c1e6ab5b54eebedbed23bb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb">setDimensions</a> ()</td></tr>
+<tr class="separator:af92901d252c1e6ab5b54eebedbed23bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad07288e0eb3922cb08cc9d33a163decc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc">getImage</a> ()</td></tr>
+<tr class="separator:ad07288e0eb3922cb08cc9d33a163decc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3047c68bb4de7f66c2893fe451db2b66"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66">doScaleImage</a> ($dest_width, $dest_height)</td></tr>
+<tr class="separator:a3047c68bb4de7f66c2893fe451db2b66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9df5738a4a18e76dd304c440e96f045f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f">rotate</a> ($degrees)</td></tr>
+<tr class="separator:a9df5738a4a18e76dd304c440e96f045f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff6bcdbab18593a3fc5a480db8509393"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393">flip</a> ($horiz=true, $vert=false)</td></tr>
+<tr class="separator:aff6bcdbab18593a3fc5a480db8509393"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f33a03a89497a2b2768e29736d4a8a4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4">cropImage</a> ($max, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>, $y, $w, $h)</td></tr>
+<tr class="separator:a2f33a03a89497a2b2768e29736d4a8a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70adbef31128c0ac8cbc5dcf34cdb019"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019">imageString</a> ()</td></tr>
+<tr class="separator:a70adbef31128c0ac8cbc5dcf34cdb019"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classphoto__driver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classphoto__driver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classphoto__driver.html">photo_driver</a></td></tr>
+<tr class="memitem:a6eee8e36eaf9339f4faf80ddd43162da inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da">supportedTypes</a> ()</td></tr>
+<tr class="separator:a6eee8e36eaf9339f4faf80ddd43162da inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a19e1af2b6af4c63aa6230abe69f83712 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712">load</a> ($data, $type)</td></tr>
+<tr class="separator:a19e1af2b6af4c63aa6230abe69f83712 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1a9edaf846983780dc65ea77d99e813 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ae1a9edaf846983780dc65ea77d99e813">destroy</a> ()</td></tr>
+<tr class="separator:ae1a9edaf846983780dc65ea77d99e813 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae663867d2c4eaa2fae50d60670920143 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143">setDimensions</a> ()</td></tr>
+<tr class="separator:ae663867d2c4eaa2fae50d60670920143 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab98da263bd7341fc132c4fb6fc76e8d5 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5">getImage</a> ()</td></tr>
+<tr class="separator:ab98da263bd7341fc132c4fb6fc76e8d5 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae18716018afcf362c7c24586b53e9e2f inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f">doScaleImage</a> ($new_width, $new_height)</td></tr>
+<tr class="separator:ae18716018afcf362c7c24586b53e9e2f inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f2b6337cf9aa0688d10b422123f0eec inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec">rotate</a> ($degrees)</td></tr>
+<tr class="separator:a2f2b6337cf9aa0688d10b422123f0eec inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b2a99021fc63ed6465d703ddddcb832 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832">flip</a> ($horiz=true, $vert=false)</td></tr>
+<tr class="separator:a2b2a99021fc63ed6465d703ddddcb832 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e6e61f1e356a90bc978f4404a77137e inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">cropImage</a> ($max, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>, $y, $w, $h)</td></tr>
+<tr class="separator:a2e6e61f1e356a90bc978f4404a77137e inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc9f73ad90923772d52b9fcc4eb117dd inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd">imageString</a> ()</td></tr>
+<tr class="separator:abc9f73ad90923772d52b9fcc4eb117dd inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6e85f8e507cab4e755ed7acdec401ae inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">__construct</a> ($data, $type='')</td></tr>
+<tr class="separator:ac6e85f8e507cab4e755ed7acdec401ae inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4501abdc9651359f81d036b63625686 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#ae4501abdc9651359f81d036b63625686">__destruct</a> ()</td></tr>
+<tr class="separator:ae4501abdc9651359f81d036b63625686 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97289aef3be43d9435ca3717ef10b8ab inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab">is_valid</a> ()</td></tr>
+<tr class="separator:a97289aef3be43d9435ca3717ef10b8ab inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc30486acee9e89e32701f44a1738117 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#acc30486acee9e89e32701f44a1738117">getWidth</a> ()</td></tr>
+<tr class="separator:acc30486acee9e89e32701f44a1738117 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af769e9abb144e57002c59aa2aa8f3468 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468">getHeight</a> ()</td></tr>
+<tr class="separator:af769e9abb144e57002c59aa2aa8f3468 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22ecb8c696de65a5a10bd185be9d90c3 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3">saveImage</a> ($path)</td></tr>
+<tr class="separator:a22ecb8c696de65a5a10bd185be9d90c3 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c6c16dbc4f517ce799f9143ed61f0e3 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3">getType</a> ()</td></tr>
+<tr class="separator:a6c6c16dbc4f517ce799f9143ed61f0e3 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2efb5b2a6af3fd67e3f1c2b9852a5ba inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba">getExt</a> ()</td></tr>
+<tr class="separator:aa2efb5b2a6af3fd67e3f1c2b9852a5ba inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0f7ec48a31ae9b557b6e3f8bd5b4af0 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0">scaleImage</a> ($max)</td></tr>
+<tr class="separator:af0f7ec48a31ae9b557b6e3f8bd5b4af0 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a63c4ae17e892a115ab9cf6efb960ce inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce">scaleImageUp</a> ($min)</td></tr>
+<tr class="separator:a1a63c4ae17e892a115ab9cf6efb960ce inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56634842b071b96502716e9843ea5361 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a56634842b071b96502716e9843ea5361">scaleImageSquare</a> ($dim)</td></tr>
+<tr class="separator:a56634842b071b96502716e9843ea5361 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4de5bac8daea8f291a33c80788019d0d inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">orient</a> ($filename)</td></tr>
+<tr class="separator:a4de5bac8daea8f291a33c80788019d0d inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a642a8d0c4ad5f887c99c6af77cee287b inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">store</a> ($aid, $uid, $xchan, $rid, $filename, $album, $scale, $profile=0, $allow_cid= '', $allow_gid= '', $deny_cid= '', $deny_gid= '')</td></tr>
+<tr class="separator:a642a8d0c4ad5f887c99c6af77cee287b inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classphoto__driver"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classphoto__driver')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classphoto__driver.html">photo_driver</a></td></tr>
+<tr class="memitem:a7c78b5a01afe61ba3895ac07f4869b55 inherit pro_attribs_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55">$image</a></td></tr>
+<tr class="separator:a7c78b5a01afe61ba3895ac07f4869b55 inherit pro_attribs_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e4215890f4a4894bf3799a7d2e0c0b1 inherit pro_attribs_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1">$width</a></td></tr>
+<tr class="separator:a3e4215890f4a4894bf3799a7d2e0c0b1 inherit pro_attribs_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea560be5dfba09117d36c12bacbf3b80 inherit pro_attribs_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80">$height</a></td></tr>
+<tr class="separator:aea560be5dfba09117d36c12bacbf3b80 inherit pro_attribs_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a01d28d43b404d6f6de219dc9c5069dc9 inherit pro_attribs_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9">$valid</a></td></tr>
+<tr class="separator:a01d28d43b404d6f6de219dc9c5069dc9 inherit pro_attribs_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4920ed7cbb1ac735ac84153067537f03 inherit pro_attribs_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03">$type</a></td></tr>
+<tr class="separator:a4920ed7cbb1ac735ac84153067537f03 inherit pro_attribs_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00cb166c00b7502dbc456c94330e5b03 inherit pro_attribs_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03">$types</a></td></tr>
+<tr class="separator:a00cb166c00b7502dbc456c94330e5b03 inherit pro_attribs_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a2f33a03a89497a2b2768e29736d4a8a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_imagick::cropImage </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$max</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$w</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$h</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>We need to remove the canvas, or the image is not resized to the crop: <a href="http://php.net/manual/en/imagick.cropimage.php#97232">http://php.net/manual/en/imagick.cropimage.php#97232</a></p>
+
+</div>
+</div>
+<a class="anchor" id="afd49d64751ee3a298eac0c0ce0ba0207"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_imagick::destroy </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3047c68bb4de7f66c2893fe451db2b66"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_imagick::doScaleImage </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dest_width</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dest_height</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>If it is not animated, there will be only one iteration here, so don't bother checking</p>
+
+<p>Referenced by <a class="el" href="classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4">cropImage()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aff6bcdbab18593a3fc5a480db8509393"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_imagick::flip </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$horiz</em> = <code>true</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$vert</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aef020d929f66f4370e33fc158c8eebd4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_imagick::get_FormatsMap </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">load()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad07288e0eb3922cb08cc9d33a163decc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_imagick::getImage </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a70adbef31128c0ac8cbc5dcf34cdb019"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_imagick::imageString </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2c9168f110ccd6c264095d766615dfa8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_imagick::load </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Setup the image to the format it will be saved to</p>
+<p>setup the compression here, so we'll do it only once</p>
+<p>From <a href="http://www.imagemagick.org/script/command-line-options.php#quality:">http://www.imagemagick.org/script/command-line-options.php#quality:</a></p>
+<p>'For the MNG and PNG image formats, the quality value sets the zlib compression level (quality / 10) and filter-type (quality % 10). The default PNG "quality" is 75, which means compression level 7 with adaptive PNG filtering, unless the image has a color map, in which case it means compression level 7 with no PNG filtering'</p>
+
+</div>
+</div>
+<a class="anchor" id="a9df5738a4a18e76dd304c440e96f045f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_imagick::rotate </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$degrees</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af92901d252c1e6ab5b54eebedbed23bb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_imagick::setDimensions </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66">doScaleImage()</a>, <a class="el" href="classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393">flip()</a>, <a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">load()</a>, and <a class="el" href="classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f">rotate()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a27596faca6108d9d563674d1b654a0b7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_imagick::supportedTypes </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/photo/<a class="el" href="photo__imagick_8php.html">photo_imagick.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classphoto__imagick.js b/doc/html/classphoto__imagick.js
new file mode 100644
index 000000000..b43d1e9e5
--- /dev/null
+++ b/doc/html/classphoto__imagick.js
@@ -0,0 +1,14 @@
+var classphoto__imagick =
+[
+ [ "cropImage", "classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4", null ],
+ [ "destroy", "classphoto__imagick.html#afd49d64751ee3a298eac0c0ce0ba0207", null ],
+ [ "doScaleImage", "classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66", null ],
+ [ "flip", "classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393", null ],
+ [ "get_FormatsMap", "classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4", null ],
+ [ "getImage", "classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc", null ],
+ [ "imageString", "classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019", null ],
+ [ "load", "classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8", null ],
+ [ "rotate", "classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f", null ],
+ [ "setDimensions", "classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb", null ],
+ [ "supportedTypes", "classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classphoto__imagick.png b/doc/html/classphoto__imagick.png
new file mode 100644
index 000000000..c39b45b2e
--- /dev/null
+++ b/doc/html/classphoto__imagick.png
Binary files differ
diff --git a/doc/html/cli__startup_8php.html b/doc/html/cli__startup_8php.html
new file mode 100644
index 000000000..373621d3d
--- /dev/null
+++ b/doc/html/cli__startup_8php.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/cli_startup.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('cli__startup_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">cli_startup.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:adfdde63686e33ccd4851fa5edc4fc70b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup</a> ()</td></tr>
+<tr class="separator:adfdde63686e33ccd4851fa5edc4fc70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="adfdde63686e33ccd4851fa5edc4fc70b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">cli_startup </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks_run()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, and <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/cli__startup_8php.js b/doc/html/cli__startup_8php.js
new file mode 100644
index 000000000..3f941b222
--- /dev/null
+++ b/doc/html/cli__startup_8php.js
@@ -0,0 +1,4 @@
+var cli__startup_8php =
+[
+ [ "cli_startup", "cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b", null ]
+]; \ No newline at end of file
diff --git a/doc/html/closed.png b/doc/html/closed.png
new file mode 100644
index 000000000..98cc2c909
--- /dev/null
+++ b/doc/html/closed.png
Binary files differ
diff --git a/doc/html/common_8php.html b/doc/html/common_8php.html
new file mode 100644
index 000000000..378acf654
--- /dev/null
+++ b/doc/html/common_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/common.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('common_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">common.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aca62f113655809f41f49042ce9b123c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init</a> (&amp;$a)</td></tr>
+<tr class="separator:aca62f113655809f41f49042ce9b123c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b12ec67b3d3edcf595c8d195da5d14a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a">common_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:a3b12ec67b3d3edcf595c8d195da5d14a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab63408f39abef7a6915186e8dabc5a96"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content</a> (&amp;$a)</td></tr>
+<tr class="separator:ab63408f39abef7a6915186e8dabc5a96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a3b12ec67b3d3edcf595c8d195da5d14a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">common_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab63408f39abef7a6915186e8dabc5a96"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">common_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aca62f113655809f41f49042ce9b123c2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">common_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/common_8php.js b/doc/html/common_8php.js
new file mode 100644
index 000000000..6f763d046
--- /dev/null
+++ b/doc/html/common_8php.js
@@ -0,0 +1,6 @@
+var common_8php =
+[
+ [ "common_aside", "common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a", null ],
+ [ "common_content", "common_8php.html#ab63408f39abef7a6915186e8dabc5a96", null ],
+ [ "common_init", "common_8php.html#aca62f113655809f41f49042ce9b123c2", null ]
+]; \ No newline at end of file
diff --git a/doc/html/community_8php.html b/doc/html/community_8php.html
new file mode 100644
index 000000000..00cdb818b
--- /dev/null
+++ b/doc/html/community_8php.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/community.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('community_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">community.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a56c94ec978a38633c5628fa6f8e386d9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="community_8php.html#a56c94ec978a38633c5628fa6f8e386d9">community_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a56c94ec978a38633c5628fa6f8e386d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1197aafd6a6b540dbb4a0c04ade3a25a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content</a> (&amp;$a, $update=0)</td></tr>
+<tr class="separator:a1197aafd6a6b540dbb4a0c04ade3a25a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a1197aafd6a6b540dbb4a0c04ade3a25a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">community_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$update</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1">update_community_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a56c94ec978a38633c5628fa6f8e386d9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">community_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/community_8php.js b/doc/html/community_8php.js
new file mode 100644
index 000000000..06ba1c3b4
--- /dev/null
+++ b/doc/html/community_8php.js
@@ -0,0 +1,5 @@
+var community_8php =
+[
+ [ "community_content", "community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a", null ],
+ [ "community_init", "community_8php.html#a56c94ec978a38633c5628fa6f8e386d9", null ]
+]; \ No newline at end of file
diff --git a/doc/html/config_8md.html b/doc/html/config_8md.html
new file mode 100644
index 000000000..91c9e736b
--- /dev/null
+++ b/doc/html/config_8md.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/config.md File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('config_8md.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">util/config.md File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/connections_8php.html b/doc/html/connections_8php.html
new file mode 100644
index 000000000..e9f73801d
--- /dev/null
+++ b/doc/html/connections_8php.html
@@ -0,0 +1,211 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/connections.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('connections_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">connections.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a1f23623f802af7bd35e95b0e94e5d558"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a1f23623f802af7bd35e95b0e94e5d558"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af48f7ad20914760ba9874c090384e35a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:af48f7ad20914760ba9874c090384e35a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1224058db8e3fb56463eb312f98e561d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a1224058db8e3fb56463eb312f98e561d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15af118efee9c948b6f8294e54a73bb2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connections_8php.html#a15af118efee9c948b6f8294e54a73bb2">connections_clone</a> (&amp;$a)</td></tr>
+<tr class="separator:a15af118efee9c948b6f8294e54a73bb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aec2e457420fce3e3bf6a9f48e36df25c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aec2e457420fce3e3bf6a9f48e36df25c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af48f7ad20914760ba9874c090384e35a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">connections_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a15af118efee9c948b6f8294e54a73bb2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">connections_clone </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, and <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aec2e457420fce3e3bf6a9f48e36df25c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">connections_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1f23623f802af7bd35e95b0e94e5d558"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">connections_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1224058db8e3fb56463eb312f98e561d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">connections_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/connections_8php.js b/doc/html/connections_8php.js
new file mode 100644
index 000000000..ecab7efc9
--- /dev/null
+++ b/doc/html/connections_8php.js
@@ -0,0 +1,8 @@
+var connections_8php =
+[
+ [ "connections_aside", "connections_8php.html#af48f7ad20914760ba9874c090384e35a", null ],
+ [ "connections_clone", "connections_8php.html#a15af118efee9c948b6f8294e54a73bb2", null ],
+ [ "connections_content", "connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c", null ],
+ [ "connections_init", "connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558", null ],
+ [ "connections_post", "connections_8php.html#a1224058db8e3fb56463eb312f98e561d", null ]
+]; \ No newline at end of file
diff --git a/doc/html/contact__selectors_8php.html b/doc/html/contact__selectors_8php.html
new file mode 100644
index 000000000..04f992db5
--- /dev/null
+++ b/doc/html/contact__selectors_8php.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/contact_selectors.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('contact__selectors_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">contact_selectors.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a2c743d2eb526eb758d943a1490162d75"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75">contact_profile_assign</a> ($current)</td></tr>
+<tr class="separator:a2c743d2eb526eb758d943a1490162d75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae499960d6467bd30c78607b1018baf53"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53">contact_reputation</a> ($current)</td></tr>
+<tr class="separator:ae499960d6467bd30c78607b1018baf53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9839e8fdaac7ffb37bf1420493f5c28f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f">contact_poll_interval</a> ($current, $disabled=false)</td></tr>
+<tr class="separator:a9839e8fdaac7ffb37bf1420493f5c28f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad472e4716426dd1a9dd77b62962454be"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name</a> ($s)</td></tr>
+<tr class="separator:ad472e4716426dd1a9dd77b62962454be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a9839e8fdaac7ffb37bf1420493f5c28f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">contact_poll_interval </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$current</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$disabled</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2c743d2eb526eb758d943a1490162d75"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">contact_profile_assign </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$current</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, and <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae499960d6467bd30c78607b1018baf53"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">contact_reputation </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$current</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad472e4716426dd1a9dd77b62962454be"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">network_to_name </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, and <a class="el" href="nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30">nogroup_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/contact__selectors_8php.js b/doc/html/contact__selectors_8php.js
new file mode 100644
index 000000000..dcf8466e2
--- /dev/null
+++ b/doc/html/contact__selectors_8php.js
@@ -0,0 +1,7 @@
+var contact__selectors_8php =
+[
+ [ "contact_poll_interval", "contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f", null ],
+ [ "contact_profile_assign", "contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75", null ],
+ [ "contact_reputation", "contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53", null ],
+ [ "network_to_name", "contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be", null ]
+]; \ No newline at end of file
diff --git a/doc/html/contact__widgets_8php.html b/doc/html/contact__widgets_8php.html
new file mode 100644
index 000000000..6dbb489c9
--- /dev/null
+++ b/doc/html/contact__widgets_8php.html
@@ -0,0 +1,237 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/contact_widgets.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('contact__widgets_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">contact_widgets.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af24e693532a045954caab515942cfc6f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget</a> ()</td></tr>
+<tr class="separator:af24e693532a045954caab515942cfc6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57e73ebcfd62bb5d8c7a7b9e663726d6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget</a> ()</td></tr>
+<tr class="separator:a57e73ebcfd62bb5d8c7a7b9e663726d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1eda66319d170f60a8d07c7ece95533b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget</a> ($baseurl, $selected= '')</td></tr>
+<tr class="separator:a1eda66319d170f60a8d07c7ece95533b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a165eb021e61c4dcab2a552f28628d353"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget</a> ($baseurl, $selected= '')</td></tr>
+<tr class="separator:a165eb021e61c4dcab2a552f28628d353"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a552f8544528cec0c995cea7287ea9d65"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget</a> ($profile_uid)</td></tr>
+<tr class="separator:a552f8544528cec0c995cea7287ea9d65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a165eb021e61c4dcab2a552f28628d353"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">categories_widget </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$baseurl</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$selected</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a552f8544528cec0c995cea7287ea9d65"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">common_friends_visitor_widget </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$profile_uid</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1eda66319d170f60a8d07c7ece95533b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fileas_widget </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$baseurl</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$selected</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a57e73ebcfd62bb5d8c7a7b9e663726d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">findpeople_widget </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside()</a>, <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory_aside()</a>, <a class="el" href="dirfind_8php.html#ac689a812c84f161b3a0d42349f83981c">dirfind_init()</a>, and <a class="el" href="suggest_8php.html#a4df91c84594d51ba56b5918de414230d">suggest_aside()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af24e693532a045954caab515942cfc6f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">follow_widget </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside()</a>, <a class="el" href="dirfind_8php.html#ac689a812c84f161b3a0d42349f83981c">dirfind_init()</a>, <a class="el" href="intro_8php.html#abc3abf25da64f98f215126eb08c7936b">intro_aside()</a>, and <a class="el" href="suggest_8php.html#a4df91c84594d51ba56b5918de414230d">suggest_aside()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/contact__widgets_8php.js b/doc/html/contact__widgets_8php.js
new file mode 100644
index 000000000..1b2a8ecd5
--- /dev/null
+++ b/doc/html/contact__widgets_8php.js
@@ -0,0 +1,8 @@
+var contact__widgets_8php =
+[
+ [ "categories_widget", "contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353", null ],
+ [ "common_friends_visitor_widget", "contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65", null ],
+ [ "fileas_widget", "contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b", null ],
+ [ "findpeople_widget", "contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6", null ],
+ [ "follow_widget", "contact__widgets_8php.html#af24e693532a045954caab515942cfc6f", null ]
+]; \ No newline at end of file
diff --git a/doc/html/contactgroup_8php.html b/doc/html/contactgroup_8php.html
new file mode 100644
index 000000000..58dbbe9a3
--- /dev/null
+++ b/doc/html/contactgroup_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/contactgroup.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('contactgroup_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">contactgroup.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a18c7391b1b25debaf98c9dba639caab3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a18c7391b1b25debaf98c9dba639caab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a18c7391b1b25debaf98c9dba639caab3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">contactgroup_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/contactgroup_8php.js b/doc/html/contactgroup_8php.js
new file mode 100644
index 000000000..bb51dd652
--- /dev/null
+++ b/doc/html/contactgroup_8php.js
@@ -0,0 +1,4 @@
+var contactgroup_8php =
+[
+ [ "contactgroup_content", "contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3", null ]
+]; \ No newline at end of file
diff --git a/doc/html/conversation_8php.html b/doc/html/conversation_8php.html
new file mode 100644
index 000000000..8f47cbe36
--- /dev/null
+++ b/doc/html/conversation_8php.html
@@ -0,0 +1,722 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/conversation.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('conversation_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">conversation.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a0ee05f15255fb1cc3d89f30bc378a654"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654">item_extract_images</a> ($body)</td></tr>
+<tr class="separator:a0ee05f15255fb1cc3d89f30bc378a654"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adda79b75bf1ccf6ce9503aa310953533"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">item_redir_and_replace_images</a> ($body, $images, $cid)</td></tr>
+<tr class="separator:adda79b75bf1ccf6ce9503aa310953533"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9bd7f9fb6678736c581bcba3b17f471c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item</a> (&amp;$item)</td></tr>
+<tr class="separator:a9bd7f9fb6678736c581bcba3b17f471c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2383dff4f823e580399ff469d90ab19"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#ab2383dff4f823e580399ff469d90ab19">count_descendants</a> ($item)</td></tr>
+<tr class="separator:ab2383dff4f823e580399ff469d90ab19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7eeaaf44506815576f3bd80053ef52c3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">visible_activity</a> ($item)</td></tr>
+<tr class="separator:a7eeaaf44506815576f3bd80053ef52c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e97305a441dc143edbe09e17d1ceda1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation</a> (&amp;$a, $items, $mode, $update, $page_mode= 'traditional')</td></tr>
+<tr class="separator:a1e97305a441dc143edbe09e17d1ceda1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad470fc7766f0db66d138fa1916c7a8b7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url</a> ($item)</td></tr>
+<tr class="separator:ad470fc7766f0db66d138fa1916c7a8b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aacbb12d372d5e9c3ab0735b4aea48fb3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu</a> ($item)</td></tr>
+<tr class="separator:aacbb12d372d5e9c3ab0735b4aea48fb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe5b2f38d8b803edb0d7ec5fa2868db0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller</a> ($a, $item, &amp;$arr, $mode)</td></tr>
+<tr class="separator:afe5b2f38d8b803edb0d7ec5fa2868db0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d8e30cc94f9a175054c021305d3aca3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">format_like</a> ($cnt, $arr, $type, $id)</td></tr>
+<tr class="separator:a3d8e30cc94f9a175054c021305d3aca3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a7d541854bba755eb8ada59af7dcb1a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a">status_editor</a> ($a, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>, $popup=false)</td></tr>
+<tr class="separator:a2a7d541854bba755eb8ada59af7dcb1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f6ef0dfa554bacf620e84c18d386e67"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67">get_item_children</a> ($arr, $parent)</td></tr>
+<tr class="separator:a7f6ef0dfa554bacf620e84c18d386e67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae996eb116d397a2c6396c312d7b98664"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#ae996eb116d397a2c6396c312d7b98664">sort_item_children</a> ($items)</td></tr>
+<tr class="separator:ae996eb116d397a2c6396c312d7b98664"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3e1d4b15e7d6d026ee182edd58f692b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#ad3e1d4b15e7d6d026ee182edd58f692b">add_children_to_list</a> ($children, &amp;$arr)</td></tr>
+<tr class="separator:ad3e1d4b15e7d6d026ee182edd58f692b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abed85a41f1160598de880b84021c9cf7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#abed85a41f1160598de880b84021c9cf7">conv_sort</a> ($arr, $order)</td></tr>
+<tr class="separator:abed85a41f1160598de880b84021c9cf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac55e070f65f46fcc8e269f7896be4c7d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#ac55e070f65f46fcc8e269f7896be4c7d">sort_thr_created</a> ($a, $b)</td></tr>
+<tr class="separator:ac55e070f65f46fcc8e269f7896be4c7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9cc2a679606da9e535a06433f9f553a0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a9cc2a679606da9e535a06433f9f553a0">sort_thr_created_rev</a> ($a, $b)</td></tr>
+<tr class="separator:a9cc2a679606da9e535a06433f9f553a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f909b8885259b79c6ac8da93afd8f11"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a9f909b8885259b79c6ac8da93afd8f11">sort_thr_commented</a> ($a, $b)</td></tr>
+<tr class="separator:a9f909b8885259b79c6ac8da93afd8f11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59703b07ce2ddf627b4172ff26058b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6">find_thread_parent_index</a> ($arr, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="separator:ae59703b07ce2ddf627b4172ff26058b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0891aaa4492cba2b51eda12fe01957f3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3">format_location</a> ($item)</td></tr>
+<tr class="separator:a0891aaa4492cba2b51eda12fe01957f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40b9b5e7825bc73932a32e667f05e6f2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a40b9b5e7825bc73932a32e667f05e6f2">render_location_default</a> ($item)</td></tr>
+<tr class="separator:a40b9b5e7825bc73932a32e667f05e6f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b0888b0f26e1c284a4341fe5fd04f0c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a4b0888b0f26e1c284a4341fe5fd04f0c">prepare_page</a> ($item)</td></tr>
+<tr class="separator:a4b0888b0f26e1c284a4341fe5fd04f0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ad3e1d4b15e7d6d026ee182edd58f692b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">add_children_to_list </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$children</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$arr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad470fc7766f0db66d138fa1916c7a8b7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">best_link_url </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abed85a41f1160598de880b84021c9cf7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">conv_sort </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$order</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1e97305a441dc143edbe09e17d1ceda1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">conversation </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$items</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$mode</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$update</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$page_mode</em> = <code>'traditional'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>"Render" a conversation or list of items for HTML display. There are two major forms of display:</p>
+<ul>
+<li>Sequential or unthreaded ("New Item View" or search results)</li>
+<li>conversation view The $mode parameter decides between the various renderings and also figures out how to determine page owner and other contextual items that are based on unique features of the calling module. </li>
+</ul>
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="classItem.html#aa452b5bcd8dea12119b09212c615cb41">Item\remove_parent()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, and <a class="el" href="classItem.html#aa8b1bbc4236890694635295e46d7fd72">Item\set_conversation()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab2383dff4f823e580399ff469d90ab19"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">count_descendants </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Count the total of comments on this item and its desendants </p>
+
+</div>
+</div>
+<a class="anchor" id="ae59703b07ce2ddf627b4172ff26058b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">find_thread_parent_index </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3d8e30cc94f9a175054c021305d3aca3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">format_like </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$cnt</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$id</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0891aaa4492cba2b51eda12fe01957f3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">format_location </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, and <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7f6ef0dfa554bacf620e84c18d386e67"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_item_children </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$parent</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0ee05f15255fb1cc3d89f30bc378a654"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">item_extract_images </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$body</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aacbb12d372d5e9c3ab0735b4aea48fb3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">item_photo_menu </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, and <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adda79b75bf1ccf6ce9503aa310953533"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">item_redir_and_replace_images </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$body</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$images</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$cid</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afe5b2f38d8b803edb0d7ec5fa2868db0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">like_puller </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$mode</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9bd7f9fb6678736c581bcba3b17f471c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">localize_item </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Render actions localized </p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, and <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4b0888b0f26e1c284a4341fe5fd04f0c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">prepare_page </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a40b9b5e7825bc73932a32e667f05e6f2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">render_location_default </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae996eb116d397a2c6396c312d7b98664"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">sort_item_children </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$items</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9f909b8885259b79c6ac8da93afd8f11"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">sort_thr_commented </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$b</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac55e070f65f46fcc8e269f7896be4c7d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">sort_thr_created </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$b</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9cc2a679606da9e535a06433f9f553a0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">sort_thr_created_rev </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$b</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2a7d541854bba755eb8ada59af7dcb1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">status_editor </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$popup</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7eeaaf44506815576f3bd80053ef52c3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">visible_activity </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item\__construct()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, and <a class="el" href="conversation_8php.html#ab2383dff4f823e580399ff469d90ab19">count_descendants()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/conversation_8php.js b/doc/html/conversation_8php.js
new file mode 100644
index 000000000..4417191d0
--- /dev/null
+++ b/doc/html/conversation_8php.js
@@ -0,0 +1,25 @@
+var conversation_8php =
+[
+ [ "add_children_to_list", "conversation_8php.html#ad3e1d4b15e7d6d026ee182edd58f692b", null ],
+ [ "best_link_url", "conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7", null ],
+ [ "conv_sort", "conversation_8php.html#abed85a41f1160598de880b84021c9cf7", null ],
+ [ "conversation", "conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1", null ],
+ [ "count_descendants", "conversation_8php.html#ab2383dff4f823e580399ff469d90ab19", null ],
+ [ "find_thread_parent_index", "conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6", null ],
+ [ "format_like", "conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3", null ],
+ [ "format_location", "conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3", null ],
+ [ "get_item_children", "conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67", null ],
+ [ "item_extract_images", "conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654", null ],
+ [ "item_photo_menu", "conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3", null ],
+ [ "item_redir_and_replace_images", "conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533", null ],
+ [ "like_puller", "conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0", null ],
+ [ "localize_item", "conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c", null ],
+ [ "prepare_page", "conversation_8php.html#a4b0888b0f26e1c284a4341fe5fd04f0c", null ],
+ [ "render_location_default", "conversation_8php.html#a40b9b5e7825bc73932a32e667f05e6f2", null ],
+ [ "sort_item_children", "conversation_8php.html#ae996eb116d397a2c6396c312d7b98664", null ],
+ [ "sort_thr_commented", "conversation_8php.html#a9f909b8885259b79c6ac8da93afd8f11", null ],
+ [ "sort_thr_created", "conversation_8php.html#ac55e070f65f46fcc8e269f7896be4c7d", null ],
+ [ "sort_thr_created_rev", "conversation_8php.html#a9cc2a679606da9e535a06433f9f553a0", null ],
+ [ "status_editor", "conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a", null ],
+ [ "visible_activity", "conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3", null ]
+]; \ No newline at end of file
diff --git a/doc/html/crepair_8php.html b/doc/html/crepair_8php.html
new file mode 100644
index 000000000..a26c3a1e5
--- /dev/null
+++ b/doc/html/crepair_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/crepair.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('crepair_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">crepair.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab089978e50df156bbfabf9f8f5ccd198"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198">crepair_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ab089978e50df156bbfabf9f8f5ccd198"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc4493e1ffd1462a605dd9b870034513"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post</a> (&amp;$a)</td></tr>
+<tr class="separator:acc4493e1ffd1462a605dd9b870034513"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29464c01838e209c8059cfcd2d195caa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a29464c01838e209c8059cfcd2d195caa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a29464c01838e209c8059cfcd2d195caa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">crepair_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab089978e50df156bbfabf9f8f5ccd198"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">crepair_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acc4493e1ffd1462a605dd9b870034513"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">crepair_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/crepair_8php.js b/doc/html/crepair_8php.js
new file mode 100644
index 000000000..4e4181a10
--- /dev/null
+++ b/doc/html/crepair_8php.js
@@ -0,0 +1,6 @@
+var crepair_8php =
+[
+ [ "crepair_content", "crepair_8php.html#a29464c01838e209c8059cfcd2d195caa", null ],
+ [ "crepair_init", "crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198", null ],
+ [ "crepair_post", "crepair_8php.html#acc4493e1ffd1462a605dd9b870034513", null ]
+]; \ No newline at end of file
diff --git a/doc/html/cronhooks_8php.html b/doc/html/cronhooks_8php.html
new file mode 100644
index 000000000..dab018017
--- /dev/null
+++ b/doc/html/cronhooks_8php.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/cronhooks.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('cronhooks_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">cronhooks.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a4c4c1bbec4ecc9a0efa00dd6afd2c0ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks_run</a> ($<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>, $<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a>)</td></tr>
+<tr class="separator:a4c4c1bbec4ecc9a0efa00dd6afd2c0ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a4c4c1bbec4ecc9a0efa00dd6afd2c0ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">cronhooks_run </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argv</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argc</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/cronhooks_8php.js b/doc/html/cronhooks_8php.js
new file mode 100644
index 000000000..e2b6234e2
--- /dev/null
+++ b/doc/html/cronhooks_8php.js
@@ -0,0 +1,4 @@
+var cronhooks_8php =
+[
+ [ "cronhooks_run", "cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca", null ]
+]; \ No newline at end of file
diff --git a/doc/html/crypto_8php.html b/doc/html/crypto_8php.html
new file mode 100644
index 000000000..7ab5222eb
--- /dev/null
+++ b/doc/html/crypto_8php.html
@@ -0,0 +1,399 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/crypto.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('crypto_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">crypto.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a920e5f222d0020f47556033d8b2b6552"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8php.html#a920e5f222d0020f47556033d8b2b6552">rsa_sign</a> ($data, $key, $alg= 'sha256')</td></tr>
+<tr class="separator:a920e5f222d0020f47556033d8b2b6552"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4f21d8f6b8ece0915e7c8bb73379f96"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8php.html#ab4f21d8f6b8ece0915e7c8bb73379f96">rsa_verify</a> ($data, $sig, $key, $alg= 'sha256')</td></tr>
+<tr class="separator:ab4f21d8f6b8ece0915e7c8bb73379f96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5e51fd44cff93cfaa07a37e24a5edec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec">pkcs5_pad</a> ($text, $blocksize)</td></tr>
+<tr class="separator:ad5e51fd44cff93cfaa07a37e24a5edec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac95ac3b1b23b65b04a86613d4206ae85"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8php.html#ac95ac3b1b23b65b04a86613d4206ae85">pkcs5_unpad</a> ($text)</td></tr>
+<tr class="separator:ac95ac3b1b23b65b04a86613d4206ae85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c61821d205f95f127114159cbffa764"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8php.html#a5c61821d205f95f127114159cbffa764">AES256CBC_encrypt</a> ($data, $key, $iv)</td></tr>
+<tr class="separator:a5c61821d205f95f127114159cbffa764"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac852ee41392d1358c3a54d54935e0bf9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8php.html#ac852ee41392d1358c3a54d54935e0bf9">AES256CBC_decrypt</a> ($data, $key, $iv)</td></tr>
+<tr class="separator:ac852ee41392d1358c3a54d54935e0bf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2148d7aac7b30c720f7ebda7e9790286"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate</a> ($data, $pubkey)</td></tr>
+<tr class="separator:a2148d7aac7b30c720f7ebda7e9790286"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca7c3a574bfb6c6ef1f2403a56823914"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">aes_unencapsulate</a> ($data, $prvkey)</td></tr>
+<tr class="separator:aca7c3a574bfb6c6ef1f2403a56823914"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae0ab70d6a199b29555b1ac3cf250d6a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a">new_keypair</a> ($bits)</td></tr>
+<tr class="separator:aae0ab70d6a199b29555b1ac3cf250d6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ac852ee41392d1358c3a54d54935e0bf9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">AES256CBC_decrypt </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$iv</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">aes_unencapsulate()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5c61821d205f95f127114159cbffa764"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">AES256CBC_encrypt </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$iv</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2148d7aac7b30c720f7ebda7e9790286"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">aes_encapsulate </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pubkey</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">send_message()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, and <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aca7c3a574bfb6c6ef1f2403a56823914"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">aes_unencapsulate </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$prvkey</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aae0ab70d6a199b29555b1ac3cf250d6a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">new_keypair </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$bits</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, and <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad5e51fd44cff93cfaa07a37e24a5edec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">pkcs5_pad </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$blocksize</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="crypto_8php.html#a5c61821d205f95f127114159cbffa764">AES256CBC_encrypt()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac95ac3b1b23b65b04a86613d4206ae85"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">pkcs5_unpad </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$text</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="crypto_8php.html#ac852ee41392d1358c3a54d54935e0bf9">AES256CBC_decrypt()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a920e5f222d0020f47556033d8b2b6552"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">rsa_sign </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$alg</em> = <code>'sha256'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, and <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab4f21d8f6b8ece0915e7c8bb73379f96"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">rsa_verify </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sig</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$alg</em> = <code>'sha256'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/crypto_8php.js b/doc/html/crypto_8php.js
new file mode 100644
index 000000000..bcbc2cc4d
--- /dev/null
+++ b/doc/html/crypto_8php.js
@@ -0,0 +1,12 @@
+var crypto_8php =
+[
+ [ "AES256CBC_decrypt", "crypto_8php.html#ac852ee41392d1358c3a54d54935e0bf9", null ],
+ [ "AES256CBC_encrypt", "crypto_8php.html#a5c61821d205f95f127114159cbffa764", null ],
+ [ "aes_encapsulate", "crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286", null ],
+ [ "aes_unencapsulate", "crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914", null ],
+ [ "new_keypair", "crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a", null ],
+ [ "pkcs5_pad", "crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec", null ],
+ [ "pkcs5_unpad", "crypto_8php.html#ac95ac3b1b23b65b04a86613d4206ae85", null ],
+ [ "rsa_sign", "crypto_8php.html#a920e5f222d0020f47556033d8b2b6552", null ],
+ [ "rsa_verify", "crypto_8php.html#ab4f21d8f6b8ece0915e7c8bb73379f96", null ]
+]; \ No newline at end of file
diff --git a/doc/html/datetime_8php.html b/doc/html/datetime_8php.html
new file mode 100644
index 000000000..84177727e
--- /dev/null
+++ b/doc/html/datetime_8php.html
@@ -0,0 +1,561 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/datetime.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('datetime_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">datetime.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aa51b5a7ea4f931b23acbdfcea46e9865"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865">timezone_cmp</a> ($a, $b)</td></tr>
+<tr class="separator:aa51b5a7ea4f931b23acbdfcea46e9865"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a633dadba426fa2f60b25fabdb19ebc1f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f">select_timezone</a> ($current= 'America/Los_Angeles')</td></tr>
+<tr class="separator:a633dadba426fa2f60b25fabdb19ebc1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03900dcf0f9e3c58793a031673a70326"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a03900dcf0f9e3c58793a031673a70326">field_timezone</a> ($name='timezone', $label='', $current= 'America/Los_Angeles', $help)</td></tr>
+<tr class="separator:a03900dcf0f9e3c58793a031673a70326"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6301e74b0f9267d52f8d432b5beb226"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226">datetime_convert</a> ($from= 'UTC', $to= 'UTC', $s= 'now', $fmt=&quot;Y-m-d H:i:s&quot;)</td></tr>
+<tr class="separator:ad6301e74b0f9267d52f8d432b5beb226"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f2897db32e745fe2f3e70a6b46578f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob</a> ($dob)</td></tr>
+<tr class="separator:a3f2897db32e745fe2f3e70a6b46578f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f29553799005b1fd4e9ce9d98ce05aa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa">datesel_format</a> ($f)</td></tr>
+<tr class="separator:a5f29553799005b1fd4e9ce9d98ce05aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac265b86f384ee094ed5479aae02aa5c8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8">datesel</a> ($f, $pre, $ymin, $ymax, $allow_blank, $y, $m, $d)</td></tr>
+<tr class="separator:ac265b86f384ee094ed5479aae02aa5c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36d3d6dff8d76b5f295bb3d9c535a5b1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1">timesel</a> ($pre, $h, $m)</td></tr>
+<tr class="separator:a36d3d6dff8d76b5f295bb3d9c535a5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ae8dc95ace7ac27fa5a1ecf42b78c82"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date</a> ($posted_date, $format=null)</td></tr>
+<tr class="separator:a8ae8dc95ace7ac27fa5a1ecf42b78c82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc1652f96799cec6fce8797ba2ebc2df"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df">age</a> ($<a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob</a>, $owner_tz= '', $viewer_tz= '')</td></tr>
+<tr class="separator:abc1652f96799cec6fce8797ba2ebc2df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7df24d72ea05922d3127363e2295174c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a7df24d72ea05922d3127363e2295174c">get_dim</a> ($y, $m)</td></tr>
+<tr class="separator:a7df24d72ea05922d3127363e2295174c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba971b67f17fecf050813f1eba72367f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#aba971b67f17fecf050813f1eba72367f">get_first_dim</a> ($y, $m)</td></tr>
+<tr class="separator:aba971b67f17fecf050813f1eba72367f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea356409ba69f9de412298c998595dd2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">cal</a> ($y=0, $m=0, $links=false, $class='')</td></tr>
+<tr class="separator:aea356409ba69f9de412298c998595dd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="abc1652f96799cec6fce8797ba2ebc2df"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">age </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dob</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$owner_tz</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$viewer_tz</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aea356409ba69f9de412298c998595dd2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">cal </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$y</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$m</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$links</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$class</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac265b86f384ee094ed5479aae02aa5c8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">datesel </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$f</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pre</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$ymin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$ymax</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$allow_blank</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$d</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob()</a>, and <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5f29553799005b1fd4e9ce9d98ce05aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">datesel_format </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$f</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, and <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad6301e74b0f9267d52f8d432b5beb226"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">datetime_convert </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$from</em> = <code>'UTC'</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$to</em> = <code>'UTC'</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em> = <code>'now'</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$fmt</em> = <code>&quot;Y-m-d&#160;H:i:s&quot;</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2network_8php.html#a0bdc4b0bfc54797c249dc4eca25aeda4">add_fcontact()</a>, <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df">age()</a>, <a class="el" href="include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5">api_account_rate_limit_status()</a>, <a class="el" href="include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25">api_date()</a>, <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api_rss_extra()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">cal()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">Cache\clear()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks_run()</a>, <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c">dlogger()</a>, <a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob()</a>, <a class="el" href="event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850">ev_compare()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">format_event_html()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="datetime_8php.html#aba971b67f17fecf050813f1eba72367f">get_first_dim()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements()</a>, <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">logger()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql\q()</a>, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli\q()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">Cache\set()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="zot_8php.html#a666d3efcac00ec1b4a4537a60655f2ab">update_modtime()</a>, <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">update_queue_time()</a>, <a class="el" href="boot_8php.html#ab55e545b72ec8c097e052ea7d373491f">z_birthday()</a>, <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3f2897db32e745fe2f3e70a6b46578f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dob </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dob</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a03900dcf0f9e3c58793a031673a70326"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">field_timezone </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em> = <code>'timezone'</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$label</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$current</em> = <code>'America/Los_Angeles'</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$help</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7df24d72ea05922d3127363e2295174c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_dim </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$m</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">cal()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, and <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aba971b67f17fecf050813f1eba72367f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_first_dim </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$m</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">cal()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8ae8dc95ace7ac27fa5a1ecf42b78c82"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">relative_date </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$posted_date</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$format</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="bbcode_8php.html#a52c45273fbb7ce5ec27094f7936856e1">bb_ShareAttributes()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, and <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a633dadba426fa2f60b25fabdb19ebc1f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">select_timezone </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$current</em> = <code>'America/Los_Angeles'</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="datetime_8php.html#a03900dcf0f9e3c58793a031673a70326">field_timezone()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a36d3d6dff8d76b5f295bb3d9c535a5b1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">timesel </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pre</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$h</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$m</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa51b5a7ea4f931b23acbdfcea46e9865"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">timezone_cmp </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$b</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/datetime_8php.js b/doc/html/datetime_8php.js
new file mode 100644
index 000000000..4a9260091
--- /dev/null
+++ b/doc/html/datetime_8php.js
@@ -0,0 +1,16 @@
+var datetime_8php =
+[
+ [ "age", "datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df", null ],
+ [ "cal", "datetime_8php.html#aea356409ba69f9de412298c998595dd2", null ],
+ [ "datesel", "datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8", null ],
+ [ "datesel_format", "datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa", null ],
+ [ "datetime_convert", "datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226", null ],
+ [ "dob", "datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8", null ],
+ [ "field_timezone", "datetime_8php.html#a03900dcf0f9e3c58793a031673a70326", null ],
+ [ "get_dim", "datetime_8php.html#a7df24d72ea05922d3127363e2295174c", null ],
+ [ "get_first_dim", "datetime_8php.html#aba971b67f17fecf050813f1eba72367f", null ],
+ [ "relative_date", "datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82", null ],
+ [ "select_timezone", "datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f", null ],
+ [ "timesel", "datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1", null ],
+ [ "timezone_cmp", "datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865", null ]
+]; \ No newline at end of file
diff --git a/doc/html/db__update_8php.html b/doc/html/db__update_8php.html
new file mode 100644
index 000000000..63485d5af
--- /dev/null
+++ b/doc/html/db__update_8php.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/db_update.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('db__update_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">db_update.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceutil"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html">util</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/db__update_8php.js b/doc/html/db__update_8php.js
new file mode 100644
index 000000000..a94d2d63d
--- /dev/null
+++ b/doc/html/db__update_8php.js
@@ -0,0 +1,7 @@
+var db__update_8php =
+[
+ [ "$a", "db__update_8php.html#acebf83966ef6d7e5645a6b62ba368f9f", null ],
+ [ "$build", "db__update_8php.html#a502b15db084ae270b52e03c8075916de", null ],
+ [ "$db", "db__update_8php.html#a1fa3127fc82f96b1436d871ef02be319", null ],
+ [ "$lang", "db__update_8php.html#a7714b111b644017933931ec69a154102", null ]
+]; \ No newline at end of file
diff --git a/doc/html/dba_8php.html b/doc/html/dba_8php.html
new file mode 100644
index 000000000..027f9d105
--- /dev/null
+++ b/doc/html/dba_8php.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: include/dba.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dba_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">dba.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dba_8php.js b/doc/html/dba_8php.js
new file mode 100644
index 000000000..92ae4c2e4
--- /dev/null
+++ b/doc/html/dba_8php.js
@@ -0,0 +1,11 @@
+var dba_8php =
+[
+ [ "dba", "classdba.html", "classdba" ],
+ [ "dbesc", "dba_8php.html#ab222aa1dbf9ea93b320f82028739127e", null ],
+ [ "dbesc_array", "dba_8php.html#a65b83462bd26968106aebd43f16540e4", null ],
+ [ "dbesc_array_cb", "dba_8php.html#af531546fac5f0836a8557a4f6dfee930", null ],
+ [ "dbg", "dba_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb", null ],
+ [ "dbq", "dba_8php.html#aa377074e70981e8c4e82ca0accd068ee", null ],
+ [ "printable", "dba_8php.html#a55bf30d8176967e682656b5be4ad9249", null ],
+ [ "q", "dba_8php.html#a2c09a731d3b4fef41fed0e83db01be1f", null ]
+]; \ No newline at end of file
diff --git a/doc/html/dba__driver_8php.html b/doc/html/dba__driver_8php.html
new file mode 100644
index 000000000..85e6cab92
--- /dev/null
+++ b/doc/html/dba__driver_8php.html
@@ -0,0 +1,329 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/dba/dba_driver.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dba__driver_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">dba_driver.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac10e60f6e5b95bcf67bd82cb88f37947"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947">dba_factory</a> ($server, $port, $user, $pass, $db, $install=false)</td></tr>
+<tr class="separator:ac10e60f6e5b95bcf67bd82cb88f37947"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55bf30d8176967e682656b5be4ad9249"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249">printable</a> ($s)</td></tr>
+<tr class="separator:a55bf30d8176967e682656b5be4ad9249"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6607893d8f60ade9122bcfbd1a53ffb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb">dbg</a> ($state)</td></tr>
+<tr class="separator:aa6607893d8f60ade9122bcfbd1a53ffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab222aa1dbf9ea93b320f82028739127e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e">dbesc</a> ($str)</td></tr>
+<tr class="separator:ab222aa1dbf9ea93b320f82028739127e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c09a731d3b4fef41fed0e83db01be1f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f">q</a> ($sql)</td></tr>
+<tr class="separator:a2c09a731d3b4fef41fed0e83db01be1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa377074e70981e8c4e82ca0accd068ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee">dbq</a> ($sql)</td></tr>
+<tr class="separator:aa377074e70981e8c4e82ca0accd068ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af531546fac5f0836a8557a4f6dfee930"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930">dbesc_array_cb</a> (&amp;$item, $key)</td></tr>
+<tr class="separator:af531546fac5f0836a8557a4f6dfee930"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65b83462bd26968106aebd43f16540e4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4">dbesc_array</a> (&amp;$arr)</td></tr>
+<tr class="separator:a65b83462bd26968106aebd43f16540e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ac10e60f6e5b95bcf67bd82cb88f37947"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_factory </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$server</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$port</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pass</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$db</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$install</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</a>, and <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab222aa1dbf9ea93b320f82028739127e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dbesc </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="include_2network_8php.html#a0bdc4b0bfc54797c249dc4eca25aeda4">add_fcontact()</a>, <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258">channelx_by_hash()</a>, <a class="el" href="Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc">channelx_by_n()</a>, <a class="el" href="Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e">channelx_by_nick()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">Cache\clear()</a>, <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">common_friends()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84">count_common_friends()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930">dbesc_array_cb()</a>, <a class="el" href="include_2config_8php.html#a549910227348003efc3c05c9105c42da">del_config()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="include_2network_8php.html#a2729d012410e470c527a62a3f777ded8">fix_contact_ssl_policy()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="text_8php.html#ae4f6881d7e13623f8eded6277595112a">generate_user_guid()</a>, <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache\get()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74">get_config_from_storage()</a>, <a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0">group_add()</a>, <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group_add_member()</a>, <a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group_byname()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245">group_rec_byhash()</a>, <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group_rmv()</a>, <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group_rmv_member()</a>, <a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">groups_containing()</a>, <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag()</a>, <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</a>, <a class="el" href="zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a">import_directory_keywords()</a>, <a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">install_plugin()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config()</a>, <a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">load_plugin()</a>, <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1">FKOAuthDataStore\lookup_consumer()</a>, <a class="el" href="classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599">FKOAuthDataStore\lookup_nonce()</a>, <a class="el" href="classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab">FKOAuthDataStore\lookup_token()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="include_2group_8php.html#a048f6892bfd28852de1b76470df411de">member_of()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="session_8php.html#a4c0ead624f95483e386bc80abf570a8f">new_cookie()</a>, <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore\new_request_token()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117">oauth_get_client()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="text_8php.html#aa5528f41533927e1bd2da3618a74a6d7">photo_new_resource()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35">photos_album_exists()</a>, <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos_album_get_db_idstr()</a>, <a class="el" href="include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab">photos_album_rename()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1">private_messages_drop()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">public_permissions_sql()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">red_zrl_callback()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052">ref_session_destroy()</a>, <a class="el" href="session_8php.html#ac95373f4966862a028033dd2f94d4da1">ref_session_gc()</a>, <a class="el" href="session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e">ref_session_read()</a>, <a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">ref_session_write()</a>, <a class="el" href="plugin_8php.html#a425472c5f3afc137268b2ad45652b209">register_hook()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">remove_queue_item()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>, <a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">Cache\set()</a>, <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">set_xconfig()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">stringify_array_elms()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init()</a>, <a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">suggestion_query()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c">term_query()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>, <a class="el" href="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">unregister_hook()</a>, <a class="el" href="zot_8php.html#a666d3efcac00ec1b4a4537a60655f2ab">update_modtime()</a>, <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">update_queue_time()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>, <a class="el" href="zot_8php.html#a77720d6b59894e9b609af89c310c8a4d">zot_finger()</a>, <a class="el" href="zot_8php.html#acdea9362d78a63dce948fdf0ea73ef0e">zot_get_hubloc()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a65b83462bd26968106aebd43f16540e4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dbesc_array </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, and <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af531546fac5f0836a8557a4f6dfee930"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dbesc_array_cb </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa6607893d8f60ade9122bcfbd1a53ffb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dbg </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$state</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, and <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa377074e70981e8c4e82ca0accd068ee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dbq </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sql</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Raw db query, no arguments </p>
+
+<p>Referenced by <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, and <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a55bf30d8176967e682656b5be4ad9249"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">printable </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql\q()</a>, and <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli\q()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2c09a731d3b4fef41fed0e83db01be1f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">q </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sql</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>This will happen occasionally trying to store the session data after abnormal program termination</p>
+
+<p>Referenced by <a class="el" href="Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e">abook_connections()</a>, <a class="el" href="Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5">abook_self()</a>, <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</a>, <a class="el" href="account_8php.html#a43e3042b2723d76915a030bac3c668b6">account_total()</a>, <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="include_2network_8php.html#a0bdc4b0bfc54797c249dc4eca25aeda4">add_fcontact()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586">all_friends()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8">api_ff_ids()</a>, <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa">channel_remove()</a>, <a class="el" href="identity_8php.html#a77d2237f1846964634b1c99089c27c7d">channel_total()</a>, <a class="el" href="Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258">channelx_by_hash()</a>, <a class="el" href="Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc">channelx_by_n()</a>, <a class="el" href="Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e">channelx_by_nick()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">Cache\clear()</a>, <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">common_friends()</a>, <a class="el" href="socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9">common_friends_zcid()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75">contact_profile_assign()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="Contact_8php.html#a228fc01f90ae9bfdde4c2ad0772bd7dc">contacts_not_grouped()</a>, <a class="el" href="socgraph_8php.html#af29d056beec10b4e38e5209c92452894">count_all_friends()</a>, <a class="el" href="socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84">count_common_friends()</a>, <a class="el" href="socgraph_8php.html#af175807406d94407a5e11742a3287746">count_common_friends_zcid()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198">crepair_init()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="include_2config_8php.html#a549910227348003efc3c05c9105c42da">del_config()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="include_2network_8php.html#a2729d012410e470c527a62a3f777ded8">fix_contact_ssl_policy()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="text_8php.html#ae4f6881d7e13623f8eded6277595112a">generate_user_guid()</a>, <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache\get()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74">get_config_from_storage()</a>, <a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0">group_add()</a>, <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group_add_member()</a>, <a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group_byname()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245">group_rec_byhash()</a>, <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group_rmv()</a>, <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group_rmv_member()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side()</a>, <a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">groups_containing()</a>, <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</a>, <a class="el" href="zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a">import_directory_keywords()</a>, <a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">install_plugin()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">load_hooks()</a>, <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig()</a>, <a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">load_plugin()</a>, <a class="el" href="language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05">load_translation_table()</a>, <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1">FKOAuthDataStore\lookup_consumer()</a>, <a class="el" href="classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599">FKOAuthDataStore\lookup_nonce()</a>, <a class="el" href="classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab">FKOAuthDataStore\lookup_token()</a>, <a class="el" href="items_8php.html#ade53043e7bc5ab9cc9ef1e4fed6569d4">lose_follower()</a>, <a class="el" href="items_8php.html#a3a218d5e8ffbe261f773225ecded86a2">lose_sharer()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="include_2group_8php.html#a048f6892bfd28852de1b76470df411de">member_of()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f">mini_group_select()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="session_8php.html#a4c0ead624f95483e386bc80abf570a8f">new_cookie()</a>, <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore\new_request_token()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117">oauth_get_client()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="text_8php.html#aa5528f41533927e1bd2da3618a74a6d7">photo_new_resource()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35">photos_album_exists()</a>, <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos_album_get_db_idstr()</a>, <a class="el" href="include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab">photos_album_rename()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1">private_messages_drop()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="Contact_8php.html#a91281b5d4bbbb2ed468e27ec82ca083c">random_profile()</a>, <a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">red_zrl_callback()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052">ref_session_destroy()</a>, <a class="el" href="session_8php.html#ac95373f4966862a028033dd2f94d4da1">ref_session_gc()</a>, <a class="el" href="session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e">ref_session_read()</a>, <a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">ref_session_write()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="plugin_8php.html#a425472c5f3afc137268b2ad45652b209">register_hook()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">reload_plugins()</a>, <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">remove_queue_item()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search_saved_searches()</a>, <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">Cache\set()</a>, <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>, <a class="el" href="identity_8php.html#a78151baf4407a8482d2681a91a9c486b">set_default_login_identity()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">set_xconfig()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">stream_perms_api_uids()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init()</a>, <a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">suggestion_query()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="taxonomy_8php.html#a061b3db9426d4b074395f5824062cad4">tagadelic()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>, <a class="el" href="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">unregister_hook()</a>, <a class="el" href="zot_8php.html#a666d3efcac00ec1b4a4537a60655f2ab">update_modtime()</a>, <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">update_queue_time()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>, <a class="el" href="zot_8php.html#a77720d6b59894e9b609af89c310c8a4d">zot_finger()</a>, <a class="el" href="zot_8php.html#acdea9362d78a63dce948fdf0ea73ef0e">zot_get_hubloc()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dba__driver_8php.js b/doc/html/dba__driver_8php.js
new file mode 100644
index 000000000..425133552
--- /dev/null
+++ b/doc/html/dba__driver_8php.js
@@ -0,0 +1,12 @@
+var dba__driver_8php =
+[
+ [ "dba_driver", "classdba__driver.html", "classdba__driver" ],
+ [ "dba_factory", "dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947", null ],
+ [ "dbesc", "dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e", null ],
+ [ "dbesc_array", "dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4", null ],
+ [ "dbesc_array_cb", "dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930", null ],
+ [ "dbg", "dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb", null ],
+ [ "dbq", "dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee", null ],
+ [ "printable", "dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249", null ],
+ [ "q", "dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f", null ]
+]; \ No newline at end of file
diff --git a/doc/html/dba__mysql_8php.html b/doc/html/dba__mysql_8php.html
new file mode 100644
index 000000000..561d83101
--- /dev/null
+++ b/doc/html/dba__mysql_8php.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/dba/dba_mysql.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dba__mysql_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">dba_mysql.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysql.html">dba_mysql</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dba__mysqli_8php.html b/doc/html/dba__mysqli_8php.html
new file mode 100644
index 000000000..5af3efc87
--- /dev/null
+++ b/doc/html/dba__mysqli_8php.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/dba/dba_mysqli.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dba__mysqli_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">dba_mysqli.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysqli.html">dba_mysqli</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/default_8php.html b/doc/html/default_8php.html
new file mode 100644
index 000000000..a8abec733
--- /dev/null
+++ b/doc/html/default_8php.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: view/php/default.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('default_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">default.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a23bc1996b18e69c1a3ab44536613a762"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="default_8php.html#a23bc1996b18e69c1a3ab44536613a762">if</a> (<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td></tr>
+<tr class="separator:a23bc1996b18e69c1a3ab44536613a762"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a23bc1996b18e69c1a3ab44536613a762"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/default_8php.js b/doc/html/default_8php.js
new file mode 100644
index 000000000..164421dc5
--- /dev/null
+++ b/doc/html/default_8php.js
@@ -0,0 +1,4 @@
+var default_8php =
+[
+ [ "if", "default_8php.html#a23bc1996b18e69c1a3ab44536613a762", null ]
+]; \ No newline at end of file
diff --git a/doc/html/delegate_8php.html b/doc/html/delegate_8php.html
new file mode 100644
index 000000000..41ee03f50
--- /dev/null
+++ b/doc/html/delegate_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/delegate.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('delegate_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">delegate.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a943eea8996ef348eb845c498f9f354dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a943eea8996ef348eb845c498f9f354dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a943eea8996ef348eb845c498f9f354dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">delegate_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/delegate_8php.js b/doc/html/delegate_8php.js
new file mode 100644
index 000000000..0c96c49de
--- /dev/null
+++ b/doc/html/delegate_8php.js
@@ -0,0 +1,4 @@
+var delegate_8php =
+[
+ [ "delegate_content", "delegate_8php.html#a943eea8996ef348eb845c498f9f354dd", null ]
+]; \ No newline at end of file
diff --git a/doc/html/deliver_8php.html b/doc/html/deliver_8php.html
new file mode 100644
index 000000000..ac9e5af77
--- /dev/null
+++ b/doc/html/deliver_8php.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/deliver.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('deliver_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">deliver.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a397afcb9afecf0c1816b0951189dd346"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run</a> ($<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>, $<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a>)</td></tr>
+<tr class="separator:a397afcb9afecf0c1816b0951189dd346"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a397afcb9afecf0c1816b0951189dd346"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">deliver_run </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argv</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argc</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/deliver_8php.js b/doc/html/deliver_8php.js
new file mode 100644
index 000000000..7e8a08223
--- /dev/null
+++ b/doc/html/deliver_8php.js
@@ -0,0 +1,4 @@
+var deliver_8php =
+[
+ [ "deliver_run", "deliver_8php.html#a397afcb9afecf0c1816b0951189dd346", null ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_032dd9e2cfe278a2cfa5eb9547448eb9.html b/doc/html/dir_032dd9e2cfe278a2cfa5eb9547448eb9.html
new file mode 100644
index 000000000..6d112b738
--- /dev/null
+++ b/doc/html/dir_032dd9e2cfe278a2cfa5eb9547448eb9.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redbasic/php Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_032dd9e2cfe278a2cfa5eb9547448eb9.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">php Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:view_2theme_2redbasic_2php_2config_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="view_2theme_2redbasic_2php_2config_8php.html">config.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:redbasic_2php_2style_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html">style.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:redbasic_2php_2theme_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2theme_8php.html">theme.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_032dd9e2cfe278a2cfa5eb9547448eb9.js b/doc/html/dir_032dd9e2cfe278a2cfa5eb9547448eb9.js
new file mode 100644
index 000000000..a9e861a3f
--- /dev/null
+++ b/doc/html/dir_032dd9e2cfe278a2cfa5eb9547448eb9.js
@@ -0,0 +1,6 @@
+var dir_032dd9e2cfe278a2cfa5eb9547448eb9 =
+[
+ [ "config.php", "view_2theme_2redbasic_2php_2config_8php.html", "view_2theme_2redbasic_2php_2config_8php" ],
+ [ "style.php", "redbasic_2php_2style_8php.html", "redbasic_2php_2style_8php" ],
+ [ "theme.php", "redbasic_2php_2theme_8php.html", "redbasic_2php_2theme_8php" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_0eaa4a0adae8ba4811e133c6e594aeee.html b/doc/html/dir_0eaa4a0adae8ba4811e133c6e594aeee.html
new file mode 100644
index 000000000..f53ed2c0f
--- /dev/null
+++ b/doc/html/dir_0eaa4a0adae8ba4811e133c6e594aeee.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/fpostit Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_0eaa4a0adae8ba4811e133c6e594aeee.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">fpostit Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:fpostit_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpostit_8php.html">fpostit.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_0eaa4a0adae8ba4811e133c6e594aeee.js b/doc/html/dir_0eaa4a0adae8ba4811e133c6e594aeee.js
new file mode 100644
index 000000000..b73b33dda
--- /dev/null
+++ b/doc/html/dir_0eaa4a0adae8ba4811e133c6e594aeee.js
@@ -0,0 +1,4 @@
+var dir_0eaa4a0adae8ba4811e133c6e594aeee =
+[
+ [ "fpostit.php", "fpostit_8php.html", "fpostit_8php" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_21bc5169ff11430004758be31dcfc6c4.html b/doc/html/dir_21bc5169ff11430004758be31dcfc6c4.html
new file mode 100644
index 000000000..74f6d82bd
--- /dev/null
+++ b/doc/html/dir_21bc5169ff11430004758be31dcfc6c4.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/dba Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_21bc5169ff11430004758be31dcfc6c4.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">dba Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:dba__driver_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html">dba_driver.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dba__mysql_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__mysql_8php.html">dba_mysql.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dba__mysqli_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__mysqli_8php.html">dba_mysqli.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_21bc5169ff11430004758be31dcfc6c4.js b/doc/html/dir_21bc5169ff11430004758be31dcfc6c4.js
new file mode 100644
index 000000000..7b0143847
--- /dev/null
+++ b/doc/html/dir_21bc5169ff11430004758be31dcfc6c4.js
@@ -0,0 +1,10 @@
+var dir_21bc5169ff11430004758be31dcfc6c4 =
+[
+ [ "dba_driver.php", "dba__driver_8php.html", "dba__driver_8php" ],
+ [ "dba_mysql.php", "dba__mysql_8php.html", [
+ [ "dba_mysql", "classdba__mysql.html", "classdba__mysql" ]
+ ] ],
+ [ "dba_mysqli.php", "dba__mysqli_8php.html", [
+ [ "dba_mysqli", "classdba__mysqli.html", "classdba__mysqli" ]
+ ] ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.html b/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.html
new file mode 100644
index 000000000..4c21b0927
--- /dev/null
+++ b/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_23ec12649285f9fabf3a6b7380226c28.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">util Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_0eaa4a0adae8ba4811e133c6e594aeee"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_0eaa4a0adae8ba4811e133c6e594aeee.html">fpostit</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:db__update_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="db__update_8php.html">db_update.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:docblox__errorchecker_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html">docblox_errorchecker.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:extract_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="extract_8php.html">extract.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:friendica-to-smarty-tpl_8py"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="friendica-to-smarty-tpl_8py.html">friendica-to-smarty-tpl.py</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:php2po_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php2po_8php.html">php2po.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:po2php_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="po2php_8php.html">po2php.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:tpldebug_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tpldebug_8php.html">tpldebug.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:typo_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="typo_8php.html">typo.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:typohelper_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="typohelper_8php.html">typohelper.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:updatetpl_8py"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="updatetpl_8py.html">updatetpl.py</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.js b/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.js
new file mode 100644
index 000000000..1ea37ec69
--- /dev/null
+++ b/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.js
@@ -0,0 +1,14 @@
+var dir_23ec12649285f9fabf3a6b7380226c28 =
+[
+ [ "fpostit", "dir_0eaa4a0adae8ba4811e133c6e594aeee.html", "dir_0eaa4a0adae8ba4811e133c6e594aeee" ],
+ [ "db_update.php", "db__update_8php.html", null ],
+ [ "docblox_errorchecker.php", "docblox__errorchecker_8php.html", "docblox__errorchecker_8php" ],
+ [ "extract.php", "extract_8php.html", "extract_8php" ],
+ [ "friendica-to-smarty-tpl.py", "friendica-to-smarty-tpl_8py.html", "friendica-to-smarty-tpl_8py" ],
+ [ "php2po.php", "php2po_8php.html", "php2po_8php" ],
+ [ "po2php.php", "po2php_8php.html", "po2php_8php" ],
+ [ "tpldebug.php", "tpldebug_8php.html", "tpldebug_8php" ],
+ [ "typo.php", "typo_8php.html", "typo_8php" ],
+ [ "typohelper.php", "typohelper_8php.html", "typohelper_8php" ],
+ [ "updatetpl.py", "updatetpl_8py.html", "updatetpl_8py" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_55dbaf9b7b53c4fc605c9011743a7353.html b/doc/html/dir_55dbaf9b7b53c4fc605c9011743a7353.html
new file mode 100644
index 000000000..08f198664
--- /dev/null
+++ b/doc/html/dir_55dbaf9b7b53c4fc605c9011743a7353.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redbasic Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_55dbaf9b7b53c4fc605c9011743a7353.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">redbasic Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_032dd9e2cfe278a2cfa5eb9547448eb9"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_032dd9e2cfe278a2cfa5eb9547448eb9.html">php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_55dbaf9b7b53c4fc605c9011743a7353.js b/doc/html/dir_55dbaf9b7b53c4fc605c9011743a7353.js
new file mode 100644
index 000000000..53796edd8
--- /dev/null
+++ b/doc/html/dir_55dbaf9b7b53c4fc605c9011743a7353.js
@@ -0,0 +1,4 @@
+var dir_55dbaf9b7b53c4fc605c9011743a7353 =
+[
+ [ "php", "dir_032dd9e2cfe278a2cfa5eb9547448eb9.html", "dir_032dd9e2cfe278a2cfa5eb9547448eb9" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_6b44a0e797e2f12381093380e3e54763.html b/doc/html/dir_6b44a0e797e2f12381093380e3e54763.html
new file mode 100644
index 000000000..2492bfb49
--- /dev/null
+++ b/doc/html/dir_6b44a0e797e2f12381093380e3e54763.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redstrap/php Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_6b44a0e797e2f12381093380e3e54763.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">php Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:view_2theme_2redstrap_2php_2config_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="view_2theme_2redstrap_2php_2config_8php.html">config.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:theme_2redstrap_2php_2default_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="theme_2redstrap_2php_2default_8php.html">default.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:redstrap_2php_2style_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html">style.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:redstrap_2php_2theme_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2theme_8php.html">theme.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:theme_2redstrap_2php_2theme__init_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="theme_2redstrap_2php_2theme__init_8php.html">theme_init.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_6b44a0e797e2f12381093380e3e54763.js b/doc/html/dir_6b44a0e797e2f12381093380e3e54763.js
new file mode 100644
index 000000000..04783bb16
--- /dev/null
+++ b/doc/html/dir_6b44a0e797e2f12381093380e3e54763.js
@@ -0,0 +1,8 @@
+var dir_6b44a0e797e2f12381093380e3e54763 =
+[
+ [ "config.php", "view_2theme_2redstrap_2php_2config_8php.html", "view_2theme_2redstrap_2php_2config_8php" ],
+ [ "default.php", "theme_2redstrap_2php_2default_8php.html", "theme_2redstrap_2php_2default_8php" ],
+ [ "style.php", "redstrap_2php_2style_8php.html", "redstrap_2php_2style_8php" ],
+ [ "theme.php", "redstrap_2php_2theme_8php.html", "redstrap_2php_2theme_8php" ],
+ [ "theme_init.php", "theme_2redstrap_2php_2theme__init_8php.html", null ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_817f6d302394b98e59575acdb59998bc.html b/doc/html/dir_817f6d302394b98e59575acdb59998bc.html
new file mode 100644
index 000000000..1f7a769f2
--- /dev/null
+++ b/doc/html/dir_817f6d302394b98e59575acdb59998bc.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/php Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_817f6d302394b98e59575acdb59998bc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">php Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:php_2default_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php_2default_8php.html">default.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:full_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="full_8php.html">full.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:minimal_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="minimal_8php.html">minimal.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod__import_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod__import_8php.html">mod_import.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod__new__channel_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod__new__channel_8php.html">mod_new_channel.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod__register_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod__register_8php.html">mod_register.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:php_2theme__init_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php_2theme__init_8php.html">theme_init.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_817f6d302394b98e59575acdb59998bc.js b/doc/html/dir_817f6d302394b98e59575acdb59998bc.js
new file mode 100644
index 000000000..4ea58412d
--- /dev/null
+++ b/doc/html/dir_817f6d302394b98e59575acdb59998bc.js
@@ -0,0 +1,10 @@
+var dir_817f6d302394b98e59575acdb59998bc =
+[
+ [ "default.php", "php_2default_8php.html", "php_2default_8php" ],
+ [ "full.php", "full_8php.html", "full_8php" ],
+ [ "minimal.php", "minimal_8php.html", null ],
+ [ "mod_import.php", "mod__import_8php.html", "mod__import_8php" ],
+ [ "mod_new_channel.php", "mod__new__channel_8php.html", "mod__new__channel_8php" ],
+ [ "mod_register.php", "mod__register_8php.html", "mod__register_8php" ],
+ [ "theme_init.php", "php_2theme__init_8php.html", null ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_8543001e5d25368a6edede3e63efb554.html b/doc/html/dir_8543001e5d25368a6edede3e63efb554.html
new file mode 100644
index 000000000..5c3316826
--- /dev/null
+++ b/doc/html/dir_8543001e5d25368a6edede3e63efb554.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_8543001e5d25368a6edede3e63efb554.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">theme Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_55dbaf9b7b53c4fc605c9011743a7353"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_55dbaf9b7b53c4fc605c9011743a7353.html">redbasic</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_d795dfe8933002397556cc7aa16eca15"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_d795dfe8933002397556cc7aa16eca15.html">redstrap</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_8543001e5d25368a6edede3e63efb554.js b/doc/html/dir_8543001e5d25368a6edede3e63efb554.js
new file mode 100644
index 000000000..a6077ce08
--- /dev/null
+++ b/doc/html/dir_8543001e5d25368a6edede3e63efb554.js
@@ -0,0 +1,5 @@
+var dir_8543001e5d25368a6edede3e63efb554 =
+[
+ [ "redbasic", "dir_55dbaf9b7b53c4fc605c9011743a7353.html", "dir_55dbaf9b7b53c4fc605c9011743a7353" ],
+ [ "redstrap", "dir_d795dfe8933002397556cc7aa16eca15.html", "dir_d795dfe8933002397556cc7aa16eca15" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_8e4ceba158be32034f698ffd6810bb05.html b/doc/html/dir_8e4ceba158be32034f698ffd6810bb05.html
new file mode 100644
index 000000000..67c9c30f6
--- /dev/null
+++ b/doc/html/dir_8e4ceba158be32034f698ffd6810bb05.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: view/theme/test Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_8e4ceba158be32034f698ffd6810bb05.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">test Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_955ae6074e6c84afe72925e364242b14"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_955ae6074e6c84afe72925e364242b14.html">php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_b2f003339c516cc00c8cadcafbe82f13.html">view</a></li><li class="navelem"><a class="el" href="dir_8543001e5d25368a6edede3e63efb554.html">theme</a></li><li class="navelem"><a class="el" href="dir_8e4ceba158be32034f698ffd6810bb05.html">test</a></li>
+ <li class="footer">Generated on Tue Feb 26 2013 15:43:22 for The Red Project by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/dir_8e4ceba158be32034f698ffd6810bb05.js b/doc/html/dir_8e4ceba158be32034f698ffd6810bb05.js
new file mode 100644
index 000000000..0b8eea955
--- /dev/null
+++ b/doc/html/dir_8e4ceba158be32034f698ffd6810bb05.js
@@ -0,0 +1,4 @@
+var dir_8e4ceba158be32034f698ffd6810bb05 =
+[
+ [ "php", "dir_955ae6074e6c84afe72925e364242b14.html", "dir_955ae6074e6c84afe72925e364242b14" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_955ae6074e6c84afe72925e364242b14.html b/doc/html/dir_955ae6074e6c84afe72925e364242b14.html
new file mode 100644
index 000000000..d031ec14f
--- /dev/null
+++ b/doc/html/dir_955ae6074e6c84afe72925e364242b14.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: view/theme/test/php Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_955ae6074e6c84afe72925e364242b14.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">php Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:test_2php_2theme_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="test_2php_2theme_8php.html">theme.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_b2f003339c516cc00c8cadcafbe82f13.html">view</a></li><li class="navelem"><a class="el" href="dir_8543001e5d25368a6edede3e63efb554.html">theme</a></li><li class="navelem"><a class="el" href="dir_8e4ceba158be32034f698ffd6810bb05.html">test</a></li><li class="navelem"><a class="el" href="dir_955ae6074e6c84afe72925e364242b14.html">php</a></li>
+ <li class="footer">Generated on Tue Feb 26 2013 15:43:22 for The Red Project by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/dir_955ae6074e6c84afe72925e364242b14.js b/doc/html/dir_955ae6074e6c84afe72925e364242b14.js
new file mode 100644
index 000000000..427747272
--- /dev/null
+++ b/doc/html/dir_955ae6074e6c84afe72925e364242b14.js
@@ -0,0 +1,4 @@
+var dir_955ae6074e6c84afe72925e364242b14 =
+[
+ [ "theme.php", "test_2php_2theme_8php.html", "test_2php_2theme_8php" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir__fns_8php.html b/doc/html/dir__fns_8php.html
new file mode 100644
index 000000000..d21b7e0be
--- /dev/null
+++ b/doc/html/dir__fns_8php.html
@@ -0,0 +1,179 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/dir_fns.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir__fns_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">dir_fns.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a8c15aa69da12f2d3476b9e93b82b337d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d">find_upstream_directory</a> ($dirmode)</td></tr>
+<tr class="separator:a8c15aa69da12f2d3476b9e93b82b337d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa666e7df6ca8c332f4081c9b66b4bdf6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories</a> ($dirmode)</td></tr>
+<tr class="separator:aa666e7df6ca8c332f4081c9b66b4bdf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6cae22cfdd6edda5ddf09e07abb3242a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs</a> ($uid)</td></tr>
+<tr class="separator:a6cae22cfdd6edda5ddf09e07abb3242a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a8c15aa69da12f2d3476b9e93b82b337d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">find_upstream_directory </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dirmode</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, and <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa666e7df6ca8c332f4081c9b66b4bdf6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">sync_directories </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dirmode</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6cae22cfdd6edda5ddf09e07abb3242a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">syncdirs </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir__fns_8php.js b/doc/html/dir__fns_8php.js
new file mode 100644
index 000000000..76c483ab5
--- /dev/null
+++ b/doc/html/dir__fns_8php.js
@@ -0,0 +1,6 @@
+var dir__fns_8php =
+[
+ [ "find_upstream_directory", "dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d", null ],
+ [ "sync_directories", "dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6", null ],
+ [ "syncdirs", "dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a", null ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_aae29906d7bfc07d076125f669c8352e.html b/doc/html/dir_aae29906d7bfc07d076125f669c8352e.html
new file mode 100644
index 000000000..7fc269799
--- /dev/null
+++ b/doc/html/dir_aae29906d7bfc07d076125f669c8352e.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/photo Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_aae29906d7bfc07d076125f669c8352e.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">photo Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:photo__driver_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="photo__driver_8php.html">photo_driver.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:photo__gd_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="photo__gd_8php.html">photo_gd.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:photo__imagick_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="photo__imagick_8php.html">photo_imagick.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_aae29906d7bfc07d076125f669c8352e.js b/doc/html/dir_aae29906d7bfc07d076125f669c8352e.js
new file mode 100644
index 000000000..c8fe31dc4
--- /dev/null
+++ b/doc/html/dir_aae29906d7bfc07d076125f669c8352e.js
@@ -0,0 +1,10 @@
+var dir_aae29906d7bfc07d076125f669c8352e =
+[
+ [ "photo_driver.php", "photo__driver_8php.html", "photo__driver_8php" ],
+ [ "photo_gd.php", "photo__gd_8php.html", [
+ [ "photo_gd", "classphoto__gd.html", "classphoto__gd" ]
+ ] ],
+ [ "photo_imagick.php", "photo__imagick_8php.html", [
+ [ "photo_imagick", "classphoto__imagick.html", "classphoto__imagick" ]
+ ] ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.html b/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.html
new file mode 100644
index 000000000..fe7eec594
--- /dev/null
+++ b/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_b2f003339c516cc00c8cadcafbe82f13.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">view Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_817f6d302394b98e59575acdb59998bc"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_817f6d302394b98e59575acdb59998bc.html">php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_8543001e5d25368a6edede3e63efb554"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_8543001e5d25368a6edede3e63efb554.html">theme</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.js b/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.js
new file mode 100644
index 000000000..991623ea4
--- /dev/null
+++ b/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.js
@@ -0,0 +1,5 @@
+var dir_b2f003339c516cc00c8cadcafbe82f13 =
+[
+ [ "php", "dir_817f6d302394b98e59575acdb59998bc.html", "dir_817f6d302394b98e59575acdb59998bc" ],
+ [ "theme", "dir_8543001e5d25368a6edede3e63efb554.html", "dir_8543001e5d25368a6edede3e63efb554" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_d41ce877eb409a4791b288730010abe2.html b/doc/html/dir_d41ce877eb409a4791b288730010abe2.html
new file mode 100644
index 000000000..30c224286
--- /dev/null
+++ b/doc/html/dir_d41ce877eb409a4791b288730010abe2.html
@@ -0,0 +1,330 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_d41ce877eb409a4791b288730010abe2.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">mod Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:__well__known_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="__well__known_8php.html">_well_known.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acl_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="acl_8php.html">acl.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:admin_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html">admin.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:allfriends_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="allfriends_8php.html">allfriends.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod_2api_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2api_8php.html">api.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:apps_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apps_8php.html">apps.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod_2attach_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2attach_8php.html">attach.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:channel_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel_8php.html">channel.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:chanview_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="chanview_8php.html">chanview.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:common_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8php.html">common.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:community_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="community_8php.html">community.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:connections_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connections_8php.html">connections.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:contactgroup_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contactgroup_8php.html">contactgroup.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:crepair_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crepair_8php.html">crepair.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:delegate_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="delegate_8php.html">delegate.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod_2directory_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2directory_8php.html">directory.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dirfind_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dirfind_8php.html">dirfind.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dirsearch_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dirsearch_8php.html">dirsearch.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:display_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8php.html">display.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:editpost_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="editpost_8php.html">editpost.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:editwebpage_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="editwebpage_8php.html">editwebpage.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:events_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="events_8php.html">events.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:fbrowser_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fbrowser_8php.html">fbrowser.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:feed_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="feed_8php.html">feed.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:filer_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filer_8php.html">filer.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:filerm_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filerm_8php.html">filerm.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod_2follow_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2follow_8php.html">follow.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:fsuggest_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsuggest_8php.html">fsuggest.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod_2group_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2group_8php.html">group.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:hcard_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hcard_8php.html">hcard.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:help_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="help_8php.html">help.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:home_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="home_8php.html">home.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:hostxrd_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hostxrd_8php.html">hostxrd.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:import_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="import_8php.html">import.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:intro_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="intro_8php.html">intro.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:invite_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="invite_8php.html">invite.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:item_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="item_8php.html">item.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:like_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="like_8php.html">like.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:lockview_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lockview_8php.html">lockview.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:login_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="login_8php.html">login.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:lostpass_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lostpass_8php.html">lostpass.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:magic_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="magic_8php.html">magic.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:manage_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="manage_8php.html">manage.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:match_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="match_8php.html">match.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod_2message_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2message_8php.html">message.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mood_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mood_8php.html">mood.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:msearch_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="msearch_8php.html">msearch.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod_2network_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2network_8php.html">network.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:new__channel_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="new__channel_8php.html">new_channel.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:nogroup_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nogroup_8php.html">nogroup.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:notifications_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="notifications_8php.html">notifications.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod_2notify_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2notify_8php.html">notify.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod_2oembed_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2oembed_8php.html">oembed.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:oexchange_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="oexchange_8php.html">oexchange.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:opensearch_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="opensearch_8php.html">opensearch.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:page_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="page_8php.html">page.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:parse__url_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parse__url_8php.html">parse_url.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:photo_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="photo_8php.html">photo.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod_2photos_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2photos_8php.html">photos.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:php_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php_8php.html">php.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ping_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ping_8php.html">ping.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:poco_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="poco_8php.html">poco.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:poke_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="poke_8php.html">poke.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:post_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="post_8php.html">post.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:pretheme_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pretheme_8php.html">pretheme.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:probe_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="probe_8php.html">probe.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:profile_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile_8php.html">profile.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:profile__photo_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile__photo_8php.html">profile_photo.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:profiles_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profiles_8php.html">profiles.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:profperm_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profperm_8php.html">profperm.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:qsearch_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qsearch_8php.html">qsearch.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:randprof_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="randprof_8php.html">randprof.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:redir_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redir_8php.html">redir.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:register_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="register_8php.html">register.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:regmod_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="regmod_8php.html">regmod.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:removeme_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="removeme_8php.html">removeme.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:rmagic_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rmagic_8php.html">rmagic.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:rsd__xml_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rsd__xml_8php.html">rsd_xml.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:search_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="search_8php.html">search.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:search__ac_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="search__ac_8php.html">search_ac.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:settings_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="settings_8php.html">settings.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:setup_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html">setup.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:share_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="share_8php.html">share.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:siteinfo_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="siteinfo_8php.html">siteinfo.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:smilies_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="smilies_8php.html">smilies.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:starred_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="starred_8php.html">starred.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:subthread_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="subthread_8php.html">subthread.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:suggest_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="suggest_8php.html">suggest.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:tagger_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tagger_8php.html">tagger.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:tagrm_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tagrm_8php.html">tagrm.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:thing_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="thing_8php.html">thing.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:toggle__mobile_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="toggle__mobile_8php.html">toggle_mobile.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:uexport_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uexport_8php.html">uexport.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:update__channel_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__channel_8php.html">update_channel.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:update__community_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__community_8php.html">update_community.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:update__display_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__display_8php.html">update_display.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:update__network_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__network_8php.html">update_network.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:update__search_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__search_8php.html">update_search.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:view_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="view_8php.html">view.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:viewconnections_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="viewconnections_8php.html">viewconnections.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:viewsrc_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="viewsrc_8php.html">viewsrc.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:wall__attach_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wall__attach_8php.html">wall_attach.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:wall__upload_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wall__upload_8php.html">wall_upload.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:webfinger_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="webfinger_8php.html">webfinger.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:webpages_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="webpages_8php.html">webpages.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:wfinger_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wfinger_8php.html">wfinger.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:xchan_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xchan_8php.html">xchan.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:xrd_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xrd_8php.html">xrd.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:zfinger_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zfinger_8php.html">zfinger.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:zotfeed_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zotfeed_8php.html">zotfeed.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_d41ce877eb409a4791b288730010abe2.js b/doc/html/dir_d41ce877eb409a4791b288730010abe2.js
new file mode 100644
index 000000000..d10f448f6
--- /dev/null
+++ b/doc/html/dir_d41ce877eb409a4791b288730010abe2.js
@@ -0,0 +1,113 @@
+var dir_d41ce877eb409a4791b288730010abe2 =
+[
+ [ "_well_known.php", "__well__known_8php.html", "__well__known_8php" ],
+ [ "acl.php", "acl_8php.html", "acl_8php" ],
+ [ "admin.php", "admin_8php.html", "admin_8php" ],
+ [ "allfriends.php", "allfriends_8php.html", "allfriends_8php" ],
+ [ "api.php", "mod_2api_8php.html", "mod_2api_8php" ],
+ [ "apps.php", "apps_8php.html", "apps_8php" ],
+ [ "attach.php", "mod_2attach_8php.html", "mod_2attach_8php" ],
+ [ "channel.php", "channel_8php.html", "channel_8php" ],
+ [ "chanview.php", "chanview_8php.html", "chanview_8php" ],
+ [ "common.php", "common_8php.html", "common_8php" ],
+ [ "community.php", "community_8php.html", "community_8php" ],
+ [ "connections.php", "connections_8php.html", "connections_8php" ],
+ [ "contactgroup.php", "contactgroup_8php.html", "contactgroup_8php" ],
+ [ "crepair.php", "crepair_8php.html", "crepair_8php" ],
+ [ "delegate.php", "delegate_8php.html", "delegate_8php" ],
+ [ "directory.php", "mod_2directory_8php.html", "mod_2directory_8php" ],
+ [ "dirfind.php", "dirfind_8php.html", "dirfind_8php" ],
+ [ "dirsearch.php", "dirsearch_8php.html", "dirsearch_8php" ],
+ [ "display.php", "display_8php.html", "display_8php" ],
+ [ "editpost.php", "editpost_8php.html", "editpost_8php" ],
+ [ "editwebpage.php", "editwebpage_8php.html", "editwebpage_8php" ],
+ [ "events.php", "events_8php.html", "events_8php" ],
+ [ "fbrowser.php", "fbrowser_8php.html", "fbrowser_8php" ],
+ [ "feed.php", "feed_8php.html", "feed_8php" ],
+ [ "filer.php", "filer_8php.html", "filer_8php" ],
+ [ "filerm.php", "filerm_8php.html", "filerm_8php" ],
+ [ "follow.php", "mod_2follow_8php.html", "mod_2follow_8php" ],
+ [ "fsuggest.php", "fsuggest_8php.html", "fsuggest_8php" ],
+ [ "group.php", "mod_2group_8php.html", "mod_2group_8php" ],
+ [ "hcard.php", "hcard_8php.html", "hcard_8php" ],
+ [ "help.php", "help_8php.html", "help_8php" ],
+ [ "home.php", "home_8php.html", null ],
+ [ "hostxrd.php", "hostxrd_8php.html", "hostxrd_8php" ],
+ [ "import.php", "import_8php.html", "import_8php" ],
+ [ "intro.php", "intro_8php.html", "intro_8php" ],
+ [ "invite.php", "invite_8php.html", "invite_8php" ],
+ [ "item.php", "item_8php.html", "item_8php" ],
+ [ "like.php", "like_8php.html", "like_8php" ],
+ [ "lockview.php", "lockview_8php.html", "lockview_8php" ],
+ [ "login.php", "login_8php.html", "login_8php" ],
+ [ "lostpass.php", "lostpass_8php.html", "lostpass_8php" ],
+ [ "magic.php", "magic_8php.html", "magic_8php" ],
+ [ "manage.php", "manage_8php.html", "manage_8php" ],
+ [ "match.php", "match_8php.html", "match_8php" ],
+ [ "message.php", "mod_2message_8php.html", "mod_2message_8php" ],
+ [ "mood.php", "mood_8php.html", "mood_8php" ],
+ [ "msearch.php", "msearch_8php.html", "msearch_8php" ],
+ [ "network.php", "mod_2network_8php.html", "mod_2network_8php" ],
+ [ "new_channel.php", "new__channel_8php.html", "new__channel_8php" ],
+ [ "nogroup.php", "nogroup_8php.html", "nogroup_8php" ],
+ [ "notifications.php", "notifications_8php.html", "notifications_8php" ],
+ [ "notify.php", "mod_2notify_8php.html", "mod_2notify_8php" ],
+ [ "oembed.php", "mod_2oembed_8php.html", "mod_2oembed_8php" ],
+ [ "oexchange.php", "oexchange_8php.html", "oexchange_8php" ],
+ [ "opensearch.php", "opensearch_8php.html", "opensearch_8php" ],
+ [ "page.php", "page_8php.html", "page_8php" ],
+ [ "parse_url.php", "parse__url_8php.html", "parse__url_8php" ],
+ [ "photo.php", "photo_8php.html", "photo_8php" ],
+ [ "photos.php", "mod_2photos_8php.html", "mod_2photos_8php" ],
+ [ "php.php", "php_8php.html", "php_8php" ],
+ [ "ping.php", "ping_8php.html", "ping_8php" ],
+ [ "poco.php", "poco_8php.html", "poco_8php" ],
+ [ "poke.php", "poke_8php.html", "poke_8php" ],
+ [ "post.php", "post_8php.html", "post_8php" ],
+ [ "pretheme.php", "pretheme_8php.html", "pretheme_8php" ],
+ [ "probe.php", "probe_8php.html", "probe_8php" ],
+ [ "profile.php", "profile_8php.html", "profile_8php" ],
+ [ "profile_photo.php", "profile__photo_8php.html", "profile__photo_8php" ],
+ [ "profiles.php", "profiles_8php.html", "profiles_8php" ],
+ [ "profperm.php", "profperm_8php.html", "profperm_8php" ],
+ [ "qsearch.php", "qsearch_8php.html", "qsearch_8php" ],
+ [ "randprof.php", "randprof_8php.html", "randprof_8php" ],
+ [ "redir.php", "redir_8php.html", "redir_8php" ],
+ [ "register.php", "register_8php.html", "register_8php" ],
+ [ "regmod.php", "regmod_8php.html", "regmod_8php" ],
+ [ "removeme.php", "removeme_8php.html", "removeme_8php" ],
+ [ "rmagic.php", "rmagic_8php.html", "rmagic_8php" ],
+ [ "rsd_xml.php", "rsd__xml_8php.html", "rsd__xml_8php" ],
+ [ "search.php", "search_8php.html", "search_8php" ],
+ [ "search_ac.php", "search__ac_8php.html", "search__ac_8php" ],
+ [ "settings.php", "settings_8php.html", "settings_8php" ],
+ [ "setup.php", "setup_8php.html", "setup_8php" ],
+ [ "share.php", "share_8php.html", "share_8php" ],
+ [ "siteinfo.php", "siteinfo_8php.html", "siteinfo_8php" ],
+ [ "smilies.php", "smilies_8php.html", "smilies_8php" ],
+ [ "starred.php", "starred_8php.html", "starred_8php" ],
+ [ "subthread.php", "subthread_8php.html", "subthread_8php" ],
+ [ "suggest.php", "suggest_8php.html", "suggest_8php" ],
+ [ "tagger.php", "tagger_8php.html", "tagger_8php" ],
+ [ "tagrm.php", "tagrm_8php.html", "tagrm_8php" ],
+ [ "thing.php", "thing_8php.html", "thing_8php" ],
+ [ "toggle_mobile.php", "toggle__mobile_8php.html", "toggle__mobile_8php" ],
+ [ "uexport.php", "uexport_8php.html", "uexport_8php" ],
+ [ "update_channel.php", "update__channel_8php.html", "update__channel_8php" ],
+ [ "update_community.php", "update__community_8php.html", "update__community_8php" ],
+ [ "update_display.php", "update__display_8php.html", "update__display_8php" ],
+ [ "update_network.php", "update__network_8php.html", "update__network_8php" ],
+ [ "update_search.php", "update__search_8php.html", "update__search_8php" ],
+ [ "view.php", "view_8php.html", "view_8php" ],
+ [ "viewconnections.php", "viewconnections_8php.html", "viewconnections_8php" ],
+ [ "viewsrc.php", "viewsrc_8php.html", "viewsrc_8php" ],
+ [ "wall_attach.php", "wall__attach_8php.html", "wall__attach_8php" ],
+ [ "wall_upload.php", "wall__upload_8php.html", "wall__upload_8php" ],
+ [ "webfinger.php", "webfinger_8php.html", "webfinger_8php" ],
+ [ "webpages.php", "webpages_8php.html", "webpages_8php" ],
+ [ "wfinger.php", "wfinger_8php.html", "wfinger_8php" ],
+ [ "xchan.php", "xchan_8php.html", "xchan_8php" ],
+ [ "xrd.php", "xrd_8php.html", "xrd_8php" ],
+ [ "zfinger.php", "zfinger_8php.html", "zfinger_8php" ],
+ [ "zotfeed.php", "zotfeed_8php.html", "zotfeed_8php" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html
new file mode 100644
index 000000000..b211c2a8a
--- /dev/null
+++ b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html
@@ -0,0 +1,243 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_d44c64559bbebec7f509842c48db8b23.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">include Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_21bc5169ff11430004758be31dcfc6c4"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_21bc5169ff11430004758be31dcfc6c4.html">dba</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_aae29906d7bfc07d076125f669c8352e"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_aae29906d7bfc07d076125f669c8352e.html">photo</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:account_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html">account.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acl__selectors_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="acl__selectors_8php.html">acl_selectors.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:activities_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="activities_8php.html">activities.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:include_2api_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html">api.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:include_2attach_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html">attach.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:auth_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="auth_8php.html">auth.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:BaseObject_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="BaseObject_8php.html">BaseObject.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:bb2diaspora_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html">bb2diaspora.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:bbcode_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html">bbcode.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:cache_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cache_8php.html">cache.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:cli__startup_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cli__startup_8php.html">cli_startup.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:include_2config_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html">config.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:Contact_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html">Contact.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:contact__selectors_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__selectors_8php.html">contact_selectors.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:contact__widgets_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__widgets_8php.html">contact_widgets.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:conversation_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html">conversation.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ConversationObject_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ConversationObject_8php.html">ConversationObject.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:cronhooks_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cronhooks_8php.html">cronhooks.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:crypto_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8php.html">crypto.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:datetime_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html">datetime.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:deliver_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="deliver_8php.html">deliver.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir__fns_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir__fns_8php.html">dir_fns.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:include_2directory_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2directory_8php.html">directory.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:enotify_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="enotify_8php.html">enotify.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:event_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html">event.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:expire_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expire_8php.html">expire.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:features_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="features_8php.html">features.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:include_2follow_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2follow_8php.html">follow.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:friendica__smarty_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="friendica__smarty_8php.html">friendica_smarty.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gprobe_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gprobe_8php.html">gprobe.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:include_2group_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html">group.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:html2bbcode_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="html2bbcode_8php.html">html2bbcode.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:html2plain_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="html2plain_8php.html">html2plain.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:identity_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html">identity.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ItemObject_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ItemObject_8php.html">ItemObject.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ITemplateEngine_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ITemplateEngine_8php.html">ITemplateEngine.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:items_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html">items.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:language_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html">language.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:include_2message_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2message_8php.html">message.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:nav_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nav_8php.html">nav.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:include_2network_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html">network.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:notifier_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="notifier_8php.html">notifier.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:include_2notify_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2notify_8php.html">notify.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:oauth_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="oauth_8php.html">oauth.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:include_2oembed_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2oembed_8php.html">oembed.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:onepoll_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="onepoll_8php.html">onepoll.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:permissions_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="permissions_8php.html">permissions.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:include_2photos_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2photos_8php.html">photos.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:plugin_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html">plugin.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:poller_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="poller_8php.html">poller.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:profile__advanced_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile__advanced_8php.html">profile_advanced.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:profile__selectors_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile__selectors_8php.html">profile_selectors.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ProtoDriver_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ProtoDriver_8php.html">ProtoDriver.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:queue_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="queue_8php.html">queue.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:queue__fn_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="queue__fn_8php.html">queue_fn.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:security_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html">security.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:session_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="session_8php.html">session.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socgraph_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socgraph_8php.html">socgraph.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:system__unavailable_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="system__unavailable_8php.html">system_unavailable.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:taxonomy_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html">taxonomy.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:template__processor_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="template__processor_8php.html">template_processor.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:text_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html">text.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:zot_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html">zot.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.js b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.js
new file mode 100644
index 000000000..a2eaeb3ef
--- /dev/null
+++ b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.js
@@ -0,0 +1,84 @@
+var dir_d44c64559bbebec7f509842c48db8b23 =
+[
+ [ "dba", "dir_21bc5169ff11430004758be31dcfc6c4.html", "dir_21bc5169ff11430004758be31dcfc6c4" ],
+ [ "photo", "dir_aae29906d7bfc07d076125f669c8352e.html", "dir_aae29906d7bfc07d076125f669c8352e" ],
+ [ "account.php", "account_8php.html", "account_8php" ],
+ [ "acl_selectors.php", "acl__selectors_8php.html", "acl__selectors_8php" ],
+ [ "activities.php", "activities_8php.html", "activities_8php" ],
+ [ "api.php", "include_2api_8php.html", "include_2api_8php" ],
+ [ "attach.php", "include_2attach_8php.html", "include_2attach_8php" ],
+ [ "auth.php", "auth_8php.html", "auth_8php" ],
+ [ "BaseObject.php", "BaseObject_8php.html", [
+ [ "BaseObject", "classBaseObject.html", "classBaseObject" ]
+ ] ],
+ [ "bb2diaspora.php", "bb2diaspora_8php.html", "bb2diaspora_8php" ],
+ [ "bbcode.php", "bbcode_8php.html", "bbcode_8php" ],
+ [ "cache.php", "cache_8php.html", [
+ [ "Cache", "classCache.html", null ]
+ ] ],
+ [ "cli_startup.php", "cli__startup_8php.html", "cli__startup_8php" ],
+ [ "config.php", "include_2config_8php.html", "include_2config_8php" ],
+ [ "Contact.php", "Contact_8php.html", "Contact_8php" ],
+ [ "contact_selectors.php", "contact__selectors_8php.html", "contact__selectors_8php" ],
+ [ "contact_widgets.php", "contact__widgets_8php.html", "contact__widgets_8php" ],
+ [ "conversation.php", "conversation_8php.html", "conversation_8php" ],
+ [ "ConversationObject.php", "ConversationObject_8php.html", [
+ [ "Conversation", "classConversation.html", "classConversation" ]
+ ] ],
+ [ "cronhooks.php", "cronhooks_8php.html", "cronhooks_8php" ],
+ [ "crypto.php", "crypto_8php.html", "crypto_8php" ],
+ [ "datetime.php", "datetime_8php.html", "datetime_8php" ],
+ [ "deliver.php", "deliver_8php.html", "deliver_8php" ],
+ [ "dir_fns.php", "dir__fns_8php.html", "dir__fns_8php" ],
+ [ "directory.php", "include_2directory_8php.html", "include_2directory_8php" ],
+ [ "enotify.php", "enotify_8php.html", "enotify_8php" ],
+ [ "event.php", "event_8php.html", "event_8php" ],
+ [ "expire.php", "expire_8php.html", "expire_8php" ],
+ [ "features.php", "features_8php.html", "features_8php" ],
+ [ "follow.php", "include_2follow_8php.html", "include_2follow_8php" ],
+ [ "friendica_smarty.php", "friendica__smarty_8php.html", [
+ [ "FriendicaSmarty", "classFriendicaSmarty.html", "classFriendicaSmarty" ],
+ [ "FriendicaSmartyEngine", "classFriendicaSmartyEngine.html", "classFriendicaSmartyEngine" ]
+ ] ],
+ [ "gprobe.php", "gprobe_8php.html", "gprobe_8php" ],
+ [ "group.php", "include_2group_8php.html", "include_2group_8php" ],
+ [ "html2bbcode.php", "html2bbcode_8php.html", "html2bbcode_8php" ],
+ [ "html2plain.php", "html2plain_8php.html", "html2plain_8php" ],
+ [ "identity.php", "identity_8php.html", "identity_8php" ],
+ [ "ItemObject.php", "ItemObject_8php.html", [
+ [ "Item", "classItem.html", "classItem" ]
+ ] ],
+ [ "ITemplateEngine.php", "ITemplateEngine_8php.html", [
+ [ "ITemplateEngine", "interfaceITemplateEngine.html", "interfaceITemplateEngine" ]
+ ] ],
+ [ "items.php", "items_8php.html", "items_8php" ],
+ [ "language.php", "language_8php.html", "language_8php" ],
+ [ "message.php", "include_2message_8php.html", "include_2message_8php" ],
+ [ "nav.php", "nav_8php.html", "nav_8php" ],
+ [ "network.php", "include_2network_8php.html", "include_2network_8php" ],
+ [ "notifier.php", "notifier_8php.html", "notifier_8php" ],
+ [ "notify.php", "include_2notify_8php.html", "include_2notify_8php" ],
+ [ "oauth.php", "oauth_8php.html", "oauth_8php" ],
+ [ "oembed.php", "include_2oembed_8php.html", "include_2oembed_8php" ],
+ [ "onepoll.php", "onepoll_8php.html", "onepoll_8php" ],
+ [ "permissions.php", "permissions_8php.html", "permissions_8php" ],
+ [ "photos.php", "include_2photos_8php.html", "include_2photos_8php" ],
+ [ "plugin.php", "plugin_8php.html", "plugin_8php" ],
+ [ "poller.php", "poller_8php.html", "poller_8php" ],
+ [ "profile_advanced.php", "profile__advanced_8php.html", "profile__advanced_8php" ],
+ [ "profile_selectors.php", "profile__selectors_8php.html", "profile__selectors_8php" ],
+ [ "ProtoDriver.php", "ProtoDriver_8php.html", [
+ [ "ProtoDriver", "classProtoDriver.html", "classProtoDriver" ],
+ [ "ZotDriver", "classZotDriver.html", "classZotDriver" ]
+ ] ],
+ [ "queue.php", "queue_8php.html", "queue_8php" ],
+ [ "queue_fn.php", "queue__fn_8php.html", "queue__fn_8php" ],
+ [ "security.php", "security_8php.html", "security_8php" ],
+ [ "session.php", "session_8php.html", "session_8php" ],
+ [ "socgraph.php", "socgraph_8php.html", "socgraph_8php" ],
+ [ "system_unavailable.php", "system__unavailable_8php.html", "system__unavailable_8php" ],
+ [ "taxonomy.php", "taxonomy_8php.html", "taxonomy_8php" ],
+ [ "template_processor.php", "template__processor_8php.html", "template__processor_8php" ],
+ [ "text.php", "text_8php.html", "text_8php" ],
+ [ "zot.php", "zot_8php.html", "zot_8php" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_d795dfe8933002397556cc7aa16eca15.html b/doc/html/dir_d795dfe8933002397556cc7aa16eca15.html
new file mode 100644
index 000000000..119fb7927
--- /dev/null
+++ b/doc/html/dir_d795dfe8933002397556cc7aa16eca15.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redstrap Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_d795dfe8933002397556cc7aa16eca15.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">redstrap Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_6b44a0e797e2f12381093380e3e54763"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_6b44a0e797e2f12381093380e3e54763.html">php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_d795dfe8933002397556cc7aa16eca15.js b/doc/html/dir_d795dfe8933002397556cc7aa16eca15.js
new file mode 100644
index 000000000..2b02828b8
--- /dev/null
+++ b/doc/html/dir_d795dfe8933002397556cc7aa16eca15.js
@@ -0,0 +1,4 @@
+var dir_d795dfe8933002397556cc7aa16eca15 =
+[
+ [ "php", "dir_6b44a0e797e2f12381093380e3e54763.html", "dir_6b44a0e797e2f12381093380e3e54763" ]
+]; \ No newline at end of file
diff --git a/doc/html/dirfind_8php.html b/doc/html/dirfind_8php.html
new file mode 100644
index 000000000..93241d1a4
--- /dev/null
+++ b/doc/html/dirfind_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/dirfind.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dirfind_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">dirfind.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac689a812c84f161b3a0d42349f83981c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dirfind_8php.html#ac689a812c84f161b3a0d42349f83981c">dirfind_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ac689a812c84f161b3a0d42349f83981c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af22b0283f928c4c32e62248a5ae67cee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind_content</a> (&amp;$a)</td></tr>
+<tr class="separator:af22b0283f928c4c32e62248a5ae67cee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af22b0283f928c4c32e62248a5ae67cee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dirfind_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac689a812c84f161b3a0d42349f83981c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dirfind_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dirfind_8php.js b/doc/html/dirfind_8php.js
new file mode 100644
index 000000000..133a7bcb3
--- /dev/null
+++ b/doc/html/dirfind_8php.js
@@ -0,0 +1,5 @@
+var dirfind_8php =
+[
+ [ "dirfind_content", "dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee", null ],
+ [ "dirfind_init", "dirfind_8php.html#ac689a812c84f161b3a0d42349f83981c", null ]
+]; \ No newline at end of file
diff --git a/doc/html/dirsearch_8php.html b/doc/html/dirsearch_8php.html
new file mode 100644
index 000000000..4a6aae150
--- /dev/null
+++ b/doc/html/dirsearch_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/dirsearch.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dirsearch_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">dirsearch.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a3e51964ae3f5ff147403407b65324752"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752">dirsearch_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a3e51964ae3f5ff147403407b65324752"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1fb04e1de4f25b63349ac78f94ceb4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aa1fb04e1de4f25b63349ac78f94ceb4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa1fb04e1de4f25b63349ac78f94ceb4c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dirsearch_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3e51964ae3f5ff147403407b65324752"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dirsearch_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dirsearch_8php.js b/doc/html/dirsearch_8php.js
new file mode 100644
index 000000000..0cb81668f
--- /dev/null
+++ b/doc/html/dirsearch_8php.js
@@ -0,0 +1,5 @@
+var dirsearch_8php =
+[
+ [ "dirsearch_content", "dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c", null ],
+ [ "dirsearch_init", "dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752", null ]
+]; \ No newline at end of file
diff --git a/doc/html/display_8php.html b/doc/html/display_8php.html
new file mode 100644
index 000000000..e31582288
--- /dev/null
+++ b/doc/html/display_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/display.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('display_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">display.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a37137c98d47bf3306f4c2bb9f5b60de0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content</a> (&amp;$a, $update=0, $load=false)</td></tr>
+<tr class="separator:a37137c98d47bf3306f4c2bb9f5b60de0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a37137c98d47bf3306f4c2bb9f5b60de0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">display_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$update</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$load</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/display_8php.js b/doc/html/display_8php.js
new file mode 100644
index 000000000..3fb3beffb
--- /dev/null
+++ b/doc/html/display_8php.js
@@ -0,0 +1,4 @@
+var display_8php =
+[
+ [ "display_content", "display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0", null ]
+]; \ No newline at end of file
diff --git a/doc/html/docblox__errorchecker_8php.html b/doc/html/docblox__errorchecker_8php.html
new file mode 100644
index 000000000..b625dc857
--- /dev/null
+++ b/doc/html/docblox__errorchecker_8php.html
@@ -0,0 +1,314 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/docblox_errorchecker.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('docblox__errorchecker_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">docblox_errorchecker.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceutil"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html">util</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a2b767cfc461fdd5061fffc9e4a806d5b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#a2b767cfc461fdd5061fffc9e4a806d5b">namesList</a> ($fileset)</td></tr>
+<tr class="separator:a2b767cfc461fdd5061fffc9e4a806d5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21b4bbe5aae2d85db33affc7126a67ec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec">runs</a> ($fileset)</td></tr>
+<tr class="separator:a21b4bbe5aae2d85db33affc7126a67ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae9562cf60aa693114603d27b55d2185f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f">reduce</a> ($fileset, $ps)</td></tr>
+<tr class="separator:ae9562cf60aa693114603d27b55d2185f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a1659f0a629d408e0f849dbe4ee061e62"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62">$dir</a> ='..'</td></tr>
+<tr class="separator:a1659f0a629d408e0f849dbe4ee061e62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab66bc0493d25f39bf8b4dcbb429f04e6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6">$dirstack</a> =array()</td></tr>
+<tr class="separator:ab66bc0493d25f39bf8b4dcbb429f04e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a648a570b0f9f6e0e51b7267647c4b09b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b">$filelist</a> =array()</td></tr>
+<tr class="separator:a648a570b0f9f6e0e51b7267647c4b09b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49a8a4009b02e49717caa88b128affc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d">while</a>($dh=opendir($dir)) <a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(<a class="el" href="docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec">runs</a>($filelist))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5">$res</a> =$filelist</td></tr>
+<tr class="separator:a49a8a4009b02e49717caa88b128affc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a83018d9153d17d91fbcf3bc10158d34f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#a83018d9153d17d91fbcf3bc10158d34f">$i</a> =0</td></tr>
+<tr class="separator:a83018d9153d17d91fbcf3bc10158d34f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a721c6ff80a6d3e4ad4ffa52a04c60085"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#a721c6ff80a6d3e4ad4ffa52a04c60085">do</a></td></tr>
+<tr class="separator:a721c6ff80a6d3e4ad4ffa52a04c60085"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a852004caba0a34390297a079f4aaac73"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#a852004caba0a34390297a079f4aaac73">$needed</a> =array()</td></tr>
+<tr class="separator:a852004caba0a34390297a079f4aaac73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af4ca738a05beffe9c8c23e1f7aea3c2d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d">while</a> (count($res)!=0)</td></tr>
+<tr class="separator:af4ca738a05beffe9c8c23e1f7aea3c2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a2b767cfc461fdd5061fffc9e4a806d5b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">namesList </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$fileset</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec">runs()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae9562cf60aa693114603d27b55d2185f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">reduce </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$fileset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$ps</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a21b4bbe5aae2d85db33affc7126a67ec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">runs </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$fileset</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a1659f0a629d408e0f849dbe4ee061e62"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$dir ='..'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab66bc0493d25f39bf8b4dcbb429f04e6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$dirstack =array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a648a570b0f9f6e0e51b7267647c4b09b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$filelist =array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a83018d9153d17d91fbcf3bc10158d34f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$i =0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">aes_unencapsulate()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2">get_bb_tag_pos()</a>, <a class="el" href="text_8php.html#a1557112a774ec00fa06ed6b6f6495506">is_a_date_arg()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">item_redir_and_replace_images()</a>, <a class="el" href="text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8">jindent()</a>, <a class="el" href="setup_8php.html#a2b375ddc555140236fc500135de99371">load_database_rem()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7">node2bbcodesub()</a>, <a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">paginate()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">reload_plugins()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a852004caba0a34390297a079f4aaac73"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$needed =array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a49a8a4009b02e49717caa88b128affc5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$res =$filelist</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76">check_keys()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2">get_bb_tag_pos()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="classenotify.html#afbc088860f534c6c05788b48cfc262c6">enotify\send()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, and <a class="el" href="webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3">webfinger_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a721c6ff80a6d3e4ad4ffa52a04c60085"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">do</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Initial value:</b><div class="fragment"><div class="line">{</div>
+<div class="line"> <a class="code" href="docblox__errorchecker_8php.html#a83018d9153d17d91fbcf3bc10158d34f">$i</a>=count(<a class="code" href="docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5">$res</a>)</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="af4ca738a05beffe9c8c23e1f7aea3c2d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">while(count($res)!=0)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/docblox__errorchecker_8php.js b/doc/html/docblox__errorchecker_8php.js
new file mode 100644
index 000000000..17707e7c6
--- /dev/null
+++ b/doc/html/docblox__errorchecker_8php.js
@@ -0,0 +1,14 @@
+var docblox__errorchecker_8php =
+[
+ [ "namesList", "docblox__errorchecker_8php.html#a2b767cfc461fdd5061fffc9e4a806d5b", null ],
+ [ "reduce", "docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f", null ],
+ [ "runs", "docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec", null ],
+ [ "$dir", "docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62", null ],
+ [ "$dirstack", "docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6", null ],
+ [ "$filelist", "docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b", null ],
+ [ "$i", "docblox__errorchecker_8php.html#a83018d9153d17d91fbcf3bc10158d34f", null ],
+ [ "$needed", "docblox__errorchecker_8php.html#a852004caba0a34390297a079f4aaac73", null ],
+ [ "$res", "docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5", null ],
+ [ "do", "docblox__errorchecker_8php.html#a721c6ff80a6d3e4ad4ffa52a04c60085", null ],
+ [ "while", "docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d", null ]
+]; \ No newline at end of file
diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css
new file mode 100644
index 000000000..dabaff2fd
--- /dev/null
+++ b/doc/html/doxygen.css
@@ -0,0 +1,1184 @@
+/* The standard CSS for doxygen 1.8.3.1 */
+
+body, table, div, p, dl {
+ font: 400 14px/19px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+ font-size: 150%;
+}
+
+.title {
+ font-size: 150%;
+ font-weight: bold;
+ margin: 10px 2px;
+}
+
+h2.groupheader {
+ border-bottom: 1px solid #879ECB;
+ color: #354C7B;
+ font-size: 150%;
+ font-weight: normal;
+ margin-top: 1.75em;
+ padding-top: 8px;
+ padding-bottom: 4px;
+ width: 100%;
+}
+
+h3.groupheader {
+ font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ -webkit-transition: text-shadow 0.5s linear;
+ -moz-transition: text-shadow 0.5s linear;
+ -ms-transition: text-shadow 0.5s linear;
+ -o-transition: text-shadow 0.5s linear;
+ transition: text-shadow 0.5s linear;
+ margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px cyan;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+ margin-top: 2px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ font-size: 90%;
+ text-align: center;
+}
+
+div.qindex, div.navtab{
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+}
+
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #3D578C;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #4665A2;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #9CAFD4;
+ color: #ffffff;
+ border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited {
+ color: #4665A2;
+}
+
+a.codeRef, a.codeRef:visited {
+ color: #4665A2;
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
+ padding: 4px;
+ margin: 4px;
+ background-color: #FBFCFD;
+ border: 1px solid #C4CFE5;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ min-height: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+div.line.glow {
+ background-color: cyan;
+ box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+div.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: solid thin #333;
+ border-radius: 0.5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background-color: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 12px;
+ margin-right: 8px;
+}
+
+td.indexkey {
+ background-color: #EBEFF6;
+ font-weight: bold;
+ border: 1px solid #C4CFE5;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C4CFE5;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9CAFD4;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memSeparator {
+ border-bottom: 1px solid #DEE4F0;
+ line-height: 1px;
+ margin: 0px;
+ padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #4665A2;
+ white-space: nowrap;
+ font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+ font-size: 80%;
+ color: #4665A2;
+ font-weight: normal;
+ margin-left: 9px;
+}
+
+.memnav {
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.mempage {
+ width: 100%;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+ margin-right: 5px;
+ -webkit-transition: box-shadow 0.5s linear;
+ -moz-transition: box-shadow 0.5s linear;
+ -ms-transition: box-shadow 0.5s linear;
+ -o-transition: box-shadow 0.5s linear;
+ transition: box-shadow 0.5s linear;
+ display: table !important;
+ width: 100%;
+}
+
+.memitem.glow {
+ box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+ font-weight: bold;
+ margin-left: 6px;
+}
+
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 0px 6px 0px;
+ color: #253555;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-topleft: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 10px 2px 10px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFFFF;
+ /* opera specific markup */
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+.paramname code {
+ line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+.params .paramname, .retval .paramname {
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.params .paramtype {
+ font-style: italic;
+ vertical-align: top;
+}
+
+.params .paramdir {
+ font-family: "courier new",courier,monospace;
+ vertical-align: top;
+}
+
+table.mlabels {
+ border-spacing: 0px;
+}
+
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
+}
+
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
+
+span.mlabels {
+ margin-left: 8px;
+}
+
+span.mlabel {
+ background-color: #728DC1;
+ border-top:1px solid #5373B4;
+ border-left:1px solid #5373B4;
+ border-right:1px solid #C4CFE5;
+ border-bottom:1px solid #C4CFE5;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view when not used as main index */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ width: 100%;
+}
+
+.directory table {
+ border-collapse:collapse;
+}
+
+.directory td {
+ margin: 0px;
+ padding: 0px;
+ vertical-align: top;
+}
+
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+}
+
+.directory td.entry a {
+ outline:none;
+}
+
+.directory td.entry a img {
+ border: none;
+}
+
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+ border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #F7F8FB;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+ font-size: 9pt;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #3D578C;
+}
+
+div.dynheader {
+ margin-top: 8px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+address {
+ font-style: normal;
+ color: #2A3D61;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #374F7F;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+table.fieldtable {
+ /*width: 100%;*/
+ margin-bottom: 10px;
+ border: 1px solid #A8B8D9;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+ padding-top: 5px;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A8B8D9;
+ /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+ margin-top: 2px;
+}
+
+.fieldtable td.fielddoc p:last-child {
+ margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ font-size: 90%;
+ color: #253555;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.navpath ul
+{
+ font-size: 11px;
+ background-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ background-position: 0 -5px;
+ height:30px;
+ line-height:30px;
+ color:#8AA0CC;
+ border:solid 1px #C2CDE4;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+ height:32px;
+ display:block;
+ text-decoration: none;
+ outline: none;
+ color: #283A5D;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:#6884BD;
+}
+
+.navpath li.footer
+{
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+ font-size: 8pt;
+}
+
+
+div.summary
+{
+ float: right;
+ font-size: 8pt;
+ padding-right: 5px;
+ width: 50%;
+ text-align: right;
+}
+
+div.summary a
+{
+ white-space: nowrap;
+}
+
+div.ingroups
+{
+ font-size: 8pt;
+ width: 50%;
+ text-align: left;
+}
+
+div.ingroups a
+{
+ white-space: nowrap;
+}
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 10px;
+}
+
+dl
+{
+ padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+dl.note
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00D000;
+}
+
+dl.deprecated
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #505050;
+}
+
+dl.todo
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00C0E0;
+}
+
+dl.test
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #3030E0;
+}
+
+dl.bug
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #C08050;
+}
+
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+
+#projectname
+{
+ font: 300% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 2px 0px;
+}
+
+#projectbrief
+{
+ font: 120% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#projectnumber
+{
+ font: 50% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#titlearea
+{
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#334975;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+}
+
+dl.citelist dd {
+ margin:2px 0;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D8DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 20px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #4665A2;
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+.inherit_header {
+ font-weight: bold;
+ color: gray;
+ cursor: pointer;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.inherit_header td {
+ padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+ display: none;
+}
+
+tr.heading h2 {
+ margin-top: 12px;
+ margin-bottom: 4px;
+}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+
diff --git a/doc/html/doxygen.png b/doc/html/doxygen.png
new file mode 100644
index 000000000..3ff17d807
--- /dev/null
+++ b/doc/html/doxygen.png
Binary files differ
diff --git a/doc/html/dynsections.js b/doc/html/dynsections.js
new file mode 100644
index 000000000..ed092c7f6
--- /dev/null
+++ b/doc/html/dynsections.js
@@ -0,0 +1,97 @@
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+ content.hide();
+ summary.show();
+ $(linkObj).addClass('closed').removeClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ content.show();
+ summary.hide();
+ $(linkObj).removeClass('closed').addClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+ return false;
+}
+
+function updateStripes()
+{
+ $('table.directory tr').
+ removeClass('even').filter(':visible:even').addClass('even');
+}
+function toggleLevel(level)
+{
+ $('table.directory tr').each(function(){
+ var l = this.id.split('_').length-1;
+ var i = $('#img'+this.id.substring(3));
+ var a = $('#arr'+this.id.substring(3));
+ if (l<level+1) {
+ i.attr('src','ftv2folderopen.png');
+ a.attr('src','ftv2mnode.png');
+ $(this).show();
+ } else if (l==level+1) {
+ i.attr('src','ftv2folderclosed.png');
+ a.attr('src','ftv2pnode.png');
+ $(this).show();
+ } else {
+ $(this).hide();
+ }
+ });
+ updateStripes();
+}
+
+function toggleFolder(id)
+{
+ //The clicked row
+ var currentRow = $('#row_'+id);
+ var currentRowImages = currentRow.find("img");
+
+ //All rows after the clicked row
+ var rows = currentRow.nextAll("tr");
+
+ //Only match elements AFTER this one (can't hide elements before)
+ var childRows = rows.filter(function() {
+ var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+ return this.id.match(re);
+ });
+
+ //First row is visible we are HIDING
+ if (childRows.filter(':first').is(':visible')===true) {
+ currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png');
+ currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png');
+ rows.filter("[id^=row_"+id+"]").hide();
+ } else { //We are SHOWING
+ //All sub images
+ var childImages = childRows.find("img");
+ var childImg = childImages.filter("[id^=img]");
+ var childArr = childImages.filter("[id^=arr]");
+
+ currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
+ currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
+ childImg.attr('src','ftv2folderclosed.png'); //children closed
+ childArr.attr('src','ftv2pnode.png'); //children closed
+ childRows.show(); //show all children
+ }
+ updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+ var rows = $('tr.inherit.'+id);
+ var img = $('tr.inherit_header.'+id+' img');
+ var src = $(img).attr('src');
+ if (rows.filter(':first').is(':visible')===true) {
+ rows.css('display','none');
+ $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ rows.css('display','table-row'); // using show() causes jump in firefox
+ $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+}
+
diff --git a/doc/html/editpost_8php.html b/doc/html/editpost_8php.html
new file mode 100644
index 000000000..6daa6563e
--- /dev/null
+++ b/doc/html/editpost_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/editpost.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('editpost_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">editpost.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a34011690864d122680c802e9e748ccfb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a34011690864d122680c802e9e748ccfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a34011690864d122680c802e9e748ccfb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">editpost_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/editpost_8php.js b/doc/html/editpost_8php.js
new file mode 100644
index 000000000..5012045da
--- /dev/null
+++ b/doc/html/editpost_8php.js
@@ -0,0 +1,4 @@
+var editpost_8php =
+[
+ [ "editpost_content", "editpost_8php.html#a34011690864d122680c802e9e748ccfb", null ]
+]; \ No newline at end of file
diff --git a/doc/html/editwebpage_8php.html b/doc/html/editwebpage_8php.html
new file mode 100644
index 000000000..a27badd7f
--- /dev/null
+++ b/doc/html/editwebpage_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/editwebpage.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('editwebpage_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">editwebpage.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a375e945255fad79a71036528f7480650"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a375e945255fad79a71036528f7480650"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a375e945255fad79a71036528f7480650"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">editwebpage_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/editwebpage_8php.js b/doc/html/editwebpage_8php.js
new file mode 100644
index 000000000..c9e825bb8
--- /dev/null
+++ b/doc/html/editwebpage_8php.js
@@ -0,0 +1,4 @@
+var editwebpage_8php =
+[
+ [ "editwebpage_content", "editwebpage_8php.html#a375e945255fad79a71036528f7480650", null ]
+]; \ No newline at end of file
diff --git a/doc/html/enotify_8php.html b/doc/html/enotify_8php.html
new file mode 100644
index 000000000..9a91e32df
--- /dev/null
+++ b/doc/html/enotify_8php.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/enotify.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('enotify_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">enotify.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classenotify.html">enotify</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a3e9a9355b243777c488d2a9883908dfc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification</a> ($params)</td></tr>
+<tr class="separator:a3e9a9355b243777c488d2a9883908dfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a3e9a9355b243777c488d2a9883908dfc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">notification </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$params</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>, and <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/enotify_8php.js b/doc/html/enotify_8php.js
new file mode 100644
index 000000000..2dd8c6299
--- /dev/null
+++ b/doc/html/enotify_8php.js
@@ -0,0 +1,5 @@
+var enotify_8php =
+[
+ [ "enotify", "classenotify.html", null ],
+ [ "notification", "enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc", null ]
+]; \ No newline at end of file
diff --git a/doc/html/event_8php.html b/doc/html/event_8php.html
new file mode 100644
index 000000000..f75407c79
--- /dev/null
+++ b/doc/html/event_8php.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/event.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('event_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">event.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a2ac9f1b08de03250ecd794f705781d17"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">format_event_html</a> ($ev)</td></tr>
+<tr class="separator:a2ac9f1b08de03250ecd794f705781d17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb74206cf42d694307c3d7abb7af9869"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html#abb74206cf42d694307c3d7abb7af9869">format_event_bbcode</a> ($ev)</td></tr>
+<tr class="separator:abb74206cf42d694307c3d7abb7af9869"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a184d6b9690e5b6dee35a0aa9edd47279"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279">bbtovcal</a> ($s)</td></tr>
+<tr class="separator:a184d6b9690e5b6dee35a0aa9edd47279"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a180cccd63c2a2f00ff432b03113531f3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html#a180cccd63c2a2f00ff432b03113531f3">bbtoevent</a> ($s)</td></tr>
+<tr class="separator:a180cccd63c2a2f00ff432b03113531f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a018ea4484910a873a7c1eaa126de9b1a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html#a018ea4484910a873a7c1eaa126de9b1a">sort_by_date</a> ($arr)</td></tr>
+<tr class="separator:a018ea4484910a873a7c1eaa126de9b1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a32ba1b9ddf7a744a9a1512b052e5f850"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850">ev_compare</a> ($a, $b)</td></tr>
+<tr class="separator:a32ba1b9ddf7a744a9a1512b052e5f850"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89ef533faf345db8d64a58d4856bde3a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store</a> ($arr)</td></tr>
+<tr class="separator:a89ef533faf345db8d64a58d4856bde3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a180cccd63c2a2f00ff432b03113531f3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bbtoevent </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279">bbtovcal()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, and <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a184d6b9690e5b6dee35a0aa9edd47279"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bbtovcal </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a32ba1b9ddf7a744a9a1512b052e5f850"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ev_compare </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$b</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a89ef533faf345db8d64a58d4856bde3a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">event_store </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, and <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abb74206cf42d694307c3d7abb7af9869"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">format_event_bbcode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$ev</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2ac9f1b08de03250ecd794f705781d17"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">format_event_html </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$ev</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279">bbtovcal()</a>, and <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a018ea4484910a873a7c1eaa126de9b1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">sort_by_date </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/event_8php.js b/doc/html/event_8php.js
new file mode 100644
index 000000000..3d6ce5806
--- /dev/null
+++ b/doc/html/event_8php.js
@@ -0,0 +1,10 @@
+var event_8php =
+[
+ [ "bbtoevent", "event_8php.html#a180cccd63c2a2f00ff432b03113531f3", null ],
+ [ "bbtovcal", "event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279", null ],
+ [ "ev_compare", "event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850", null ],
+ [ "event_store", "event_8php.html#a89ef533faf345db8d64a58d4856bde3a", null ],
+ [ "format_event_bbcode", "event_8php.html#abb74206cf42d694307c3d7abb7af9869", null ],
+ [ "format_event_html", "event_8php.html#a2ac9f1b08de03250ecd794f705781d17", null ],
+ [ "sort_by_date", "event_8php.html#a018ea4484910a873a7c1eaa126de9b1a", null ]
+]; \ No newline at end of file
diff --git a/doc/html/events_8php.html b/doc/html/events_8php.html
new file mode 100644
index 000000000..97f2c709d
--- /dev/null
+++ b/doc/html/events_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/events.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('events_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">events.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab3e8a8f901175f8e40a8089eea45c075"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post</a> (&amp;$a)</td></tr>
+<tr class="separator:ab3e8a8f901175f8e40a8089eea45c075"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d293fb217ae6bc9e3858c4b32e363ec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a1d293fb217ae6bc9e3858c4b32e363ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a1d293fb217ae6bc9e3858c4b32e363ec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">events_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab3e8a8f901175f8e40a8089eea45c075"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">events_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/events_8php.js b/doc/html/events_8php.js
new file mode 100644
index 000000000..d53a51cbd
--- /dev/null
+++ b/doc/html/events_8php.js
@@ -0,0 +1,5 @@
+var events_8php =
+[
+ [ "events_content", "events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec", null ],
+ [ "events_post", "events_8php.html#ab3e8a8f901175f8e40a8089eea45c075", null ]
+]; \ No newline at end of file
diff --git a/doc/html/expire_8php.html b/doc/html/expire_8php.html
new file mode 100644
index 000000000..43e034032
--- /dev/null
+++ b/doc/html/expire_8php.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/expire.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('expire_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">expire.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a444e45c9b67727b27db4c779fd51a298"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run</a> ($<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>, $<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a>)</td></tr>
+<tr class="separator:a444e45c9b67727b27db4c779fd51a298"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a444e45c9b67727b27db4c779fd51a298"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">expire_run </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argv</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argc</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/expire_8php.js b/doc/html/expire_8php.js
new file mode 100644
index 000000000..6ecd16ffe
--- /dev/null
+++ b/doc/html/expire_8php.js
@@ -0,0 +1,4 @@
+var expire_8php =
+[
+ [ "expire_run", "expire_8php.html#a444e45c9b67727b27db4c779fd51a298", null ]
+]; \ No newline at end of file
diff --git a/doc/html/extract_8php.html b/doc/html/extract_8php.html
new file mode 100644
index 000000000..6ed749318
--- /dev/null
+++ b/doc/html/extract_8php.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/extract.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('extract_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">extract.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a63bb4c41bc532baacf6a4976cfaa0feb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="extract_8php.html#a63bb4c41bc532baacf6a4976cfaa0feb">$arr</a> = array()</td></tr>
+<tr class="separator:a63bb4c41bc532baacf6a4976cfaa0feb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9590b15215a21e9b42eb546aeef79704"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="extract_8php.html#a9590b15215a21e9b42eb546aeef79704">$files</a> = array('index.php','boot.php')</td></tr>
+<tr class="separator:a9590b15215a21e9b42eb546aeef79704"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50b05cf2e02ef0b67fcad97106dd7634"><td class="memItemLeft" align="right" valign="top"><a class="el" href="typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5">foreach</a>($files as $file)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634">$s</a> = '&lt;?php' . &quot;\n&quot;</td></tr>
+<tr class="separator:a50b05cf2e02ef0b67fcad97106dd7634"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0cbe524ffc9a496114fd7ba9f423ef44"><td class="memItemLeft" align="right" valign="top"><a class="el" href="typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5">foreach</a>($arr as $a)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="extract_8php.html#a0cbe524ffc9a496114fd7ba9f423ef44">$zones</a> = timezone_identifiers_list()</td></tr>
+<tr class="separator:a0cbe524ffc9a496114fd7ba9f423ef44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a63bb4c41bc532baacf6a4976cfaa0feb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$arr = array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a36e656667193c83aa2cc03a024fc131b">activity_sanitise()</a>, <a class="el" href="include_2network_8php.html#a0bdc4b0bfc54797c249dc4eca25aeda4">add_fcontact()</a>, <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api_rss_extra()</a>, <a class="el" href="items_8php.html#abf7a1b73eb352d79acd36309b0dababd">array_sanitise()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">check_account_admin()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="account_8php.html#a144b4891022567668375b58ea61cfff0">check_account_password()</a>, <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4">dbesc_array()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="text_8php.html#ace3c98538c63e09b70a363210b414112">find_xchan_in_array()</a>, <a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">format_like()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">get_features()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="text_8php.html#a736db13a966b8abaf8c9198faa35911a">get_mood_verbs()</a>, <a class="el" href="text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66">get_poke_verbs()</a>, <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1">get_terms_oftype()</a>, <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">App\get_widgets()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="identity_8php.html#a77ee7d66eb0758f7e7882f70ad0f9485">identity_basic_import()</a>, <a class="el" href="text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a">ids_to_querystr()</a>, <a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="items_8php.html#a09d425596b9f8663472cf7474ad36d96">item_getfeedattach()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos_album_get_db_idstr()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php_run()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">profile_tabs()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classApp.html#abea5a4f77dcd53c928dc4eed86616637">App\set_apps()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="event_8php.html#a018ea4484910a873a7c1eaa126de9b1a">sort_by_date()</a>, <a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">stringify_array_elms()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">xml2array()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="boot_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>, <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#acdea9362d78a63dce948fdf0ea73ef0e">zot_get_hubloc()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9590b15215a21e9b42eb546aeef79704"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$files = array('index.php','boot.php')</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, and <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a50b05cf2e02ef0b67fcad97106dd7634"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$s = '&lt;?php' . &quot;\n&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4">Template\_build_nodes()</a>, <a class="el" href="classTemplate.html#aa6f9bd7a8f7512efcf90e8d376fe05ee">Template\_replcb_node()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="text_8php.html#a95fd2f8f23a1948414a03ebc963bac57">attribute_contains()</a>, <a class="el" href="text_8php.html#a13286f8a95d2de6b102966ecc270c8d6">base64url_decode()</a>, <a class="el" href="text_8php.html#a070384ec000fd65043fce11d5392d241">base64url_encode()</a>, <a class="el" href="bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba">bb_tag_preg_replace()</a>, <a class="el" href="text_8php.html#a3d2793d66db3345fd290b71e2eadf98e">bb_translate_video()</a>, <a class="el" href="event_8php.html#a180cccd63c2a2f00ff432b03113531f3">bbtoevent()</a>, <a class="el" href="event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279">bbtovcal()</a>, <a class="el" href="text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0">chanlink_hash()</a>, <a class="el" href="text_8php.html#a2e8d6c402603be3a1256a16605e09c2a">chanlink_url()</a>, <a class="el" href="datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226">datetime_convert()</a>, <a class="el" href="text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63">day_translate()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6">diaspora2bb()</a>, <a class="el" href="bb2diaspora_8php.html#a8b96bd45884fa1c40b942939354197d4">diaspora_ol()</a>, <a class="el" href="bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc">diaspora_ul()</a>, <a class="el" href="text_8php.html#ae4282a39492caa23ccbc2ce98e54f110">expand_acl()</a>, <a class="el" href="include_2network_8php.html#a37ddeb88a3fd1dee9e8339723f9edf9a">fetch_url()</a>, <a class="el" href="taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6">file_tag_decode()</a>, <a class="el" href="taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37">file_tag_encode()</a>, <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28">fix_mce_lf()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display()</a>, <a class="el" href="bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2">get_bb_tag_pos()</a>, <a class="el" href="plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295">get_intltext_template()</a>, <a class="el" href="plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4">get_markup_template()</a>, <a class="el" href="text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623">get_tags()</a>, <a class="el" href="text_8php.html#a138a3a611fa7f4f3630674145fc826bf">html2bb_video()</a>, <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info()</a>, <a class="el" href="text_8php.html#a1557112a774ec00fa06ed6b6f6495506">is_a_date_arg()</a>, <a class="el" href="text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728">legal_webbie()</a>, <a class="el" href="text_8php.html#a11255c8c4e5245b6c24f97684826aa54">linkify()</a>, <a class="el" href="text_8php.html#a1e510c53624933ce9b7d6715784894db">magic_link()</a>, <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, <a class="el" href="text_8php.html#adba17ec946f4285285dc100f7860bf51">normalise_openid()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0">oembed_replacecb()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">parse_xml_string()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="include_2network_8php.html#aa44d9e33a579d930e9e79c4ebb3d6b5e">post_url()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3">print_template()</a>, <a class="el" href="dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249">printable()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="text_8php.html#a4e7698aca48982512594b274543c3b9b">protect_sprintf()</a>, <a class="el" href="text_8php.html#a4841df5beabdd1bdd1ed56781a915d61">purify_html()</a>, <a class="el" href="text_8php.html#afc998d2796a6b2a08e96f7cc061e7221">qp()</a>, <a class="el" href="text_8php.html#a9d6a5ee1290de7a8b483fe78585daade">random_string()</a>, <a class="el" href="classTemplate.html#a285b5b2007dbbf733476273df3fed4ef">Template\replace()</a>, <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros()</a>, <a class="el" href="classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2">FriendicaSmartyEngine\replace_macros()</a>, <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">Template\replace_macros()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">App\set_widget()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93">stripdcode_br_cb()</a>, <a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t()</a>, <a class="el" href="template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5">template_escape()</a>, <a class="el" href="template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e">template_unescape()</a>, <a class="el" href="taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c">term_query()</a>, <a class="el" href="text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7">unamp()</a>, <a class="el" href="text_8php.html#a740ad03e00459039a2c0992246c4e727">undo_post_tagging()</a>, <a class="el" href="text_8php.html#a1360fed7f918d859daaca1c9f384f9af">unxmlify()</a>, <a class="el" href="classTemplate.html#abbc484016ddf5d818f55b823cae6feb0">Template\var_replace()</a>, <a class="el" href="include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5">webfinger()</a>, <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">webfinger_dfrn()</a>, <a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, and <a class="el" href="boot_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0cbe524ffc9a496114fd7ba9f423ef44"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5">foreach</a> ($arr as $a) $zones = timezone_identifiers_list()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/extract_8php.js b/doc/html/extract_8php.js
new file mode 100644
index 000000000..af6949603
--- /dev/null
+++ b/doc/html/extract_8php.js
@@ -0,0 +1,7 @@
+var extract_8php =
+[
+ [ "$arr", "extract_8php.html#a63bb4c41bc532baacf6a4976cfaa0feb", null ],
+ [ "$files", "extract_8php.html#a9590b15215a21e9b42eb546aeef79704", null ],
+ [ "$s", "extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634", null ],
+ [ "$zones", "extract_8php.html#a0cbe524ffc9a496114fd7ba9f423ef44", null ]
+]; \ No newline at end of file
diff --git a/doc/html/fbrowser_8php.html b/doc/html/fbrowser_8php.html
new file mode 100644
index 000000000..e62617305
--- /dev/null
+++ b/doc/html/fbrowser_8php.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/fbrowser.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('fbrowser_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">fbrowser.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceFriendica"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceFriendica.html">Friendica</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aee476addcf7a3e0fe9454f7dfd5a56c4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content</a> ($a)</td></tr>
+<tr class="separator:aee476addcf7a3e0fe9454f7dfd5a56c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aee476addcf7a3e0fe9454f7dfd5a56c4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fbrowser_content </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/fbrowser_8php.js b/doc/html/fbrowser_8php.js
new file mode 100644
index 000000000..5dbc20d7b
--- /dev/null
+++ b/doc/html/fbrowser_8php.js
@@ -0,0 +1,4 @@
+var fbrowser_8php =
+[
+ [ "fbrowser_content", "fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4", null ]
+]; \ No newline at end of file
diff --git a/doc/html/fcontact_8php.html b/doc/html/fcontact_8php.html
new file mode 100644
index 000000000..a41905176
--- /dev/null
+++ b/doc/html/fcontact_8php.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: include/fcontact.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('fcontact_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">fcontact.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a4ce1d8d444c938790e0d50e003d04a15"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fcontact_8php.html#a4ce1d8d444c938790e0d50e003d04a15">fcontact_store</a> ($url, $name, $photo)</td></tr>
+<tr class="separator:a4ce1d8d444c938790e0d50e003d04a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4512592814dc7883b57bf01ac33353f6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fcontact_8php.html#a4512592814dc7883b57bf01ac33353f6">ffinder_store</a> ($uid, $cid, $fid)</td></tr>
+<tr class="separator:a4512592814dc7883b57bf01ac33353f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a4ce1d8d444c938790e0d50e003d04a15"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fcontact_store </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$photo</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4512592814dc7883b57bf01ac33353f6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ffinder_store </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$cid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$fid</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/fcontact_8php.js b/doc/html/fcontact_8php.js
new file mode 100644
index 000000000..de48747b1
--- /dev/null
+++ b/doc/html/fcontact_8php.js
@@ -0,0 +1,5 @@
+var fcontact_8php =
+[
+ [ "fcontact_store", "fcontact_8php.html#a4ce1d8d444c938790e0d50e003d04a15", null ],
+ [ "ffinder_store", "fcontact_8php.html#a4512592814dc7883b57bf01ac33353f6", null ]
+]; \ No newline at end of file
diff --git a/doc/html/features_8php.html b/doc/html/features_8php.html
new file mode 100644
index 000000000..5cca57aa7
--- /dev/null
+++ b/doc/html/features_8php.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/features.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('features_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">features.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a52b5bdfb61b256713efecf7a7b20b0c0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled</a> ($uid, $feature)</td></tr>
+<tr class="separator:a52b5bdfb61b256713efecf7a7b20b0c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae73c5b03b01c7284ed7e7e0e774e975c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">get_features</a> ()</td></tr>
+<tr class="separator:ae73c5b03b01c7284ed7e7e0e774e975c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a52b5bdfb61b256713efecf7a7b20b0c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">feature_enabled </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$feature</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">profile_tabs()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search_saved_searches()</a>, <a class="el" href="view_2theme_2redstrap_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>, and <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae73c5b03b01c7284ed7e7e0e774e975c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_features </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/features_8php.js b/doc/html/features_8php.js
new file mode 100644
index 000000000..d5f51e5f7
--- /dev/null
+++ b/doc/html/features_8php.js
@@ -0,0 +1,5 @@
+var features_8php =
+[
+ [ "feature_enabled", "features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0", null ],
+ [ "get_features", "features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c", null ]
+]; \ No newline at end of file
diff --git a/doc/html/feed_8php.html b/doc/html/feed_8php.html
new file mode 100644
index 000000000..eee97f745
--- /dev/null
+++ b/doc/html/feed_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/feed.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('feed_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">feed.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af86137700b56f33d1d5f25c8dec22c04"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init</a> (&amp;$a)</td></tr>
+<tr class="separator:af86137700b56f33d1d5f25c8dec22c04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af86137700b56f33d1d5f25c8dec22c04"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">feed_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/feed_8php.js b/doc/html/feed_8php.js
new file mode 100644
index 000000000..b218d275b
--- /dev/null
+++ b/doc/html/feed_8php.js
@@ -0,0 +1,4 @@
+var feed_8php =
+[
+ [ "feed_init", "feed_8php.html#af86137700b56f33d1d5f25c8dec22c04", null ]
+]; \ No newline at end of file
diff --git a/doc/html/filer_8php.html b/doc/html/filer_8php.html
new file mode 100644
index 000000000..f43782620
--- /dev/null
+++ b/doc/html/filer_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/filer.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('filer_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">filer.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a5fd5d7e61b2f9c43cb5f110c89dc4274"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a5fd5d7e61b2f9c43cb5f110c89dc4274"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a5fd5d7e61b2f9c43cb5f110c89dc4274"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">filer_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/filer_8php.js b/doc/html/filer_8php.js
new file mode 100644
index 000000000..be0098bdc
--- /dev/null
+++ b/doc/html/filer_8php.js
@@ -0,0 +1,4 @@
+var filer_8php =
+[
+ [ "filer_content", "filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274", null ]
+]; \ No newline at end of file
diff --git a/doc/html/filerm_8php.html b/doc/html/filerm_8php.html
new file mode 100644
index 000000000..95b780624
--- /dev/null
+++ b/doc/html/filerm_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/filerm.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('filerm_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">filerm.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae2eb28d2054fa2c37e38689882172208"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content</a> (&amp;$a)</td></tr>
+<tr class="separator:ae2eb28d2054fa2c37e38689882172208"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ae2eb28d2054fa2c37e38689882172208"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">filerm_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/filerm_8php.js b/doc/html/filerm_8php.js
new file mode 100644
index 000000000..bc36f3054
--- /dev/null
+++ b/doc/html/filerm_8php.js
@@ -0,0 +1,4 @@
+var filerm_8php =
+[
+ [ "filerm_content", "filerm_8php.html#ae2eb28d2054fa2c37e38689882172208", null ]
+]; \ No newline at end of file
diff --git a/doc/html/files.html b/doc/html/files.html
new file mode 100644
index 000000000..a42e0dd8b
--- /dev/null
+++ b/doc/html/files.html
@@ -0,0 +1,335 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('files.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">File List</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span><span onclick="javascript:toggleLevel(5);">5</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_')"/><img id="img_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('0_')"/><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html" target="_self">include</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_0_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_0_')"/><img id="img_0_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('0_0_')"/><a class="el" href="dir_21bc5169ff11430004758be31dcfc6c4.html" target="_self">dba</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dba__driver_8php.html" target="_self">dba_driver.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dba__mysql_8php.html" target="_self">dba_mysql.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dba__mysqli_8php.html" target="_self">dba_mysqli.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_0_1_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_1_')"/><img id="img_0_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('0_1_')"/><a class="el" href="dir_aae29906d7bfc07d076125f669c8352e.html" target="_self">photo</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_0_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="photo__driver_8php.html" target="_self">photo_driver.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_1_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="photo__gd_8php.html" target="_self">photo_gd.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_2_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="photo__imagick_8php.html" target="_self">photo_imagick.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_2_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="account_8php.html" target="_self">account.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_3_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="acl__selectors_8php.html" target="_self">acl_selectors.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="activities_8php.html" target="_self">activities.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_5_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2api_8php.html" target="_self">api.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_6_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2attach_8php.html" target="_self">attach.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_7_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="auth_8php.html" target="_self">auth.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_8_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="BaseObject_8php.html" target="_self">BaseObject.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_9_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="bb2diaspora_8php.html" target="_self">bb2diaspora.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_10_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="bbcode_8php.html" target="_self">bbcode.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_11_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cache_8php.html" target="_self">cache.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_12_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cli__startup_8php.html" target="_self">cli_startup.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_13_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_14_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="Contact_8php.html" target="_self">Contact.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_15_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="contact__selectors_8php.html" target="_self">contact_selectors.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_16_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="contact__widgets_8php.html" target="_self">contact_widgets.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_17_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="conversation_8php.html" target="_self">conversation.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_18_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ConversationObject_8php.html" target="_self">ConversationObject.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_19_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cronhooks_8php.html" target="_self">cronhooks.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_20_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="crypto_8php.html" target="_self">crypto.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_21_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="datetime_8php.html" target="_self">datetime.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_22_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="deliver_8php.html" target="_self">deliver.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_23_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dir__fns_8php.html" target="_self">dir_fns.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_24_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2directory_8php.html" target="_self">directory.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_25_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="enotify_8php.html" target="_self">enotify.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_26_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="event_8php.html" target="_self">event.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_27_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="expire_8php.html" target="_self">expire.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_28_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="features_8php.html" target="_self">features.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_29_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2follow_8php.html" target="_self">follow.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_30_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="friendica__smarty_8php.html" target="_self">friendica_smarty.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_31_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="gprobe_8php.html" target="_self">gprobe.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_32_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2group_8php.html" target="_self">group.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_33_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="html2bbcode_8php.html" target="_self">html2bbcode.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_34_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="html2plain_8php.html" target="_self">html2plain.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_35_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="identity_8php.html" target="_self">identity.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_36_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ItemObject_8php.html" target="_self">ItemObject.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_37_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ITemplateEngine_8php.html" target="_self">ITemplateEngine.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_38_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="items_8php.html" target="_self">items.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_39_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="language_8php.html" target="_self">language.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_40_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2message_8php.html" target="_self">message.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_41_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="nav_8php.html" target="_self">nav.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_42_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2network_8php.html" target="_self">network.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_43_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="notifier_8php.html" target="_self">notifier.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_44_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2notify_8php.html" target="_self">notify.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_45_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="oauth_8php.html" target="_self">oauth.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_46_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2oembed_8php.html" target="_self">oembed.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_47_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="onepoll_8php.html" target="_self">onepoll.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_48_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="permissions_8php.html" target="_self">permissions.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_49_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2photos_8php.html" target="_self">photos.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_50_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="plugin_8php.html" target="_self">plugin.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_51_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="poller_8php.html" target="_self">poller.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_52_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profile__advanced_8php.html" target="_self">profile_advanced.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_53_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profile__selectors_8php.html" target="_self">profile_selectors.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_54_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ProtoDriver_8php.html" target="_self">ProtoDriver.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_55_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="queue_8php.html" target="_self">queue.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_56_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="queue__fn_8php.html" target="_self">queue_fn.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_57_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="security_8php.html" target="_self">security.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_58_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="session_8php.html" target="_self">session.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_59_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="socgraph_8php.html" target="_self">socgraph.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_60_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="system__unavailable_8php.html" target="_self">system_unavailable.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_61_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="taxonomy_8php.html" target="_self">taxonomy.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_62_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="template__processor_8php.html" target="_self">template_processor.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_63_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="text_8php.html" target="_self">text.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_64_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="zot_8php.html" target="_self">zot.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img id="arr_1_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('1_')"/><img id="img_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('1_')"/><a class="el" href="dir_d41ce877eb409a4791b288730010abe2.html" target="_self">mod</a></td><td class="desc"></td></tr>
+<tr id="row_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="__well__known_8php.html" target="_self">_well_known.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="acl_8php.html" target="_self">acl.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="admin_8php.html" target="_self">admin.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="allfriends_8php.html" target="_self">allfriends.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_4_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2api_8php.html" target="_self">api.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_5_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="apps_8php.html" target="_self">apps.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_6_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2attach_8php.html" target="_self">attach.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_7_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="channel_8php.html" target="_self">channel.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_8_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="chanview_8php.html" target="_self">chanview.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_9_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="common_8php.html" target="_self">common.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_10_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="community_8php.html" target="_self">community.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_11_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="connections_8php.html" target="_self">connections.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_12_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="contactgroup_8php.html" target="_self">contactgroup.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_13_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="crepair_8php.html" target="_self">crepair.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_14_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="delegate_8php.html" target="_self">delegate.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_15_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2directory_8php.html" target="_self">directory.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_16_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dirfind_8php.html" target="_self">dirfind.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_17_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dirsearch_8php.html" target="_self">dirsearch.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_18_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="display_8php.html" target="_self">display.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_19_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="editpost_8php.html" target="_self">editpost.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_20_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="editwebpage_8php.html" target="_self">editwebpage.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_21_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="events_8php.html" target="_self">events.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_22_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="fbrowser_8php.html" target="_self">fbrowser.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_23_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="feed_8php.html" target="_self">feed.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_24_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="filer_8php.html" target="_self">filer.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_25_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="filerm_8php.html" target="_self">filerm.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_26_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2follow_8php.html" target="_self">follow.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_27_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="fsuggest_8php.html" target="_self">fsuggest.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_28_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2group_8php.html" target="_self">group.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_29_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="hcard_8php.html" target="_self">hcard.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_30_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="help_8php.html" target="_self">help.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_31_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="home_8php.html" target="_self">home.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_32_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="hostxrd_8php.html" target="_self">hostxrd.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_33_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="import_8php.html" target="_self">import.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_34_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="intro_8php.html" target="_self">intro.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_35_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="invite_8php.html" target="_self">invite.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_36_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="item_8php.html" target="_self">item.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_37_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="like_8php.html" target="_self">like.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_38_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="lockview_8php.html" target="_self">lockview.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_39_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="login_8php.html" target="_self">login.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_40_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="lostpass_8php.html" target="_self">lostpass.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_41_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="magic_8php.html" target="_self">magic.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_42_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="manage_8php.html" target="_self">manage.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_43_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="match_8php.html" target="_self">match.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_44_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2message_8php.html" target="_self">message.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_45_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mood_8php.html" target="_self">mood.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_46_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="msearch_8php.html" target="_self">msearch.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_47_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2network_8php.html" target="_self">network.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_48_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="new__channel_8php.html" target="_self">new_channel.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_49_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="nogroup_8php.html" target="_self">nogroup.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_50_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="notifications_8php.html" target="_self">notifications.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_51_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2notify_8php.html" target="_self">notify.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_52_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2oembed_8php.html" target="_self">oembed.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_53_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="oexchange_8php.html" target="_self">oexchange.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_54_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="opensearch_8php.html" target="_self">opensearch.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_55_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="page_8php.html" target="_self">page.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_56_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="parse__url_8php.html" target="_self">parse_url.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_57_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="photo_8php.html" target="_self">photo.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_58_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2photos_8php.html" target="_self">photos.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_59_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="php_8php.html" target="_self">php.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_60_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ping_8php.html" target="_self">ping.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_61_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="poco_8php.html" target="_self">poco.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_62_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="poke_8php.html" target="_self">poke.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_63_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="post_8php.html" target="_self">post.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_64_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="pretheme_8php.html" target="_self">pretheme.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_65_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="probe_8php.html" target="_self">probe.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_66_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profile_8php.html" target="_self">profile.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_67_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profile__photo_8php.html" target="_self">profile_photo.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_68_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profiles_8php.html" target="_self">profiles.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_69_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profperm_8php.html" target="_self">profperm.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_70_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="qsearch_8php.html" target="_self">qsearch.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_71_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="randprof_8php.html" target="_self">randprof.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_72_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="redir_8php.html" target="_self">redir.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_73_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="register_8php.html" target="_self">register.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_74_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="regmod_8php.html" target="_self">regmod.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_75_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="removeme_8php.html" target="_self">removeme.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_76_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rmagic_8php.html" target="_self">rmagic.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_77_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rsd__xml_8php.html" target="_self">rsd_xml.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_78_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="search_8php.html" target="_self">search.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_79_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="search__ac_8php.html" target="_self">search_ac.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_80_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="settings_8php.html" target="_self">settings.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_81_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="setup_8php.html" target="_self">setup.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_82_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="share_8php.html" target="_self">share.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_83_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="siteinfo_8php.html" target="_self">siteinfo.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_84_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="smilies_8php.html" target="_self">smilies.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_85_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="starred_8php.html" target="_self">starred.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_86_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="subthread_8php.html" target="_self">subthread.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_87_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="suggest_8php.html" target="_self">suggest.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_88_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="tagger_8php.html" target="_self">tagger.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_89_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="tagrm_8php.html" target="_self">tagrm.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_90_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="thing_8php.html" target="_self">thing.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_91_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="toggle__mobile_8php.html" target="_self">toggle_mobile.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_92_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="uexport_8php.html" target="_self">uexport.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_93_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__channel_8php.html" target="_self">update_channel.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_94_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__community_8php.html" target="_self">update_community.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_95_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__display_8php.html" target="_self">update_display.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_96_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__network_8php.html" target="_self">update_network.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_97_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__search_8php.html" target="_self">update_search.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_98_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="view_8php.html" target="_self">view.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_99_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="viewconnections_8php.html" target="_self">viewconnections.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_100_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="viewsrc_8php.html" target="_self">viewsrc.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_101_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="wall__attach_8php.html" target="_self">wall_attach.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_102_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="wall__upload_8php.html" target="_self">wall_upload.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_103_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="webfinger_8php.html" target="_self">webfinger.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_104_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="webpages_8php.html" target="_self">webpages.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_105_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="wfinger_8php.html" target="_self">wfinger.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_106_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="xchan_8php.html" target="_self">xchan.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_107_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="xrd_8php.html" target="_self">xrd.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_108_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="zfinger_8php.html" target="_self">zfinger.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_109_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="zotfeed_8php.html" target="_self">zotfeed.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img id="arr_2_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('2_')"/><img id="img_2_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('2_')"/><a class="el" href="dir_23ec12649285f9fabf3a6b7380226c28.html" target="_self">util</a></td><td class="desc"></td></tr>
+<tr id="row_2_0_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_2_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('2_0_')"/><img id="img_2_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('2_0_')"/><a class="el" href="dir_0eaa4a0adae8ba4811e133c6e594aeee.html" target="_self">fpostit</a></td><td class="desc"></td></tr>
+<tr id="row_2_0_0_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="fpostit_8php.html" target="_self">fpostit.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_1_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="db__update_8php.html" target="_self">db_update.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="docblox__errorchecker_8php.html" target="_self">docblox_errorchecker.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="extract_8php.html" target="_self">extract.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="friendica-to-smarty-tpl_8py.html" target="_self">friendica-to-smarty-tpl.py</a></td><td class="desc"></td></tr>
+<tr id="row_2_5_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="php2po_8php.html" target="_self">php2po.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_6_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="po2php_8php.html" target="_self">po2php.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_7_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="tpldebug_8php.html" target="_self">tpldebug.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_8_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="typo_8php.html" target="_self">typo.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_9_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="typohelper_8php.html" target="_self">typohelper.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_10_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="updatetpl_8py.html" target="_self">updatetpl.py</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img id="arr_3_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_')"/><img id="img_3_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_')"/><a class="el" href="dir_b2f003339c516cc00c8cadcafbe82f13.html" target="_self">view</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_0_')"/><img id="img_3_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_0_')"/><a class="el" href="dir_817f6d302394b98e59575acdb59998bc.html" target="_self">php</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="php_2default_8php.html" target="_self">default.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="full_8php.html" target="_self">full.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="minimal_8php.html" target="_self">minimal.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod__import_8php.html" target="_self">mod_import.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_4_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod__new__channel_8php.html" target="_self">mod_new_channel.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_5_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod__register_8php.html" target="_self">mod_register.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_6_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="php_2theme__init_8php.html" target="_self">theme_init.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_1_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_')"/><img id="img_3_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_')"/><a class="el" href="dir_8543001e5d25368a6edede3e63efb554.html" target="_self">theme</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_1_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_1_0_')"/><img id="img_3_1_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_0_')"/><a class="el" href="dir_55dbaf9b7b53c4fc605c9011743a7353.html" target="_self">redbasic</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_1_0_0_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_0_0_')"/><img id="img_3_1_0_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_0_0_')"/><a class="el" href="dir_032dd9e2cfe278a2cfa5eb9547448eb9.html" target="_self">php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_0_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="view_2theme_2redbasic_2php_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_0_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="redbasic_2php_2style_8php.html" target="_self">style.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_0_0_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="redbasic_2php_2theme_8php.html" target="_self">theme.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_1_1_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_1_')"/><img id="img_3_1_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_1_')"/><a class="el" href="dir_d795dfe8933002397556cc7aa16eca15.html" target="_self">redstrap</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_1_1_0_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_1_0_')"/><img id="img_3_1_1_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_1_0_')"/><a class="el" href="dir_6b44a0e797e2f12381093380e3e54763.html" target="_self">php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_1_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="view_2theme_2redstrap_2php_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_1_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="theme_2redstrap_2php_2default_8php.html" target="_self">default.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_1_0_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="redstrap_2php_2style_8php.html" target="_self">style.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_1_0_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="redstrap_2php_2theme_8php.html" target="_self">theme.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_1_0_4_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="theme_2redstrap_2php_2theme__init_8php.html" target="_self">theme_init.php</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="boot_8php.html" target="_self">boot.php</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/files.js b/doc/html/files.js
new file mode 100644
index 000000000..705395136
--- /dev/null
+++ b/doc/html/files.js
@@ -0,0 +1,8 @@
+var files =
+[
+ [ "include", "dir_d44c64559bbebec7f509842c48db8b23.html", "dir_d44c64559bbebec7f509842c48db8b23" ],
+ [ "mod", "dir_d41ce877eb409a4791b288730010abe2.html", "dir_d41ce877eb409a4791b288730010abe2" ],
+ [ "util", "dir_23ec12649285f9fabf3a6b7380226c28.html", "dir_23ec12649285f9fabf3a6b7380226c28" ],
+ [ "view", "dir_b2f003339c516cc00c8cadcafbe82f13.html", "dir_b2f003339c516cc00c8cadcafbe82f13" ],
+ [ "boot.php", "boot_8php.html", "boot_8php" ]
+]; \ No newline at end of file
diff --git a/doc/html/fpostit_8php.html b/doc/html/fpostit_8php.html
new file mode 100644
index 000000000..2271bcd54
--- /dev/null
+++ b/doc/html/fpostit_8php.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/fpostit/fpostit.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('fpostit_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">fpostit.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a3f3ae3ae61578b5671673914fd894443"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpostit_8php.html#a3f3ae3ae61578b5671673914fd894443">showForm</a> ($error, $content)</td></tr>
+<tr class="separator:a3f3ae3ae61578b5671673914fd894443"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a501b5ca82f287509fc691c88524064c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(($_POST[&quot;friendika_acct_name&quot;]!= <br class="typebreak"/>
+'')&amp;&amp;($_POST[&quot;friendika_password&quot;]!= <br class="typebreak"/>
+'')) if(isset($_GET['title'])) <br class="typebreak"/>
+<a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(isset($_GET['text'])) <a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(isset($_GET['url'])) <br class="typebreak"/>
+<a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>((isset($title))&amp;&amp;(isset($text))&amp;&amp;(isset($url)))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpostit_8php.html#a501b5ca82f287509fc691c88524064c1">else</a></td></tr>
+<tr class="separator:a501b5ca82f287509fc691c88524064c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a3f3ae3ae61578b5671673914fd894443"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">showForm </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$error</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$content</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a501b5ca82f287509fc691c88524064c1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (isset($_POST['submit'])) else</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Initial value:</b><div class="fragment"><div class="line">{</div>
+<div class="line"> $content = $_POST[<span class="stringliteral">&#39;content&#39;</span>]</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/fpostit_8php.js b/doc/html/fpostit_8php.js
new file mode 100644
index 000000000..f1da198d9
--- /dev/null
+++ b/doc/html/fpostit_8php.js
@@ -0,0 +1,5 @@
+var fpostit_8php =
+[
+ [ "showForm", "fpostit_8php.html#a3f3ae3ae61578b5671673914fd894443", null ],
+ [ "else", "fpostit_8php.html#a501b5ca82f287509fc691c88524064c1", null ]
+]; \ No newline at end of file
diff --git a/doc/html/fred-48.png b/doc/html/fred-48.png
new file mode 100644
index 000000000..7cee38ef6
--- /dev/null
+++ b/doc/html/fred-48.png
Binary files differ
diff --git a/doc/html/fresh_8md.html b/doc/html/fresh_8md.html
new file mode 100644
index 000000000..1624daf40
--- /dev/null
+++ b/doc/html/fresh_8md.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/fresh.md File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('fresh_8md.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">util/fresh.md File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/friendica-to-smarty-tpl_8py.html b/doc/html/friendica-to-smarty-tpl_8py.html
new file mode 100644
index 000000000..cbf96d98a
--- /dev/null
+++ b/doc/html/friendica-to-smarty-tpl_8py.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/friendica-to-smarty-tpl.py File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('friendica-to-smarty-tpl_8py.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">friendica-to-smarty-tpl.py File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacefriendica-to-smarty-tpl"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html">friendica-to-smarty-tpl</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a89388ea9b2826e8218ed480e917d8105"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a89388ea9b2826e8218ed480e917d8105">friendica-to-smarty-tpl.fToSmarty</a></td></tr>
+<tr class="separator:a89388ea9b2826e8218ed480e917d8105"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3719dd46e286a57d315e6adae1845854"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a3719dd46e286a57d315e6adae1845854">friendica-to-smarty-tpl.fix_element</a></td></tr>
+<tr class="separator:a3719dd46e286a57d315e6adae1845854"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a38503e37fe68ac27c88cce91a9ac9efa"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a38503e37fe68ac27c88cce91a9ac9efa">friendica-to-smarty-tpl.convert</a></td></tr>
+<tr class="separator:a38503e37fe68ac27c88cce91a9ac9efa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6b2c793958aae2aadc294577431f749"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#af6b2c793958aae2aadc294577431f749">friendica-to-smarty-tpl.help</a></td></tr>
+<tr class="separator:af6b2c793958aae2aadc294577431f749"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a0b4cf73d1a8d201a28d269eeb62a5d5c"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a0b4cf73d1a8d201a28d269eeb62a5d5c">friendica-to-smarty-tpl.ldelim</a> = '{{'</td></tr>
+<tr class="separator:a0b4cf73d1a8d201a28d269eeb62a5d5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8540514fb7c4aa18ad2dffa2a975036b"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a8540514fb7c4aa18ad2dffa2a975036b">friendica-to-smarty-tpl.rdelim</a> = '}}'</td></tr>
+<tr class="separator:a8540514fb7c4aa18ad2dffa2a975036b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a68d15934660cd1f4301ce251b1646f09"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a68d15934660cd1f4301ce251b1646f09">friendica-to-smarty-tpl.path</a> = ''</td></tr>
+<tr class="separator:a68d15934660cd1f4301ce251b1646f09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a005c1b7a69cac31fad72a941974ba7bb"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a005c1b7a69cac31fad72a941974ba7bb">friendica-to-smarty-tpl.outpath</a> = path+'smarty3/'</td></tr>
+<tr class="separator:a005c1b7a69cac31fad72a941974ba7bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae74419b16516956c66f7db714a93a6ac"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#ae74419b16516956c66f7db714a93a6ac">friendica-to-smarty-tpl.files</a> = os.listdir(path)</td></tr>
+<tr class="separator:ae74419b16516956c66f7db714a93a6ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5dfc21ab8282dda8e3a7dff43cd0e283"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a5dfc21ab8282dda8e3a7dff43cd0e283">friendica-to-smarty-tpl.php_tpl</a> = True</td></tr>
+<tr class="separator:a5dfc21ab8282dda8e3a7dff43cd0e283"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f9bf7a67d955c0d6be70a82097611c5"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a5f9bf7a67d955c0d6be70a82097611c5">friendica-to-smarty-tpl.filename</a> = os.path.join(path,a_file)</td></tr>
+<tr class="separator:a5f9bf7a67d955c0d6be70a82097611c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aecf730e0884bb4ddc6c0deb1ef85f8eb"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#aecf730e0884bb4ddc6c0deb1ef85f8eb">friendica-to-smarty-tpl.ext</a> = a_file.split('.')</td></tr>
+<tr class="separator:aecf730e0884bb4ddc6c0deb1ef85f8eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a965e1d6d6293654a56e029a7e454dec7"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a965e1d6d6293654a56e029a7e454dec7">friendica-to-smarty-tpl.f</a> = open(filename, 'r')</td></tr>
+<tr class="separator:a965e1d6d6293654a56e029a7e454dec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9ef87ccb2c9960501f5e02424a22d80"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#ad9ef87ccb2c9960501f5e02424a22d80">friendica-to-smarty-tpl.newfilename</a> = os.path.join(outpath,a_file)</td></tr>
+<tr class="separator:ad9ef87ccb2c9960501f5e02424a22d80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87182a9bab47640428bd0b2b9946bef9"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a87182a9bab47640428bd0b2b9946bef9">friendica-to-smarty-tpl.outf</a> = open(newfilename, 'w')</td></tr>
+<tr class="separator:a87182a9bab47640428bd0b2b9946bef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/friendica-to-smarty-tpl_8py.js b/doc/html/friendica-to-smarty-tpl_8py.js
new file mode 100644
index 000000000..41fc17aef
--- /dev/null
+++ b/doc/html/friendica-to-smarty-tpl_8py.js
@@ -0,0 +1,18 @@
+var friendica_to_smarty_tpl_8py =
+[
+ [ "convert", "friendica-to-smarty-tpl_8py.html#a38503e37fe68ac27c88cce91a9ac9efa", null ],
+ [ "fix_element", "friendica-to-smarty-tpl_8py.html#a3719dd46e286a57d315e6adae1845854", null ],
+ [ "fToSmarty", "friendica-to-smarty-tpl_8py.html#a89388ea9b2826e8218ed480e917d8105", null ],
+ [ "help", "friendica-to-smarty-tpl_8py.html#af6b2c793958aae2aadc294577431f749", null ],
+ [ "ext", "friendica-to-smarty-tpl_8py.html#aecf730e0884bb4ddc6c0deb1ef85f8eb", null ],
+ [ "f", "friendica-to-smarty-tpl_8py.html#a965e1d6d6293654a56e029a7e454dec7", null ],
+ [ "filename", "friendica-to-smarty-tpl_8py.html#a5f9bf7a67d955c0d6be70a82097611c5", null ],
+ [ "files", "friendica-to-smarty-tpl_8py.html#ae74419b16516956c66f7db714a93a6ac", null ],
+ [ "ldelim", "friendica-to-smarty-tpl_8py.html#a0b4cf73d1a8d201a28d269eeb62a5d5c", null ],
+ [ "newfilename", "friendica-to-smarty-tpl_8py.html#ad9ef87ccb2c9960501f5e02424a22d80", null ],
+ [ "outf", "friendica-to-smarty-tpl_8py.html#a87182a9bab47640428bd0b2b9946bef9", null ],
+ [ "outpath", "friendica-to-smarty-tpl_8py.html#a005c1b7a69cac31fad72a941974ba7bb", null ],
+ [ "path", "friendica-to-smarty-tpl_8py.html#a68d15934660cd1f4301ce251b1646f09", null ],
+ [ "php_tpl", "friendica-to-smarty-tpl_8py.html#a5dfc21ab8282dda8e3a7dff43cd0e283", null ],
+ [ "rdelim", "friendica-to-smarty-tpl_8py.html#a8540514fb7c4aa18ad2dffa2a975036b", null ]
+]; \ No newline at end of file
diff --git a/doc/html/friendica__smarty_8php.html b/doc/html/friendica__smarty_8php.html
new file mode 100644
index 000000000..c242f3933
--- /dev/null
+++ b/doc/html/friendica__smarty_8php.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/friendica_smarty.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('friendica__smarty_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">friendica_smarty.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFriendicaSmarty.html">FriendicaSmarty</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFriendicaSmartyEngine.html">FriendicaSmartyEngine</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/fsuggest_8php.html b/doc/html/fsuggest_8php.html
new file mode 100644
index 000000000..1bb670262
--- /dev/null
+++ b/doc/html/fsuggest_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/fsuggest.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('fsuggest_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">fsuggest.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a61ecfe10ce937ed526614f8fd3de3c7d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a61ecfe10ce937ed526614f8fd3de3c7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6c49ed4b50a387f1845f36844dd7998"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aa6c49ed4b50a387f1845f36844dd7998"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa6c49ed4b50a387f1845f36844dd7998"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fsuggest_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a61ecfe10ce937ed526614f8fd3de3c7d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fsuggest_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/fsuggest_8php.js b/doc/html/fsuggest_8php.js
new file mode 100644
index 000000000..e2c0f9a50
--- /dev/null
+++ b/doc/html/fsuggest_8php.js
@@ -0,0 +1,5 @@
+var fsuggest_8php =
+[
+ [ "fsuggest_content", "fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998", null ],
+ [ "fsuggest_post", "fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d", null ]
+]; \ No newline at end of file
diff --git a/doc/html/ftv2blank.png b/doc/html/ftv2blank.png
new file mode 100644
index 000000000..63c605bb4
--- /dev/null
+++ b/doc/html/ftv2blank.png
Binary files differ
diff --git a/doc/html/ftv2cl.png b/doc/html/ftv2cl.png
new file mode 100644
index 000000000..132f6577b
--- /dev/null
+++ b/doc/html/ftv2cl.png
Binary files differ
diff --git a/doc/html/ftv2doc.png b/doc/html/ftv2doc.png
new file mode 100644
index 000000000..17edabff9
--- /dev/null
+++ b/doc/html/ftv2doc.png
Binary files differ
diff --git a/doc/html/ftv2folderclosed.png b/doc/html/ftv2folderclosed.png
new file mode 100644
index 000000000..bb8ab35ed
--- /dev/null
+++ b/doc/html/ftv2folderclosed.png
Binary files differ
diff --git a/doc/html/ftv2folderopen.png b/doc/html/ftv2folderopen.png
new file mode 100644
index 000000000..d6c7f676a
--- /dev/null
+++ b/doc/html/ftv2folderopen.png
Binary files differ
diff --git a/doc/html/ftv2lastnode.png b/doc/html/ftv2lastnode.png
new file mode 100644
index 000000000..63c605bb4
--- /dev/null
+++ b/doc/html/ftv2lastnode.png
Binary files differ
diff --git a/doc/html/ftv2link.png b/doc/html/ftv2link.png
new file mode 100644
index 000000000..17edabff9
--- /dev/null
+++ b/doc/html/ftv2link.png
Binary files differ
diff --git a/doc/html/ftv2mlastnode.png b/doc/html/ftv2mlastnode.png
new file mode 100644
index 000000000..0b63f6d38
--- /dev/null
+++ b/doc/html/ftv2mlastnode.png
Binary files differ
diff --git a/doc/html/ftv2mnode.png b/doc/html/ftv2mnode.png
new file mode 100644
index 000000000..0b63f6d38
--- /dev/null
+++ b/doc/html/ftv2mnode.png
Binary files differ
diff --git a/doc/html/ftv2mo.png b/doc/html/ftv2mo.png
new file mode 100644
index 000000000..4bfb80f76
--- /dev/null
+++ b/doc/html/ftv2mo.png
Binary files differ
diff --git a/doc/html/ftv2node.png b/doc/html/ftv2node.png
new file mode 100644
index 000000000..63c605bb4
--- /dev/null
+++ b/doc/html/ftv2node.png
Binary files differ
diff --git a/doc/html/ftv2ns.png b/doc/html/ftv2ns.png
new file mode 100644
index 000000000..72e3d71c2
--- /dev/null
+++ b/doc/html/ftv2ns.png
Binary files differ
diff --git a/doc/html/ftv2plastnode.png b/doc/html/ftv2plastnode.png
new file mode 100644
index 000000000..c6ee22f93
--- /dev/null
+++ b/doc/html/ftv2plastnode.png
Binary files differ
diff --git a/doc/html/ftv2pnode.png b/doc/html/ftv2pnode.png
new file mode 100644
index 000000000..c6ee22f93
--- /dev/null
+++ b/doc/html/ftv2pnode.png
Binary files differ
diff --git a/doc/html/ftv2splitbar.png b/doc/html/ftv2splitbar.png
new file mode 100644
index 000000000..fe895f2c5
--- /dev/null
+++ b/doc/html/ftv2splitbar.png
Binary files differ
diff --git a/doc/html/ftv2vertline.png b/doc/html/ftv2vertline.png
new file mode 100644
index 000000000..63c605bb4
--- /dev/null
+++ b/doc/html/ftv2vertline.png
Binary files differ
diff --git a/doc/html/full_8php.html b/doc/html/full_8php.html
new file mode 100644
index 000000000..483a31152
--- /dev/null
+++ b/doc/html/full_8php.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/php/full.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('full_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">full.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a6fac1b4b8cdfde06ea1b7713479e92db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db">if</a> (<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt; <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav</a> &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td></tr>
+<tr class="separator:a6fac1b4b8cdfde06ea1b7713479e92db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a6fac1b4b8cdfde06ea1b7713479e92db"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt; <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav</a> &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/full_8php.js b/doc/html/full_8php.js
new file mode 100644
index 000000000..c63a31b79
--- /dev/null
+++ b/doc/html/full_8php.js
@@ -0,0 +1,4 @@
+var full_8php =
+[
+ [ "if", "full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db", null ]
+]; \ No newline at end of file
diff --git a/doc/html/functions.html b/doc/html/functions.html
new file mode 100644
index 000000000..786e54615
--- /dev/null
+++ b/doc/html/functions.html
@@ -0,0 +1,437 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_0x24"></a>- $ -</h3><ul>
+<li>$account
+: <a class="el" href="classApp.html#a14bd4b1c29f3aff371fe5d4cb11aeea3">App</a>
+</li>
+<li>$app
+: <a class="el" href="classBaseObject.html#a02cc4cd8fa26b6fc76d92fde54b4e4b1">BaseObject</a>
+</li>
+<li>$apps
+: <a class="el" href="classApp.html#a230e975296cf164da2fee35ef720964f">App</a>
+</li>
+<li>$argc
+: <a class="el" href="classApp.html#af58db526040829b1c8bd95561b329262">App</a>
+</li>
+<li>$argv
+: <a class="el" href="classApp.html#ab3da757abe5cb45bf88f07cc51a73b58">App</a>
+</li>
+<li>$baseurl
+: <a class="el" href="classApp.html#ad5175536561021548ae8188e24c7b80c">App</a>
+</li>
+<li>$cached_profile_image
+: <a class="el" href="classApp.html#abe0e4fa91097f7a6588e1213a834121c">App</a>
+</li>
+<li>$cached_profile_picdate
+: <a class="el" href="classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e">App</a>
+</li>
+<li>$category
+: <a class="el" href="classApp.html#a5cfc098c061b7d765add58fd2ca97445">App</a>
+</li>
+<li>$channel
+: <a class="el" href="classApp.html#a050b0696118da47e8b30859ad1a2c149">App</a>
+, <a class="el" href="classItem.html#acc32426c0f465391be8a99ad810c7b8e">Item</a>
+</li>
+<li>$children
+: <a class="el" href="classItem.html#a80dcd0fb7673776c0967839d429c2a0f">Item</a>
+</li>
+<li>$cid
+: <a class="el" href="classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0">App</a>
+</li>
+<li>$cmd
+: <a class="el" href="classApp.html#a495ec082c2719314e536070ca1ce073d">App</a>
+</li>
+<li>$comment_box_template
+: <a class="el" href="classItem.html#a90743c8348b13213275c223bb9333aa0">Item</a>
+</li>
+<li>$commentable
+: <a class="el" href="classConversation.html#afd4965d22a6e4bfea2f35e931b3273c6">Conversation</a>
+</li>
+<li>$config
+: <a class="el" href="classApp.html#ac73dc90e4764497e2f1b7e6612c8fb88">App</a>
+</li>
+<li>$connected
+: <a class="el" href="classdba__driver.html#a205f6535e399700b6fca2492f96f2229">dba_driver</a>
+</li>
+<li>$contact
+: <a class="el" href="classApp.html#a98ef4cfd36693a3457c879b76bc6d694">App</a>
+</li>
+<li>$contacts
+: <a class="el" href="classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2">App</a>
+</li>
+<li>$content
+: <a class="el" href="classApp.html#ac1d80a14492acc932715d54567d8a589">App</a>
+</li>
+<li>$conversation
+: <a class="el" href="classItem.html#a007424e3e3171dcfb4312a02161da6cd">Item</a>
+</li>
+<li>$css_sources
+: <a class="el" href="classApp.html#a6f55d087e1ff4710132c1b0863faa2ee">App</a>
+</li>
+<li>$curl_code
+: <a class="el" href="classApp.html#a256360c9184fed6d7556e0bc0a835d7f">App</a>
+</li>
+<li>$curl_headers
+: <a class="el" href="classApp.html#af5007c42a693afd9c4899c243b2e1363">App</a>
+</li>
+<li>$d
+: <a class="el" href="classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38">Template</a>
+</li>
+<li>$data
+: <a class="el" href="classApp.html#a0ce85be198e46570366cb3344f3c55b8">App</a>
+, <a class="el" href="classItem.html#aec24e233f9098f902b1e57e60dcb2019">Item</a>
+</li>
+<li>$db
+: <a class="el" href="classApp.html#a330410a288f3393d53772f5e98f857ea">App</a>
+, <a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">dba_driver</a>
+</li>
+<li>$debug
+: <a class="el" href="classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a">Template</a>
+, <a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">dba_driver</a>
+</li>
+<li>$done
+: <a class="el" href="classTemplate.html#abda4c8d049f70553338eae7c905e9d5c">Template</a>
+</li>
+<li>$error
+: <a class="el" href="classApp.html#ac1a8b2cd40609b231a560201a08852ba">App</a>
+, <a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">dba_driver</a>
+</li>
+<li>$filename
+: <a class="el" href="classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690">FriendicaSmarty</a>
+</li>
+<li>$force_max_items
+: <a class="el" href="classApp.html#ae3f47830543d0d902f66913def8db66b">App</a>
+</li>
+<li>$groups
+: <a class="el" href="classApp.html#ac6e6b1c7d6df408580ff79977fcfa656">App</a>
+</li>
+<li>$height
+: <a class="el" href="classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80">photo_driver</a>
+</li>
+<li>$hooks
+: <a class="el" href="classApp.html#a3694aa1907aa103a2adbc71f926f0fa0">App</a>
+</li>
+<li>$hostname
+: <a class="el" href="classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3">App</a>
+</li>
+<li>$identities
+: <a class="el" href="classApp.html#a7954862f44f606b0ff83d4c74d15e792">App</a>
+</li>
+<li>$image
+: <a class="el" href="classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55">photo_driver</a>
+</li>
+<li>$interactive
+: <a class="el" href="classApp.html#a4c7cfc62d39508086cf300dc2e39c4df">App</a>
+</li>
+<li>$js_sources
+: <a class="el" href="classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d">App</a>
+</li>
+<li>$lang
+: <a class="el" href="classTemplate.html#ace26b8a4252fbc1c385d2b5e1e93e5c8">Template</a>
+</li>
+<li>$language
+: <a class="el" href="classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f">App</a>
+</li>
+<li>$ldelim
+: <a class="el" href="classApp.html#a59dd4b665c70e7dbd80682c014ff7145">App</a>
+</li>
+<li>$mode
+: <a class="el" href="classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a">Conversation</a>
+</li>
+<li>$module
+: <a class="el" href="classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d">App</a>
+</li>
+<li>$module_loaded
+: <a class="el" href="classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165">App</a>
+</li>
+<li>$name
+: <a class="el" href="classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02">FriendicaSmartyEngine</a>
+, <a class="el" href="classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae">Template</a>
+</li>
+<li>$nav_sel
+: <a class="el" href="classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c">App</a>
+</li>
+<li>$nodes
+: <a class="el" href="classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1">Template</a>
+</li>
+<li>$observer
+: <a class="el" href="classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f">App</a>
+, <a class="el" href="classConversation.html#a8748445aa26047ebed5141f3c3cbc244">Conversation</a>
+</li>
+<li>$owner_name
+: <a class="el" href="classItem.html#a9594df6014b0b6f45364ea7a34510130">Item</a>
+</li>
+<li>$owner_photo
+: <a class="el" href="classItem.html#a078f95b4134ce3a1df344cf8d386f986">Item</a>
+</li>
+<li>$owner_url
+: <a class="el" href="classItem.html#afa54851df82962c7c42dea3cc9f5c92c">Item</a>
+</li>
+<li>$page
+: <a class="el" href="classApp.html#a4b67935096f66d1f14b657399a8461ac">App</a>
+</li>
+<li>$pager
+: <a class="el" href="classApp.html#a6bcb19cdc4907077da72864686d5a780">App</a>
+</li>
+<li>$parent
+: <a class="el" href="classItem.html#a1a1e42877e6ac7af50286142ceb483d2">Item</a>
+</li>
+<li>$path
+: <a class="el" href="classApp.html#acad5896b7a79ae31433ad8f89606c728">App</a>
+</li>
+<li>$perms
+: <a class="el" href="classApp.html#ab47de68fa39806d1fb0976407e188b77">App</a>
+</li>
+<li>$plugins
+: <a class="el" href="classApp.html#ae9f96338f32187d308b67b980eea0008">App</a>
+</li>
+<li>$preview
+: <a class="el" href="classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae">Conversation</a>
+</li>
+<li>$profile
+: <a class="el" href="classApp.html#a57d041fcc003d08c127dfa99a02bc192">App</a>
+</li>
+<li>$profile_owner
+: <a class="el" href="classConversation.html#a2f12724ef0244e9049fe1bb9641b516d">Conversation</a>
+</li>
+<li>$profile_uid
+: <a class="el" href="classApp.html#a08c24d6a6fc52fcc784b0f765f13b820">App</a>
+</li>
+<li>$query_string
+: <a class="el" href="classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f">App</a>
+</li>
+<li>$r
+: <a class="el" href="classTemplate.html#aac9a4638f11271e1b1dcc9f247242718">Template</a>
+</li>
+<li>$rdelim
+: <a class="el" href="classApp.html#a244b2d53b21be269aad2269d23192f95">App</a>
+</li>
+<li>$redirect_url
+: <a class="el" href="classItem.html#a5b561415861f5b89b0733aacfe0428d1">Item</a>
+</li>
+<li>$replace
+: <a class="el" href="classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10">Template</a>
+</li>
+<li>$scheme
+: <a class="el" href="classApp.html#ad082d63acc078e5bf23825a03bdd6a76">App</a>
+</li>
+<li>$search
+: <a class="el" href="classTemplate.html#a317d535946dc065c35dd5cd38380e6c6">Template</a>
+</li>
+<li>$sourcename
+: <a class="el" href="classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11">App</a>
+</li>
+<li>$stack
+: <a class="el" href="classTemplate.html#a6f0efc256688c36110180b501067ff11">Template</a>
+</li>
+<li>$strings
+: <a class="el" href="classApp.html#a5f64620473a9727a48ebe9cf6f335a98">App</a>
+</li>
+<li>$template
+: <a class="el" href="classItem.html#a7f7bc059de377319282cb4ef4a828480">Item</a>
+</li>
+<li>$template_engine_instance
+: <a class="el" href="classApp.html#a6844aedad10e201b8c3d80cfc9e876d3">App</a>
+</li>
+<li>$template_engines
+: <a class="el" href="classApp.html#a6859a4848a5c0049b4134cc4b34228b6">App</a>
+</li>
+<li>$theme
+: <a class="el" href="classApp.html#a764cc6cd7578132c21d2b4545de9301c">App</a>
+</li>
+<li>$theme_info
+: <a class="el" href="classApp.html#aeca29fd4f7192ca07369b3c598c36e67">App</a>
+</li>
+<li>$theme_thread_allow
+: <a class="el" href="classApp.html#a487332f8de40414ca1a54a4265570b70">App</a>
+</li>
+<li>$threaded
+: <a class="el" href="classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2">Item</a>
+</li>
+<li>$threads
+: <a class="el" href="classConversation.html#a41f4a549e6a99f98935c4742addd22c8">Conversation</a>
+</li>
+<li>$timezone
+: <a class="el" href="classApp.html#ab35b01a366a2ea95725e97af278f87ab">App</a>
+</li>
+<li>$toplevel
+: <a class="el" href="classItem.html#a5cfa6cf964f433a917a81cab079ff9d8">Item</a>
+</li>
+<li>$type
+: <a class="el" href="classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03">photo_driver</a>
+</li>
+<li>$types
+: <a class="el" href="classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03">photo_driver</a>
+</li>
+<li>$user
+: <a class="el" href="classApp.html#a91fd3c8b89016113b05f3be24805ccff">App</a>
+</li>
+<li>$valid
+: <a class="el" href="classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9">photo_driver</a>
+</li>
+<li>$videoheight
+: <a class="el" href="classApp.html#a56b1a432c96aef8b1971f779c9d93c8c">App</a>
+</li>
+<li>$videowidth
+: <a class="el" href="classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8">App</a>
+</li>
+<li>$visiting
+: <a class="el" href="classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8">Item</a>
+</li>
+<li>$wall_to_wall
+: <a class="el" href="classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189">Item</a>
+</li>
+<li>$widgetlist
+: <a class="el" href="classApp.html#a4833bee2eae4ad1691a04fa19e11a766">App</a>
+</li>
+<li>$widgets
+: <a class="el" href="classApp.html#aa5a87c46ab3fee21362c466bf78042ef">App</a>
+</li>
+<li>$width
+: <a class="el" href="classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1">photo_driver</a>
+</li>
+<li>$writable
+: <a class="el" href="classConversation.html#ae81221251307e315f566a11f921ce0a9">Conversation</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x5f.html b/doc/html/functions_0x5f.html
new file mode 100644
index 000000000..f6b498986
--- /dev/null
+++ b/doc/html/functions_0x5f.html
@@ -0,0 +1,192 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li class="current"><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x5f.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>__construct()
+: <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App</a>
+, <a class="el" href="classConversation.html#a6b064d00c56a6b7dec359d4348711c84">Conversation</a>
+, <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty</a>
+, <a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">photo_driver</a>
+, <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine</a>
+, <a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">dba_driver</a>
+, <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item</a>
+, <a class="el" href="classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6">FKOAuth1</a>
+</li>
+<li>__destruct()
+: <a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">dba_driver</a>
+, <a class="el" href="classphoto__driver.html#ae4501abdc9651359f81d036b63625686">photo_driver</a>
+</li>
+<li>_build_nodes()
+: <a class="el" href="classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4">Template</a>
+</li>
+<li>_get_var()
+: <a class="el" href="classTemplate.html#aae9c4d761ea1298e745e8052d7910194">Template</a>
+</li>
+<li>_pop_stack()
+: <a class="el" href="classTemplate.html#a35d599c9b53a02e2fe2232e5b7ed5da7">Template</a>
+</li>
+<li>_preg_error()
+: <a class="el" href="classTemplate.html#a37c15f6d1ade500943629f27a62808b7">Template</a>
+</li>
+<li>_push_stack()
+: <a class="el" href="classTemplate.html#aa6a087e0b7b887dd1c98c9e0ecbd3b29">Template</a>
+</li>
+<li>_replcb()
+: <a class="el" href="classTemplate.html#ae791766c3d055f7f1ba5a5e60d647934">Template</a>
+</li>
+<li>_replcb_debug()
+: <a class="el" href="classTemplate.html#a4b933954086d9e01a1804b0b1c6ee93e">Template</a>
+</li>
+<li>_replcb_for()
+: <a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">Template</a>
+</li>
+<li>_replcb_if()
+: <a class="el" href="classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228">Template</a>
+</li>
+<li>_replcb_inc()
+: <a class="el" href="classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677">Template</a>
+</li>
+<li>_replcb_node()
+: <a class="el" href="classTemplate.html#aa6f9bd7a8f7512efcf90e8d376fe05ee">Template</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x61.html b/doc/html/functions_0x61.html
new file mode 100644
index 000000000..78d8582fe
--- /dev/null
+++ b/doc/html/functions_0x61.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li class="current"><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x61.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>acknowledge_permissions()
+: <a class="el" href="classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a">ProtoDriver</a>
+, <a class="el" href="classZotDriver.html#a3cfdf443da4e5326e205855d7c0054f2">ZotDriver</a>
+</li>
+<li>add_child()
+: <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item</a>
+</li>
+<li>add_thread()
+: <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x62.html b/doc/html/functions_0x62.html
new file mode 100644
index 000000000..2109a048c
--- /dev/null
+++ b/doc/html/functions_0x62.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li class="current"><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x62.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>build_pagehead()
+: <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x63.html b/doc/html/functions_0x63.html
new file mode 100644
index 000000000..8d6d31f90
--- /dev/null
+++ b/doc/html/functions_0x63.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li class="current"><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x63.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>change_permissions()
+: <a class="el" href="classProtoDriver.html#a34b97ca5ef2165f2e16eb2fe59ff6c67">ProtoDriver</a>
+, <a class="el" href="classZotDriver.html#a6776935156accb0f170e2e24577133db">ZotDriver</a>
+</li>
+<li>check_wall_to_wall()
+: <a class="el" href="classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8">Item</a>
+</li>
+<li>clear()
+: <a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">Cache</a>
+</li>
+<li>close()
+: <a class="el" href="classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975">dba_driver</a>
+, <a class="el" href="classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e">dba_mysql</a>
+, <a class="el" href="classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55">dba_mysqli</a>
+</li>
+<li>collect()
+: <a class="el" href="classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d">ProtoDriver</a>
+, <a class="el" href="classZotDriver.html#af65febb26031eb7f39871b9e2a539797">ZotDriver</a>
+</li>
+<li>collect_private()
+: <a class="el" href="classZotDriver.html#a2e15ff09772f0608203dad1c98299394">ZotDriver</a>
+, <a class="el" href="classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b">ProtoDriver</a>
+</li>
+<li>connect()
+: <a class="el" href="classdba__mysql.html#a1887338627ce0e28786839363014bd0b">dba_mysql</a>
+, <a class="el" href="classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1">dba_mysqli</a>
+, <a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">dba_driver</a>
+</li>
+<li>count_descendants()
+: <a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">Item</a>
+</li>
+<li>cropImage()
+: <a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">photo_gd</a>
+, <a class="el" href="classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4">photo_imagick</a>
+, <a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">photo_driver</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x64.html b/doc/html/functions_0x64.html
new file mode 100644
index 000000000..1c6308182
--- /dev/null
+++ b/doc/html/functions_0x64.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li class="current"><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x64.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>dbg()
+: <a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dba_driver</a>
+</li>
+<li>deliver()
+: <a class="el" href="classProtoDriver.html#a85e9063f6d0c304410cd246f7900ea1b">ProtoDriver</a>
+, <a class="el" href="classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f">ZotDriver</a>
+</li>
+<li>deliver_private()
+: <a class="el" href="classProtoDriver.html#ae5b44739f84c10d00a9b65adf3785181">ProtoDriver</a>
+, <a class="el" href="classZotDriver.html#afaaf9941169fc966e43e25b25e6daea6">ZotDriver</a>
+</li>
+<li>destroy()
+: <a class="el" href="classphoto__imagick.html#afd49d64751ee3a298eac0c0ce0ba0207">photo_imagick</a>
+, <a class="el" href="classphoto__driver.html#ae1a9edaf846983780dc65ea77d99e813">photo_driver</a>
+, <a class="el" href="classphoto__gd.html#a724703ecf71b1f1d04a80e86c76db6b1">photo_gd</a>
+</li>
+<li>discover()
+: <a class="el" href="classProtoDriver.html#a64a3868cffe27d601d55f69a2ecc4337">ProtoDriver</a>
+, <a class="el" href="classZotDriver.html#a40d328ff9f6b0a238afe286dddee1514">ZotDriver</a>
+</li>
+<li>doScaleImage()
+: <a class="el" href="classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f">photo_driver</a>
+, <a class="el" href="classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66">photo_imagick</a>
+, <a class="el" href="classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754">photo_gd</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x65.html b/doc/html/functions_0x65.html
new file mode 100644
index 000000000..d9ce44b5c
--- /dev/null
+++ b/doc/html/functions_0x65.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li class="current"><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x65.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>escape()
+: <a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">dba_driver</a>
+, <a class="el" href="classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64">dba_mysqli</a>
+, <a class="el" href="classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e">dba_mysql</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x66.html b/doc/html/functions_0x66.html
new file mode 100644
index 000000000..7172c99a9
--- /dev/null
+++ b/doc/html/functions_0x66.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li class="current"><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x66.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>flip()
+: <a class="el" href="classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832">photo_driver</a>
+, <a class="el" href="classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393">photo_imagick</a>
+, <a class="el" href="classphoto__gd.html#a44cedef376044018702d9355ddc813ce">photo_gd</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x67.html b/doc/html/functions_0x67.html
new file mode 100644
index 000000000..3d4de9504
--- /dev/null
+++ b/doc/html/functions_0x67.html
@@ -0,0 +1,283 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li class="current"><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x67.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>gen_token()
+: <a class="el" href="classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819">FKOAuthDataStore</a>
+</li>
+<li>get()
+: <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache</a>
+</li>
+<li>get_account()
+: <a class="el" href="classApp.html#a08bc87aff64f39fbc084e9d6545cee4d">App</a>
+</li>
+<li>get_app()
+: <a class="el" href="classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2">BaseObject</a>
+</li>
+<li>get_apps()
+: <a class="el" href="classApp.html#a5c63eabdc7fdd8b6e3348980ec16a3ad">App</a>
+</li>
+<li>get_baseurl()
+: <a class="el" href="classApp.html#a604d659d6977a99de42a160343e5289a">App</a>
+</li>
+<li>get_channel()
+: <a class="el" href="classApp.html#a084e03c77686d8c13390fef3f7428a2b">App</a>
+</li>
+<li>get_child()
+: <a class="el" href="classItem.html#a632185dd25c5caf277067c76230a4320">Item</a>
+</li>
+<li>get_children()
+: <a class="el" href="classItem.html#aa0ee775ec94abccec6c798428835d001">Item</a>
+</li>
+<li>get_comment_box()
+: <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item</a>
+</li>
+<li>get_comment_box_template()
+: <a class="el" href="classItem.html#a904421c7a427411bb2ab473bca872f63">Item</a>
+</li>
+<li>get_conversation()
+: <a class="el" href="classItem.html#a0c301aaed2b7d682728d18db3a22afa3">Item</a>
+</li>
+<li>get_curl_code()
+: <a class="el" href="classApp.html#ab410451f132910773d0a02e35d0dced9">App</a>
+</li>
+<li>get_curl_headers()
+: <a class="el" href="classApp.html#abaf2173711e861ae4aebf43a7f70157e">App</a>
+</li>
+<li>get_data()
+: <a class="el" href="classItem.html#ad3638f93065693c1f69eb349feb1b7aa">Item</a>
+</li>
+<li>get_data_value()
+: <a class="el" href="classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c">Item</a>
+</li>
+<li>get_FormatsMap()
+: <a class="el" href="classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4">photo_imagick</a>
+</li>
+<li>get_groups()
+: <a class="el" href="classApp.html#a4659785d13e4bac0bed50dbb1b0d4299">App</a>
+</li>
+<li>get_hostname()
+: <a class="el" href="classApp.html#a622eace13f8fc9f4b5672a68e2bc4396">App</a>
+</li>
+<li>get_id()
+: <a class="el" href="classItem.html#ac0f27e58532612f6e7a54c8a621b9b92">Item</a>
+</li>
+<li>get_intltext_template()
+: <a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">FriendicaSmartyEngine</a>
+</li>
+<li>get_markup_template()
+: <a class="el" href="classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88">FriendicaSmartyEngine</a>
+, <a class="el" href="interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442">ITemplateEngine</a>
+, <a class="el" href="classTemplate.html#afd97b4b1e7754a550e67c0ea79159059">Template</a>
+</li>
+<li>get_mode()
+: <a class="el" href="classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd">Conversation</a>
+</li>
+<li>get_observer()
+: <a class="el" href="classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2">App</a>
+, <a class="el" href="classConversation.html#ae3d4190142e12b57051f11f2911f77a0">Conversation</a>
+</li>
+<li>get_owner_name()
+: <a class="el" href="classItem.html#a67892aa23d19f4431bb2e5f43c74000e">Item</a>
+</li>
+<li>get_owner_photo()
+: <a class="el" href="classItem.html#aa541bc4290e51bfd688d6921bebabc73">Item</a>
+</li>
+<li>get_owner_url()
+: <a class="el" href="classItem.html#a9f2d219da712390f59012fc32a342074">Item</a>
+</li>
+<li>get_parent()
+: <a class="el" href="classItem.html#a4b92e3a9d6212c553aa2661489bd95d8">Item</a>
+</li>
+<li>get_path()
+: <a class="el" href="classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be">App</a>
+</li>
+<li>get_perms()
+: <a class="el" href="classApp.html#adb5a4bb657881e553978ff390babd01f">App</a>
+</li>
+<li>get_profile_owner()
+: <a class="el" href="classConversation.html#a5effe8ad3007e01333df44b81432b813">Conversation</a>
+</li>
+<li>get_redirect_url()
+: <a class="el" href="classItem.html#a428f448f89a8629055ea3294eb942aea">Item</a>
+</li>
+<li>get_template()
+: <a class="el" href="classItem.html#aba23a0a9d89e316d2b343cc46d695d91">Item</a>
+</li>
+<li>get_template_data()
+: <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item</a>
+, <a class="el" href="classConversation.html#a2a96b7a6573ae53db861624659e831cb">Conversation</a>
+</li>
+<li>get_template_engine()
+: <a class="el" href="classApp.html#acb27e607fe4c82603444676e25c36b70">App</a>
+</li>
+<li>get_template_ldelim()
+: <a class="el" href="classApp.html#a2eb832a8577dee7d40b93abdf6d1d35a">App</a>
+</li>
+<li>get_template_rdelim()
+: <a class="el" href="classApp.html#aab23c59172310fd30f2d60dc039d3eea">App</a>
+</li>
+<li>get_thread()
+: <a class="el" href="classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8">Conversation</a>
+</li>
+<li>get_widgets()
+: <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">App</a>
+</li>
+<li>getExt()
+: <a class="el" href="classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba">photo_driver</a>
+</li>
+<li>getHeight()
+: <a class="el" href="classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468">photo_driver</a>
+</li>
+<li>getImage()
+: <a class="el" href="classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484">photo_gd</a>
+, <a class="el" href="classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5">photo_driver</a>
+, <a class="el" href="classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc">photo_imagick</a>
+</li>
+<li>getType()
+: <a class="el" href="classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3">photo_driver</a>
+</li>
+<li>getWidth()
+: <a class="el" href="classphoto__driver.html#acc30486acee9e89e32701f44a1738117">photo_driver</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x68.html b/doc/html/functions_0x68.html
new file mode 100644
index 000000000..9cd17ba4a
--- /dev/null
+++ b/doc/html/functions_0x68.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li class="current"><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x68.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>head_get_icon()
+: <a class="el" href="classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166">App</a>
+</li>
+<li>head_set_icon()
+: <a class="el" href="classApp.html#a8863703a0305eaa45eb970dbd2046291">App</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x69.html b/doc/html/functions_0x69.html
new file mode 100644
index 000000000..7a702c8c5
--- /dev/null
+++ b/doc/html/functions_0x69.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li class="current"><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x69.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>imageString()
+: <a class="el" href="classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd">photo_driver</a>
+, <a class="el" href="classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00">photo_gd</a>
+, <a class="el" href="classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019">photo_imagick</a>
+</li>
+<li>install()
+: <a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">dba_driver</a>
+</li>
+<li>is_commentable()
+: <a class="el" href="classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3">Conversation</a>
+</li>
+<li>is_preview()
+: <a class="el" href="classConversation.html#adf25ce023b69a166c63c6e84e02c136a">Conversation</a>
+</li>
+<li>is_threaded()
+: <a class="el" href="classItem.html#a5b2fafdca55aefeaa08993a5a60529f0">Item</a>
+</li>
+<li>is_toplevel()
+: <a class="el" href="classItem.html#aa49e40f961dff66da32c5ae110e32993">Item</a>
+</li>
+<li>is_valid()
+: <a class="el" href="classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab">photo_driver</a>
+</li>
+<li>is_visiting()
+: <a class="el" href="classItem.html#a97c7feeea7f26a73176cb19faa455e12">Item</a>
+</li>
+<li>is_wall_to_wall()
+: <a class="el" href="classItem.html#aabf87ded59c25b5fe2b2296678e70509">Item</a>
+</li>
+<li>is_writable()
+: <a class="el" href="classConversation.html#a5879199008b96bee7550b576d614e1c1">Conversation</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x6c.html b/doc/html/functions_0x6c.html
new file mode 100644
index 000000000..ec2ce797d
--- /dev/null
+++ b/doc/html/functions_0x6c.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li class="current"><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x6c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>load()
+: <a class="el" href="classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712">photo_driver</a>
+, <a class="el" href="classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9">photo_gd</a>
+, <a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">photo_imagick</a>
+</li>
+<li>loginUser()
+: <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1</a>
+</li>
+<li>lookup_consumer()
+: <a class="el" href="classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1">FKOAuthDataStore</a>
+</li>
+<li>lookup_nonce()
+: <a class="el" href="classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599">FKOAuthDataStore</a>
+</li>
+<li>lookup_token()
+: <a class="el" href="classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab">FKOAuthDataStore</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x6e.html b/doc/html/functions_0x6e.html
new file mode 100644
index 000000000..1a93d117a
--- /dev/null
+++ b/doc/html/functions_0x6e.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li class="current"><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x6e.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>new_access_token()
+: <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore</a>
+</li>
+<li>new_request_token()
+: <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x6f.html b/doc/html/functions_0x6f.html
new file mode 100644
index 000000000..2d5a3fc61
--- /dev/null
+++ b/doc/html/functions_0x6f.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li class="current"><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x6f.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>orient()
+: <a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">photo_driver</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x70.html b/doc/html/functions_0x70.html
new file mode 100644
index 000000000..bb37ba1c0
--- /dev/null
+++ b/doc/html/functions_0x70.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li class="current"><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x70.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>parsed()
+: <a class="el" href="classFriendicaSmarty.html#a6a4d4281d6fa9be1d37a97b188ffe8c9">FriendicaSmarty</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x71.html b/doc/html/functions_0x71.html
new file mode 100644
index 000000000..3445bb050
--- /dev/null
+++ b/doc/html/functions_0x71.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li class="current"><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x71.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
+<li>q()
+: <a class="el" href="classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555">dba_driver</a>
+, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli</a>
+, <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x72.html b/doc/html/functions_0x72.html
new file mode 100644
index 000000000..11ec483d4
--- /dev/null
+++ b/doc/html/functions_0x72.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li class="current"><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x72.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>register_template_engine()
+: <a class="el" href="classApp.html#abf46a653d8499e7c253cc1be894a6d83">App</a>
+</li>
+<li>remove_child()
+: <a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">Item</a>
+</li>
+<li>remove_parent()
+: <a class="el" href="classItem.html#aa452b5bcd8dea12119b09212c615cb41">Item</a>
+</li>
+<li>replace()
+: <a class="el" href="classTemplate.html#a285b5b2007dbbf733476273df3fed4ef">Template</a>
+</li>
+<li>replace_macros()
+: <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">Template</a>
+, <a class="el" href="classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2">FriendicaSmartyEngine</a>
+, <a class="el" href="interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243">ITemplateEngine</a>
+</li>
+<li>rotate()
+: <a class="el" href="classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f">photo_imagick</a>
+, <a class="el" href="classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec">photo_driver</a>
+, <a class="el" href="classphoto__gd.html#a77f87730b11093b76980c541159df37d">photo_gd</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x73.html b/doc/html/functions_0x73.html
new file mode 100644
index 000000000..123d7313e
--- /dev/null
+++ b/doc/html/functions_0x73.html
@@ -0,0 +1,236 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li class="current"><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x73.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>saveImage()
+: <a class="el" href="classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3">photo_driver</a>
+</li>
+<li>scaleImage()
+: <a class="el" href="classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0">photo_driver</a>
+</li>
+<li>scaleImageSquare()
+: <a class="el" href="classphoto__driver.html#a56634842b071b96502716e9843ea5361">photo_driver</a>
+</li>
+<li>scaleImageUp()
+: <a class="el" href="classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce">photo_driver</a>
+</li>
+<li>send()
+: <a class="el" href="classenotify.html#afbc088860f534c6c05788b48cfc262c6">enotify</a>
+</li>
+<li>set()
+: <a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">Cache</a>
+</li>
+<li>set_account()
+: <a class="el" href="classApp.html#aeb1fe1c8ad9aa639909bd183ce578536">App</a>
+</li>
+<li>set_app()
+: <a class="el" href="classBaseObject.html#a0a9acda12d751692834cf6999f889223">BaseObject</a>
+</li>
+<li>set_apps()
+: <a class="el" href="classApp.html#abea5a4f77dcd53c928dc4eed86616637">App</a>
+</li>
+<li>set_baseurl()
+: <a class="el" href="classApp.html#a78788f6e9d8b713b138f81e457c5cd08">App</a>
+</li>
+<li>set_channel()
+: <a class="el" href="classApp.html#a89e9feb2bfb5253883a9720beaffe876">App</a>
+</li>
+<li>set_conversation()
+: <a class="el" href="classItem.html#aa8b1bbc4236890694635295e46d7fd72">Item</a>
+</li>
+<li>set_curl_code()
+: <a class="el" href="classApp.html#a5e6a6bd641e4d9909df56f0283c03821">App</a>
+</li>
+<li>set_curl_headers()
+: <a class="el" href="classApp.html#a9632092d9e8fdaa82a9fc4586433fd31">App</a>
+</li>
+<li>set_groups()
+: <a class="el" href="classApp.html#a3d84af5e42082098672531cd1a618853">App</a>
+</li>
+<li>set_hostname()
+: <a class="el" href="classApp.html#a344d2b7dc2f276648d521aee4da1731c">App</a>
+</li>
+<li>set_mode()
+: <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation</a>
+</li>
+<li>set_observer()
+: <a class="el" href="classApp.html#a4776d9322edea17fae56afa5d01a323e">App</a>
+</li>
+<li>set_pager_itemspage()
+: <a class="el" href="classApp.html#a4bdd7bfed62f50515fce652127bf481b">App</a>
+</li>
+<li>set_pager_total()
+: <a class="el" href="classApp.html#a560189f048d3db2f526841963cc43e97">App</a>
+</li>
+<li>set_parent()
+: <a class="el" href="classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7">Item</a>
+</li>
+<li>set_path()
+: <a class="el" href="classApp.html#adb060d5c7f35a521ec7ec0effbe08097">App</a>
+</li>
+<li>set_perms()
+: <a class="el" href="classApp.html#a557d7b779d8259027f4724ebf7b248dc">App</a>
+</li>
+<li>set_profile_owner()
+: <a class="el" href="classConversation.html#a8898bddc1e8990e81dab9a13a532cc93">Conversation</a>
+</li>
+<li>set_template_engine()
+: <a class="el" href="classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7">App</a>
+</li>
+<li>set_widget()
+: <a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">App</a>
+</li>
+<li>setDimensions()
+: <a class="el" href="classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143">photo_driver</a>
+, <a class="el" href="classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb">photo_imagick</a>
+, <a class="el" href="classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e">photo_gd</a>
+</li>
+<li>store()
+: <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver</a>
+</li>
+<li>supportedTypes()
+: <a class="el" href="classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7">photo_imagick</a>
+, <a class="el" href="classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da">photo_driver</a>
+, <a class="el" href="classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd">photo_gd</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x74.html b/doc/html/functions_0x74.html
new file mode 100644
index 000000000..1eb41e3fb
--- /dev/null
+++ b/doc/html/functions_0x74.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li class="current"><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x74.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>template_engine()
+: <a class="el" href="classApp.html#a94a1ed2dc493c58612d17035b74ae736">App</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_0x76.html b/doc/html/functions_0x76.html
new file mode 100644
index 000000000..26c145fba
--- /dev/null
+++ b/doc/html/functions_0x76.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_0x24"><span>$</span></a></li>
+ <li><a href="functions_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
+ <li class="current"><a href="functions_0x76.html#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x76.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>var_replace()
+: <a class="el" href="classTemplate.html#abbc484016ddf5d818f55b823cae6feb0">Template</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_dup.js b/doc/html/functions_dup.js
new file mode 100644
index 000000000..97db7c0bf
--- /dev/null
+++ b/doc/html/functions_dup.js
@@ -0,0 +1,23 @@
+var functions_dup =
+[
+ [ "$", "functions.html", null ],
+ [ "_", "functions_0x5f.html", null ],
+ [ "a", "functions_0x61.html", null ],
+ [ "b", "functions_0x62.html", null ],
+ [ "c", "functions_0x63.html", null ],
+ [ "d", "functions_0x64.html", null ],
+ [ "e", "functions_0x65.html", null ],
+ [ "f", "functions_0x66.html", null ],
+ [ "g", "functions_0x67.html", null ],
+ [ "h", "functions_0x68.html", null ],
+ [ "i", "functions_0x69.html", null ],
+ [ "l", "functions_0x6c.html", null ],
+ [ "n", "functions_0x6e.html", null ],
+ [ "o", "functions_0x6f.html", null ],
+ [ "p", "functions_0x70.html", null ],
+ [ "q", "functions_0x71.html", null ],
+ [ "r", "functions_0x72.html", null ],
+ [ "s", "functions_0x73.html", null ],
+ [ "t", "functions_0x74.html", null ],
+ [ "v", "functions_0x76.html", null ]
+]; \ No newline at end of file
diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html
new file mode 100644
index 000000000..667b650e7
--- /dev/null
+++ b/doc/html/functions_func.html
@@ -0,0 +1,676 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index__"><span>_</span></a></li>
+ <li><a href="#index_a"><span>a</span></a></li>
+ <li><a href="#index_b"><span>b</span></a></li>
+ <li><a href="#index_c"><span>c</span></a></li>
+ <li><a href="#index_d"><span>d</span></a></li>
+ <li><a href="#index_e"><span>e</span></a></li>
+ <li><a href="#index_f"><span>f</span></a></li>
+ <li><a href="#index_g"><span>g</span></a></li>
+ <li><a href="#index_h"><span>h</span></a></li>
+ <li><a href="#index_i"><span>i</span></a></li>
+ <li><a href="#index_l"><span>l</span></a></li>
+ <li><a href="#index_n"><span>n</span></a></li>
+ <li><a href="#index_o"><span>o</span></a></li>
+ <li><a href="#index_p"><span>p</span></a></li>
+ <li><a href="#index_q"><span>q</span></a></li>
+ <li><a href="#index_r"><span>r</span></a></li>
+ <li><a href="#index_s"><span>s</span></a></li>
+ <li><a href="#index_t"><span>t</span></a></li>
+ <li><a href="#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>__construct()
+: <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App</a>
+, <a class="el" href="classConversation.html#a6b064d00c56a6b7dec359d4348711c84">Conversation</a>
+, <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty</a>
+, <a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">photo_driver</a>
+, <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine</a>
+, <a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">dba_driver</a>
+, <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item</a>
+, <a class="el" href="classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6">FKOAuth1</a>
+</li>
+<li>__destruct()
+: <a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">dba_driver</a>
+, <a class="el" href="classphoto__driver.html#ae4501abdc9651359f81d036b63625686">photo_driver</a>
+</li>
+<li>_build_nodes()
+: <a class="el" href="classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4">Template</a>
+</li>
+<li>_get_var()
+: <a class="el" href="classTemplate.html#aae9c4d761ea1298e745e8052d7910194">Template</a>
+</li>
+<li>_pop_stack()
+: <a class="el" href="classTemplate.html#a35d599c9b53a02e2fe2232e5b7ed5da7">Template</a>
+</li>
+<li>_preg_error()
+: <a class="el" href="classTemplate.html#a37c15f6d1ade500943629f27a62808b7">Template</a>
+</li>
+<li>_push_stack()
+: <a class="el" href="classTemplate.html#aa6a087e0b7b887dd1c98c9e0ecbd3b29">Template</a>
+</li>
+<li>_replcb()
+: <a class="el" href="classTemplate.html#ae791766c3d055f7f1ba5a5e60d647934">Template</a>
+</li>
+<li>_replcb_debug()
+: <a class="el" href="classTemplate.html#a4b933954086d9e01a1804b0b1c6ee93e">Template</a>
+</li>
+<li>_replcb_for()
+: <a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">Template</a>
+</li>
+<li>_replcb_if()
+: <a class="el" href="classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228">Template</a>
+</li>
+<li>_replcb_inc()
+: <a class="el" href="classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677">Template</a>
+</li>
+<li>_replcb_node()
+: <a class="el" href="classTemplate.html#aa6f9bd7a8f7512efcf90e8d376fe05ee">Template</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>acknowledge_permissions()
+: <a class="el" href="classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a">ProtoDriver</a>
+, <a class="el" href="classZotDriver.html#a3cfdf443da4e5326e205855d7c0054f2">ZotDriver</a>
+</li>
+<li>add_child()
+: <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item</a>
+</li>
+<li>add_thread()
+: <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>build_pagehead()
+: <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>change_permissions()
+: <a class="el" href="classProtoDriver.html#a34b97ca5ef2165f2e16eb2fe59ff6c67">ProtoDriver</a>
+, <a class="el" href="classZotDriver.html#a6776935156accb0f170e2e24577133db">ZotDriver</a>
+</li>
+<li>check_wall_to_wall()
+: <a class="el" href="classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8">Item</a>
+</li>
+<li>clear()
+: <a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">Cache</a>
+</li>
+<li>close()
+: <a class="el" href="classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975">dba_driver</a>
+, <a class="el" href="classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e">dba_mysql</a>
+, <a class="el" href="classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55">dba_mysqli</a>
+</li>
+<li>collect()
+: <a class="el" href="classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d">ProtoDriver</a>
+, <a class="el" href="classZotDriver.html#af65febb26031eb7f39871b9e2a539797">ZotDriver</a>
+</li>
+<li>collect_private()
+: <a class="el" href="classZotDriver.html#a2e15ff09772f0608203dad1c98299394">ZotDriver</a>
+, <a class="el" href="classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b">ProtoDriver</a>
+</li>
+<li>connect()
+: <a class="el" href="classdba__mysql.html#a1887338627ce0e28786839363014bd0b">dba_mysql</a>
+, <a class="el" href="classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1">dba_mysqli</a>
+, <a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">dba_driver</a>
+</li>
+<li>count_descendants()
+: <a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">Item</a>
+</li>
+<li>cropImage()
+: <a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">photo_gd</a>
+, <a class="el" href="classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4">photo_imagick</a>
+, <a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">photo_driver</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>dbg()
+: <a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dba_driver</a>
+</li>
+<li>deliver()
+: <a class="el" href="classProtoDriver.html#a85e9063f6d0c304410cd246f7900ea1b">ProtoDriver</a>
+, <a class="el" href="classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f">ZotDriver</a>
+</li>
+<li>deliver_private()
+: <a class="el" href="classProtoDriver.html#ae5b44739f84c10d00a9b65adf3785181">ProtoDriver</a>
+, <a class="el" href="classZotDriver.html#afaaf9941169fc966e43e25b25e6daea6">ZotDriver</a>
+</li>
+<li>destroy()
+: <a class="el" href="classphoto__imagick.html#afd49d64751ee3a298eac0c0ce0ba0207">photo_imagick</a>
+, <a class="el" href="classphoto__driver.html#ae1a9edaf846983780dc65ea77d99e813">photo_driver</a>
+, <a class="el" href="classphoto__gd.html#a724703ecf71b1f1d04a80e86c76db6b1">photo_gd</a>
+</li>
+<li>discover()
+: <a class="el" href="classProtoDriver.html#a64a3868cffe27d601d55f69a2ecc4337">ProtoDriver</a>
+, <a class="el" href="classZotDriver.html#a40d328ff9f6b0a238afe286dddee1514">ZotDriver</a>
+</li>
+<li>doScaleImage()
+: <a class="el" href="classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f">photo_driver</a>
+, <a class="el" href="classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66">photo_imagick</a>
+, <a class="el" href="classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754">photo_gd</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>escape()
+: <a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">dba_driver</a>
+, <a class="el" href="classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64">dba_mysqli</a>
+, <a class="el" href="classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e">dba_mysql</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>flip()
+: <a class="el" href="classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832">photo_driver</a>
+, <a class="el" href="classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393">photo_imagick</a>
+, <a class="el" href="classphoto__gd.html#a44cedef376044018702d9355ddc813ce">photo_gd</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>gen_token()
+: <a class="el" href="classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819">FKOAuthDataStore</a>
+</li>
+<li>get()
+: <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache</a>
+</li>
+<li>get_account()
+: <a class="el" href="classApp.html#a08bc87aff64f39fbc084e9d6545cee4d">App</a>
+</li>
+<li>get_app()
+: <a class="el" href="classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2">BaseObject</a>
+</li>
+<li>get_apps()
+: <a class="el" href="classApp.html#a5c63eabdc7fdd8b6e3348980ec16a3ad">App</a>
+</li>
+<li>get_baseurl()
+: <a class="el" href="classApp.html#a604d659d6977a99de42a160343e5289a">App</a>
+</li>
+<li>get_channel()
+: <a class="el" href="classApp.html#a084e03c77686d8c13390fef3f7428a2b">App</a>
+</li>
+<li>get_child()
+: <a class="el" href="classItem.html#a632185dd25c5caf277067c76230a4320">Item</a>
+</li>
+<li>get_children()
+: <a class="el" href="classItem.html#aa0ee775ec94abccec6c798428835d001">Item</a>
+</li>
+<li>get_comment_box()
+: <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item</a>
+</li>
+<li>get_comment_box_template()
+: <a class="el" href="classItem.html#a904421c7a427411bb2ab473bca872f63">Item</a>
+</li>
+<li>get_conversation()
+: <a class="el" href="classItem.html#a0c301aaed2b7d682728d18db3a22afa3">Item</a>
+</li>
+<li>get_curl_code()
+: <a class="el" href="classApp.html#ab410451f132910773d0a02e35d0dced9">App</a>
+</li>
+<li>get_curl_headers()
+: <a class="el" href="classApp.html#abaf2173711e861ae4aebf43a7f70157e">App</a>
+</li>
+<li>get_data()
+: <a class="el" href="classItem.html#ad3638f93065693c1f69eb349feb1b7aa">Item</a>
+</li>
+<li>get_data_value()
+: <a class="el" href="classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c">Item</a>
+</li>
+<li>get_FormatsMap()
+: <a class="el" href="classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4">photo_imagick</a>
+</li>
+<li>get_groups()
+: <a class="el" href="classApp.html#a4659785d13e4bac0bed50dbb1b0d4299">App</a>
+</li>
+<li>get_hostname()
+: <a class="el" href="classApp.html#a622eace13f8fc9f4b5672a68e2bc4396">App</a>
+</li>
+<li>get_id()
+: <a class="el" href="classItem.html#ac0f27e58532612f6e7a54c8a621b9b92">Item</a>
+</li>
+<li>get_intltext_template()
+: <a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">FriendicaSmartyEngine</a>
+</li>
+<li>get_markup_template()
+: <a class="el" href="classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88">FriendicaSmartyEngine</a>
+, <a class="el" href="interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442">ITemplateEngine</a>
+, <a class="el" href="classTemplate.html#afd97b4b1e7754a550e67c0ea79159059">Template</a>
+</li>
+<li>get_mode()
+: <a class="el" href="classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd">Conversation</a>
+</li>
+<li>get_observer()
+: <a class="el" href="classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2">App</a>
+, <a class="el" href="classConversation.html#ae3d4190142e12b57051f11f2911f77a0">Conversation</a>
+</li>
+<li>get_owner_name()
+: <a class="el" href="classItem.html#a67892aa23d19f4431bb2e5f43c74000e">Item</a>
+</li>
+<li>get_owner_photo()
+: <a class="el" href="classItem.html#aa541bc4290e51bfd688d6921bebabc73">Item</a>
+</li>
+<li>get_owner_url()
+: <a class="el" href="classItem.html#a9f2d219da712390f59012fc32a342074">Item</a>
+</li>
+<li>get_parent()
+: <a class="el" href="classItem.html#a4b92e3a9d6212c553aa2661489bd95d8">Item</a>
+</li>
+<li>get_path()
+: <a class="el" href="classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be">App</a>
+</li>
+<li>get_perms()
+: <a class="el" href="classApp.html#adb5a4bb657881e553978ff390babd01f">App</a>
+</li>
+<li>get_profile_owner()
+: <a class="el" href="classConversation.html#a5effe8ad3007e01333df44b81432b813">Conversation</a>
+</li>
+<li>get_redirect_url()
+: <a class="el" href="classItem.html#a428f448f89a8629055ea3294eb942aea">Item</a>
+</li>
+<li>get_template()
+: <a class="el" href="classItem.html#aba23a0a9d89e316d2b343cc46d695d91">Item</a>
+</li>
+<li>get_template_data()
+: <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item</a>
+, <a class="el" href="classConversation.html#a2a96b7a6573ae53db861624659e831cb">Conversation</a>
+</li>
+<li>get_template_engine()
+: <a class="el" href="classApp.html#acb27e607fe4c82603444676e25c36b70">App</a>
+</li>
+<li>get_template_ldelim()
+: <a class="el" href="classApp.html#a2eb832a8577dee7d40b93abdf6d1d35a">App</a>
+</li>
+<li>get_template_rdelim()
+: <a class="el" href="classApp.html#aab23c59172310fd30f2d60dc039d3eea">App</a>
+</li>
+<li>get_thread()
+: <a class="el" href="classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8">Conversation</a>
+</li>
+<li>get_widgets()
+: <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">App</a>
+</li>
+<li>getExt()
+: <a class="el" href="classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba">photo_driver</a>
+</li>
+<li>getHeight()
+: <a class="el" href="classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468">photo_driver</a>
+</li>
+<li>getImage()
+: <a class="el" href="classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484">photo_gd</a>
+, <a class="el" href="classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5">photo_driver</a>
+, <a class="el" href="classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc">photo_imagick</a>
+</li>
+<li>getType()
+: <a class="el" href="classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3">photo_driver</a>
+</li>
+<li>getWidth()
+: <a class="el" href="classphoto__driver.html#acc30486acee9e89e32701f44a1738117">photo_driver</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>head_get_icon()
+: <a class="el" href="classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166">App</a>
+</li>
+<li>head_set_icon()
+: <a class="el" href="classApp.html#a8863703a0305eaa45eb970dbd2046291">App</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>imageString()
+: <a class="el" href="classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd">photo_driver</a>
+, <a class="el" href="classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00">photo_gd</a>
+, <a class="el" href="classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019">photo_imagick</a>
+</li>
+<li>install()
+: <a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">dba_driver</a>
+</li>
+<li>is_commentable()
+: <a class="el" href="classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3">Conversation</a>
+</li>
+<li>is_preview()
+: <a class="el" href="classConversation.html#adf25ce023b69a166c63c6e84e02c136a">Conversation</a>
+</li>
+<li>is_threaded()
+: <a class="el" href="classItem.html#a5b2fafdca55aefeaa08993a5a60529f0">Item</a>
+</li>
+<li>is_toplevel()
+: <a class="el" href="classItem.html#aa49e40f961dff66da32c5ae110e32993">Item</a>
+</li>
+<li>is_valid()
+: <a class="el" href="classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab">photo_driver</a>
+</li>
+<li>is_visiting()
+: <a class="el" href="classItem.html#a97c7feeea7f26a73176cb19faa455e12">Item</a>
+</li>
+<li>is_wall_to_wall()
+: <a class="el" href="classItem.html#aabf87ded59c25b5fe2b2296678e70509">Item</a>
+</li>
+<li>is_writable()
+: <a class="el" href="classConversation.html#a5879199008b96bee7550b576d614e1c1">Conversation</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>load()
+: <a class="el" href="classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712">photo_driver</a>
+, <a class="el" href="classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9">photo_gd</a>
+, <a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">photo_imagick</a>
+</li>
+<li>loginUser()
+: <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1</a>
+</li>
+<li>lookup_consumer()
+: <a class="el" href="classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1">FKOAuthDataStore</a>
+</li>
+<li>lookup_nonce()
+: <a class="el" href="classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599">FKOAuthDataStore</a>
+</li>
+<li>lookup_token()
+: <a class="el" href="classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab">FKOAuthDataStore</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>new_access_token()
+: <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore</a>
+</li>
+<li>new_request_token()
+: <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>orient()
+: <a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">photo_driver</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>parsed()
+: <a class="el" href="classFriendicaSmarty.html#a6a4d4281d6fa9be1d37a97b188ffe8c9">FriendicaSmarty</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
+<li>q()
+: <a class="el" href="classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555">dba_driver</a>
+, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli</a>
+, <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>register_template_engine()
+: <a class="el" href="classApp.html#abf46a653d8499e7c253cc1be894a6d83">App</a>
+</li>
+<li>remove_child()
+: <a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">Item</a>
+</li>
+<li>remove_parent()
+: <a class="el" href="classItem.html#aa452b5bcd8dea12119b09212c615cb41">Item</a>
+</li>
+<li>replace()
+: <a class="el" href="classTemplate.html#a285b5b2007dbbf733476273df3fed4ef">Template</a>
+</li>
+<li>replace_macros()
+: <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">Template</a>
+, <a class="el" href="classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2">FriendicaSmartyEngine</a>
+, <a class="el" href="interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243">ITemplateEngine</a>
+</li>
+<li>rotate()
+: <a class="el" href="classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f">photo_imagick</a>
+, <a class="el" href="classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec">photo_driver</a>
+, <a class="el" href="classphoto__gd.html#a77f87730b11093b76980c541159df37d">photo_gd</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>saveImage()
+: <a class="el" href="classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3">photo_driver</a>
+</li>
+<li>scaleImage()
+: <a class="el" href="classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0">photo_driver</a>
+</li>
+<li>scaleImageSquare()
+: <a class="el" href="classphoto__driver.html#a56634842b071b96502716e9843ea5361">photo_driver</a>
+</li>
+<li>scaleImageUp()
+: <a class="el" href="classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce">photo_driver</a>
+</li>
+<li>send()
+: <a class="el" href="classenotify.html#afbc088860f534c6c05788b48cfc262c6">enotify</a>
+</li>
+<li>set()
+: <a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">Cache</a>
+</li>
+<li>set_account()
+: <a class="el" href="classApp.html#aeb1fe1c8ad9aa639909bd183ce578536">App</a>
+</li>
+<li>set_app()
+: <a class="el" href="classBaseObject.html#a0a9acda12d751692834cf6999f889223">BaseObject</a>
+</li>
+<li>set_apps()
+: <a class="el" href="classApp.html#abea5a4f77dcd53c928dc4eed86616637">App</a>
+</li>
+<li>set_baseurl()
+: <a class="el" href="classApp.html#a78788f6e9d8b713b138f81e457c5cd08">App</a>
+</li>
+<li>set_channel()
+: <a class="el" href="classApp.html#a89e9feb2bfb5253883a9720beaffe876">App</a>
+</li>
+<li>set_conversation()
+: <a class="el" href="classItem.html#aa8b1bbc4236890694635295e46d7fd72">Item</a>
+</li>
+<li>set_curl_code()
+: <a class="el" href="classApp.html#a5e6a6bd641e4d9909df56f0283c03821">App</a>
+</li>
+<li>set_curl_headers()
+: <a class="el" href="classApp.html#a9632092d9e8fdaa82a9fc4586433fd31">App</a>
+</li>
+<li>set_groups()
+: <a class="el" href="classApp.html#a3d84af5e42082098672531cd1a618853">App</a>
+</li>
+<li>set_hostname()
+: <a class="el" href="classApp.html#a344d2b7dc2f276648d521aee4da1731c">App</a>
+</li>
+<li>set_mode()
+: <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation</a>
+</li>
+<li>set_observer()
+: <a class="el" href="classApp.html#a4776d9322edea17fae56afa5d01a323e">App</a>
+</li>
+<li>set_pager_itemspage()
+: <a class="el" href="classApp.html#a4bdd7bfed62f50515fce652127bf481b">App</a>
+</li>
+<li>set_pager_total()
+: <a class="el" href="classApp.html#a560189f048d3db2f526841963cc43e97">App</a>
+</li>
+<li>set_parent()
+: <a class="el" href="classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7">Item</a>
+</li>
+<li>set_path()
+: <a class="el" href="classApp.html#adb060d5c7f35a521ec7ec0effbe08097">App</a>
+</li>
+<li>set_perms()
+: <a class="el" href="classApp.html#a557d7b779d8259027f4724ebf7b248dc">App</a>
+</li>
+<li>set_profile_owner()
+: <a class="el" href="classConversation.html#a8898bddc1e8990e81dab9a13a532cc93">Conversation</a>
+</li>
+<li>set_template_engine()
+: <a class="el" href="classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7">App</a>
+</li>
+<li>set_widget()
+: <a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">App</a>
+</li>
+<li>setDimensions()
+: <a class="el" href="classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143">photo_driver</a>
+, <a class="el" href="classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb">photo_imagick</a>
+, <a class="el" href="classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e">photo_gd</a>
+</li>
+<li>store()
+: <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver</a>
+</li>
+<li>supportedTypes()
+: <a class="el" href="classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7">photo_imagick</a>
+, <a class="el" href="classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da">photo_driver</a>
+, <a class="el" href="classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd">photo_gd</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>template_engine()
+: <a class="el" href="classApp.html#a94a1ed2dc493c58612d17035b74ae736">App</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>var_replace()
+: <a class="el" href="classTemplate.html#abbc484016ddf5d818f55b823cae6feb0">Template</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/functions_vars.html b/doc/html/functions_vars.html
new file mode 100644
index 000000000..350e83b32
--- /dev/null
+++ b/doc/html/functions_vars.html
@@ -0,0 +1,418 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Members - Variables</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index_0x24"><span>$</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_vars.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_0x24"></a>- $ -</h3><ul>
+<li>$account
+: <a class="el" href="classApp.html#a14bd4b1c29f3aff371fe5d4cb11aeea3">App</a>
+</li>
+<li>$app
+: <a class="el" href="classBaseObject.html#a02cc4cd8fa26b6fc76d92fde54b4e4b1">BaseObject</a>
+</li>
+<li>$apps
+: <a class="el" href="classApp.html#a230e975296cf164da2fee35ef720964f">App</a>
+</li>
+<li>$argc
+: <a class="el" href="classApp.html#af58db526040829b1c8bd95561b329262">App</a>
+</li>
+<li>$argv
+: <a class="el" href="classApp.html#ab3da757abe5cb45bf88f07cc51a73b58">App</a>
+</li>
+<li>$baseurl
+: <a class="el" href="classApp.html#ad5175536561021548ae8188e24c7b80c">App</a>
+</li>
+<li>$cached_profile_image
+: <a class="el" href="classApp.html#abe0e4fa91097f7a6588e1213a834121c">App</a>
+</li>
+<li>$cached_profile_picdate
+: <a class="el" href="classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e">App</a>
+</li>
+<li>$category
+: <a class="el" href="classApp.html#a5cfc098c061b7d765add58fd2ca97445">App</a>
+</li>
+<li>$channel
+: <a class="el" href="classApp.html#a050b0696118da47e8b30859ad1a2c149">App</a>
+, <a class="el" href="classItem.html#acc32426c0f465391be8a99ad810c7b8e">Item</a>
+</li>
+<li>$children
+: <a class="el" href="classItem.html#a80dcd0fb7673776c0967839d429c2a0f">Item</a>
+</li>
+<li>$cid
+: <a class="el" href="classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0">App</a>
+</li>
+<li>$cmd
+: <a class="el" href="classApp.html#a495ec082c2719314e536070ca1ce073d">App</a>
+</li>
+<li>$comment_box_template
+: <a class="el" href="classItem.html#a90743c8348b13213275c223bb9333aa0">Item</a>
+</li>
+<li>$commentable
+: <a class="el" href="classConversation.html#afd4965d22a6e4bfea2f35e931b3273c6">Conversation</a>
+</li>
+<li>$config
+: <a class="el" href="classApp.html#ac73dc90e4764497e2f1b7e6612c8fb88">App</a>
+</li>
+<li>$connected
+: <a class="el" href="classdba__driver.html#a205f6535e399700b6fca2492f96f2229">dba_driver</a>
+</li>
+<li>$contact
+: <a class="el" href="classApp.html#a98ef4cfd36693a3457c879b76bc6d694">App</a>
+</li>
+<li>$contacts
+: <a class="el" href="classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2">App</a>
+</li>
+<li>$content
+: <a class="el" href="classApp.html#ac1d80a14492acc932715d54567d8a589">App</a>
+</li>
+<li>$conversation
+: <a class="el" href="classItem.html#a007424e3e3171dcfb4312a02161da6cd">Item</a>
+</li>
+<li>$css_sources
+: <a class="el" href="classApp.html#a6f55d087e1ff4710132c1b0863faa2ee">App</a>
+</li>
+<li>$curl_code
+: <a class="el" href="classApp.html#a256360c9184fed6d7556e0bc0a835d7f">App</a>
+</li>
+<li>$curl_headers
+: <a class="el" href="classApp.html#af5007c42a693afd9c4899c243b2e1363">App</a>
+</li>
+<li>$d
+: <a class="el" href="classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38">Template</a>
+</li>
+<li>$data
+: <a class="el" href="classApp.html#a0ce85be198e46570366cb3344f3c55b8">App</a>
+, <a class="el" href="classItem.html#aec24e233f9098f902b1e57e60dcb2019">Item</a>
+</li>
+<li>$db
+: <a class="el" href="classApp.html#a330410a288f3393d53772f5e98f857ea">App</a>
+, <a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">dba_driver</a>
+</li>
+<li>$debug
+: <a class="el" href="classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a">Template</a>
+, <a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">dba_driver</a>
+</li>
+<li>$done
+: <a class="el" href="classTemplate.html#abda4c8d049f70553338eae7c905e9d5c">Template</a>
+</li>
+<li>$error
+: <a class="el" href="classApp.html#ac1a8b2cd40609b231a560201a08852ba">App</a>
+, <a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">dba_driver</a>
+</li>
+<li>$filename
+: <a class="el" href="classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690">FriendicaSmarty</a>
+</li>
+<li>$force_max_items
+: <a class="el" href="classApp.html#ae3f47830543d0d902f66913def8db66b">App</a>
+</li>
+<li>$groups
+: <a class="el" href="classApp.html#ac6e6b1c7d6df408580ff79977fcfa656">App</a>
+</li>
+<li>$height
+: <a class="el" href="classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80">photo_driver</a>
+</li>
+<li>$hooks
+: <a class="el" href="classApp.html#a3694aa1907aa103a2adbc71f926f0fa0">App</a>
+</li>
+<li>$hostname
+: <a class="el" href="classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3">App</a>
+</li>
+<li>$identities
+: <a class="el" href="classApp.html#a7954862f44f606b0ff83d4c74d15e792">App</a>
+</li>
+<li>$image
+: <a class="el" href="classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55">photo_driver</a>
+</li>
+<li>$interactive
+: <a class="el" href="classApp.html#a4c7cfc62d39508086cf300dc2e39c4df">App</a>
+</li>
+<li>$js_sources
+: <a class="el" href="classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d">App</a>
+</li>
+<li>$lang
+: <a class="el" href="classTemplate.html#ace26b8a4252fbc1c385d2b5e1e93e5c8">Template</a>
+</li>
+<li>$language
+: <a class="el" href="classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f">App</a>
+</li>
+<li>$ldelim
+: <a class="el" href="classApp.html#a59dd4b665c70e7dbd80682c014ff7145">App</a>
+</li>
+<li>$mode
+: <a class="el" href="classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a">Conversation</a>
+</li>
+<li>$module
+: <a class="el" href="classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d">App</a>
+</li>
+<li>$module_loaded
+: <a class="el" href="classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165">App</a>
+</li>
+<li>$name
+: <a class="el" href="classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02">FriendicaSmartyEngine</a>
+, <a class="el" href="classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae">Template</a>
+</li>
+<li>$nav_sel
+: <a class="el" href="classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c">App</a>
+</li>
+<li>$nodes
+: <a class="el" href="classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1">Template</a>
+</li>
+<li>$observer
+: <a class="el" href="classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f">App</a>
+, <a class="el" href="classConversation.html#a8748445aa26047ebed5141f3c3cbc244">Conversation</a>
+</li>
+<li>$owner_name
+: <a class="el" href="classItem.html#a9594df6014b0b6f45364ea7a34510130">Item</a>
+</li>
+<li>$owner_photo
+: <a class="el" href="classItem.html#a078f95b4134ce3a1df344cf8d386f986">Item</a>
+</li>
+<li>$owner_url
+: <a class="el" href="classItem.html#afa54851df82962c7c42dea3cc9f5c92c">Item</a>
+</li>
+<li>$page
+: <a class="el" href="classApp.html#a4b67935096f66d1f14b657399a8461ac">App</a>
+</li>
+<li>$pager
+: <a class="el" href="classApp.html#a6bcb19cdc4907077da72864686d5a780">App</a>
+</li>
+<li>$parent
+: <a class="el" href="classItem.html#a1a1e42877e6ac7af50286142ceb483d2">Item</a>
+</li>
+<li>$path
+: <a class="el" href="classApp.html#acad5896b7a79ae31433ad8f89606c728">App</a>
+</li>
+<li>$perms
+: <a class="el" href="classApp.html#ab47de68fa39806d1fb0976407e188b77">App</a>
+</li>
+<li>$plugins
+: <a class="el" href="classApp.html#ae9f96338f32187d308b67b980eea0008">App</a>
+</li>
+<li>$preview
+: <a class="el" href="classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae">Conversation</a>
+</li>
+<li>$profile
+: <a class="el" href="classApp.html#a57d041fcc003d08c127dfa99a02bc192">App</a>
+</li>
+<li>$profile_owner
+: <a class="el" href="classConversation.html#a2f12724ef0244e9049fe1bb9641b516d">Conversation</a>
+</li>
+<li>$profile_uid
+: <a class="el" href="classApp.html#a08c24d6a6fc52fcc784b0f765f13b820">App</a>
+</li>
+<li>$query_string
+: <a class="el" href="classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f">App</a>
+</li>
+<li>$r
+: <a class="el" href="classTemplate.html#aac9a4638f11271e1b1dcc9f247242718">Template</a>
+</li>
+<li>$rdelim
+: <a class="el" href="classApp.html#a244b2d53b21be269aad2269d23192f95">App</a>
+</li>
+<li>$redirect_url
+: <a class="el" href="classItem.html#a5b561415861f5b89b0733aacfe0428d1">Item</a>
+</li>
+<li>$replace
+: <a class="el" href="classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10">Template</a>
+</li>
+<li>$scheme
+: <a class="el" href="classApp.html#ad082d63acc078e5bf23825a03bdd6a76">App</a>
+</li>
+<li>$search
+: <a class="el" href="classTemplate.html#a317d535946dc065c35dd5cd38380e6c6">Template</a>
+</li>
+<li>$sourcename
+: <a class="el" href="classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11">App</a>
+</li>
+<li>$stack
+: <a class="el" href="classTemplate.html#a6f0efc256688c36110180b501067ff11">Template</a>
+</li>
+<li>$strings
+: <a class="el" href="classApp.html#a5f64620473a9727a48ebe9cf6f335a98">App</a>
+</li>
+<li>$template
+: <a class="el" href="classItem.html#a7f7bc059de377319282cb4ef4a828480">Item</a>
+</li>
+<li>$template_engine_instance
+: <a class="el" href="classApp.html#a6844aedad10e201b8c3d80cfc9e876d3">App</a>
+</li>
+<li>$template_engines
+: <a class="el" href="classApp.html#a6859a4848a5c0049b4134cc4b34228b6">App</a>
+</li>
+<li>$theme
+: <a class="el" href="classApp.html#a764cc6cd7578132c21d2b4545de9301c">App</a>
+</li>
+<li>$theme_info
+: <a class="el" href="classApp.html#aeca29fd4f7192ca07369b3c598c36e67">App</a>
+</li>
+<li>$theme_thread_allow
+: <a class="el" href="classApp.html#a487332f8de40414ca1a54a4265570b70">App</a>
+</li>
+<li>$threaded
+: <a class="el" href="classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2">Item</a>
+</li>
+<li>$threads
+: <a class="el" href="classConversation.html#a41f4a549e6a99f98935c4742addd22c8">Conversation</a>
+</li>
+<li>$timezone
+: <a class="el" href="classApp.html#ab35b01a366a2ea95725e97af278f87ab">App</a>
+</li>
+<li>$toplevel
+: <a class="el" href="classItem.html#a5cfa6cf964f433a917a81cab079ff9d8">Item</a>
+</li>
+<li>$type
+: <a class="el" href="classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03">photo_driver</a>
+</li>
+<li>$types
+: <a class="el" href="classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03">photo_driver</a>
+</li>
+<li>$user
+: <a class="el" href="classApp.html#a91fd3c8b89016113b05f3be24805ccff">App</a>
+</li>
+<li>$valid
+: <a class="el" href="classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9">photo_driver</a>
+</li>
+<li>$videoheight
+: <a class="el" href="classApp.html#a56b1a432c96aef8b1971f779c9d93c8c">App</a>
+</li>
+<li>$videowidth
+: <a class="el" href="classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8">App</a>
+</li>
+<li>$visiting
+: <a class="el" href="classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8">Item</a>
+</li>
+<li>$wall_to_wall
+: <a class="el" href="classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189">Item</a>
+</li>
+<li>$widgetlist
+: <a class="el" href="classApp.html#a4833bee2eae4ad1691a04fa19e11a766">App</a>
+</li>
+<li>$widgets
+: <a class="el" href="classApp.html#aa5a87c46ab3fee21362c466bf78042ef">App</a>
+</li>
+<li>$width
+: <a class="el" href="classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1">photo_driver</a>
+</li>
+<li>$writable
+: <a class="el" href="classConversation.html#ae81221251307e315f566a11f921ce0a9">Conversation</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals.html b/doc/html/globals.html
new file mode 100644
index 000000000..b0396deda
--- /dev/null
+++ b/doc/html/globals.html
@@ -0,0 +1,287 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_0x24"></a>- $ -</h3><ul>
+<li>$a
+: <a class="el" href="typo_8php.html#acebf83966ef6d7e5645a6b62ba368f9f">typo.php</a>
+</li>
+<li>$API
+: <a class="el" href="include_2api_8php.html#aeb2e7ad00ea666b4b6dfcf82008194f8">api.php</a>
+</li>
+<li>$arr
+: <a class="el" href="extract_8php.html#a63bb4c41bc532baacf6a4976cfaa0feb">extract.php</a>
+</li>
+<li>$called_api
+: <a class="el" href="include_2api_8php.html#aa62b15a6bbb280e86b98132eb214013d">api.php</a>
+</li>
+<li>$colour
+: <a class="el" href="redbasic_2php_2style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab">style.php</a>
+</li>
+<li>$dir
+: <a class="el" href="docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62">docblox_errorchecker.php</a>
+</li>
+<li>$dirs
+: <a class="el" href="typo_8php.html#a1b709c1d79631ebc8320b41bda028b54">typo.php</a>
+</li>
+<li>$dirstack
+: <a class="el" href="docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6">docblox_errorchecker.php</a>
+</li>
+<li>$displaystyle
+: <a class="el" href="redbasic_2php_2style_8php.html#aa658152b727ea1233f6df6ded6437dad">style.php</a>
+</li>
+<li>$filelist
+: <a class="el" href="docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b">docblox_errorchecker.php</a>
+</li>
+<li>$files
+: <a class="el" href="extract_8php.html#a9590b15215a21e9b42eb546aeef79704">extract.php</a>
+, <a class="el" href="tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149">tpldebug.php</a>
+, <a class="el" href="typo_8php.html#a9590b15215a21e9b42eb546aeef79704">typo.php</a>
+</li>
+<li>$gc_probability
+: <a class="el" href="session_8php.html#a96b09cc763572f45280786a7b33feb7e">session.php</a>
+</li>
+<li>$i
+: <a class="el" href="docblox__errorchecker_8php.html#a83018d9153d17d91fbcf3bc10158d34f">docblox_errorchecker.php</a>
+</li>
+<li>$infile
+: <a class="el" href="php2po_8php.html#a61f8ddeb5557d46ebc546cc355bda214">php2po.php</a>
+</li>
+<li>$ink
+: <a class="el" href="php2po_8php.html#a6b0b8ebd9ce811d1325ef2c129443bc0">php2po.php</a>
+</li>
+<li>$install_wizard_pass
+: <a class="el" href="setup_8php.html#addb24714bc2542aa4f4215e98fe48432">setup.php</a>
+</li>
+<li>$k
+: <a class="el" href="php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178">php2po.php</a>
+</li>
+<li>$line_height
+: <a class="el" href="redbasic_2php_2style_8php.html#a4131d1765ee4deb28e83fc4527943ee0">style.php</a>
+</li>
+<li>$linkcolour
+: <a class="el" href="redbasic_2php_2style_8php.html#a6628a80911a6b37b464ef110ac8f6e42">style.php</a>
+</li>
+<li>$nav_bg_1
+: <a class="el" href="redbasic_2php_2style_8php.html#a232513bf4339fe34908c4c63cb93168b">style.php</a>
+</li>
+<li>$nav_bg_2
+: <a class="el" href="redbasic_2php_2style_8php.html#a03a72942b7428fd9af1224770d20a8ba">style.php</a>
+</li>
+<li>$nav_bg_3
+: <a class="el" href="redbasic_2php_2style_8php.html#acc190405dda0a23a80551dee11c74c0c">style.php</a>
+</li>
+<li>$nav_bg_4
+: <a class="el" href="redbasic_2php_2style_8php.html#aef266cfcb27c6ddb3292584c945bab33">style.php</a>
+</li>
+<li>$navcolour
+: <a class="el" href="redbasic_2php_2style_8php.html#a938168352fd3cdaa1c10c16a34f5938a">style.php</a>
+</li>
+<li>$needed
+: <a class="el" href="docblox__errorchecker_8php.html#a852004caba0a34390297a079f4aaac73">docblox_errorchecker.php</a>
+</li>
+<li>$out
+: <a class="el" href="php2po_8php.html#a48cb304902320d173a4eaa41543327b9">php2po.php</a>
+</li>
+<li>$phpath
+: <a class="el" href="typo_8php.html#a3ecd17ac846be1b35f3662f5c12ab6bd">typo.php</a>
+</li>
+<li>$phpfile
+: <a class="el" href="php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4">php2po.php</a>
+</li>
+<li>$pofile
+: <a class="el" href="php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1">php2po.php</a>
+</li>
+<li>$radius
+: <a class="el" href="redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351">style.php</a>
+</li>
+<li>$redbasic_font_size
+: <a class="el" href="redstrap_2php_2style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda">style.php</a>
+</li>
+<li>$res
+: <a class="el" href="docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5">docblox_errorchecker.php</a>
+</li>
+<li>$resolution
+: <a class="el" href="redbasic_2php_2style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc">style.php</a>
+</li>
+<li>$s
+: <a class="el" href="extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634">extract.php</a>
+</li>
+<li>$session_exists
+: <a class="el" href="session_8php.html#a62e4a6cb26b4bb1b8ddd8277b26090eb">session.php</a>
+</li>
+<li>$session_expire
+: <a class="el" href="session_8php.html#af0100a2642a5268594bbd5742a03d885">session.php</a>
+</li>
+<li>$shadows
+: <a class="el" href="redbasic_2php_2style_8php.html#acb3046ad9c01b7d60cde20f58d77c548">style.php</a>
+</li>
+<li>$shiny
+: <a class="el" href="redbasic_2php_2style_8php.html#a0b942d36d8862908864e2ffa4521be70">style.php</a>
+</li>
+<li>$site_colour
+: <a class="el" href="redbasic_2php_2style_8php.html#a02d39b683a42fffbb27823d3860283bd">style.php</a>
+</li>
+<li>$site_line_height
+: <a class="el" href="redbasic_2php_2style_8php.html#a8749837e08dfb3372662af9c33fa2a2e">style.php</a>
+</li>
+<li>$site_redbasic_font_size
+: <a class="el" href="redstrap_2php_2style_8php.html#a45e6fafa363bc4586fa91dce1786be4f">style.php</a>
+</li>
+<li>$str
+: <a class="el" href="typohelper_8php.html#a7542d95618011800c61773127fa625cf">typohelper.php</a>
+</li>
+<li>$uid
+: <a class="el" href="redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a">style.php</a>
+</li>
+<li>$x
+: <a class="el" href="redbasic_2php_2style_8php.html#af3a16c5f0dd7a74cf9acf6a49fff73a7">style.php</a>
+</li>
+<li>$zones
+: <a class="el" href="extract_8php.html#a0cbe524ffc9a496114fd7ba9f423ef44">extract.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x5f.html b/doc/html/globals_0x5f.html
new file mode 100644
index 000000000..425dac2bc
--- /dev/null
+++ b/doc/html/globals_0x5f.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li class="current"><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x5f.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>_well_known_init()
+: <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x61.html b/doc/html/globals_0x61.html
new file mode 100644
index 000000000..3b2ddc74e
--- /dev/null
+++ b/doc/html/globals_0x61.html
@@ -0,0 +1,594 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li class="current"><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x61.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>abook_connections()
+: <a class="el" href="Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e">Contact.php</a>
+</li>
+<li>ABOOK_FLAG_ARCHIVED
+: <a class="el" href="boot_8php.html#a222395aa223cfbff6166fab0b4e2e1d5">boot.php</a>
+</li>
+<li>ABOOK_FLAG_BLOCKED
+: <a class="el" href="boot_8php.html#a52b599cd13e152ebc80d7e4413683195">boot.php</a>
+</li>
+<li>ABOOK_FLAG_HIDDEN
+: <a class="el" href="boot_8php.html#a34c756469ebed32e2fc987bcde62d382">boot.php</a>
+</li>
+<li>ABOOK_FLAG_IGNORED
+: <a class="el" href="boot_8php.html#aa3425e2de85b08f7041656d3a8502cb6">boot.php</a>
+</li>
+<li>ABOOK_FLAG_PENDING
+: <a class="el" href="boot_8php.html#a68eebe493e6f729ffd1aeda7a4b11155">boot.php</a>
+</li>
+<li>ABOOK_FLAG_SELF
+: <a class="el" href="boot_8php.html#a0450389f24c632906fbc24347700a543">boot.php</a>
+</li>
+<li>abook_self()
+: <a class="el" href="Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5">Contact.php</a>
+</li>
+<li>abook_toggle_flag()
+: <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">Contact.php</a>
+</li>
+<li>absurl()
+: <a class="el" href="boot_8php.html#a081307d681d7d04f17b9ced2076e7c85">boot.php</a>
+</li>
+<li>ACCESS_TOKEN_DURATION
+: <a class="el" href="oauth_8php.html#ad343cab37aa860d2d14dc86b7f5ca0c6">oauth.php</a>
+</li>
+<li>ACCOUNT_BLOCKED
+: <a class="el" href="boot_8php.html#af3bdfc20979c16f15bb9c60446a480f9">boot.php</a>
+</li>
+<li>ACCOUNT_EXPIRED
+: <a class="el" href="boot_8php.html#a400519fa181591cd6fdbb8f25fbcba0a">boot.php</a>
+</li>
+<li>ACCOUNT_OK
+: <a class="el" href="boot_8php.html#a84057c5bfa1bca5fba8497fe005ee4d8">boot.php</a>
+</li>
+<li>ACCOUNT_PENDING
+: <a class="el" href="boot_8php.html#a032bbd6d0321e99e9117332c9ed2b1b8">boot.php</a>
+</li>
+<li>ACCOUNT_REMOVED
+: <a class="el" href="boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78">boot.php</a>
+</li>
+<li>ACCOUNT_ROLE_ADMIN
+: <a class="el" href="boot_8php.html#ac8400313df2c831653f9036f71ebd86d">boot.php</a>
+</li>
+<li>account_total()
+: <a class="el" href="account_8php.html#a43e3042b2723d76915a030bac3c668b6">account.php</a>
+</li>
+<li>ACCOUNT_UNVERIFIED
+: <a class="el" href="boot_8php.html#af3a4271630aabd8be592213f925d6a36">boot.php</a>
+</li>
+<li>account_verify_password()
+: <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">auth.php</a>
+</li>
+<li>acl_init()
+: <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl.php</a>
+</li>
+<li>ACTIVITY_DISLIKE
+: <a class="el" href="boot_8php.html#a0e57f846e6d47a308feced0f7274f178">boot.php</a>
+</li>
+<li>ACTIVITY_FAVORITE
+: <a class="el" href="boot_8php.html#a3e2ea123d29a72012db1241f96280b0e">boot.php</a>
+</li>
+<li>ACTIVITY_FOLLOW
+: <a class="el" href="boot_8php.html#a5ae728ac966ea1d3525a19e7fec59434">boot.php</a>
+</li>
+<li>ACTIVITY_FRIEND
+: <a class="el" href="boot_8php.html#a176664e78dcb9132e16be69418223eb2">boot.php</a>
+</li>
+<li>ACTIVITY_JOIN
+: <a class="el" href="boot_8php.html#aced60c7285192e80b7c4757e45a7f1e3">boot.php</a>
+</li>
+<li>ACTIVITY_LIKE
+: <a class="el" href="boot_8php.html#abdcdfc873ace4e0902177bad934de0c0">boot.php</a>
+</li>
+<li>activity_match()
+: <a class="el" href="text_8php.html#af8a3e3a66a7b862d4510f145d2e13186">text.php</a>
+</li>
+<li>ACTIVITY_MOOD
+: <a class="el" href="boot_8php.html#a7aa57438db03834aaa0b468bdce773a6">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_ALBUM
+: <a class="el" href="boot_8php.html#aaf9b76832ee5f85e56466af162ba8a14">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_COMMENT
+: <a class="el" href="boot_8php.html#a0a98dd0110dc6c8e24cefc8ae74d5562">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_EVENT
+: <a class="el" href="boot_8php.html#a2e90096fede6acce16abf0da8cb2febe">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_GROUP
+: <a class="el" href="boot_8php.html#a7bff2278e68a71e524afd1c7c951e1e3">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_HEART
+: <a class="el" href="boot_8php.html#ad302cb26b838898d475f57f61b0fcc9f">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_NOTE
+: <a class="el" href="boot_8php.html#a44d069c8a1cfcc6d2007c506a17ff28f">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_P_PHOTO
+: <a class="el" href="boot_8php.html#a74bf27f7564c9a37975e7b37d973dcab">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_PERSON
+: <a class="el" href="boot_8php.html#a2f8f25b13480c37a5f22511f53da8bab">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_PHOTO
+: <a class="el" href="boot_8php.html#a774f0f792ebfec1e774c5a17bb9d5966">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_PROFILE
+: <a class="el" href="boot_8php.html#a62c832a95e38b1fa23e6cef39521b7d5">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_TAGTERM
+: <a class="el" href="boot_8php.html#a1da180f961f49a11573cac4ff6c62c05">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_THING
+: <a class="el" href="boot_8php.html#a0fb63e51c2a9814941842ae8f2f4dff8">boot.php</a>
+</li>
+<li>ACTIVITY_POKE
+: <a class="el" href="boot_8php.html#a14ba8f9e162f2559831ee3bf98e0c3bd">boot.php</a>
+</li>
+<li>ACTIVITY_POST
+: <a class="el" href="boot_8php.html#a5c3747e0f505f0d5271dc4c54e3feaf4">boot.php</a>
+</li>
+<li>ACTIVITY_REQ_FRIEND
+: <a class="el" href="boot_8php.html#afe084c30a1810c10442edb4fbcbc0086">boot.php</a>
+</li>
+<li>activity_sanitise()
+: <a class="el" href="items_8php.html#a36e656667193c83aa2cc03a024fc131b">items.php</a>
+</li>
+<li>ACTIVITY_TAG
+: <a class="el" href="boot_8php.html#a12c781cefc20167231e2e3fd5866b1b5">boot.php</a>
+</li>
+<li>ACTIVITY_UNFOLLOW
+: <a class="el" href="boot_8php.html#a53e4bdb6f225da55115acb9277f75e53">boot.php</a>
+</li>
+<li>ACTIVITY_UNFRIEND
+: <a class="el" href="boot_8php.html#a29528a2544373cc19a378f350040c6a1">boot.php</a>
+</li>
+<li>ACTIVITY_UPDATE
+: <a class="el" href="boot_8php.html#a7f4264232dbb6c3b41f2617deecb1866">boot.php</a>
+</li>
+<li>add_children_to_list()
+: <a class="el" href="conversation_8php.html#ad3e1d4b15e7d6d026ee182edd58f692b">conversation.php</a>
+</li>
+<li>add_fcontact()
+: <a class="el" href="include_2network_8php.html#a0bdc4b0bfc54797c249dc4eca25aeda4">network.php</a>
+</li>
+<li>admin_content()
+: <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin.php</a>
+</li>
+<li>admin_page_dbsync()
+: <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin.php</a>
+</li>
+<li>admin_page_logs()
+: <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin.php</a>
+</li>
+<li>admin_page_logs_post()
+: <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin.php</a>
+</li>
+<li>admin_page_plugins()
+: <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin.php</a>
+</li>
+<li>admin_page_site()
+: <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin.php</a>
+</li>
+<li>admin_page_site_post()
+: <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin.php</a>
+</li>
+<li>admin_page_summary()
+: <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin.php</a>
+</li>
+<li>admin_page_themes()
+: <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin.php</a>
+</li>
+<li>admin_page_users()
+: <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin.php</a>
+</li>
+<li>admin_page_users_post()
+: <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin.php</a>
+</li>
+<li>admin_post()
+: <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin.php</a>
+</li>
+<li>advanced_profile()
+: <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">profile_advanced.php</a>
+</li>
+<li>AES256CBC_decrypt()
+: <a class="el" href="crypto_8php.html#ac852ee41392d1358c3a54d54935e0bf9">crypto.php</a>
+</li>
+<li>AES256CBC_encrypt()
+: <a class="el" href="crypto_8php.html#a5c61821d205f95f127114159cbffa764">crypto.php</a>
+</li>
+<li>aes_encapsulate()
+: <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">crypto.php</a>
+</li>
+<li>aes_unencapsulate()
+: <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">crypto.php</a>
+</li>
+<li>age()
+: <a class="el" href="datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df">datetime.php</a>
+</li>
+<li>all_friends()
+: <a class="el" href="socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586">socgraph.php</a>
+</li>
+<li>allfriends_content()
+: <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends.php</a>
+</li>
+<li>allowed_email()
+: <a class="el" href="include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694">network.php</a>
+</li>
+<li>allowed_public_recips()
+: <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">zot.php</a>
+</li>
+<li>allowed_url()
+: <a class="el" href="include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7">network.php</a>
+</li>
+<li>alt_pager()
+: <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">text.php</a>
+</li>
+<li>api_account_logout()
+: <a class="el" href="include_2api_8php.html#a2e94eab9d6c164bfef7a1b2ab87b339b">api.php</a>
+</li>
+<li>api_account_rate_limit_status()
+: <a class="el" href="include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5">api.php</a>
+</li>
+<li>api_account_verify_credentials()
+: <a class="el" href="include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad">api.php</a>
+</li>
+<li>api_albums()
+: <a class="el" href="include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18">api.php</a>
+</li>
+<li>api_apply_template()
+: <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api.php</a>
+</li>
+<li>api_call()
+: <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api.php</a>
+</li>
+<li>api_channel_stream()
+: <a class="el" href="include_2api_8php.html#a72bfecac1970bc29b853073e816388ff">api.php</a>
+</li>
+<li>api_content()
+: <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api.php</a>
+</li>
+<li>api_date()
+: <a class="el" href="include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25">api.php</a>
+</li>
+<li>api_direct_messages_all()
+: <a class="el" href="include_2api_8php.html#a970b02c06dea8b229aa3d5fff9cf4705">api.php</a>
+</li>
+<li>api_direct_messages_box()
+: <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api.php</a>
+</li>
+<li>api_direct_messages_conversation()
+: <a class="el" href="include_2api_8php.html#a9160288b7ac220635942d8dc209b78c3">api.php</a>
+</li>
+<li>api_direct_messages_inbox()
+: <a class="el" href="include_2api_8php.html#ad2b0192f3006918bea895de8074bf8d2">api.php</a>
+</li>
+<li>api_direct_messages_new()
+: <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api.php</a>
+</li>
+<li>api_direct_messages_sentbox()
+: <a class="el" href="include_2api_8php.html#a58cf4c02ef435996f5c3bc4283d3968d">api.php</a>
+</li>
+<li>api_export_basic()
+: <a class="el" href="include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53">api.php</a>
+</li>
+<li>api_favorites()
+: <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api.php</a>
+</li>
+<li>api_ff_ids()
+: <a class="el" href="include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8">api.php</a>
+</li>
+<li>api_followers_ids()
+: <a class="el" href="include_2api_8php.html#ab1ecb58954f722444bfe03233345cb1b">api.php</a>
+</li>
+<li>api_format_as()
+: <a class="el" href="include_2api_8php.html#a18cab7c6391df5c421753463f5d2a879">api.php</a>
+</li>
+<li>api_format_items()
+: <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api.php</a>
+</li>
+<li>api_format_messages()
+: <a class="el" href="include_2api_8php.html#ae82608c317421f27446465aa6724733d">api.php</a>
+</li>
+<li>api_friendica_version()
+: <a class="el" href="include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74">api.php</a>
+</li>
+<li>api_friends_ids()
+: <a class="el" href="include_2api_8php.html#acafd2899309a005fcb725289173dc7fe">api.php</a>
+</li>
+<li>api_get_user()
+: <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api.php</a>
+</li>
+<li>api_help_test()
+: <a class="el" href="include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23">api.php</a>
+</li>
+<li>api_item_get_user()
+: <a class="el" href="include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1">api.php</a>
+</li>
+<li>api_login()
+: <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api.php</a>
+</li>
+<li>api_oauth_access_token()
+: <a class="el" href="include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0">api.php</a>
+</li>
+<li>api_oauth_request_token()
+: <a class="el" href="include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3">api.php</a>
+</li>
+<li>api_photos()
+: <a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api.php</a>
+</li>
+<li>api_post()
+: <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api.php</a>
+</li>
+<li>api_register_func()
+: <a class="el" href="include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a">api.php</a>
+</li>
+<li>api_rss_extra()
+: <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api.php</a>
+</li>
+<li>api_status_show()
+: <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api.php</a>
+</li>
+<li>api_statuses_destroy()
+: <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api.php</a>
+</li>
+<li>api_statuses_f()
+: <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api.php</a>
+</li>
+<li>api_statuses_followers()
+: <a class="el" href="include_2api_8php.html#a6951c690d87775eb37e569c66011988e">api.php</a>
+</li>
+<li>api_statuses_friends()
+: <a class="el" href="include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e">api.php</a>
+</li>
+<li>api_statuses_home_timeline()
+: <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api.php</a>
+</li>
+<li>api_statuses_mediap()
+: <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api.php</a>
+</li>
+<li>api_statuses_mentions()
+: <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api.php</a>
+</li>
+<li>api_statuses_public_timeline()
+: <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api.php</a>
+</li>
+<li>api_statuses_repeat()
+: <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api.php</a>
+</li>
+<li>api_statuses_show()
+: <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api.php</a>
+</li>
+<li>api_statuses_update()
+: <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api.php</a>
+</li>
+<li>api_statuses_user_timeline()
+: <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api.php</a>
+</li>
+<li>api_statusnet_config()
+: <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api.php</a>
+</li>
+<li>api_statusnet_version()
+: <a class="el" href="include_2api_8php.html#a8969e8d9c683f12ba17dcd4b059e020d">api.php</a>
+</li>
+<li>api_user()
+: <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api.php</a>
+</li>
+<li>api_users_show()
+: <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api.php</a>
+</li>
+<li>appdirpath()
+: <a class="el" href="boot_8php.html#a75a90b0eadd0df510f7e63210733634d">boot.php</a>
+</li>
+<li>apps_content()
+: <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps.php</a>
+</li>
+<li>argc()
+: <a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">boot.php</a>
+</li>
+<li>argv()
+: <a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">boot.php</a>
+</li>
+<li>arr_add_hashes()
+: <a class="el" href="parse__url_8php.html#aa7dd8f961bea042d62726ed909e4a868">parse_url.php</a>
+</li>
+<li>array_sanitise()
+: <a class="el" href="items_8php.html#abf7a1b73eb352d79acd36309b0dababd">items.php</a>
+</li>
+<li>array_xmlify()
+: <a class="el" href="text_8php.html#acedb584f65114a33f389efb796172a91">text.php</a>
+</li>
+<li>atom_author()
+: <a class="el" href="items_8php.html#a016dd86c827d08db89061ea81d15c6cb">items.php</a>
+</li>
+<li>atom_entry()
+: <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">items.php</a>
+</li>
+<li>ATOM_TIME
+: <a class="el" href="boot_8php.html#ad34c1547020a305915bcc39707744690">boot.php</a>
+</li>
+<li>attach_by_hash()
+: <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach.php</a>
+</li>
+<li>attach_by_hash_nodata()
+: <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach.php</a>
+</li>
+<li>attach_count_files()
+: <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach.php</a>
+</li>
+<li>ATTACH_FLAG_DIR
+: <a class="el" href="boot_8php.html#aa74438cf71e48e37bf7b440b94243985">boot.php</a>
+</li>
+<li>ATTACH_FLAG_OS
+: <a class="el" href="boot_8php.html#a781916f83fcc8ff1035649afa45f0292">boot.php</a>
+</li>
+<li>attach_init()
+: <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach.php</a>
+</li>
+<li>attach_list_files()
+: <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach.php</a>
+</li>
+<li>attach_store()
+: <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach.php</a>
+</li>
+<li>attribute_contains()
+: <a class="el" href="text_8php.html#a95fd2f8f23a1948414a03ebc963bac57">text.php</a>
+</li>
+<li>authenticate_success()
+: <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">security.php</a>
+</li>
+<li>autoname()
+: <a class="el" href="text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca">text.php</a>
+</li>
+<li>avatar_img()
+: <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">network.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x62.html b/doc/html/globals_0x62.html
new file mode 100644
index 000000000..d185d3fa9
--- /dev/null
+++ b/doc/html/globals_0x62.html
@@ -0,0 +1,198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li class="current"><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x62.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>base64url_decode()
+: <a class="el" href="text_8php.html#a13286f8a95d2de6b102966ecc270c8d6">text.php</a>
+</li>
+<li>base64url_encode()
+: <a class="el" href="text_8php.html#a070384ec000fd65043fce11d5392d241">text.php</a>
+</li>
+<li>bb2diaspora()
+: <a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora.php</a>
+</li>
+<li>bb_ShareAttributes()
+: <a class="el" href="bbcode_8php.html#a52c45273fbb7ce5ec27094f7936856e1">bbcode.php</a>
+</li>
+<li>bb_ShareAttributesSimple()
+: <a class="el" href="bbcode_8php.html#a2be26414a367118143cc89e2d58e7377">bbcode.php</a>
+</li>
+<li>bb_spacefy()
+: <a class="el" href="bbcode_8php.html#a8911e027907820df3db03b4f76724b50">bbcode.php</a>
+</li>
+<li>bb_tag_preg_replace()
+: <a class="el" href="bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba">bb2diaspora.php</a>
+</li>
+<li>bb_translate_video()
+: <a class="el" href="text_8php.html#a3d2793d66db3345fd290b71e2eadf98e">text.php</a>
+</li>
+<li>bb_unspacefy_and_trim()
+: <a class="el" href="bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d">bbcode.php</a>
+</li>
+<li>bbcode()
+: <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode.php</a>
+</li>
+<li>bbtoevent()
+: <a class="el" href="event_8php.html#a180cccd63c2a2f00ff432b03113531f3">event.php</a>
+</li>
+<li>bbtovcal()
+: <a class="el" href="event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279">event.php</a>
+</li>
+<li>best_link_url()
+: <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">conversation.php</a>
+</li>
+<li>breaklines()
+: <a class="el" href="html2plain_8php.html#a3214912e3d00cf0a948072daccf16740">html2plain.php</a>
+</li>
+<li>build_querystring()
+: <a class="el" href="boot_8php.html#a9cbab4ee728e9a8b4ce952bae643044e">boot.php</a>
+</li>
+<li>build_sync_packet()
+: <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">zot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x63.html b/doc/html/globals_0x63.html
new file mode 100644
index 000000000..cedd0cb77
--- /dev/null
+++ b/doc/html/globals_0x63.html
@@ -0,0 +1,423 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li class="current"><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x63.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>cal()
+: <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">datetime.php</a>
+</li>
+<li>call_hooks()
+: <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">plugin.php</a>
+</li>
+<li>can_comment_on_post()
+: <a class="el" href="items_8php.html#a1e75047cf175aaee8dd16aa761913ff9">items.php</a>
+</li>
+<li>categories_widget()
+: <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">contact_widgets.php</a>
+</li>
+<li>change_channel()
+: <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">security.php</a>
+</li>
+<li>chanlink_cid()
+: <a class="el" href="text_8php.html#a85e3a4851c16674834010d8419a5d7ca">text.php</a>
+</li>
+<li>chanlink_hash()
+: <a class="el" href="text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0">text.php</a>
+</li>
+<li>chanlink_url()
+: <a class="el" href="text_8php.html#a2e8d6c402603be3a1256a16605e09c2a">text.php</a>
+</li>
+<li>channel_aside()
+: <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel.php</a>
+</li>
+<li>channel_content()
+: <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel.php</a>
+</li>
+<li>channel_init()
+: <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel.php</a>
+</li>
+<li>channel_remove()
+: <a class="el" href="Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa">Contact.php</a>
+</li>
+<li>channel_total()
+: <a class="el" href="identity_8php.html#a77d2237f1846964634b1c99089c27c7d">identity.php</a>
+</li>
+<li>channelx_by_hash()
+: <a class="el" href="Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258">Contact.php</a>
+</li>
+<li>channelx_by_n()
+: <a class="el" href="Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc">Contact.php</a>
+</li>
+<li>channelx_by_nick()
+: <a class="el" href="Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e">Contact.php</a>
+</li>
+<li>chanview_content()
+: <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview.php</a>
+</li>
+<li>check_account_admin()
+: <a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">account.php</a>
+</li>
+<li>check_account_email()
+: <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">account.php</a>
+</li>
+<li>check_account_invite()
+: <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">account.php</a>
+</li>
+<li>check_account_password()
+: <a class="el" href="account_8php.html#a144b4891022567668375b58ea61cfff0">account.php</a>
+</li>
+<li>check_add()
+: <a class="el" href="setup_8php.html#ae8e4d9279a61de74d5f39962cb7b6ca1">setup.php</a>
+</li>
+<li>check_config()
+: <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">boot.php</a>
+</li>
+<li>check_form_security_std_err_msg()
+: <a class="el" href="security_8php.html#a20f8b9851f23ee8894b8925584ef6821">security.php</a>
+</li>
+<li>check_form_security_token()
+: <a class="el" href="security_8php.html#a9c6180e82150a5a9af91a1255d096b5c">security.php</a>
+</li>
+<li>check_form_security_token_ForbiddenOnErr()
+: <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">security.php</a>
+</li>
+<li>check_form_security_token_redirectOnErr()
+: <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">security.php</a>
+</li>
+<li>check_funcs()
+: <a class="el" href="setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e">setup.php</a>
+</li>
+<li>check_htaccess()
+: <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">setup.php</a>
+</li>
+<li>check_htconfig()
+: <a class="el" href="setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f">setup.php</a>
+</li>
+<li>check_keys()
+: <a class="el" href="setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76">setup.php</a>
+</li>
+<li>check_list_permissions()
+: <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">permissions.php</a>
+</li>
+<li>check_php()
+: <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">setup.php</a>
+</li>
+<li>check_smarty3()
+: <a class="el" href="setup_8php.html#afd8b0b3ade1507c45325caf377bf459d">setup.php</a>
+</li>
+<li>check_webbie()
+: <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">text.php</a>
+</li>
+<li>clean_urls()
+: <a class="el" href="boot_8php.html#ab79b8b4555cae20d03f8200666d89d63">boot.php</a>
+</li>
+<li>cleardiv()
+: <a class="el" href="text_8php.html#afe18627c4983ee5f7c940a0992818cd5">text.php</a>
+</li>
+<li>cli_startup()
+: <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup.php</a>
+</li>
+<li>CLIENT_MODE_LOAD
+: <a class="el" href="boot_8php.html#af6f6f6f40139f12fc09ec47373b30919">boot.php</a>
+</li>
+<li>CLIENT_MODE_NORMAL
+: <a class="el" href="boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731">boot.php</a>
+</li>
+<li>CLIENT_MODE_UPDATE
+: <a class="el" href="boot_8php.html#a3f40aa5bafff8c4eebdc62e5121daf77">boot.php</a>
+</li>
+<li>collect_recipients()
+: <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">items.php</a>
+</li>
+<li>collecturls()
+: <a class="el" href="html2plain_8php.html#ae1c203d0f089d5678d73a6c64a395201">html2plain.php</a>
+</li>
+<li>common_aside()
+: <a class="el" href="common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a">common.php</a>
+</li>
+<li>common_content()
+: <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common.php</a>
+</li>
+<li>common_friends()
+: <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">socgraph.php</a>
+</li>
+<li>common_friends_visitor_widget()
+: <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">contact_widgets.php</a>
+</li>
+<li>common_friends_zcid()
+: <a class="el" href="socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9">socgraph.php</a>
+</li>
+<li>common_init()
+: <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common.php</a>
+</li>
+<li>community_content()
+: <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community.php</a>
+</li>
+<li>community_init()
+: <a class="el" href="community_8php.html#a56c94ec978a38633c5628fa6f8e386d9">community.php</a>
+</li>
+<li>compare_permissions()
+: <a class="el" href="items_8php.html#a0790a4550b829e85504af548623002ca">items.php</a>
+</li>
+<li>completeurl()
+: <a class="el" href="parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a">parse_url.php</a>
+</li>
+<li>connections_aside()
+: <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections.php</a>
+</li>
+<li>connections_clone()
+: <a class="el" href="connections_8php.html#a15af118efee9c948b6f8294e54a73bb2">connections.php</a>
+</li>
+<li>connections_content()
+: <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections.php</a>
+</li>
+<li>connections_init()
+: <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections.php</a>
+</li>
+<li>connections_post()
+: <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections.php</a>
+</li>
+<li>construct_activity_object()
+: <a class="el" href="items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee">items.php</a>
+</li>
+<li>construct_activity_target()
+: <a class="el" href="items_8php.html#aa579bc4445d60098b1410961ca8e96b7">items.php</a>
+</li>
+<li>construct_page()
+: <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">boot.php</a>
+</li>
+<li>construct_verb()
+: <a class="el" href="items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8">items.php</a>
+</li>
+<li>consume_feed()
+: <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">items.php</a>
+</li>
+<li>contact_block()
+: <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">text.php</a>
+</li>
+<li>CONTACT_IS_FOLLOWER
+: <a class="el" href="boot_8php.html#ada72d88ae39a7e3b45baea201cb49a29">boot.php</a>
+</li>
+<li>CONTACT_IS_FRIEND
+: <a class="el" href="boot_8php.html#a27299ecfb9e9a99826f17a1c14c6995f">boot.php</a>
+</li>
+<li>CONTACT_IS_SHARING
+: <a class="el" href="boot_8php.html#a6c5e9e293c8242dcb9bc2c3ea2fee2c9">boot.php</a>
+</li>
+<li>contact_poll_interval()
+: <a class="el" href="contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f">contact_selectors.php</a>
+</li>
+<li>contact_profile_assign()
+: <a class="el" href="contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75">contact_selectors.php</a>
+</li>
+<li>contact_remove()
+: <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">Contact.php</a>
+</li>
+<li>contact_reputation()
+: <a class="el" href="contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53">contact_selectors.php</a>
+</li>
+<li>contact_select()
+: <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">acl_selectors.php</a>
+</li>
+<li>contactgroup_content()
+: <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup.php</a>
+</li>
+<li>contacts_not_grouped()
+: <a class="el" href="Contact_8php.html#a228fc01f90ae9bfdde4c2ad0772bd7dc">Contact.php</a>
+</li>
+<li>conv_sort()
+: <a class="el" href="conversation_8php.html#abed85a41f1160598de880b84021c9cf7">conversation.php</a>
+</li>
+<li>conversation()
+: <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation.php</a>
+</li>
+<li>convert_xml_element_to_array()
+: <a class="el" href="include_2network_8php.html#ad4056d3ce69988f5c1a997a79f503246">network.php</a>
+</li>
+<li>count_all_friends()
+: <a class="el" href="socgraph_8php.html#af29d056beec10b4e38e5209c92452894">socgraph.php</a>
+</li>
+<li>count_common_friends()
+: <a class="el" href="socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84">socgraph.php</a>
+</li>
+<li>count_common_friends_zcid()
+: <a class="el" href="socgraph_8php.html#af175807406d94407a5e11742a3287746">socgraph.php</a>
+</li>
+<li>count_descendants()
+: <a class="el" href="conversation_8php.html#ab2383dff4f823e580399ff469d90ab19">conversation.php</a>
+</li>
+<li>create_account()
+: <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">account.php</a>
+</li>
+<li>create_dir_account()
+: <a class="el" href="identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd">identity.php</a>
+</li>
+<li>create_identity()
+: <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">identity.php</a>
+</li>
+<li>crepair_content()
+: <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair.php</a>
+</li>
+<li>crepair_init()
+: <a class="el" href="crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198">crepair.php</a>
+</li>
+<li>crepair_post()
+: <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair.php</a>
+</li>
+<li>cronhooks_run()
+: <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks.php</a>
+</li>
+<li>curPageURL()
+: <a class="el" href="boot_8php.html#aa4221641e5c21db69fa52c426b9017f5">boot.php</a>
+</li>
+<li>current_theme()
+: <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">boot.php</a>
+</li>
+<li>current_theme_url()
+: <a class="el" href="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x64.html b/doc/html/globals_0x64.html
new file mode 100644
index 000000000..6f8a0a98b
--- /dev/null
+++ b/doc/html/globals_0x64.html
@@ -0,0 +1,291 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li class="current"><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x64.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>datesel()
+: <a class="el" href="datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8">datetime.php</a>
+</li>
+<li>datesel_format()
+: <a class="el" href="datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa">datetime.php</a>
+</li>
+<li>datetime_convert()
+: <a class="el" href="datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226">datetime.php</a>
+</li>
+<li>day_translate()
+: <a class="el" href="text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63">text.php</a>
+</li>
+<li>DB_UPDATE_VERSION
+: <a class="el" href="boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03">boot.php</a>
+</li>
+<li>dba_factory()
+: <a class="el" href="dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947">dba_driver.php</a>
+</li>
+<li>dba_timer()
+: <a class="el" href="boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4">boot.php</a>
+</li>
+<li>dbesc()
+: <a class="el" href="dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e">dba_driver.php</a>
+</li>
+<li>dbesc_array()
+: <a class="el" href="dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4">dba_driver.php</a>
+</li>
+<li>dbesc_array_cb()
+: <a class="el" href="dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930">dba_driver.php</a>
+</li>
+<li>dbg()
+: <a class="el" href="dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb">dba_driver.php</a>
+</li>
+<li>dbq()
+: <a class="el" href="dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee">dba_driver.php</a>
+</li>
+<li>decode_tags()
+: <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">items.php</a>
+</li>
+<li>DEFAULT_DB_ENGINE
+: <a class="el" href="boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d">boot.php</a>
+</li>
+<li>del_config()
+: <a class="el" href="include_2config_8php.html#a549910227348003efc3c05c9105c42da">config.php</a>
+</li>
+<li>del_pconfig()
+: <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">config.php</a>
+</li>
+<li>del_xconfig()
+: <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">config.php</a>
+</li>
+<li>delegate_content()
+: <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate.php</a>
+</li>
+<li>delete_imported_item()
+: <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">zot.php</a>
+</li>
+<li>delete_item_lowlevel()
+: <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">items.php</a>
+</li>
+<li>deletenode()
+: <a class="el" href="html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2">html2bbcode.php</a>
+</li>
+<li>deliver_run()
+: <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver.php</a>
+</li>
+<li>detect_language()
+: <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">language.php</a>
+</li>
+<li>dfrn_deliver()
+: <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">items.php</a>
+</li>
+<li>diaspora2bb()
+: <a class="el" href="bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6">bb2diaspora.php</a>
+</li>
+<li>diaspora_ol()
+: <a class="el" href="bb2diaspora_8php.html#a8b96bd45884fa1c40b942939354197d4">bb2diaspora.php</a>
+</li>
+<li>diaspora_ul()
+: <a class="el" href="bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc">bb2diaspora.php</a>
+</li>
+<li>directory_aside()
+: <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory.php</a>
+</li>
+<li>directory_content()
+: <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory.php</a>
+</li>
+<li>DIRECTORY_FALLBACK_MASTER
+: <a class="el" href="boot_8php.html#abedd940e664017c61b48c6efa31d0cb8">boot.php</a>
+</li>
+<li>directory_init()
+: <a class="el" href="mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf">directory.php</a>
+</li>
+<li>DIRECTORY_MODE_NORMAL
+: <a class="el" href="boot_8php.html#ab7d65a7e7417825a4db62906bb600729">boot.php</a>
+</li>
+<li>DIRECTORY_MODE_PRIMARY
+: <a class="el" href="boot_8php.html#a8a60cc38bb567765fd926fef70205f16">boot.php</a>
+</li>
+<li>DIRECTORY_MODE_SECONDARY
+: <a class="el" href="boot_8php.html#aedfb9501ed408278667995524e0d15cf">boot.php</a>
+</li>
+<li>DIRECTORY_MODE_STANDALONE
+: <a class="el" href="boot_8php.html#a25476eec71fceda237f7dc1d78b0adb8">boot.php</a>
+</li>
+<li>DIRECTORY_REALM
+: <a class="el" href="boot_8php.html#a6b9909db6a7ec80ec6fdd40ba74014dd">boot.php</a>
+</li>
+<li>directory_run()
+: <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory.php</a>
+</li>
+<li>dirfind_content()
+: <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind.php</a>
+</li>
+<li>dirfind_init()
+: <a class="el" href="dirfind_8php.html#ac689a812c84f161b3a0d42349f83981c">dirfind.php</a>
+</li>
+<li>dirsearch_content()
+: <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch.php</a>
+</li>
+<li>dirsearch_init()
+: <a class="el" href="dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752">dirsearch.php</a>
+</li>
+<li>display_content()
+: <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display.php</a>
+</li>
+<li>dlogger()
+: <a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c">text.php</a>
+</li>
+<li>do
+: <a class="el" href="docblox__errorchecker_8php.html#a721c6ff80a6d3e4ad4ffa52a04c60085">docblox_errorchecker.php</a>
+</li>
+<li>dob()
+: <a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">datetime.php</a>
+</li>
+<li>drop_item()
+: <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">items.php</a>
+</li>
+<li>drop_items()
+: <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">items.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x65.html b/doc/html/globals_0x65.html
new file mode 100644
index 000000000..e3042d8f2
--- /dev/null
+++ b/doc/html/globals_0x65.html
@@ -0,0 +1,218 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li class="current"><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x65.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>editpost_content()
+: <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost.php</a>
+</li>
+<li>editwebpage_content()
+: <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage.php</a>
+</li>
+<li>else
+: <a class="el" href="fpostit_8php.html#a501b5ca82f287509fc691c88524064c1">fpostit.php</a>
+, <a class="el" href="tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c">tpldebug.php</a>
+, <a class="el" href="auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5">auth.php</a>
+</li>
+<li>email_header_encode()
+: <a class="el" href="include_2network_8php.html#a540420ff3675a72cb781ef9a7e8c2cd9">network.php</a>
+</li>
+<li>email_send()
+: <a class="el" href="include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0">network.php</a>
+</li>
+<li>encode_item()
+: <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">items.php</a>
+</li>
+<li>encode_item_flags()
+: <a class="el" href="items_8php.html#a5f690fc2484abec07840b4f9dd525bd9">items.php</a>
+</li>
+<li>encode_item_terms()
+: <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">items.php</a>
+</li>
+<li>encode_item_xchan()
+: <a class="el" href="items_8php.html#a566c601726697e044e75284af7fb6f17">items.php</a>
+</li>
+<li>encode_mail()
+: <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">items.php</a>
+</li>
+<li>encode_rel_links()
+: <a class="el" href="items_8php.html#aa723c0571e314a1853a24c5854b4f54f">items.php</a>
+</li>
+<li>enumerate_permissions()
+: <a class="el" href="items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67">items.php</a>
+</li>
+<li>EOL
+: <a class="el" href="boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b">boot.php</a>
+</li>
+<li>EOT
+: <a class="el" href="typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805">typohelper.php</a>
+</li>
+<li>escape_tags()
+: <a class="el" href="text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64">text.php</a>
+</li>
+<li>ev_compare()
+: <a class="el" href="event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850">event.php</a>
+</li>
+<li>event_store()
+: <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event.php</a>
+</li>
+<li>events_content()
+: <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events.php</a>
+</li>
+<li>events_post()
+: <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events.php</a>
+</li>
+<li>expand_acl()
+: <a class="el" href="text_8php.html#ae4282a39492caa23ccbc2ce98e54f110">text.php</a>
+</li>
+<li>expand_groups()
+: <a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">group.php</a>
+</li>
+<li>expire_run()
+: <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x66.html b/doc/html/globals_0x66.html
new file mode 100644
index 000000000..aa8c48510
--- /dev/null
+++ b/doc/html/globals_0x66.html
@@ -0,0 +1,279 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li class="current"><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x66.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>fbrowser_content()
+: <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser.php</a>
+</li>
+<li>feature_enabled()
+: <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">features.php</a>
+</li>
+<li>feed_hublinks()
+: <a class="el" href="text_8php.html#a8d8c4a11e53461caca21181ebd72daca">text.php</a>
+</li>
+<li>feed_init()
+: <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed.php</a>
+</li>
+<li>feed_salmonlinks()
+: <a class="el" href="text_8php.html#a89929fa6f70a8ba54d5273fcf622b665">text.php</a>
+</li>
+<li>fetch_lrdd_template()
+: <a class="el" href="include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0">network.php</a>
+</li>
+<li>fetch_post_tags()
+: <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">items.php</a>
+</li>
+<li>fetch_url()
+: <a class="el" href="include_2network_8php.html#a37ddeb88a3fd1dee9e8339723f9edf9a">network.php</a>
+</li>
+<li>fetch_xrd_links()
+: <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">network.php</a>
+</li>
+<li>field_timezone()
+: <a class="el" href="datetime_8php.html#a03900dcf0f9e3c58793a031673a70326">datetime.php</a>
+</li>
+<li>file_tag_decode()
+: <a class="el" href="taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6">taxonomy.php</a>
+</li>
+<li>file_tag_encode()
+: <a class="el" href="taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37">taxonomy.php</a>
+</li>
+<li>file_tag_file_query()
+: <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">taxonomy.php</a>
+</li>
+<li>fileas_widget()
+: <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">contact_widgets.php</a>
+</li>
+<li>filer_content()
+: <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer.php</a>
+</li>
+<li>filerm_content()
+: <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm.php</a>
+</li>
+<li>find_thread_parent_index()
+: <a class="el" href="conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6">conversation.php</a>
+</li>
+<li>find_upstream_directory()
+: <a class="el" href="dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d">dir_fns.php</a>
+</li>
+<li>find_xchan_in_array()
+: <a class="el" href="text_8php.html#ace3c98538c63e09b70a363210b414112">text.php</a>
+</li>
+<li>findpeople_widget()
+: <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">contact_widgets.php</a>
+</li>
+<li>first_post_date()
+: <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">items.php</a>
+</li>
+<li>fix_attached_file_permissions()
+: <a class="el" href="item_8php.html#a3daae7944f737bd30412a0d042207c0f">item.php</a>
+</li>
+<li>fix_attached_photo_permissions()
+: <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">item.php</a>
+</li>
+<li>fix_contact_ssl_policy()
+: <a class="el" href="include_2network_8php.html#a2729d012410e470c527a62a3f777ded8">network.php</a>
+</li>
+<li>fix_mce_lf()
+: <a class="el" href="text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28">text.php</a>
+</li>
+<li>fix_private_photos()
+: <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">items.php</a>
+</li>
+<li>fix_system_urls()
+: <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">boot.php</a>
+</li>
+<li>fixacl()
+: <a class="el" href="acl__selectors_8php.html#ad6664fb8330308e23f2645cd6624727e">acl_selectors.php</a>
+</li>
+<li>follow_content()
+: <a class="el" href="mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592">follow.php</a>
+</li>
+<li>follow_init()
+: <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow.php</a>
+</li>
+<li>follow_widget()
+: <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">contact_widgets.php</a>
+</li>
+<li>foreach
+: <a class="el" href="typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5">typo.php</a>
+</li>
+<li>format_css_if_exists()
+: <a class="el" href="plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6">plugin.php</a>
+</li>
+<li>format_event_bbcode()
+: <a class="el" href="event_8php.html#abb74206cf42d694307c3d7abb7af9869">event.php</a>
+</li>
+<li>format_event_diaspora()
+: <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">bb2diaspora.php</a>
+</li>
+<li>format_event_html()
+: <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">event.php</a>
+</li>
+<li>format_js_if_exists()
+: <a class="el" href="plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f">plugin.php</a>
+</li>
+<li>format_like()
+: <a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">conversation.php</a>
+</li>
+<li>format_location()
+: <a class="el" href="conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3">conversation.php</a>
+</li>
+<li>format_notification()
+: <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">notify.php</a>
+</li>
+<li>format_term_for_display()
+: <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">taxonomy.php</a>
+</li>
+<li>fsuggest_content()
+: <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest.php</a>
+</li>
+<li>fsuggest_post()
+: <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x67.html b/doc/html/globals_0x67.html
new file mode 100644
index 000000000..722d2a2c0
--- /dev/null
+++ b/doc/html/globals_0x67.html
@@ -0,0 +1,348 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li class="current"><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x67.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>gender_selector()
+: <a class="el" href="profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355">profile_selectors.php</a>
+</li>
+<li>generate_user_guid()
+: <a class="el" href="text_8php.html#ae4f6881d7e13623f8eded6277595112a">text.php</a>
+</li>
+<li>get_account_id()
+: <a class="el" href="boot_8php.html#afe88b920aa285982edb817a0dd44eb37">boot.php</a>
+</li>
+<li>get_all_perms()
+: <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">permissions.php</a>
+</li>
+<li>get_app()
+: <a class="el" href="boot_8php.html#a0e6db7e365f2b041a828b93786f694bc">boot.php</a>
+</li>
+<li>get_atom_elements()
+: <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">items.php</a>
+</li>
+<li>get_bb_tag_pos()
+: <a class="el" href="bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2">bb2diaspora.php</a>
+</li>
+<li>get_best_language()
+: <a class="el" href="language_8php.html#a980dee1d8715a98ab02e36b59facf8ed">language.php</a>
+</li>
+<li>get_birthdays()
+: <a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">boot.php</a>
+</li>
+<li>get_browser_language()
+: <a class="el" href="language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e">language.php</a>
+</li>
+<li>get_capath()
+: <a class="el" href="include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7">network.php</a>
+</li>
+<li>get_config()
+: <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">config.php</a>
+</li>
+<li>get_config_from_storage()
+: <a class="el" href="include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74">config.php</a>
+</li>
+<li>get_db_errno()
+: <a class="el" href="setup_8php.html#a8652788e8589778c5f81634a9d5b9429">setup.php</a>
+</li>
+<li>get_dim()
+: <a class="el" href="datetime_8php.html#a7df24d72ea05922d3127363e2295174c">datetime.php</a>
+</li>
+<li>get_events()
+: <a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">boot.php</a>
+</li>
+<li>get_features()
+: <a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">features.php</a>
+</li>
+<li>get_feed_for()
+: <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">items.php</a>
+</li>
+<li>get_first_dim()
+: <a class="el" href="datetime_8php.html#aba971b67f17fecf050813f1eba72367f">datetime.php</a>
+</li>
+<li>get_form_security_token()
+: <a class="el" href="security_8php.html#acd06ef411116115c2f0a92633700db8a">security.php</a>
+</li>
+<li>get_intltext_template()
+: <a class="el" href="plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295">plugin.php</a>
+</li>
+<li>get_item_children()
+: <a class="el" href="conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67">conversation.php</a>
+</li>
+<li>get_item_contact()
+: <a class="el" href="items_8php.html#aab9c6bae4c40799867596bdaae9829fd">items.php</a>
+</li>
+<li>get_item_elements()
+: <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">items.php</a>
+</li>
+<li>get_mail_elements()
+: <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">items.php</a>
+</li>
+<li>get_markup_template()
+: <a class="el" href="plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4">plugin.php</a>
+</li>
+<li>get_max_import_size()
+: <a class="el" href="boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90">boot.php</a>
+</li>
+<li>get_mentions()
+: <a class="el" href="text_8php.html#a76d1b3435c067978d7b484c45f56472b">text.php</a>
+</li>
+<li>get_mood_verbs()
+: <a class="el" href="text_8php.html#a736db13a966b8abaf8c9198faa35911a">text.php</a>
+</li>
+<li>get_my_address()
+: <a class="el" href="boot_8php.html#a490972c02fdb638c52ec0e012a30bfd2">boot.php</a>
+</li>
+<li>get_my_url()
+: <a class="el" href="boot_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec">boot.php</a>
+</li>
+<li>get_observer_hash()
+: <a class="el" href="boot_8php.html#a623e49c79943f3e7bdb770d021683cf7">boot.php</a>
+</li>
+<li>get_pconfig()
+: <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">config.php</a>
+</li>
+<li>get_perms()
+: <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">permissions.php</a>
+</li>
+<li>get_plink()
+: <a class="el" href="text_8php.html#a05b7f26dc2df78681f57eeade53040c6">text.php</a>
+</li>
+<li>get_plugin_info()
+: <a class="el" href="plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35">plugin.php</a>
+</li>
+<li>get_poke_verbs()
+: <a class="el" href="text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66">text.php</a>
+</li>
+<li>get_profile_elements()
+: <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">items.php</a>
+</li>
+<li>get_public_feed()
+: <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">items.php</a>
+</li>
+<li>get_rel_link()
+: <a class="el" href="text_8php.html#a3972701c5c83624ec4e2d06242f614e7">text.php</a>
+</li>
+<li>get_tags()
+: <a class="el" href="text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623">text.php</a>
+</li>
+<li>get_terms_oftype()
+: <a class="el" href="taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1">taxonomy.php</a>
+</li>
+<li>get_theme_config_file()
+: <a class="el" href="settings_8php.html#a39abc76ff5459c57e3b957664f273f18">settings.php</a>
+</li>
+<li>get_theme_info()
+: <a class="el" href="plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405">plugin.php</a>
+</li>
+<li>get_theme_screenshot()
+: <a class="el" href="plugin_8php.html#a48047edfbef770125a5508dcc2f9282f">plugin.php</a>
+</li>
+<li>get_theme_uid()
+: <a class="el" href="boot_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">boot.php</a>
+</li>
+<li>get_xconfig()
+: <a class="el" href="include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e">config.php</a>
+</li>
+<li>goaway()
+: <a class="el" href="boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1">boot.php</a>
+</li>
+<li>gprobe_run()
+: <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe.php</a>
+</li>
+<li>GRAVITY_COMMENT
+: <a class="el" href="boot_8php.html#a4a12ce5de39789b0361e308d89925a20">boot.php</a>
+</li>
+<li>GRAVITY_LIKE
+: <a class="el" href="boot_8php.html#a1f5906598e90b5ea2b4245f682be4348">boot.php</a>
+</li>
+<li>GRAVITY_PARENT
+: <a class="el" href="boot_8php.html#a2af173e4e9836ee7c90757b4793a2be3">boot.php</a>
+</li>
+<li>group_add()
+: <a class="el" href="include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0">group.php</a>
+</li>
+<li>group_add_member()
+: <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group.php</a>
+</li>
+<li>group_aside()
+: <a class="el" href="mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c">group.php</a>
+</li>
+<li>group_byname()
+: <a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group.php</a>
+</li>
+<li>group_content()
+: <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group.php</a>
+</li>
+<li>group_get_members()
+: <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group.php</a>
+</li>
+<li>group_post()
+: <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group.php</a>
+</li>
+<li>group_rec_byhash()
+: <a class="el" href="include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245">group.php</a>
+</li>
+<li>group_rmv()
+: <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group.php</a>
+</li>
+<li>group_rmv_member()
+: <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group.php</a>
+</li>
+<li>group_select()
+: <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">acl_selectors.php</a>
+</li>
+<li>group_side()
+: <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group.php</a>
+</li>
+<li>groups_containing()
+: <a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">group.php</a>
+</li>
+<li>guess_image_type()
+: <a class="el" href="photo__driver_8php.html#a7273b82b017fd96d29b2c57bab03aea6">photo_driver.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x68.html b/doc/html/globals_0x68.html
new file mode 100644
index 000000000..e90a90e3b
--- /dev/null
+++ b/doc/html/globals_0x68.html
@@ -0,0 +1,204 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li class="current"><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x68.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>handle_tag()
+: <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">item.php</a>
+</li>
+<li>has_permissions()
+: <a class="el" href="items_8php.html#a77051724d1784074ff187e73a4db93fe">items.php</a>
+</li>
+<li>hcard_aside()
+: <a class="el" href="hcard_8php.html#a956c7cae2009652a37900306e5b7b73d">hcard.php</a>
+</li>
+<li>hcard_init()
+: <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard.php</a>
+</li>
+<li>head_add_css()
+: <a class="el" href="plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a">plugin.php</a>
+</li>
+<li>head_add_js()
+: <a class="el" href="plugin_8php.html#a516591850f4fd49fd1425cfa54089db8">plugin.php</a>
+</li>
+<li>head_get_css()
+: <a class="el" href="plugin_8php.html#af92789f559b89a380e49d303218aeeca">plugin.php</a>
+</li>
+<li>head_get_icon()
+: <a class="el" href="boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77">boot.php</a>
+</li>
+<li>head_get_js()
+: <a class="el" href="plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1">plugin.php</a>
+</li>
+<li>head_set_icon()
+: <a class="el" href="boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84">boot.php</a>
+</li>
+<li>help_content()
+: <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help.php</a>
+</li>
+<li>hostxrd_init()
+: <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd.php</a>
+</li>
+<li>html2bb_video()
+: <a class="el" href="text_8php.html#a138a3a611fa7f4f3630674145fc826bf">text.php</a>
+</li>
+<li>html2bbcode()
+: <a class="el" href="html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837">html2bbcode.php</a>
+</li>
+<li>html2plain()
+: <a class="el" href="html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04">html2plain.php</a>
+</li>
+<li>http_status_exit()
+: <a class="el" href="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">network.php</a>
+</li>
+<li>HUBLOC_FLAGS_PRIMARY
+: <a class="el" href="boot_8php.html#a3ad9cc5d4354be741fa1de12b96e9955">boot.php</a>
+</li>
+<li>HUBLOC_FLAGS_UNVERIFIED
+: <a class="el" href="boot_8php.html#ab54b24cc302e1a42a67a49d788b6b764">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x69.html b/doc/html/globals_0x69.html
new file mode 100644
index 000000000..be74f1d28
--- /dev/null
+++ b/doc/html/globals_0x69.html
@@ -0,0 +1,335 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li class="current"><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x69.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>identity_basic_export()
+: <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity.php</a>
+</li>
+<li>identity_basic_import()
+: <a class="el" href="identity_8php.html#a77ee7d66eb0758f7e7882f70ad0f9485">identity.php</a>
+</li>
+<li>identity_check_service_class()
+: <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity.php</a>
+</li>
+<li>ids_to_querystr()
+: <a class="el" href="text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a">text.php</a>
+</li>
+<li>if
+: <a class="el" href="redbasic_2php_2style_8php.html#ac4c6bc3cd9cc92204f04cf6cb34b47dd">style.php</a>
+, <a class="el" href="theme_2redstrap_2php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762">default.php</a>
+, <a class="el" href="php2po_8php.html#a45b05625748f412ec97afcd61cf7980b">php2po.php</a>
+, <a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">style.php</a>
+, <a class="el" href="php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762">default.php</a>
+, <a class="el" href="full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db">full.php</a>
+</li>
+<li>import_author_xchan()
+: <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">items.php</a>
+</li>
+<li>import_channel_photo()
+: <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">photo_driver.php</a>
+</li>
+<li>import_content()
+: <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import.php</a>
+</li>
+<li>import_directory_keywords()
+: <a class="el" href="zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a">zot.php</a>
+</li>
+<li>import_directory_profile()
+: <a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">zot.php</a>
+</li>
+<li>import_post()
+: <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import.php</a>
+</li>
+<li>import_profile_photo()
+: <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">photo_driver.php</a>
+</li>
+<li>import_site()
+: <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">zot.php</a>
+</li>
+<li>import_xchan()
+: <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">zot.php</a>
+</li>
+<li>info()
+: <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">boot.php</a>
+</li>
+<li>install_plugin()
+: <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">plugin.php</a>
+</li>
+<li>intro_aside()
+: <a class="el" href="intro_8php.html#abc3abf25da64f98f215126eb08c7936b">intro.php</a>
+</li>
+<li>intro_content()
+: <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro.php</a>
+</li>
+<li>intro_post()
+: <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro.php</a>
+</li>
+<li>invite_content()
+: <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite.php</a>
+</li>
+<li>invite_post()
+: <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite.php</a>
+</li>
+<li>is_a_date_arg()
+: <a class="el" href="text_8php.html#a1557112a774ec00fa06ed6b6f6495506">text.php</a>
+</li>
+<li>is_ajax()
+: <a class="el" href="boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c">boot.php</a>
+</li>
+<li>is_site_admin()
+: <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">boot.php</a>
+</li>
+<li>ITEM_BLOCKED
+: <a class="el" href="boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f">boot.php</a>
+</li>
+<li>item_content()
+: <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item.php</a>
+</li>
+<li>ITEM_DELAYED_PUBLISH
+: <a class="el" href="boot_8php.html#ac890557fedc5b5a3b1d996249b1e1a20">boot.php</a>
+</li>
+<li>ITEM_DELETED
+: <a class="el" href="boot_8php.html#a3515ea6bf77495de89b93e9ccd881c49">boot.php</a>
+</li>
+<li>item_expire()
+: <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">items.php</a>
+</li>
+<li>item_extract_images()
+: <a class="el" href="conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654">conversation.php</a>
+</li>
+<li>item_getfeedattach()
+: <a class="el" href="items_8php.html#a09d425596b9f8663472cf7474ad36d96">items.php</a>
+</li>
+<li>item_getfeedtags()
+: <a class="el" href="items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7">items.php</a>
+</li>
+<li>ITEM_HIDDEN
+: <a class="el" href="boot_8php.html#ac99fc4d040764eac1736bec6973556fe">boot.php</a>
+</li>
+<li>ITEM_MENTIONSME
+: <a class="el" href="boot_8php.html#a8da836617174eed9fc2ac8054125354b">boot.php</a>
+</li>
+<li>item_message_id()
+: <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">text.php</a>
+</li>
+<li>ITEM_MODERATED
+: <a class="el" href="boot_8php.html#ac01230c7655e0705b2e99c9bc03c4450">boot.php</a>
+</li>
+<li>ITEM_NOCOMMENT
+: <a class="el" href="boot_8php.html#a949116d9a295b214293006c060ca4848">boot.php</a>
+</li>
+<li>ITEM_NOTSHOWN
+: <a class="el" href="boot_8php.html#a8663f32171568489dbb2a01dd00371f8">boot.php</a>
+</li>
+<li>ITEM_NSFW
+: <a class="el" href="boot_8php.html#a939de9a99278f4fd7dcd0ee67f243f08">boot.php</a>
+</li>
+<li>ITEM_OBSCURED
+: <a class="el" href="boot_8php.html#a2c8906f1af94a3559a5b4661067bb79d">boot.php</a>
+</li>
+<li>ITEM_ORIGIN
+: <a class="el" href="boot_8php.html#a8c9dce0ef27b35397e29298eb966f7f7">boot.php</a>
+</li>
+<li>item_permissions_sql()
+: <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">security.php</a>
+</li>
+<li>item_photo_menu()
+: <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">conversation.php</a>
+</li>
+<li>item_post()
+: <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item.php</a>
+</li>
+<li>item_post_type()
+: <a class="el" href="text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e">text.php</a>
+</li>
+<li>item_redir_and_replace_images()
+: <a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">conversation.php</a>
+</li>
+<li>ITEM_RELAY
+: <a class="el" href="boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221">boot.php</a>
+</li>
+<li>ITEM_SPAM
+: <a class="el" href="boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb">boot.php</a>
+</li>
+<li>ITEM_STARRED
+: <a class="el" href="boot_8php.html#a7af107fab8d62b9a73801713b774ed30">boot.php</a>
+</li>
+<li>item_store()
+: <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">items.php</a>
+</li>
+<li>item_store_update()
+: <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">items.php</a>
+</li>
+<li>ITEM_THREAD_TOP
+: <a class="el" href="boot_8php.html#a749144d8dd9c1366596a0213c277d050">boot.php</a>
+</li>
+<li>ITEM_UNPUBLISHED
+: <a class="el" href="boot_8php.html#adaeb4f590c56326b2dca3b19f31b6272">boot.php</a>
+</li>
+<li>ITEM_UNSEEN
+: <a class="el" href="boot_8php.html#a009e6a0637cb65804ea8094ecc4450b0">boot.php</a>
+</li>
+<li>ITEM_UPLINK
+: <a class="el" href="boot_8php.html#aefba06f1c0842036329033e7567ecf6d">boot.php</a>
+</li>
+<li>ITEM_UPLINK_PRV
+: <a class="el" href="boot_8php.html#aad33b494084f729b6ee3b0bc457718a1">boot.php</a>
+</li>
+<li>ITEM_VISIBLE
+: <a class="el" href="boot_8php.html#ab55b16ae7fc19fafe5afaedd49163bbf">boot.php</a>
+</li>
+<li>ITEM_WALL
+: <a class="el" href="boot_8php.html#a6788e99021ec8ffb0fa94d651f22a322">boot.php</a>
+</li>
+<li>ITEM_WEBPAGE
+: <a class="el" href="boot_8php.html#af489d0c3166551b93e63a79ff2c9be35">boot.php</a>
+</li>
+<li>items_fetch()
+: <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x6a.html b/doc/html/globals_0x6a.html
new file mode 100644
index 000000000..a5a2929c3
--- /dev/null
+++ b/doc/html/globals_0x6a.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li class="current"><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x6a.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
+<li>jindent()
+: <a class="el" href="text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8">text.php</a>
+</li>
+<li>JPEG_QUALITY
+: <a class="el" href="boot_8php.html#a3475ff6c2e575f946ea0ee377e944173">boot.php</a>
+</li>
+<li>json_return_and_die()
+: <a class="el" href="include_2network_8php.html#a4c5d50079e089168d9248427018fffd4">network.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x6b.html b/doc/html/globals_0x6b.html
new file mode 100644
index 000000000..e45270b14
--- /dev/null
+++ b/doc/html/globals_0x6b.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li class="current"><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x6b.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>KEY_NOT_EXISTS
+: <a class="el" href="template__processor_8php.html#a797745996c7839a93b2ab1af456631ab">template_processor.php</a>
+</li>
+<li>killme()
+: <a class="el" href="boot_8php.html#aea7fc57a4d8e9dcb42f2601b0b9b761c">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x6c.html b/doc/html/globals_0x6c.html
new file mode 100644
index 000000000..a73c11ea1
--- /dev/null
+++ b/doc/html/globals_0x6c.html
@@ -0,0 +1,255 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li class="current"><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x6c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>lang_selector()
+: <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">text.php</a>
+</li>
+<li>LANGUAGE_DETECT_MIN_CONFIDENCE
+: <a class="el" href="boot_8php.html#a68d1d5bc9c7ccb663dc671b48c66df11">boot.php</a>
+</li>
+<li>LANGUAGE_DETECT_MIN_LENGTH
+: <a class="el" href="boot_8php.html#a17cf72338b040891781a4bcbdd9a8595">boot.php</a>
+</li>
+<li>legal_webbie()
+: <a class="el" href="text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728">text.php</a>
+</li>
+<li>like_content()
+: <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like.php</a>
+</li>
+<li>like_puller()
+: <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">conversation.php</a>
+</li>
+<li>limit_body_size()
+: <a class="el" href="items_8php.html#af94c281016c6c912d06e064113336c5c">items.php</a>
+</li>
+<li>link_compare()
+: <a class="el" href="text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285">text.php</a>
+</li>
+<li>linkify()
+: <a class="el" href="text_8php.html#a11255c8c4e5245b6c24f97684826aa54">text.php</a>
+</li>
+<li>load_config()
+: <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">config.php</a>
+</li>
+<li>load_contact_links()
+: <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">boot.php</a>
+</li>
+<li>load_database()
+: <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">setup.php</a>
+</li>
+<li>load_database_rem()
+: <a class="el" href="setup_8php.html#a2b375ddc555140236fc500135de99371">setup.php</a>
+</li>
+<li>load_hooks()
+: <a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">plugin.php</a>
+</li>
+<li>load_pconfig()
+: <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">config.php</a>
+</li>
+<li>load_plugin()
+: <a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">plugin.php</a>
+</li>
+<li>load_translation_table()
+: <a class="el" href="language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05">language.php</a>
+</li>
+<li>load_xconfig()
+: <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">config.php</a>
+</li>
+<li>local_delivery()
+: <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">items.php</a>
+</li>
+<li>local_user()
+: <a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">boot.php</a>
+</li>
+<li>localize_item()
+: <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">conversation.php</a>
+</li>
+<li>lockview_content()
+: <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview.php</a>
+</li>
+<li>logger()
+: <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">text.php</a>
+</li>
+<li>LOGGER_ALL
+: <a class="el" href="boot_8php.html#afe63ae69ba55299f813766e54df06ede">boot.php</a>
+</li>
+<li>LOGGER_DATA
+: <a class="el" href="boot_8php.html#a6969947145a139ec374ce098224d8e81">boot.php</a>
+</li>
+<li>LOGGER_DEBUG
+: <a class="el" href="boot_8php.html#a93823d15ae07548a4c49de88d325cd26">boot.php</a>
+</li>
+<li>LOGGER_NORMAL
+: <a class="el" href="boot_8php.html#a17b4ea23d9ecf628d9c8f53b7abcb805">boot.php</a>
+</li>
+<li>LOGGER_TRACE
+: <a class="el" href="boot_8php.html#a022cea669f9f13ef7c6268b63884c57f">boot.php</a>
+</li>
+<li>login()
+: <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">boot.php</a>
+</li>
+<li>login_content()
+: <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login.php</a>
+</li>
+<li>lose_follower()
+: <a class="el" href="items_8php.html#ade53043e7bc5ab9cc9ef1e4fed6569d4">items.php</a>
+</li>
+<li>lose_sharer()
+: <a class="el" href="items_8php.html#a3a218d5e8ffbe261f773225ecded86a2">items.php</a>
+</li>
+<li>lostpass_content()
+: <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass.php</a>
+</li>
+<li>lostpass_post()
+: <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass.php</a>
+</li>
+<li>lrdd()
+: <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">network.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x6d.html b/doc/html/globals_0x6d.html
new file mode 100644
index 000000000..8e0fde325
--- /dev/null
+++ b/doc/html/globals_0x6d.html
@@ -0,0 +1,228 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li class="current"><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x6d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>magic_init()
+: <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic.php</a>
+</li>
+<li>magic_link()
+: <a class="el" href="text_8php.html#a1e510c53624933ce9b7d6715784894db">text.php</a>
+</li>
+<li>magiclink_url()
+: <a class="el" href="text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6">text.php</a>
+</li>
+<li>MAIL_DELETED
+: <a class="el" href="boot_8php.html#ad0876e837cf3fad8a26417e315f6e2c8">boot.php</a>
+</li>
+<li>MAIL_ISREPLY
+: <a class="el" href="boot_8php.html#aa544a6c078130d0967a1f4ed8ce0a2d2">boot.php</a>
+</li>
+<li>MAIL_OBSCURED
+: <a class="el" href="boot_8php.html#a44ae1542a805ffd7f826fb511db07374">boot.php</a>
+</li>
+<li>MAIL_RECALLED
+: <a class="el" href="boot_8php.html#ae4861de36017fe399c1839f778bad9f5">boot.php</a>
+</li>
+<li>MAIL_REPLIED
+: <a class="el" href="boot_8php.html#aa3679df31c8dad1b71816b0322d5baff">boot.php</a>
+</li>
+<li>MAIL_SEEN
+: <a class="el" href="boot_8php.html#a1fbb93cf030f07391f22cc2948744869">boot.php</a>
+</li>
+<li>mail_store()
+: <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">items.php</a>
+</li>
+<li>manage_content()
+: <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage.php</a>
+</li>
+<li>manual_config()
+: <a class="el" href="setup_8php.html#abe405d227ba7232971964a706d4f3bce">setup.php</a>
+</li>
+<li>map_scope()
+: <a class="el" href="items_8php.html#ac1fcf621dce7370515b420a7753f4726">items.php</a>
+</li>
+<li>marital_selector()
+: <a class="el" href="profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798">profile_selectors.php</a>
+</li>
+<li>match_content()
+: <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match.php</a>
+</li>
+<li>MAX_IMAGE_LENGTH
+: <a class="el" href="boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa">boot.php</a>
+</li>
+<li>MAX_LIKERS
+: <a class="el" href="boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd">boot.php</a>
+</li>
+<li>member_of()
+: <a class="el" href="include_2group_8php.html#a048f6892bfd28852de1b76470df411de">group.php</a>
+</li>
+<li>message_aside()
+: <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message.php</a>
+</li>
+<li>message_content()
+: <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message.php</a>
+</li>
+<li>message_post()
+: <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message.php</a>
+</li>
+<li>micropro()
+: <a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">text.php</a>
+</li>
+<li>mini_group_select()
+: <a class="el" href="include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f">group.php</a>
+</li>
+<li>mood_content()
+: <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood.php</a>
+</li>
+<li>mood_init()
+: <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood.php</a>
+</li>
+<li>msearch_post()
+: <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x6e.html b/doc/html/globals_0x6e.html
new file mode 100644
index 000000000..a4c9fd7a5
--- /dev/null
+++ b/doc/html/globals_0x6e.html
@@ -0,0 +1,360 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li class="current"><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x6e.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>n
+: <a class="el" href="php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b">php2po.php</a>
+</li>
+<li>namesList()
+: <a class="el" href="docblox__errorchecker_8php.html#a2b767cfc461fdd5061fffc9e4a806d5b">docblox_errorchecker.php</a>
+</li>
+<li>NAMESPACE_ACTIVITY
+: <a class="el" href="boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2">boot.php</a>
+</li>
+<li>NAMESPACE_ACTIVITY_SCHEMA
+: <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">boot.php</a>
+</li>
+<li>NAMESPACE_ATOM1
+: <a class="el" href="boot_8php.html#a444ce608ce34efb82ee11852f36e825f">boot.php</a>
+</li>
+<li>NAMESPACE_DFRN
+: <a class="el" href="boot_8php.html#a7ed4581ab66ebcde97f6b3730856b028">boot.php</a>
+</li>
+<li>NAMESPACE_FEED
+: <a class="el" href="boot_8php.html#ac195fc9003298923ea81f144388e24b1">boot.php</a>
+</li>
+<li>NAMESPACE_GEORSS
+: <a class="el" href="boot_8php.html#a03d19251c245587de7ed959300b87bdf">boot.php</a>
+</li>
+<li>NAMESPACE_MEDIA
+: <a class="el" href="boot_8php.html#a6626f383c3d2d459f731ab8b4f237d16">boot.php</a>
+</li>
+<li>NAMESPACE_OSTATUS
+: <a class="el" href="boot_8php.html#acca19aae62e1a6951a856b945de20d67">boot.php</a>
+</li>
+<li>NAMESPACE_OSTATUSSUB
+: <a class="el" href="boot_8php.html#a181c111f4b6c14d091dfd3bf0d0a22cd">boot.php</a>
+</li>
+<li>NAMESPACE_POCO
+: <a class="el" href="boot_8php.html#a0b73e2548d6f9beb9c93211f488e336a">boot.php</a>
+</li>
+<li>NAMESPACE_SALMON_ME
+: <a class="el" href="boot_8php.html#aee324eca9de4e0fedf01ab5f92e27c67">boot.php</a>
+</li>
+<li>NAMESPACE_STATUSNET
+: <a class="el" href="boot_8php.html#afaf93b7026f784b113b4f8921745891e">boot.php</a>
+</li>
+<li>NAMESPACE_THREAD
+: <a class="el" href="boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86">boot.php</a>
+</li>
+<li>NAMESPACE_TOMB
+: <a class="el" href="boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e">boot.php</a>
+</li>
+<li>NAMESPACE_ZOT
+: <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">boot.php</a>
+</li>
+<li>nav()
+: <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav.php</a>
+</li>
+<li>nav_set_selected()
+: <a class="el" href="nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a">nav.php</a>
+</li>
+<li>navbar_complete()
+: <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">acl.php</a>
+</li>
+<li>network_content()
+: <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network.php</a>
+</li>
+<li>NETWORK_DFRN
+: <a class="el" href="boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e">boot.php</a>
+</li>
+<li>NETWORK_DIASPORA
+: <a class="el" href="boot_8php.html#a38f6c7fe33b5434a24b4314567753dfa">boot.php</a>
+</li>
+<li>NETWORK_FACEBOOK
+: <a class="el" href="boot_8php.html#af3905ea8f8568d0236db13fca40514e3">boot.php</a>
+</li>
+<li>NETWORK_FEED
+: <a class="el" href="boot_8php.html#ab4bddb41a0cf407178ec5278b950c393">boot.php</a>
+</li>
+<li>NETWORK_GPLUS
+: <a class="el" href="boot_8php.html#a8905fde0a5b7882bdc083b20d9b34701">boot.php</a>
+</li>
+<li>network_init()
+: <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network.php</a>
+</li>
+<li>NETWORK_LINKEDIN
+: <a class="el" href="boot_8php.html#a5b043b7fdcfd4e8c9c3747574afc6caa">boot.php</a>
+</li>
+<li>NETWORK_MAIL
+: <a class="el" href="boot_8php.html#a7236b2cdcf59f02a42302e893a99013b">boot.php</a>
+</li>
+<li>NETWORK_MAIL2
+: <a class="el" href="boot_8php.html#aa17a4f9c63f5cbc5c06f1066b6aebc42">boot.php</a>
+</li>
+<li>NETWORK_MYSPACE
+: <a class="el" href="boot_8php.html#ae94f7c7c0909629a75aed1c41f10bc95">boot.php</a>
+</li>
+<li>NETWORK_OSTATUS
+: <a class="el" href="boot_8php.html#aef4b6c558c68c88c10f13c5a00c20e3d">boot.php</a>
+</li>
+<li>NETWORK_PHANTOM
+: <a class="el" href="boot_8php.html#ab21fb0f3e6b962419955c6fc7f26734f">boot.php</a>
+</li>
+<li>network_query_get_sel_tab()
+: <a class="el" href="mod_2network_8php.html#aeaa518c1a317516a3da337b88d358666">network.php</a>
+</li>
+<li>network_to_name()
+: <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">contact_selectors.php</a>
+</li>
+<li>NETWORK_XMPP
+: <a class="el" href="boot_8php.html#a43296b1b4398aacbf92a4b2d56bab91e">boot.php</a>
+</li>
+<li>NETWORK_ZOT
+: <a class="el" href="boot_8php.html#a2c65e925994566a63e6c03c381f1b4a0">boot.php</a>
+</li>
+<li>new_channel_content()
+: <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel.php</a>
+</li>
+<li>new_channel_init()
+: <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel.php</a>
+</li>
+<li>new_channel_post()
+: <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel.php</a>
+</li>
+<li>new_contact()
+: <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">follow.php</a>
+</li>
+<li>new_cookie()
+: <a class="el" href="session_8php.html#a4c0ead624f95483e386bc80abf570a8f">session.php</a>
+</li>
+<li>new_follower()
+: <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">items.php</a>
+</li>
+<li>new_keypair()
+: <a class="el" href="crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a">crypto.php</a>
+</li>
+<li>node2bbcode()
+: <a class="el" href="html2bbcode_8php.html#ad174afe0ccbd8c475e48f8a6ee2f27d8">html2bbcode.php</a>
+</li>
+<li>node2bbcodesub()
+: <a class="el" href="html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7">html2bbcode.php</a>
+</li>
+<li>nogroup_content()
+: <a class="el" href="nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30">nogroup.php</a>
+</li>
+<li>nogroup_init()
+: <a class="el" href="nogroup_8php.html#a099cb353bf62e8453069ce107b763212">nogroup.php</a>
+</li>
+<li>normalise_link()
+: <a class="el" href="text_8php.html#a4bbb7d00c05cd20b4e043424f322388f">text.php</a>
+</li>
+<li>normalise_openid()
+: <a class="el" href="text_8php.html#adba17ec946f4285285dc100f7860bf51">text.php</a>
+</li>
+<li>notags()
+: <a class="el" href="text_8php.html#a1af49756c8c71902a66c7e329c462beb">text.php</a>
+</li>
+<li>notice()
+: <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">boot.php</a>
+</li>
+<li>notification()
+: <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">enotify.php</a>
+</li>
+<li>notifications_content()
+: <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications.php</a>
+</li>
+<li>notifications_post()
+: <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications.php</a>
+</li>
+<li>notifier_run()
+: <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier.php</a>
+</li>
+<li>NOTIFY_COMMENT
+: <a class="el" href="boot_8php.html#a20f0eed431d25870b624b8937a07a59f">boot.php</a>
+</li>
+<li>NOTIFY_CONFIRM
+: <a class="el" href="boot_8php.html#af8c0cb0744c9a6b5d6d3baafb1f1e71d">boot.php</a>
+</li>
+<li>notify_content()
+: <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify.php</a>
+</li>
+<li>notify_init()
+: <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify.php</a>
+</li>
+<li>NOTIFY_INTRO
+: <a class="el" href="boot_8php.html#a56fd673eaa7014150297ce1162502db5">boot.php</a>
+</li>
+<li>NOTIFY_MAIL
+: <a class="el" href="boot_8php.html#a285732e7889fa7f333cbe431111e1029">boot.php</a>
+</li>
+<li>NOTIFY_POKE
+: <a class="el" href="boot_8php.html#aca08bc4f1554ba877500f6abcc99e1e8">boot.php</a>
+</li>
+<li>NOTIFY_PROFILE
+: <a class="el" href="boot_8php.html#a981d46380f9f23c308bac1f9cb00dc5b">boot.php</a>
+</li>
+<li>NOTIFY_SUGGEST
+: <a class="el" href="boot_8php.html#a9d01ef178b72b145016cca1393415bc4">boot.php</a>
+</li>
+<li>NOTIFY_SYSTEM
+: <a class="el" href="boot_8php.html#a14d44d4a00223dc3db4ea962325db192">boot.php</a>
+</li>
+<li>NOTIFY_TAGSELF
+: <a class="el" href="boot_8php.html#ab724491497ab2618b23a01d5da60aec0">boot.php</a>
+</li>
+<li>NOTIFY_TAGSHARE
+: <a class="el" href="boot_8php.html#af6937db5f581d006bf4a5c3d9c7e0461">boot.php</a>
+</li>
+<li>NOTIFY_WALL
+: <a class="el" href="boot_8php.html#a505410c7edc5f5bb5fa227b98359793e">boot.php</a>
+</li>
+<li>nuke_session()
+: <a class="el" href="auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a">auth.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x6f.html b/doc/html/globals_0x6f.html
new file mode 100644
index 000000000..8e17bfdd7
--- /dev/null
+++ b/doc/html/globals_0x6f.html
@@ -0,0 +1,198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li class="current"><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x6f.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>oauth_get_client()
+: <a class="el" href="mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117">api.php</a>
+</li>
+<li>obj_verb_selector()
+: <a class="el" href="taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2">taxonomy.php</a>
+</li>
+<li>obj_verbs()
+: <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">taxonomy.php</a>
+</li>
+<li>oe_build_xpath()
+: <a class="el" href="include_2oembed_8php.html#ab953a6e7c11bc6498ce01ed73e2ba319">oembed.php</a>
+</li>
+<li>oe_get_inner_html()
+: <a class="el" href="include_2oembed_8php.html#a03fa3b7832c98a3d0b4630afeb73d487">oembed.php</a>
+</li>
+<li>oembed_bbcode2html()
+: <a class="el" href="include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2">oembed.php</a>
+</li>
+<li>oembed_fetch_url()
+: <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed.php</a>
+</li>
+<li>oembed_format_object()
+: <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed.php</a>
+</li>
+<li>oembed_html2bbcode()
+: <a class="el" href="include_2oembed_8php.html#a000a62b97113cf95b0e9e00412168172">oembed.php</a>
+</li>
+<li>oembed_iframe()
+: <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed.php</a>
+</li>
+<li>oembed_init()
+: <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed.php</a>
+</li>
+<li>oembed_replacecb()
+: <a class="el" href="include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0">oembed.php</a>
+</li>
+<li>oexchange_content()
+: <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange.php</a>
+</li>
+<li>oexchange_init()
+: <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange.php</a>
+</li>
+<li>onepoll_run()
+: <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll.php</a>
+</li>
+<li>opensearch_init()
+: <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x70.html b/doc/html/globals_0x70.html
new file mode 100644
index 000000000..26df9bcd8
--- /dev/null
+++ b/doc/html/globals_0x70.html
@@ -0,0 +1,497 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li class="current"><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x70.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>page
+: <a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">mod_import.php</a>
+, <a class="el" href="mod__new__channel_8php.html#a8db1899eeeb44dabd0904065b63627bb">mod_new_channel.php</a>
+, <a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">mod_register.php</a>
+</li>
+<li>PAGE_APPLICATION
+: <a class="el" href="boot_8php.html#a8231d115060d41a9c2a677f2c86f10ed">boot.php</a>
+</li>
+<li>PAGE_AUTOCONNECT
+: <a class="el" href="boot_8php.html#aa275653b9c87abc7391bb8040c1c2de9">boot.php</a>
+</li>
+<li>page_content()
+: <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page.php</a>
+</li>
+<li>PAGE_DIRECTORY_CHANNEL
+: <a class="el" href="boot_8php.html#a5b8484922918946d041e5e0515dbe718">boot.php</a>
+</li>
+<li>PAGE_HIDDEN
+: <a class="el" href="boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640">boot.php</a>
+</li>
+<li>page_init()
+: <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page.php</a>
+</li>
+<li>PAGE_NORMAL
+: <a class="el" href="boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3">boot.php</a>
+</li>
+<li>PAGE_REMOVED
+: <a class="el" href="boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6">boot.php</a>
+</li>
+<li>paginate()
+: <a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">text.php</a>
+</li>
+<li>parse_url_content()
+: <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url.php</a>
+</li>
+<li>parse_xml_string()
+: <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">network.php</a>
+</li>
+<li>parseurl_getsiteinfo()
+: <a class="el" href="parse__url_8php.html#a25635549f2c22955d72465f4d2e58993">parse_url.php</a>
+</li>
+<li>perm_is_allowed()
+: <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">permissions.php</a>
+</li>
+<li>permissions_sql()
+: <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">security.php</a>
+</li>
+<li>perms2str()
+: <a class="el" href="text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee">text.php</a>
+</li>
+<li>PERMS_A_DELEGATE
+: <a class="el" href="boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b">boot.php</a>
+</li>
+<li>PERMS_CONTACTS
+: <a class="el" href="boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6">boot.php</a>
+</li>
+<li>PERMS_NETWORK
+: <a class="el" href="boot_8php.html#a6df1102664f64b274810db85197c2755">boot.php</a>
+</li>
+<li>PERMS_PUBLIC
+: <a class="el" href="boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7">boot.php</a>
+</li>
+<li>PERMS_R_ABOOK
+: <a class="el" href="boot_8php.html#a3d6d4fc5fafcc9156811669158541caf">boot.php</a>
+</li>
+<li>PERMS_R_PAGES
+: <a class="el" href="boot_8php.html#ab51965fabe54dc031e9a0ce1142ee83e">boot.php</a>
+</li>
+<li>PERMS_R_PHOTOS
+: <a class="el" href="boot_8php.html#a29e921c0c72412cc738e44cca6ca1f62">boot.php</a>
+</li>
+<li>PERMS_R_PROFILE
+: <a class="el" href="boot_8php.html#ad789aef3cb95fc1eb36be7c4283d0137">boot.php</a>
+</li>
+<li>PERMS_R_STORAGE
+: <a class="el" href="boot_8php.html#a1db4f0009c9cb4e107eab0f914a3c8dc">boot.php</a>
+</li>
+<li>PERMS_R_STREAM
+: <a class="el" href="boot_8php.html#aec36f8fcd4cb14a52934590b3d6666b4">boot.php</a>
+</li>
+<li>PERMS_SITE
+: <a class="el" href="boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f">boot.php</a>
+</li>
+<li>PERMS_SPECIFIC
+: <a class="el" href="boot_8php.html#a9cc986b4f9dd6558cbb2e25aadbfd964">boot.php</a>
+</li>
+<li>PERMS_W_CHAT
+: <a class="el" href="boot_8php.html#acd877c405b06b348b37b6f7e62a211e9">boot.php</a>
+</li>
+<li>PERMS_W_COMMENT
+: <a class="el" href="boot_8php.html#a32df13fec0e43281da5979e1f5579aa8">boot.php</a>
+</li>
+<li>PERMS_W_MAIL
+: <a class="el" href="boot_8php.html#a6b31dd451bc6c37fe7c9c766ff385aaf">boot.php</a>
+</li>
+<li>PERMS_W_PAGES
+: <a class="el" href="boot_8php.html#aa9244fc9cc221980c07a20cc534111be">boot.php</a>
+</li>
+<li>PERMS_W_PHOTOS
+: <a class="el" href="boot_8php.html#a57eee7352714c004d36c26dda74af73e">boot.php</a>
+</li>
+<li>PERMS_W_STORAGE
+: <a class="el" href="boot_8php.html#a4fefd7486d3b888a05cfd3dc9575f115">boot.php</a>
+</li>
+<li>PERMS_W_STREAM
+: <a class="el" href="boot_8php.html#a8bb0395933b5e886f086f6a2fb0bfa55">boot.php</a>
+</li>
+<li>PERMS_W_TAGWALL
+: <a class="el" href="boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777">boot.php</a>
+</li>
+<li>PERMS_W_WALL
+: <a class="el" href="boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2">boot.php</a>
+</li>
+<li>photo_factory()
+: <a class="el" href="photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035">photo_driver.php</a>
+</li>
+<li>photo_init()
+: <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo.php</a>
+</li>
+<li>photo_new_resource()
+: <a class="el" href="text_8php.html#aa5528f41533927e1bd2da3618a74a6d7">text.php</a>
+</li>
+<li>PHOTO_NORMAL
+: <a class="el" href="boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4">boot.php</a>
+</li>
+<li>PHOTO_PROFILE
+: <a class="el" href="boot_8php.html#ab4bc9c50ecc927b92d519e36562b0df0">boot.php</a>
+</li>
+<li>PHOTO_THING
+: <a class="el" href="boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383">boot.php</a>
+</li>
+<li>photo_upload()
+: <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photos.php</a>
+</li>
+<li>PHOTO_XCHAN
+: <a class="el" href="boot_8php.html#ac43182e0d8bae7576a30b603774974f8">boot.php</a>
+</li>
+<li>photos_album_exists()
+: <a class="el" href="include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35">photos.php</a>
+</li>
+<li>photos_album_get_db_idstr()
+: <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos.php</a>
+</li>
+<li>photos_album_rename()
+: <a class="el" href="include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab">photos.php</a>
+</li>
+<li>photos_album_widget()
+: <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos.php</a>
+</li>
+<li>photos_albums_list()
+: <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos.php</a>
+</li>
+<li>photos_content()
+: <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos.php</a>
+</li>
+<li>photos_create_item()
+: <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos.php</a>
+</li>
+<li>photos_init()
+: <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos.php</a>
+</li>
+<li>photos_list_photos()
+: <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos.php</a>
+</li>
+<li>photos_post()
+: <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos.php</a>
+</li>
+<li>php_init()
+: <a class="el" href="php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6">php.php</a>
+</li>
+<li>ping_init()
+: <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping.php</a>
+</li>
+<li>pkcs5_pad()
+: <a class="el" href="crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec">crypto.php</a>
+</li>
+<li>pkcs5_unpad()
+: <a class="el" href="crypto_8php.html#ac95ac3b1b23b65b04a86613d4206ae85">crypto.php</a>
+</li>
+<li>PNG_QUALITY
+: <a class="el" href="boot_8php.html#a8df201788c9dd0ca91384e3a14c08bce">boot.php</a>
+</li>
+<li>po2php_run()
+: <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php.php</a>
+</li>
+<li>poco_init()
+: <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco.php</a>
+</li>
+<li>poco_load()
+: <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">socgraph.php</a>
+</li>
+<li>poke_content()
+: <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke.php</a>
+</li>
+<li>poke_init()
+: <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke.php</a>
+</li>
+<li>poller_run()
+: <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller.php</a>
+</li>
+<li>pop_lang()
+: <a class="el" href="language_8php.html#a78bd204955ec4cc3a9ac651285a1689d">language.php</a>
+</li>
+<li>populate_acl()
+: <a class="el" href="acl__selectors_8php.html#a51f2ec7a143d5a5b38e35efd5f3d6e2c">acl_selectors.php</a>
+</li>
+<li>post_activity_item()
+: <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">items.php</a>
+</li>
+<li>post_init()
+: <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post.php</a>
+</li>
+<li>post_post()
+: <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post.php</a>
+</li>
+<li>post_url()
+: <a class="el" href="include_2network_8php.html#aa44d9e33a579d930e9e79c4ebb3d6b5e">network.php</a>
+</li>
+<li>posted_date_widget()
+: <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">items.php</a>
+</li>
+<li>posted_dates()
+: <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">items.php</a>
+</li>
+<li>preg_heart()
+: <a class="el" href="text_8php.html#ac19d2b33a58372a357a43d51eed19162">text.php</a>
+</li>
+<li>prepare_body()
+: <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">text.php</a>
+</li>
+<li>prepare_page()
+: <a class="el" href="conversation_8php.html#a4b0888b0f26e1c284a4341fe5fd04f0c">conversation.php</a>
+</li>
+<li>prepare_text()
+: <a class="el" href="text_8php.html#afe54312607d92f7ce9593f5760831f80">text.php</a>
+</li>
+<li>pretheme_init()
+: <a class="el" href="pretheme_8php.html#af5660943ee99db5fd75182316522eafe">pretheme.php</a>
+</li>
+<li>print_template()
+: <a class="el" href="tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3">tpldebug.php</a>
+</li>
+<li>printable()
+: <a class="el" href="dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249">dba_driver.php</a>
+</li>
+<li>private_messages_drop()
+: <a class="el" href="include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1">message.php</a>
+</li>
+<li>private_messages_fetch_conversation()
+: <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">message.php</a>
+</li>
+<li>private_messages_fetch_message()
+: <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">message.php</a>
+</li>
+<li>private_messages_list()
+: <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">message.php</a>
+</li>
+<li>probe_content()
+: <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe.php</a>
+</li>
+<li>proc_run()
+: <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">boot.php</a>
+</li>
+<li>process_channel_sync_delivery()
+: <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">zot.php</a>
+</li>
+<li>process_delivery()
+: <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">zot.php</a>
+</li>
+<li>process_mail_delivery()
+: <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">zot.php</a>
+</li>
+<li>process_profile_delivery()
+: <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">zot.php</a>
+</li>
+<li>profile_activity()
+: <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">activities.php</a>
+</li>
+<li>profile_aside()
+: <a class="el" href="profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e">profile.php</a>
+</li>
+<li>profile_content()
+: <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile.php</a>
+</li>
+<li>profile_create_sidebar()
+: <a class="el" href="boot_8php.html#a5b45d647da3743a7fc8c6223350b4d67">boot.php</a>
+</li>
+<li>profile_init()
+: <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile.php</a>
+</li>
+<li>profile_load()
+: <a class="el" href="boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">boot.php</a>
+</li>
+<li>profile_photo_aside()
+: <a class="el" href="profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3">profile_photo.php</a>
+</li>
+<li>profile_photo_init()
+: <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo.php</a>
+</li>
+<li>profile_photo_post()
+: <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo.php</a>
+</li>
+<li>profile_sidebar()
+: <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">boot.php</a>
+</li>
+<li>profile_tabs()
+: <a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">boot.php</a>
+</li>
+<li>profiler()
+: <a class="el" href="text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6">text.php</a>
+</li>
+<li>profiles_aside()
+: <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles.php</a>
+</li>
+<li>profiles_content()
+: <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles.php</a>
+</li>
+<li>profiles_init()
+: <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles.php</a>
+</li>
+<li>profiles_post()
+: <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles.php</a>
+</li>
+<li>profperm_aside()
+: <a class="el" href="profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc">profperm.php</a>
+</li>
+<li>profperm_content()
+: <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm.php</a>
+</li>
+<li>profperm_init()
+: <a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm.php</a>
+</li>
+<li>protect_sprintf()
+: <a class="el" href="text_8php.html#a4e7698aca48982512594b274543c3b9b">text.php</a>
+</li>
+<li>public_permissions_sql()
+: <a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">security.php</a>
+</li>
+<li>public_recips()
+: <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">zot.php</a>
+</li>
+<li>purify_html()
+: <a class="el" href="text_8php.html#a4841df5beabdd1bdd1ed56781a915d61">text.php</a>
+</li>
+<li>push_lang()
+: <a class="el" href="language_8php.html#ac9142ef1d01a235c760deb0f16643f5a">language.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x71.html b/doc/html/globals_0x71.html
new file mode 100644
index 000000000..5ce2ce29b
--- /dev/null
+++ b/doc/html/globals_0x71.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li class="current"><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x71.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
+<li>q()
+: <a class="el" href="dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f">dba_driver.php</a>
+</li>
+<li>qp()
+: <a class="el" href="text_8php.html#afc998d2796a6b2a08e96f7cc061e7221">text.php</a>
+</li>
+<li>qsearch_init()
+: <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch.php</a>
+</li>
+<li>queue_run()
+: <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue.php</a>
+</li>
+<li>quotelevel()
+: <a class="el" href="html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0">html2plain.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x72.html b/doc/html/globals_0x72.html
new file mode 100644
index 000000000..b07e5c177
--- /dev/null
+++ b/doc/html/globals_0x72.html
@@ -0,0 +1,297 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li class="current"><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x72.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>random_profile()
+: <a class="el" href="Contact_8php.html#a91281b5d4bbbb2ed468e27ec82ca083c">Contact.php</a>
+</li>
+<li>random_string()
+: <a class="el" href="text_8php.html#a9d6a5ee1290de7a8b483fe78585daade">text.php</a>
+</li>
+<li>RANDOM_STRING_HEX
+: <a class="el" href="text_8php.html#aad557c054cf2ed915633701018fc7e3f">text.php</a>
+</li>
+<li>RANDOM_STRING_TEXT
+: <a class="el" href="text_8php.html#a2ffd79c60cc87cec24ef76447b905187">text.php</a>
+</li>
+<li>randprof_init()
+: <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof.php</a>
+</li>
+<li>rebuild_theme_table()
+: <a class="el" href="admin_8php.html#ae46311a3fefc21abc838a26e91789de6">admin.php</a>
+</li>
+<li>RED_PLATFORM
+: <a class="el" href="boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4">boot.php</a>
+</li>
+<li>RED_VERSION
+: <a class="el" href="boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3">boot.php</a>
+</li>
+<li>red_zrl_callback()
+: <a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">items.php</a>
+</li>
+<li>redbasic_form()
+: <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">config.php</a>
+</li>
+<li>redbasic_init()
+: <a class="el" href="redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b">theme.php</a>
+</li>
+<li>redir_init()
+: <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir.php</a>
+</li>
+<li>redstrap_init()
+: <a class="el" href="redstrap_2php_2theme_8php.html#a4dac61d466b4261deca2846f548e484a">theme.php</a>
+</li>
+<li>reduce()
+: <a class="el" href="docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f">docblox_errorchecker.php</a>
+</li>
+<li>ref_session_close()
+: <a class="el" href="session_8php.html#a5e1c616e02b863d5450317d101366bb7">session.php</a>
+</li>
+<li>ref_session_destroy()
+: <a class="el" href="session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052">session.php</a>
+</li>
+<li>ref_session_gc()
+: <a class="el" href="session_8php.html#ac95373f4966862a028033dd2f94d4da1">session.php</a>
+</li>
+<li>ref_session_open()
+: <a class="el" href="session_8php.html#a26fa1042356d555023cbf15ddd4f8507">session.php</a>
+</li>
+<li>ref_session_read()
+: <a class="el" href="session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e">session.php</a>
+</li>
+<li>ref_session_write()
+: <a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">session.php</a>
+</li>
+<li>REGISTER_APPROVE
+: <a class="el" href="boot_8php.html#a7176c0f9f1c98421b97735d892cf6252">boot.php</a>
+</li>
+<li>REGISTER_CLOSED
+: <a class="el" href="boot_8php.html#a69aac276ed82e010dc382b16ab4d59e1">boot.php</a>
+</li>
+<li>register_content()
+: <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register.php</a>
+</li>
+<li>register_hook()
+: <a class="el" href="plugin_8php.html#a425472c5f3afc137268b2ad45652b209">plugin.php</a>
+</li>
+<li>register_init()
+: <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register.php</a>
+</li>
+<li>REGISTER_OPEN
+: <a class="el" href="boot_8php.html#ad8887b49bbb02dd30b4eb9f6c7773c63">boot.php</a>
+</li>
+<li>register_post()
+: <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register.php</a>
+</li>
+<li>regmod_content()
+: <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod.php</a>
+</li>
+<li>relative_date()
+: <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">datetime.php</a>
+</li>
+<li>reload_plugins()
+: <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">plugin.php</a>
+</li>
+<li>reltoabs()
+: <a class="el" href="text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2">text.php</a>
+</li>
+<li>remote_user()
+: <a class="el" href="boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209">boot.php</a>
+</li>
+<li>remove_all_xchan_resources()
+: <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">Contact.php</a>
+</li>
+<li>remove_community_tag()
+: <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">zot.php</a>
+</li>
+<li>remove_queue_item()
+: <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">queue_fn.php</a>
+</li>
+<li>removeme_content()
+: <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme.php</a>
+</li>
+<li>removeme_post()
+: <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme.php</a>
+</li>
+<li>render_location_default()
+: <a class="el" href="conversation_8php.html#a40b9b5e7825bc73932a32e667f05e6f2">conversation.php</a>
+</li>
+<li>replace_macros()
+: <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">text.php</a>
+</li>
+<li>REQUEST_TOKEN_DURATION
+: <a class="el" href="oauth_8php.html#a7a32a5990f113ac9465b03b29175cf16">oauth.php</a>
+</li>
+<li>requestdata()
+: <a class="el" href="include_2api_8php.html#a43c47de8565cc00c3369cb35c19cc75e">api.php</a>
+</li>
+<li>return_bytes()
+: <a class="el" href="text_8php.html#ae2126da85966da0e79c6bcbac63b0bda">text.php</a>
+</li>
+<li>rmagic_content()
+: <a class="el" href="rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef">rmagic.php</a>
+</li>
+<li>rmagic_init()
+: <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic.php</a>
+</li>
+<li>rmagic_post()
+: <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic.php</a>
+</li>
+<li>rsa_sign()
+: <a class="el" href="crypto_8php.html#a920e5f222d0020f47556033d8b2b6552">crypto.php</a>
+</li>
+<li>rsa_verify()
+: <a class="el" href="crypto_8php.html#ab4f21d8f6b8ece0915e7c8bb73379f96">crypto.php</a>
+</li>
+<li>rsd_xml_content()
+: <a class="el" href="rsd__xml_8php.html#a740cd02fa15e5a53f8547fac73f0ab82">rsd_xml.php</a>
+</li>
+<li>runs()
+: <a class="el" href="docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec">docblox_errorchecker.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x73.html b/doc/html/globals_0x73.html
new file mode 100644
index 000000000..ae6e39d5b
--- /dev/null
+++ b/doc/html/globals_0x73.html
@@ -0,0 +1,330 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li class="current"><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x73.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>sanitise_acl()
+: <a class="el" href="text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c">text.php</a>
+</li>
+<li>saved_searches()
+: <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">network.php</a>
+</li>
+<li>scale_external_images()
+: <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">network.php</a>
+</li>
+<li>search()
+: <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">text.php</a>
+</li>
+<li>search_ac_init()
+: <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac.php</a>
+</li>
+<li>search_content()
+: <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search.php</a>
+</li>
+<li>search_init()
+: <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search.php</a>
+</li>
+<li>search_post()
+: <a class="el" href="search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7">search.php</a>
+</li>
+<li>search_saved_searches()
+: <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search.php</a>
+</li>
+<li>select_timezone()
+: <a class="el" href="datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f">datetime.php</a>
+</li>
+<li>send_message()
+: <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">message.php</a>
+</li>
+<li>send_reg_approval_email()
+: <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">account.php</a>
+</li>
+<li>send_status_notifications()
+: <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">items.php</a>
+</li>
+<li>send_verification_email()
+: <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">account.php</a>
+</li>
+<li>service_class_allows()
+: <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">plugin.php</a>
+</li>
+<li>service_class_fetch()
+: <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">plugin.php</a>
+</li>
+<li>set_config()
+: <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">config.php</a>
+</li>
+<li>set_default_login_identity()
+: <a class="el" href="identity_8php.html#a78151baf4407a8482d2681a91a9c486b">identity.php</a>
+</li>
+<li>set_pconfig()
+: <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">config.php</a>
+</li>
+<li>set_xconfig()
+: <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">config.php</a>
+</li>
+<li>settings_aside()
+: <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings.php</a>
+</li>
+<li>settings_init()
+: <a class="el" href="settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings.php</a>
+</li>
+<li>settings_post()
+: <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings.php</a>
+</li>
+<li>setup_content()
+: <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup.php</a>
+</li>
+<li>setup_init()
+: <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup.php</a>
+</li>
+<li>setup_post()
+: <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup.php</a>
+</li>
+<li>sexpref_selector()
+: <a class="el" href="profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7">profile_selectors.php</a>
+</li>
+<li>share_init()
+: <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share.php</a>
+</li>
+<li>showForm()
+: <a class="el" href="fpostit_8php.html#a3f3ae3ae61578b5671673914fd894443">fpostit.php</a>
+</li>
+<li>siteinfo_content()
+: <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo.php</a>
+</li>
+<li>siteinfo_init()
+: <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo.php</a>
+</li>
+<li>smile_decode()
+: <a class="el" href="text_8php.html#aca0f589be74fab1a460c57e88dad9779">text.php</a>
+</li>
+<li>smile_encode()
+: <a class="el" href="text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6">text.php</a>
+</li>
+<li>smilies()
+: <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">text.php</a>
+</li>
+<li>smilies_content()
+: <a class="el" href="smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f">smilies.php</a>
+</li>
+<li>sort_by_date()
+: <a class="el" href="event_8php.html#a018ea4484910a873a7c1eaa126de9b1a">event.php</a>
+</li>
+<li>sort_item_children()
+: <a class="el" href="conversation_8php.html#ae996eb116d397a2c6396c312d7b98664">conversation.php</a>
+</li>
+<li>sort_thr_commented()
+: <a class="el" href="conversation_8php.html#a9f909b8885259b79c6ac8da93afd8f11">conversation.php</a>
+</li>
+<li>sort_thr_created()
+: <a class="el" href="conversation_8php.html#ac55e070f65f46fcc8e269f7896be4c7d">conversation.php</a>
+</li>
+<li>sort_thr_created_rev()
+: <a class="el" href="conversation_8php.html#a9cc2a679606da9e535a06433f9f553a0">conversation.php</a>
+</li>
+<li>SSL_POLICY_FULL
+: <a class="el" href="boot_8php.html#a02566ac9d891369a1d3ebb81a15722fc">boot.php</a>
+</li>
+<li>SSL_POLICY_NONE
+: <a class="el" href="boot_8php.html#af86c651547aa8f9e549ee40a09455549">boot.php</a>
+</li>
+<li>SSL_POLICY_SELFSIGN
+: <a class="el" href="boot_8php.html#adca48aee78465ae3064ca4432c0d87b5">boot.php</a>
+</li>
+<li>starred_init()
+: <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred.php</a>
+</li>
+<li>startup()
+: <a class="el" href="boot_8php.html#aca47505b8732177f52bb2d647eb2741c">boot.php</a>
+</li>
+<li>status_editor()
+: <a class="el" href="conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a">conversation.php</a>
+</li>
+<li>store_item_tag()
+: <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">taxonomy.php</a>
+</li>
+<li>stream_perms_api_uids()
+: <a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">security.php</a>
+</li>
+<li>string_plural_select_default()
+: <a class="el" href="language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0">language.php</a>
+</li>
+<li>stringify_array_elms()
+: <a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">text.php</a>
+</li>
+<li>stripdcode_br_cb()
+: <a class="el" href="bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93">bb2diaspora.php</a>
+</li>
+<li>subthread_content()
+: <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread.php</a>
+</li>
+<li>suggest_aside()
+: <a class="el" href="suggest_8php.html#a4df91c84594d51ba56b5918de414230d">suggest.php</a>
+</li>
+<li>suggest_content()
+: <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest.php</a>
+</li>
+<li>suggest_init()
+: <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest.php</a>
+</li>
+<li>suggestion_query()
+: <a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">socgraph.php</a>
+</li>
+<li>sync_directories()
+: <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">dir_fns.php</a>
+</li>
+<li>syncdirs()
+: <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">dir_fns.php</a>
+</li>
+<li>system_down()
+: <a class="el" href="system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa">system_unavailable.php</a>
+</li>
+<li>system_unavailable()
+: <a class="el" href="boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x74.html b/doc/html/globals_0x74.html
new file mode 100644
index 000000000..088aeedb9
--- /dev/null
+++ b/doc/html/globals_0x74.html
@@ -0,0 +1,273 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li class="current"><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x74.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>t()
+: <a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">language.php</a>
+</li>
+<li>tag_deliver()
+: <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">items.php</a>
+</li>
+<li>tagadelic()
+: <a class="el" href="taxonomy_8php.html#a061b3db9426d4b074395f5824062cad4">taxonomy.php</a>
+</li>
+<li>tagblock()
+: <a class="el" href="taxonomy_8php.html#abdb698bc6921429df6d697f6c5dec96f">taxonomy.php</a>
+</li>
+<li>tagger_content()
+: <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger.php</a>
+</li>
+<li>tagrm_content()
+: <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm.php</a>
+</li>
+<li>tagrm_post()
+: <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm.php</a>
+</li>
+<li>tags_sort()
+: <a class="el" href="taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43">taxonomy.php</a>
+</li>
+<li>template_escape()
+: <a class="el" href="template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5">template_processor.php</a>
+</li>
+<li>template_unescape()
+: <a class="el" href="template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e">template_processor.php</a>
+</li>
+<li>TERM_CATEGORY
+: <a class="el" href="boot_8php.html#af33d1b2e98a1e21af672005525d46dfe">boot.php</a>
+</li>
+<li>TERM_FILE
+: <a class="el" href="boot_8php.html#afb97615e985a013799839b68b99018d7">boot.php</a>
+</li>
+<li>TERM_HASHTAG
+: <a class="el" href="boot_8php.html#a2750985ec445617d7e82ae3098c91e3f">boot.php</a>
+</li>
+<li>TERM_MENTION
+: <a class="el" href="boot_8php.html#ae37444eaa42705185080ccf3e670cbc2">boot.php</a>
+</li>
+<li>TERM_OBJ_CHANNEL
+: <a class="el" href="boot_8php.html#a8892374789fd261eb32a7969d934a14a">boot.php</a>
+</li>
+<li>TERM_OBJ_OBJECT
+: <a class="el" href="boot_8php.html#a882b666adfe21f035a0f8c02806066d6">boot.php</a>
+</li>
+<li>TERM_OBJ_PHOTO
+: <a class="el" href="boot_8php.html#a64617d4655804de2a3c86501ab4fdbfd">boot.php</a>
+</li>
+<li>TERM_OBJ_POST
+: <a class="el" href="boot_8php.html#a9eeb8989272d5ff804a616898bb13659">boot.php</a>
+</li>
+<li>TERM_OBJ_PROFILE
+: <a class="el" href="boot_8php.html#aead84fa27d7516b855220fe004964a45">boot.php</a>
+</li>
+<li>TERM_OBJ_THING
+: <a class="el" href="boot_8php.html#a0cc8dc76bd10ac0ec81bac08a46f82fe">boot.php</a>
+</li>
+<li>TERM_PCATEGORY
+: <a class="el" href="boot_8php.html#a45b12aefab9675baffc7a07a09486db8">boot.php</a>
+</li>
+<li>term_query()
+: <a class="el" href="taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c">taxonomy.php</a>
+</li>
+<li>TERM_SAVEDSEARCH
+: <a class="el" href="boot_8php.html#abd7bb40da9cc073297e49736b338ca07">boot.php</a>
+</li>
+<li>TERM_THING
+: <a class="el" href="boot_8php.html#a0d877df1e20bae765e1708be50f6b503">boot.php</a>
+</li>
+<li>TERM_UNKNOWN
+: <a class="el" href="boot_8php.html#a0c59dde058efebbc66520d136cbd1631">boot.php</a>
+</li>
+<li>terminate_friendship()
+: <a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">Contact.php</a>
+</li>
+<li>termtype()
+: <a class="el" href="items_8php.html#ad34827ed330898456783fb14c7b46154">items.php</a>
+</li>
+<li>tgroup_check()
+: <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">items.php</a>
+</li>
+<li>theme_content()
+: <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">config.php</a>
+</li>
+<li>theme_include()
+: <a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">plugin.php</a>
+</li>
+<li>theme_post()
+: <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">config.php</a>
+</li>
+<li>theme_status()
+: <a class="el" href="admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4">admin.php</a>
+</li>
+<li>thing_content()
+: <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing.php</a>
+</li>
+<li>thing_init()
+: <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing.php</a>
+</li>
+<li>timesel()
+: <a class="el" href="datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1">datetime.php</a>
+</li>
+<li>timezone_cmp()
+: <a class="el" href="datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865">datetime.php</a>
+</li>
+<li>title_is_body()
+: <a class="el" href="items_8php.html#aa371905f0a211b307cb3f7188c6cba04">items.php</a>
+</li>
+<li>toggle_mobile_init()
+: <a class="el" href="toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254">toggle_mobile.php</a>
+</li>
+<li>toggle_theme()
+: <a class="el" href="admin_8php.html#af81f081851791cd15e49e8ff6722dc27">admin.php</a>
+</li>
+<li>tryoembed()
+: <a class="el" href="bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7">bbcode.php</a>
+</li>
+<li>tt()
+: <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">language.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x75.html b/doc/html/globals_0x75.html
new file mode 100644
index 000000000..72c3b2372
--- /dev/null
+++ b/doc/html/globals_0x75.html
@@ -0,0 +1,225 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li class="current"><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x75.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>uexport_init()
+: <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport.php</a>
+</li>
+<li>unamp()
+: <a class="el" href="text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7">text.php</a>
+</li>
+<li>undo_post_tagging()
+: <a class="el" href="text_8php.html#a740ad03e00459039a2c0992246c4e727">text.php</a>
+</li>
+<li>unescape_underscores_in_links()
+: <a class="el" href="bb2diaspora_8php.html#a599428bceb6f6d82a6a78cb66811f747">bb2diaspora.php</a>
+</li>
+<li>uninstall_plugin()
+: <a class="el" href="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">plugin.php</a>
+</li>
+<li>unload_plugin()
+: <a class="el" href="plugin_8php.html#a90538627db68605aeb6db17a8ead6523">plugin.php</a>
+</li>
+<li>unregister_hook()
+: <a class="el" href="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">plugin.php</a>
+</li>
+<li>unxmlify()
+: <a class="el" href="text_8php.html#a1360fed7f918d859daaca1c9f384f9af">text.php</a>
+</li>
+<li>update_channel_content()
+: <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel.php</a>
+</li>
+<li>update_community_content()
+: <a class="el" href="update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1">update_community.php</a>
+</li>
+<li>update_display_content()
+: <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display.php</a>
+</li>
+<li>UPDATE_FAILED
+: <a class="el" href="boot_8php.html#a75fc600186b13c3b25e661afefb5eac8">boot.php</a>
+</li>
+<li>update_imported_item()
+: <a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">zot.php</a>
+</li>
+<li>update_modtime()
+: <a class="el" href="zot_8php.html#a666d3efcac00ec1b4a4537a60655f2ab">zot.php</a>
+</li>
+<li>update_network_content()
+: <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network.php</a>
+</li>
+<li>update_queue_time()
+: <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">queue_fn.php</a>
+</li>
+<li>update_search_content()
+: <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search.php</a>
+</li>
+<li>UPDATE_SUCCESS
+: <a class="el" href="boot_8php.html#ac86615ddc0763a00f5311c90e991730c">boot.php</a>
+</li>
+<li>update_suggestions()
+: <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">socgraph.php</a>
+</li>
+<li>upgrade_bool_message()
+: <a class="el" href="plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d">plugin.php</a>
+</li>
+<li>upgrade_link()
+: <a class="el" href="plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040">plugin.php</a>
+</li>
+<li>upgrade_message()
+: <a class="el" href="plugin_8php.html#a901657dd078e070516cf97285e0bada7">plugin.php</a>
+</li>
+<li>user_allow()
+: <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">account.php</a>
+</li>
+<li>user_deny()
+: <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">account.php</a>
+</li>
+<li>user_remove()
+: <a class="el" href="Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15">Contact.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x76.html b/doc/html/globals_0x76.html
new file mode 100644
index 000000000..ca0b32391
--- /dev/null
+++ b/doc/html/globals_0x76.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li class="current"><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x76.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>valid_email()
+: <a class="el" href="text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb">text.php</a>
+</li>
+<li>validate_channelname()
+: <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">identity.php</a>
+</li>
+<li>validate_email()
+: <a class="el" href="include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02">network.php</a>
+</li>
+<li>validate_url()
+: <a class="el" href="include_2network_8php.html#a5caa264fab6d2b2344e6bd5b298b08f2">network.php</a>
+</li>
+<li>vcard_from_xchan()
+: <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">Contact.php</a>
+</li>
+<li>view_init()
+: <a class="el" href="view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e">view.php</a>
+</li>
+<li>viewconnections_aside()
+: <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections.php</a>
+</li>
+<li>viewconnections_content()
+: <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections.php</a>
+</li>
+<li>viewconnections_init()
+: <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections.php</a>
+</li>
+<li>viewsrc_content()
+: <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc.php</a>
+</li>
+<li>visible_activity()
+: <a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">conversation.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x77.html b/doc/html/globals_0x77.html
new file mode 100644
index 000000000..f95594ae4
--- /dev/null
+++ b/doc/html/globals_0x77.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li class="current"><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x77.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>wall_attach_post()
+: <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach.php</a>
+</li>
+<li>wall_upload_post()
+: <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload.php</a>
+</li>
+<li>webfinger()
+: <a class="el" href="include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5">network.php</a>
+</li>
+<li>webfinger_content()
+: <a class="el" href="webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3">webfinger.php</a>
+</li>
+<li>webfinger_dfrn()
+: <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">network.php</a>
+</li>
+<li>webpages_content()
+: <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages.php</a>
+</li>
+<li>webpages_init()
+: <a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages.php</a>
+</li>
+<li>wfinger_init()
+: <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger.php</a>
+</li>
+<li>what_next()
+: <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">setup.php</a>
+</li>
+<li>while
+: <a class="el" href="docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d">docblox_errorchecker.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x78.html b/doc/html/globals_0x78.html
new file mode 100644
index 000000000..9aebabfc9
--- /dev/null
+++ b/doc/html/globals_0x78.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li class="current"><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x78.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
+<li>x()
+: <a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">boot.php</a>
+</li>
+<li>xchan_content()
+: <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan.php</a>
+</li>
+<li>XCHAN_FLAGS_HIDDEN
+: <a class="el" href="boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2">boot.php</a>
+</li>
+<li>xchan_mail_query()
+: <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">text.php</a>
+</li>
+<li>xchan_query()
+: <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">text.php</a>
+</li>
+<li>xml2array()
+: <a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">network.php</a>
+</li>
+<li>xml_status()
+: <a class="el" href="include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6">network.php</a>
+</li>
+<li>xmlify()
+: <a class="el" href="text_8php.html#aaed4413ed8918838b517e3b2fafaea0d">text.php</a>
+</li>
+<li>xrd_init()
+: <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_0x7a.html b/doc/html/globals_0x7a.html
new file mode 100644
index 000000000..03c86723b
--- /dev/null
+++ b/doc/html/globals_0x7a.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_0x5f.html#index__"><span>_</span></a></li>
+ <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <li class="current"><a href="globals_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_0x7a.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_z"></a>- z -</h3><ul>
+<li>z_birthday()
+: <a class="el" href="boot_8php.html#ab55e545b72ec8c097e052ea7d373491f">boot.php</a>
+</li>
+<li>z_fetch_url()
+: <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">network.php</a>
+</li>
+<li>z_mime_content_type()
+: <a class="el" href="include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a">attach.php</a>
+</li>
+<li>z_path()
+: <a class="el" href="boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda">boot.php</a>
+</li>
+<li>z_post_url()
+: <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">network.php</a>
+</li>
+<li>z_readdir()
+: <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">attach.php</a>
+</li>
+<li>z_root()
+: <a class="el" href="boot_8php.html#add517a0958ac684792c62142a3877f81">boot.php</a>
+</li>
+<li>ZCURL_TIMEOUT
+: <a class="el" href="boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af">boot.php</a>
+</li>
+<li>zfinger_init()
+: <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger.php</a>
+</li>
+<li>zid()
+: <a class="el" href="boot_8php.html#a5b815330f3d177ab383af37a6c12e532">boot.php</a>
+</li>
+<li>zid_init()
+: <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">boot.php</a>
+</li>
+<li>zidify_callback()
+: <a class="el" href="text_8php.html#a405afe814a23f3bd94d826101aa168ab">text.php</a>
+</li>
+<li>zidify_img_callback()
+: <a class="el" href="text_8php.html#ab4a4c3d4700bc219bb84f33b499314f4">text.php</a>
+</li>
+<li>zidify_links()
+: <a class="el" href="text_8php.html#a29988052f3944111def3b6aaf2c7a8f6">text.php</a>
+</li>
+<li>zot_build_packet()
+: <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot.php</a>
+</li>
+<li>zot_feed()
+: <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">items.php</a>
+</li>
+<li>zot_fetch()
+: <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot.php</a>
+</li>
+<li>zot_finger()
+: <a class="el" href="zot_8php.html#a77720d6b59894e9b609af89c310c8a4d">zot.php</a>
+</li>
+<li>zot_get_hubloc()
+: <a class="el" href="zot_8php.html#acdea9362d78a63dce948fdf0ea73ef0e">zot.php</a>
+</li>
+<li>zot_gethub()
+: <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot.php</a>
+</li>
+<li>zot_import()
+: <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot.php</a>
+</li>
+<li>zot_new_uid()
+: <a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot.php</a>
+</li>
+<li>zot_process_response()
+: <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot.php</a>
+</li>
+<li>zot_refresh()
+: <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot.php</a>
+</li>
+<li>zot_register_hub()
+: <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot.php</a>
+</li>
+<li>ZOT_REVISION
+: <a class="el" href="boot_8php.html#a36b31575f992a10b5927b76efba9362e">boot.php</a>
+</li>
+<li>zot_zot()
+: <a class="el" href="zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142">zot.php</a>
+</li>
+<li>zotfeed_init()
+: <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_dup.js b/doc/html/globals_dup.js
new file mode 100644
index 000000000..6f7377056
--- /dev/null
+++ b/doc/html/globals_dup.js
@@ -0,0 +1,30 @@
+var globals_dup =
+[
+ [ "$", "globals.html", null ],
+ [ "_", "globals_0x5f.html", null ],
+ [ "a", "globals_0x61.html", null ],
+ [ "b", "globals_0x62.html", null ],
+ [ "c", "globals_0x63.html", null ],
+ [ "d", "globals_0x64.html", null ],
+ [ "e", "globals_0x65.html", null ],
+ [ "f", "globals_0x66.html", null ],
+ [ "g", "globals_0x67.html", null ],
+ [ "h", "globals_0x68.html", null ],
+ [ "i", "globals_0x69.html", null ],
+ [ "j", "globals_0x6a.html", null ],
+ [ "k", "globals_0x6b.html", null ],
+ [ "l", "globals_0x6c.html", null ],
+ [ "m", "globals_0x6d.html", null ],
+ [ "n", "globals_0x6e.html", null ],
+ [ "o", "globals_0x6f.html", null ],
+ [ "p", "globals_0x70.html", null ],
+ [ "q", "globals_0x71.html", null ],
+ [ "r", "globals_0x72.html", null ],
+ [ "s", "globals_0x73.html", null ],
+ [ "t", "globals_0x74.html", null ],
+ [ "u", "globals_0x75.html", null ],
+ [ "v", "globals_0x76.html", null ],
+ [ "w", "globals_0x77.html", null ],
+ [ "x", "globals_0x78.html", null ],
+ [ "z", "globals_0x7a.html", null ]
+]; \ No newline at end of file
diff --git a/doc/html/globals_func.html b/doc/html/globals_func.html
new file mode 100644
index 000000000..3abdac47c
--- /dev/null
+++ b/doc/html/globals_func.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>_well_known_init()
+: <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func.js b/doc/html/globals_func.js
new file mode 100644
index 000000000..1a7a97c5f
--- /dev/null
+++ b/doc/html/globals_func.js
@@ -0,0 +1,29 @@
+var globals_func =
+[
+ [ "_", "globals_func.html", null ],
+ [ "a", "globals_func_0x61.html", null ],
+ [ "b", "globals_func_0x62.html", null ],
+ [ "c", "globals_func_0x63.html", null ],
+ [ "d", "globals_func_0x64.html", null ],
+ [ "e", "globals_func_0x65.html", null ],
+ [ "f", "globals_func_0x66.html", null ],
+ [ "g", "globals_func_0x67.html", null ],
+ [ "h", "globals_func_0x68.html", null ],
+ [ "i", "globals_func_0x69.html", null ],
+ [ "j", "globals_func_0x6a.html", null ],
+ [ "k", "globals_func_0x6b.html", null ],
+ [ "l", "globals_func_0x6c.html", null ],
+ [ "m", "globals_func_0x6d.html", null ],
+ [ "n", "globals_func_0x6e.html", null ],
+ [ "o", "globals_func_0x6f.html", null ],
+ [ "p", "globals_func_0x70.html", null ],
+ [ "q", "globals_func_0x71.html", null ],
+ [ "r", "globals_func_0x72.html", null ],
+ [ "s", "globals_func_0x73.html", null ],
+ [ "t", "globals_func_0x74.html", null ],
+ [ "u", "globals_func_0x75.html", null ],
+ [ "v", "globals_func_0x76.html", null ],
+ [ "w", "globals_func_0x77.html", null ],
+ [ "x", "globals_func_0x78.html", null ],
+ [ "z", "globals_func_0x7a.html", null ]
+]; \ No newline at end of file
diff --git a/doc/html/globals_func_0x61.html b/doc/html/globals_func_0x61.html
new file mode 100644
index 000000000..63695de3a
--- /dev/null
+++ b/doc/html/globals_func_0x61.html
@@ -0,0 +1,464 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li class="current"><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x61.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>abook_connections()
+: <a class="el" href="Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e">Contact.php</a>
+</li>
+<li>abook_self()
+: <a class="el" href="Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5">Contact.php</a>
+</li>
+<li>abook_toggle_flag()
+: <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">Contact.php</a>
+</li>
+<li>absurl()
+: <a class="el" href="boot_8php.html#a081307d681d7d04f17b9ced2076e7c85">boot.php</a>
+</li>
+<li>account_total()
+: <a class="el" href="account_8php.html#a43e3042b2723d76915a030bac3c668b6">account.php</a>
+</li>
+<li>account_verify_password()
+: <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">auth.php</a>
+</li>
+<li>acl_init()
+: <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl.php</a>
+</li>
+<li>activity_match()
+: <a class="el" href="text_8php.html#af8a3e3a66a7b862d4510f145d2e13186">text.php</a>
+</li>
+<li>activity_sanitise()
+: <a class="el" href="items_8php.html#a36e656667193c83aa2cc03a024fc131b">items.php</a>
+</li>
+<li>add_children_to_list()
+: <a class="el" href="conversation_8php.html#ad3e1d4b15e7d6d026ee182edd58f692b">conversation.php</a>
+</li>
+<li>add_fcontact()
+: <a class="el" href="include_2network_8php.html#a0bdc4b0bfc54797c249dc4eca25aeda4">network.php</a>
+</li>
+<li>admin_content()
+: <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin.php</a>
+</li>
+<li>admin_page_dbsync()
+: <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin.php</a>
+</li>
+<li>admin_page_logs()
+: <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin.php</a>
+</li>
+<li>admin_page_logs_post()
+: <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin.php</a>
+</li>
+<li>admin_page_plugins()
+: <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin.php</a>
+</li>
+<li>admin_page_site()
+: <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin.php</a>
+</li>
+<li>admin_page_site_post()
+: <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin.php</a>
+</li>
+<li>admin_page_summary()
+: <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin.php</a>
+</li>
+<li>admin_page_themes()
+: <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin.php</a>
+</li>
+<li>admin_page_users()
+: <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin.php</a>
+</li>
+<li>admin_page_users_post()
+: <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin.php</a>
+</li>
+<li>admin_post()
+: <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin.php</a>
+</li>
+<li>advanced_profile()
+: <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">profile_advanced.php</a>
+</li>
+<li>AES256CBC_decrypt()
+: <a class="el" href="crypto_8php.html#ac852ee41392d1358c3a54d54935e0bf9">crypto.php</a>
+</li>
+<li>AES256CBC_encrypt()
+: <a class="el" href="crypto_8php.html#a5c61821d205f95f127114159cbffa764">crypto.php</a>
+</li>
+<li>aes_encapsulate()
+: <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">crypto.php</a>
+</li>
+<li>aes_unencapsulate()
+: <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">crypto.php</a>
+</li>
+<li>age()
+: <a class="el" href="datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df">datetime.php</a>
+</li>
+<li>all_friends()
+: <a class="el" href="socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586">socgraph.php</a>
+</li>
+<li>allfriends_content()
+: <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends.php</a>
+</li>
+<li>allowed_email()
+: <a class="el" href="include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694">network.php</a>
+</li>
+<li>allowed_public_recips()
+: <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">zot.php</a>
+</li>
+<li>allowed_url()
+: <a class="el" href="include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7">network.php</a>
+</li>
+<li>alt_pager()
+: <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">text.php</a>
+</li>
+<li>api_account_logout()
+: <a class="el" href="include_2api_8php.html#a2e94eab9d6c164bfef7a1b2ab87b339b">api.php</a>
+</li>
+<li>api_account_rate_limit_status()
+: <a class="el" href="include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5">api.php</a>
+</li>
+<li>api_account_verify_credentials()
+: <a class="el" href="include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad">api.php</a>
+</li>
+<li>api_albums()
+: <a class="el" href="include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18">api.php</a>
+</li>
+<li>api_apply_template()
+: <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api.php</a>
+</li>
+<li>api_call()
+: <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api.php</a>
+</li>
+<li>api_channel_stream()
+: <a class="el" href="include_2api_8php.html#a72bfecac1970bc29b853073e816388ff">api.php</a>
+</li>
+<li>api_content()
+: <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api.php</a>
+</li>
+<li>api_date()
+: <a class="el" href="include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25">api.php</a>
+</li>
+<li>api_direct_messages_all()
+: <a class="el" href="include_2api_8php.html#a970b02c06dea8b229aa3d5fff9cf4705">api.php</a>
+</li>
+<li>api_direct_messages_box()
+: <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api.php</a>
+</li>
+<li>api_direct_messages_conversation()
+: <a class="el" href="include_2api_8php.html#a9160288b7ac220635942d8dc209b78c3">api.php</a>
+</li>
+<li>api_direct_messages_inbox()
+: <a class="el" href="include_2api_8php.html#ad2b0192f3006918bea895de8074bf8d2">api.php</a>
+</li>
+<li>api_direct_messages_new()
+: <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api.php</a>
+</li>
+<li>api_direct_messages_sentbox()
+: <a class="el" href="include_2api_8php.html#a58cf4c02ef435996f5c3bc4283d3968d">api.php</a>
+</li>
+<li>api_export_basic()
+: <a class="el" href="include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53">api.php</a>
+</li>
+<li>api_favorites()
+: <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api.php</a>
+</li>
+<li>api_ff_ids()
+: <a class="el" href="include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8">api.php</a>
+</li>
+<li>api_followers_ids()
+: <a class="el" href="include_2api_8php.html#ab1ecb58954f722444bfe03233345cb1b">api.php</a>
+</li>
+<li>api_format_as()
+: <a class="el" href="include_2api_8php.html#a18cab7c6391df5c421753463f5d2a879">api.php</a>
+</li>
+<li>api_format_items()
+: <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api.php</a>
+</li>
+<li>api_format_messages()
+: <a class="el" href="include_2api_8php.html#ae82608c317421f27446465aa6724733d">api.php</a>
+</li>
+<li>api_friendica_version()
+: <a class="el" href="include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74">api.php</a>
+</li>
+<li>api_friends_ids()
+: <a class="el" href="include_2api_8php.html#acafd2899309a005fcb725289173dc7fe">api.php</a>
+</li>
+<li>api_get_user()
+: <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api.php</a>
+</li>
+<li>api_help_test()
+: <a class="el" href="include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23">api.php</a>
+</li>
+<li>api_item_get_user()
+: <a class="el" href="include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1">api.php</a>
+</li>
+<li>api_login()
+: <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api.php</a>
+</li>
+<li>api_oauth_access_token()
+: <a class="el" href="include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0">api.php</a>
+</li>
+<li>api_oauth_request_token()
+: <a class="el" href="include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3">api.php</a>
+</li>
+<li>api_photos()
+: <a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api.php</a>
+</li>
+<li>api_post()
+: <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api.php</a>
+</li>
+<li>api_register_func()
+: <a class="el" href="include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a">api.php</a>
+</li>
+<li>api_rss_extra()
+: <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api.php</a>
+</li>
+<li>api_status_show()
+: <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api.php</a>
+</li>
+<li>api_statuses_destroy()
+: <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api.php</a>
+</li>
+<li>api_statuses_f()
+: <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api.php</a>
+</li>
+<li>api_statuses_followers()
+: <a class="el" href="include_2api_8php.html#a6951c690d87775eb37e569c66011988e">api.php</a>
+</li>
+<li>api_statuses_friends()
+: <a class="el" href="include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e">api.php</a>
+</li>
+<li>api_statuses_home_timeline()
+: <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api.php</a>
+</li>
+<li>api_statuses_mediap()
+: <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api.php</a>
+</li>
+<li>api_statuses_mentions()
+: <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api.php</a>
+</li>
+<li>api_statuses_public_timeline()
+: <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api.php</a>
+</li>
+<li>api_statuses_repeat()
+: <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api.php</a>
+</li>
+<li>api_statuses_show()
+: <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api.php</a>
+</li>
+<li>api_statuses_update()
+: <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api.php</a>
+</li>
+<li>api_statuses_user_timeline()
+: <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api.php</a>
+</li>
+<li>api_statusnet_config()
+: <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api.php</a>
+</li>
+<li>api_statusnet_version()
+: <a class="el" href="include_2api_8php.html#a8969e8d9c683f12ba17dcd4b059e020d">api.php</a>
+</li>
+<li>api_user()
+: <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api.php</a>
+</li>
+<li>api_users_show()
+: <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api.php</a>
+</li>
+<li>appdirpath()
+: <a class="el" href="boot_8php.html#a75a90b0eadd0df510f7e63210733634d">boot.php</a>
+</li>
+<li>apps_content()
+: <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps.php</a>
+</li>
+<li>argc()
+: <a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">boot.php</a>
+</li>
+<li>argv()
+: <a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">boot.php</a>
+</li>
+<li>arr_add_hashes()
+: <a class="el" href="parse__url_8php.html#aa7dd8f961bea042d62726ed909e4a868">parse_url.php</a>
+</li>
+<li>array_sanitise()
+: <a class="el" href="items_8php.html#abf7a1b73eb352d79acd36309b0dababd">items.php</a>
+</li>
+<li>array_xmlify()
+: <a class="el" href="text_8php.html#acedb584f65114a33f389efb796172a91">text.php</a>
+</li>
+<li>atom_author()
+: <a class="el" href="items_8php.html#a016dd86c827d08db89061ea81d15c6cb">items.php</a>
+</li>
+<li>atom_entry()
+: <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">items.php</a>
+</li>
+<li>attach_by_hash()
+: <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach.php</a>
+</li>
+<li>attach_by_hash_nodata()
+: <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach.php</a>
+</li>
+<li>attach_count_files()
+: <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach.php</a>
+</li>
+<li>attach_init()
+: <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach.php</a>
+</li>
+<li>attach_list_files()
+: <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach.php</a>
+</li>
+<li>attach_store()
+: <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach.php</a>
+</li>
+<li>attribute_contains()
+: <a class="el" href="text_8php.html#a95fd2f8f23a1948414a03ebc963bac57">text.php</a>
+</li>
+<li>authenticate_success()
+: <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">security.php</a>
+</li>
+<li>autoname()
+: <a class="el" href="text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca">text.php</a>
+</li>
+<li>avatar_img()
+: <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">network.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x62.html b/doc/html/globals_func_0x62.html
new file mode 100644
index 000000000..12e9a65e7
--- /dev/null
+++ b/doc/html/globals_func_0x62.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li class="current"><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x62.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>base64url_decode()
+: <a class="el" href="text_8php.html#a13286f8a95d2de6b102966ecc270c8d6">text.php</a>
+</li>
+<li>base64url_encode()
+: <a class="el" href="text_8php.html#a070384ec000fd65043fce11d5392d241">text.php</a>
+</li>
+<li>bb2diaspora()
+: <a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora.php</a>
+</li>
+<li>bb_ShareAttributes()
+: <a class="el" href="bbcode_8php.html#a52c45273fbb7ce5ec27094f7936856e1">bbcode.php</a>
+</li>
+<li>bb_ShareAttributesSimple()
+: <a class="el" href="bbcode_8php.html#a2be26414a367118143cc89e2d58e7377">bbcode.php</a>
+</li>
+<li>bb_spacefy()
+: <a class="el" href="bbcode_8php.html#a8911e027907820df3db03b4f76724b50">bbcode.php</a>
+</li>
+<li>bb_tag_preg_replace()
+: <a class="el" href="bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba">bb2diaspora.php</a>
+</li>
+<li>bb_translate_video()
+: <a class="el" href="text_8php.html#a3d2793d66db3345fd290b71e2eadf98e">text.php</a>
+</li>
+<li>bb_unspacefy_and_trim()
+: <a class="el" href="bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d">bbcode.php</a>
+</li>
+<li>bbcode()
+: <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode.php</a>
+</li>
+<li>bbtoevent()
+: <a class="el" href="event_8php.html#a180cccd63c2a2f00ff432b03113531f3">event.php</a>
+</li>
+<li>bbtovcal()
+: <a class="el" href="event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279">event.php</a>
+</li>
+<li>best_link_url()
+: <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">conversation.php</a>
+</li>
+<li>breaklines()
+: <a class="el" href="html2plain_8php.html#a3214912e3d00cf0a948072daccf16740">html2plain.php</a>
+</li>
+<li>build_querystring()
+: <a class="el" href="boot_8php.html#a9cbab4ee728e9a8b4ce952bae643044e">boot.php</a>
+</li>
+<li>build_sync_packet()
+: <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">zot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x63.html b/doc/html/globals_func_0x63.html
new file mode 100644
index 000000000..4c009db8b
--- /dev/null
+++ b/doc/html/globals_func_0x63.html
@@ -0,0 +1,404 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li class="current"><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x63.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>cal()
+: <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">datetime.php</a>
+</li>
+<li>call_hooks()
+: <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">plugin.php</a>
+</li>
+<li>can_comment_on_post()
+: <a class="el" href="items_8php.html#a1e75047cf175aaee8dd16aa761913ff9">items.php</a>
+</li>
+<li>categories_widget()
+: <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">contact_widgets.php</a>
+</li>
+<li>change_channel()
+: <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">security.php</a>
+</li>
+<li>chanlink_cid()
+: <a class="el" href="text_8php.html#a85e3a4851c16674834010d8419a5d7ca">text.php</a>
+</li>
+<li>chanlink_hash()
+: <a class="el" href="text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0">text.php</a>
+</li>
+<li>chanlink_url()
+: <a class="el" href="text_8php.html#a2e8d6c402603be3a1256a16605e09c2a">text.php</a>
+</li>
+<li>channel_aside()
+: <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel.php</a>
+</li>
+<li>channel_content()
+: <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel.php</a>
+</li>
+<li>channel_init()
+: <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel.php</a>
+</li>
+<li>channel_remove()
+: <a class="el" href="Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa">Contact.php</a>
+</li>
+<li>channel_total()
+: <a class="el" href="identity_8php.html#a77d2237f1846964634b1c99089c27c7d">identity.php</a>
+</li>
+<li>channelx_by_hash()
+: <a class="el" href="Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258">Contact.php</a>
+</li>
+<li>channelx_by_n()
+: <a class="el" href="Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc">Contact.php</a>
+</li>
+<li>channelx_by_nick()
+: <a class="el" href="Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e">Contact.php</a>
+</li>
+<li>chanview_content()
+: <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview.php</a>
+</li>
+<li>check_account_admin()
+: <a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">account.php</a>
+</li>
+<li>check_account_email()
+: <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">account.php</a>
+</li>
+<li>check_account_invite()
+: <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">account.php</a>
+</li>
+<li>check_account_password()
+: <a class="el" href="account_8php.html#a144b4891022567668375b58ea61cfff0">account.php</a>
+</li>
+<li>check_add()
+: <a class="el" href="setup_8php.html#ae8e4d9279a61de74d5f39962cb7b6ca1">setup.php</a>
+</li>
+<li>check_config()
+: <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">boot.php</a>
+</li>
+<li>check_form_security_std_err_msg()
+: <a class="el" href="security_8php.html#a20f8b9851f23ee8894b8925584ef6821">security.php</a>
+</li>
+<li>check_form_security_token()
+: <a class="el" href="security_8php.html#a9c6180e82150a5a9af91a1255d096b5c">security.php</a>
+</li>
+<li>check_form_security_token_ForbiddenOnErr()
+: <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">security.php</a>
+</li>
+<li>check_form_security_token_redirectOnErr()
+: <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">security.php</a>
+</li>
+<li>check_funcs()
+: <a class="el" href="setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e">setup.php</a>
+</li>
+<li>check_htaccess()
+: <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">setup.php</a>
+</li>
+<li>check_htconfig()
+: <a class="el" href="setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f">setup.php</a>
+</li>
+<li>check_keys()
+: <a class="el" href="setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76">setup.php</a>
+</li>
+<li>check_list_permissions()
+: <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">permissions.php</a>
+</li>
+<li>check_php()
+: <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">setup.php</a>
+</li>
+<li>check_smarty3()
+: <a class="el" href="setup_8php.html#afd8b0b3ade1507c45325caf377bf459d">setup.php</a>
+</li>
+<li>check_webbie()
+: <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">text.php</a>
+</li>
+<li>clean_urls()
+: <a class="el" href="boot_8php.html#ab79b8b4555cae20d03f8200666d89d63">boot.php</a>
+</li>
+<li>cleardiv()
+: <a class="el" href="text_8php.html#afe18627c4983ee5f7c940a0992818cd5">text.php</a>
+</li>
+<li>cli_startup()
+: <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup.php</a>
+</li>
+<li>collect_recipients()
+: <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">items.php</a>
+</li>
+<li>collecturls()
+: <a class="el" href="html2plain_8php.html#ae1c203d0f089d5678d73a6c64a395201">html2plain.php</a>
+</li>
+<li>common_aside()
+: <a class="el" href="common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a">common.php</a>
+</li>
+<li>common_content()
+: <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common.php</a>
+</li>
+<li>common_friends()
+: <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">socgraph.php</a>
+</li>
+<li>common_friends_visitor_widget()
+: <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">contact_widgets.php</a>
+</li>
+<li>common_friends_zcid()
+: <a class="el" href="socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9">socgraph.php</a>
+</li>
+<li>common_init()
+: <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common.php</a>
+</li>
+<li>community_content()
+: <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community.php</a>
+</li>
+<li>community_init()
+: <a class="el" href="community_8php.html#a56c94ec978a38633c5628fa6f8e386d9">community.php</a>
+</li>
+<li>compare_permissions()
+: <a class="el" href="items_8php.html#a0790a4550b829e85504af548623002ca">items.php</a>
+</li>
+<li>completeurl()
+: <a class="el" href="parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a">parse_url.php</a>
+</li>
+<li>connections_aside()
+: <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections.php</a>
+</li>
+<li>connections_clone()
+: <a class="el" href="connections_8php.html#a15af118efee9c948b6f8294e54a73bb2">connections.php</a>
+</li>
+<li>connections_content()
+: <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections.php</a>
+</li>
+<li>connections_init()
+: <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections.php</a>
+</li>
+<li>connections_post()
+: <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections.php</a>
+</li>
+<li>construct_activity_object()
+: <a class="el" href="items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee">items.php</a>
+</li>
+<li>construct_activity_target()
+: <a class="el" href="items_8php.html#aa579bc4445d60098b1410961ca8e96b7">items.php</a>
+</li>
+<li>construct_page()
+: <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">boot.php</a>
+</li>
+<li>construct_verb()
+: <a class="el" href="items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8">items.php</a>
+</li>
+<li>consume_feed()
+: <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">items.php</a>
+</li>
+<li>contact_block()
+: <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">text.php</a>
+</li>
+<li>contact_poll_interval()
+: <a class="el" href="contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f">contact_selectors.php</a>
+</li>
+<li>contact_profile_assign()
+: <a class="el" href="contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75">contact_selectors.php</a>
+</li>
+<li>contact_remove()
+: <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">Contact.php</a>
+</li>
+<li>contact_reputation()
+: <a class="el" href="contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53">contact_selectors.php</a>
+</li>
+<li>contact_select()
+: <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">acl_selectors.php</a>
+</li>
+<li>contactgroup_content()
+: <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup.php</a>
+</li>
+<li>contacts_not_grouped()
+: <a class="el" href="Contact_8php.html#a228fc01f90ae9bfdde4c2ad0772bd7dc">Contact.php</a>
+</li>
+<li>conv_sort()
+: <a class="el" href="conversation_8php.html#abed85a41f1160598de880b84021c9cf7">conversation.php</a>
+</li>
+<li>conversation()
+: <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation.php</a>
+</li>
+<li>convert_xml_element_to_array()
+: <a class="el" href="include_2network_8php.html#ad4056d3ce69988f5c1a997a79f503246">network.php</a>
+</li>
+<li>count_all_friends()
+: <a class="el" href="socgraph_8php.html#af29d056beec10b4e38e5209c92452894">socgraph.php</a>
+</li>
+<li>count_common_friends()
+: <a class="el" href="socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84">socgraph.php</a>
+</li>
+<li>count_common_friends_zcid()
+: <a class="el" href="socgraph_8php.html#af175807406d94407a5e11742a3287746">socgraph.php</a>
+</li>
+<li>count_descendants()
+: <a class="el" href="conversation_8php.html#ab2383dff4f823e580399ff469d90ab19">conversation.php</a>
+</li>
+<li>create_account()
+: <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">account.php</a>
+</li>
+<li>create_dir_account()
+: <a class="el" href="identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd">identity.php</a>
+</li>
+<li>create_identity()
+: <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">identity.php</a>
+</li>
+<li>crepair_content()
+: <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair.php</a>
+</li>
+<li>crepair_init()
+: <a class="el" href="crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198">crepair.php</a>
+</li>
+<li>crepair_post()
+: <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair.php</a>
+</li>
+<li>cronhooks_run()
+: <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks.php</a>
+</li>
+<li>curPageURL()
+: <a class="el" href="boot_8php.html#aa4221641e5c21db69fa52c426b9017f5">boot.php</a>
+</li>
+<li>current_theme()
+: <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">boot.php</a>
+</li>
+<li>current_theme_url()
+: <a class="el" href="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x64.html b/doc/html/globals_func_0x64.html
new file mode 100644
index 000000000..cd1fca1c7
--- /dev/null
+++ b/doc/html/globals_func_0x64.html
@@ -0,0 +1,263 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li class="current"><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x64.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>datesel()
+: <a class="el" href="datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8">datetime.php</a>
+</li>
+<li>datesel_format()
+: <a class="el" href="datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa">datetime.php</a>
+</li>
+<li>datetime_convert()
+: <a class="el" href="datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226">datetime.php</a>
+</li>
+<li>day_translate()
+: <a class="el" href="text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63">text.php</a>
+</li>
+<li>dba_factory()
+: <a class="el" href="dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947">dba_driver.php</a>
+</li>
+<li>dba_timer()
+: <a class="el" href="boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4">boot.php</a>
+</li>
+<li>dbesc()
+: <a class="el" href="dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e">dba_driver.php</a>
+</li>
+<li>dbesc_array()
+: <a class="el" href="dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4">dba_driver.php</a>
+</li>
+<li>dbesc_array_cb()
+: <a class="el" href="dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930">dba_driver.php</a>
+</li>
+<li>dbg()
+: <a class="el" href="dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb">dba_driver.php</a>
+</li>
+<li>dbq()
+: <a class="el" href="dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee">dba_driver.php</a>
+</li>
+<li>decode_tags()
+: <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">items.php</a>
+</li>
+<li>del_config()
+: <a class="el" href="include_2config_8php.html#a549910227348003efc3c05c9105c42da">config.php</a>
+</li>
+<li>del_pconfig()
+: <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">config.php</a>
+</li>
+<li>del_xconfig()
+: <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">config.php</a>
+</li>
+<li>delegate_content()
+: <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate.php</a>
+</li>
+<li>delete_imported_item()
+: <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">zot.php</a>
+</li>
+<li>delete_item_lowlevel()
+: <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">items.php</a>
+</li>
+<li>deletenode()
+: <a class="el" href="html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2">html2bbcode.php</a>
+</li>
+<li>deliver_run()
+: <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver.php</a>
+</li>
+<li>detect_language()
+: <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">language.php</a>
+</li>
+<li>dfrn_deliver()
+: <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">items.php</a>
+</li>
+<li>diaspora2bb()
+: <a class="el" href="bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6">bb2diaspora.php</a>
+</li>
+<li>diaspora_ol()
+: <a class="el" href="bb2diaspora_8php.html#a8b96bd45884fa1c40b942939354197d4">bb2diaspora.php</a>
+</li>
+<li>diaspora_ul()
+: <a class="el" href="bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc">bb2diaspora.php</a>
+</li>
+<li>directory_aside()
+: <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory.php</a>
+</li>
+<li>directory_content()
+: <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory.php</a>
+</li>
+<li>directory_init()
+: <a class="el" href="mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf">directory.php</a>
+</li>
+<li>directory_run()
+: <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory.php</a>
+</li>
+<li>dirfind_content()
+: <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind.php</a>
+</li>
+<li>dirfind_init()
+: <a class="el" href="dirfind_8php.html#ac689a812c84f161b3a0d42349f83981c">dirfind.php</a>
+</li>
+<li>dirsearch_content()
+: <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch.php</a>
+</li>
+<li>dirsearch_init()
+: <a class="el" href="dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752">dirsearch.php</a>
+</li>
+<li>display_content()
+: <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display.php</a>
+</li>
+<li>dlogger()
+: <a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c">text.php</a>
+</li>
+<li>dob()
+: <a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">datetime.php</a>
+</li>
+<li>drop_item()
+: <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">items.php</a>
+</li>
+<li>drop_items()
+: <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">items.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x65.html b/doc/html/globals_func_0x65.html
new file mode 100644
index 000000000..b479b761c
--- /dev/null
+++ b/doc/html/globals_func_0x65.html
@@ -0,0 +1,206 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li class="current"><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x65.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>editpost_content()
+: <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost.php</a>
+</li>
+<li>editwebpage_content()
+: <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage.php</a>
+</li>
+<li>email_header_encode()
+: <a class="el" href="include_2network_8php.html#a540420ff3675a72cb781ef9a7e8c2cd9">network.php</a>
+</li>
+<li>email_send()
+: <a class="el" href="include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0">network.php</a>
+</li>
+<li>encode_item()
+: <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">items.php</a>
+</li>
+<li>encode_item_flags()
+: <a class="el" href="items_8php.html#a5f690fc2484abec07840b4f9dd525bd9">items.php</a>
+</li>
+<li>encode_item_terms()
+: <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">items.php</a>
+</li>
+<li>encode_item_xchan()
+: <a class="el" href="items_8php.html#a566c601726697e044e75284af7fb6f17">items.php</a>
+</li>
+<li>encode_mail()
+: <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">items.php</a>
+</li>
+<li>encode_rel_links()
+: <a class="el" href="items_8php.html#aa723c0571e314a1853a24c5854b4f54f">items.php</a>
+</li>
+<li>enumerate_permissions()
+: <a class="el" href="items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67">items.php</a>
+</li>
+<li>escape_tags()
+: <a class="el" href="text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64">text.php</a>
+</li>
+<li>ev_compare()
+: <a class="el" href="event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850">event.php</a>
+</li>
+<li>event_store()
+: <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event.php</a>
+</li>
+<li>events_content()
+: <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events.php</a>
+</li>
+<li>events_post()
+: <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events.php</a>
+</li>
+<li>expand_acl()
+: <a class="el" href="text_8php.html#ae4282a39492caa23ccbc2ce98e54f110">text.php</a>
+</li>
+<li>expand_groups()
+: <a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">group.php</a>
+</li>
+<li>expire_run()
+: <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x66.html b/doc/html/globals_func_0x66.html
new file mode 100644
index 000000000..3295b9919
--- /dev/null
+++ b/doc/html/globals_func_0x66.html
@@ -0,0 +1,275 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li class="current"><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x66.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>fbrowser_content()
+: <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser.php</a>
+</li>
+<li>feature_enabled()
+: <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">features.php</a>
+</li>
+<li>feed_hublinks()
+: <a class="el" href="text_8php.html#a8d8c4a11e53461caca21181ebd72daca">text.php</a>
+</li>
+<li>feed_init()
+: <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed.php</a>
+</li>
+<li>feed_salmonlinks()
+: <a class="el" href="text_8php.html#a89929fa6f70a8ba54d5273fcf622b665">text.php</a>
+</li>
+<li>fetch_lrdd_template()
+: <a class="el" href="include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0">network.php</a>
+</li>
+<li>fetch_post_tags()
+: <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">items.php</a>
+</li>
+<li>fetch_url()
+: <a class="el" href="include_2network_8php.html#a37ddeb88a3fd1dee9e8339723f9edf9a">network.php</a>
+</li>
+<li>fetch_xrd_links()
+: <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">network.php</a>
+</li>
+<li>field_timezone()
+: <a class="el" href="datetime_8php.html#a03900dcf0f9e3c58793a031673a70326">datetime.php</a>
+</li>
+<li>file_tag_decode()
+: <a class="el" href="taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6">taxonomy.php</a>
+</li>
+<li>file_tag_encode()
+: <a class="el" href="taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37">taxonomy.php</a>
+</li>
+<li>file_tag_file_query()
+: <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">taxonomy.php</a>
+</li>
+<li>fileas_widget()
+: <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">contact_widgets.php</a>
+</li>
+<li>filer_content()
+: <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer.php</a>
+</li>
+<li>filerm_content()
+: <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm.php</a>
+</li>
+<li>find_thread_parent_index()
+: <a class="el" href="conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6">conversation.php</a>
+</li>
+<li>find_upstream_directory()
+: <a class="el" href="dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d">dir_fns.php</a>
+</li>
+<li>find_xchan_in_array()
+: <a class="el" href="text_8php.html#ace3c98538c63e09b70a363210b414112">text.php</a>
+</li>
+<li>findpeople_widget()
+: <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">contact_widgets.php</a>
+</li>
+<li>first_post_date()
+: <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">items.php</a>
+</li>
+<li>fix_attached_file_permissions()
+: <a class="el" href="item_8php.html#a3daae7944f737bd30412a0d042207c0f">item.php</a>
+</li>
+<li>fix_attached_photo_permissions()
+: <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">item.php</a>
+</li>
+<li>fix_contact_ssl_policy()
+: <a class="el" href="include_2network_8php.html#a2729d012410e470c527a62a3f777ded8">network.php</a>
+</li>
+<li>fix_mce_lf()
+: <a class="el" href="text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28">text.php</a>
+</li>
+<li>fix_private_photos()
+: <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">items.php</a>
+</li>
+<li>fix_system_urls()
+: <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">boot.php</a>
+</li>
+<li>fixacl()
+: <a class="el" href="acl__selectors_8php.html#ad6664fb8330308e23f2645cd6624727e">acl_selectors.php</a>
+</li>
+<li>follow_content()
+: <a class="el" href="mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592">follow.php</a>
+</li>
+<li>follow_init()
+: <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow.php</a>
+</li>
+<li>follow_widget()
+: <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">contact_widgets.php</a>
+</li>
+<li>format_css_if_exists()
+: <a class="el" href="plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6">plugin.php</a>
+</li>
+<li>format_event_bbcode()
+: <a class="el" href="event_8php.html#abb74206cf42d694307c3d7abb7af9869">event.php</a>
+</li>
+<li>format_event_diaspora()
+: <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">bb2diaspora.php</a>
+</li>
+<li>format_event_html()
+: <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">event.php</a>
+</li>
+<li>format_js_if_exists()
+: <a class="el" href="plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f">plugin.php</a>
+</li>
+<li>format_like()
+: <a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">conversation.php</a>
+</li>
+<li>format_location()
+: <a class="el" href="conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3">conversation.php</a>
+</li>
+<li>format_notification()
+: <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">notify.php</a>
+</li>
+<li>format_term_for_display()
+: <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">taxonomy.php</a>
+</li>
+<li>fsuggest_content()
+: <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest.php</a>
+</li>
+<li>fsuggest_post()
+: <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x67.html b/doc/html/globals_func_0x67.html
new file mode 100644
index 000000000..2c2a70be1
--- /dev/null
+++ b/doc/html/globals_func_0x67.html
@@ -0,0 +1,338 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li class="current"><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x67.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>gender_selector()
+: <a class="el" href="profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355">profile_selectors.php</a>
+</li>
+<li>generate_user_guid()
+: <a class="el" href="text_8php.html#ae4f6881d7e13623f8eded6277595112a">text.php</a>
+</li>
+<li>get_account_id()
+: <a class="el" href="boot_8php.html#afe88b920aa285982edb817a0dd44eb37">boot.php</a>
+</li>
+<li>get_all_perms()
+: <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">permissions.php</a>
+</li>
+<li>get_app()
+: <a class="el" href="boot_8php.html#a0e6db7e365f2b041a828b93786f694bc">boot.php</a>
+</li>
+<li>get_atom_elements()
+: <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">items.php</a>
+</li>
+<li>get_bb_tag_pos()
+: <a class="el" href="bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2">bb2diaspora.php</a>
+</li>
+<li>get_best_language()
+: <a class="el" href="language_8php.html#a980dee1d8715a98ab02e36b59facf8ed">language.php</a>
+</li>
+<li>get_birthdays()
+: <a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">boot.php</a>
+</li>
+<li>get_browser_language()
+: <a class="el" href="language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e">language.php</a>
+</li>
+<li>get_capath()
+: <a class="el" href="include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7">network.php</a>
+</li>
+<li>get_config()
+: <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">config.php</a>
+</li>
+<li>get_config_from_storage()
+: <a class="el" href="include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74">config.php</a>
+</li>
+<li>get_db_errno()
+: <a class="el" href="setup_8php.html#a8652788e8589778c5f81634a9d5b9429">setup.php</a>
+</li>
+<li>get_dim()
+: <a class="el" href="datetime_8php.html#a7df24d72ea05922d3127363e2295174c">datetime.php</a>
+</li>
+<li>get_events()
+: <a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">boot.php</a>
+</li>
+<li>get_features()
+: <a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">features.php</a>
+</li>
+<li>get_feed_for()
+: <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">items.php</a>
+</li>
+<li>get_first_dim()
+: <a class="el" href="datetime_8php.html#aba971b67f17fecf050813f1eba72367f">datetime.php</a>
+</li>
+<li>get_form_security_token()
+: <a class="el" href="security_8php.html#acd06ef411116115c2f0a92633700db8a">security.php</a>
+</li>
+<li>get_intltext_template()
+: <a class="el" href="plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295">plugin.php</a>
+</li>
+<li>get_item_children()
+: <a class="el" href="conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67">conversation.php</a>
+</li>
+<li>get_item_contact()
+: <a class="el" href="items_8php.html#aab9c6bae4c40799867596bdaae9829fd">items.php</a>
+</li>
+<li>get_item_elements()
+: <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">items.php</a>
+</li>
+<li>get_mail_elements()
+: <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">items.php</a>
+</li>
+<li>get_markup_template()
+: <a class="el" href="plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4">plugin.php</a>
+</li>
+<li>get_max_import_size()
+: <a class="el" href="boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90">boot.php</a>
+</li>
+<li>get_mentions()
+: <a class="el" href="text_8php.html#a76d1b3435c067978d7b484c45f56472b">text.php</a>
+</li>
+<li>get_mood_verbs()
+: <a class="el" href="text_8php.html#a736db13a966b8abaf8c9198faa35911a">text.php</a>
+</li>
+<li>get_my_address()
+: <a class="el" href="boot_8php.html#a490972c02fdb638c52ec0e012a30bfd2">boot.php</a>
+</li>
+<li>get_my_url()
+: <a class="el" href="boot_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec">boot.php</a>
+</li>
+<li>get_observer_hash()
+: <a class="el" href="boot_8php.html#a623e49c79943f3e7bdb770d021683cf7">boot.php</a>
+</li>
+<li>get_pconfig()
+: <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">config.php</a>
+</li>
+<li>get_perms()
+: <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">permissions.php</a>
+</li>
+<li>get_plink()
+: <a class="el" href="text_8php.html#a05b7f26dc2df78681f57eeade53040c6">text.php</a>
+</li>
+<li>get_plugin_info()
+: <a class="el" href="plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35">plugin.php</a>
+</li>
+<li>get_poke_verbs()
+: <a class="el" href="text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66">text.php</a>
+</li>
+<li>get_profile_elements()
+: <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">items.php</a>
+</li>
+<li>get_public_feed()
+: <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">items.php</a>
+</li>
+<li>get_rel_link()
+: <a class="el" href="text_8php.html#a3972701c5c83624ec4e2d06242f614e7">text.php</a>
+</li>
+<li>get_tags()
+: <a class="el" href="text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623">text.php</a>
+</li>
+<li>get_terms_oftype()
+: <a class="el" href="taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1">taxonomy.php</a>
+</li>
+<li>get_theme_config_file()
+: <a class="el" href="settings_8php.html#a39abc76ff5459c57e3b957664f273f18">settings.php</a>
+</li>
+<li>get_theme_info()
+: <a class="el" href="plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405">plugin.php</a>
+</li>
+<li>get_theme_screenshot()
+: <a class="el" href="plugin_8php.html#a48047edfbef770125a5508dcc2f9282f">plugin.php</a>
+</li>
+<li>get_theme_uid()
+: <a class="el" href="boot_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">boot.php</a>
+</li>
+<li>get_xconfig()
+: <a class="el" href="include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e">config.php</a>
+</li>
+<li>goaway()
+: <a class="el" href="boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1">boot.php</a>
+</li>
+<li>gprobe_run()
+: <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe.php</a>
+</li>
+<li>group_add()
+: <a class="el" href="include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0">group.php</a>
+</li>
+<li>group_add_member()
+: <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group.php</a>
+</li>
+<li>group_aside()
+: <a class="el" href="mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c">group.php</a>
+</li>
+<li>group_byname()
+: <a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group.php</a>
+</li>
+<li>group_content()
+: <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group.php</a>
+</li>
+<li>group_get_members()
+: <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group.php</a>
+</li>
+<li>group_post()
+: <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group.php</a>
+</li>
+<li>group_rec_byhash()
+: <a class="el" href="include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245">group.php</a>
+</li>
+<li>group_rmv()
+: <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group.php</a>
+</li>
+<li>group_rmv_member()
+: <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group.php</a>
+</li>
+<li>group_select()
+: <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">acl_selectors.php</a>
+</li>
+<li>group_side()
+: <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group.php</a>
+</li>
+<li>groups_containing()
+: <a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">group.php</a>
+</li>
+<li>guess_image_type()
+: <a class="el" href="photo__driver_8php.html#a7273b82b017fd96d29b2c57bab03aea6">photo_driver.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x68.html b/doc/html/globals_func_0x68.html
new file mode 100644
index 000000000..9bb63890e
--- /dev/null
+++ b/doc/html/globals_func_0x68.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li class="current"><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x68.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>handle_tag()
+: <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">item.php</a>
+</li>
+<li>has_permissions()
+: <a class="el" href="items_8php.html#a77051724d1784074ff187e73a4db93fe">items.php</a>
+</li>
+<li>hcard_aside()
+: <a class="el" href="hcard_8php.html#a956c7cae2009652a37900306e5b7b73d">hcard.php</a>
+</li>
+<li>hcard_init()
+: <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard.php</a>
+</li>
+<li>head_add_css()
+: <a class="el" href="plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a">plugin.php</a>
+</li>
+<li>head_add_js()
+: <a class="el" href="plugin_8php.html#a516591850f4fd49fd1425cfa54089db8">plugin.php</a>
+</li>
+<li>head_get_css()
+: <a class="el" href="plugin_8php.html#af92789f559b89a380e49d303218aeeca">plugin.php</a>
+</li>
+<li>head_get_icon()
+: <a class="el" href="boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77">boot.php</a>
+</li>
+<li>head_get_js()
+: <a class="el" href="plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1">plugin.php</a>
+</li>
+<li>head_set_icon()
+: <a class="el" href="boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84">boot.php</a>
+</li>
+<li>help_content()
+: <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help.php</a>
+</li>
+<li>hostxrd_init()
+: <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd.php</a>
+</li>
+<li>html2bb_video()
+: <a class="el" href="text_8php.html#a138a3a611fa7f4f3630674145fc826bf">text.php</a>
+</li>
+<li>html2bbcode()
+: <a class="el" href="html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837">html2bbcode.php</a>
+</li>
+<li>html2plain()
+: <a class="el" href="html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04">html2plain.php</a>
+</li>
+<li>http_status_exit()
+: <a class="el" href="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">network.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x69.html b/doc/html/globals_func_0x69.html
new file mode 100644
index 000000000..116bfc9d8
--- /dev/null
+++ b/doc/html/globals_func_0x69.html
@@ -0,0 +1,260 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li class="current"><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x69.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>identity_basic_export()
+: <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity.php</a>
+</li>
+<li>identity_basic_import()
+: <a class="el" href="identity_8php.html#a77ee7d66eb0758f7e7882f70ad0f9485">identity.php</a>
+</li>
+<li>identity_check_service_class()
+: <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity.php</a>
+</li>
+<li>ids_to_querystr()
+: <a class="el" href="text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a">text.php</a>
+</li>
+<li>import_author_xchan()
+: <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">items.php</a>
+</li>
+<li>import_channel_photo()
+: <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">photo_driver.php</a>
+</li>
+<li>import_content()
+: <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import.php</a>
+</li>
+<li>import_directory_keywords()
+: <a class="el" href="zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a">zot.php</a>
+</li>
+<li>import_directory_profile()
+: <a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">zot.php</a>
+</li>
+<li>import_post()
+: <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import.php</a>
+</li>
+<li>import_profile_photo()
+: <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">photo_driver.php</a>
+</li>
+<li>import_site()
+: <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">zot.php</a>
+</li>
+<li>import_xchan()
+: <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">zot.php</a>
+</li>
+<li>info()
+: <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">boot.php</a>
+</li>
+<li>install_plugin()
+: <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">plugin.php</a>
+</li>
+<li>intro_aside()
+: <a class="el" href="intro_8php.html#abc3abf25da64f98f215126eb08c7936b">intro.php</a>
+</li>
+<li>intro_content()
+: <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro.php</a>
+</li>
+<li>intro_post()
+: <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro.php</a>
+</li>
+<li>invite_content()
+: <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite.php</a>
+</li>
+<li>invite_post()
+: <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite.php</a>
+</li>
+<li>is_a_date_arg()
+: <a class="el" href="text_8php.html#a1557112a774ec00fa06ed6b6f6495506">text.php</a>
+</li>
+<li>is_ajax()
+: <a class="el" href="boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c">boot.php</a>
+</li>
+<li>is_site_admin()
+: <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">boot.php</a>
+</li>
+<li>item_content()
+: <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item.php</a>
+</li>
+<li>item_expire()
+: <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">items.php</a>
+</li>
+<li>item_extract_images()
+: <a class="el" href="conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654">conversation.php</a>
+</li>
+<li>item_getfeedattach()
+: <a class="el" href="items_8php.html#a09d425596b9f8663472cf7474ad36d96">items.php</a>
+</li>
+<li>item_getfeedtags()
+: <a class="el" href="items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7">items.php</a>
+</li>
+<li>item_message_id()
+: <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">text.php</a>
+</li>
+<li>item_permissions_sql()
+: <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">security.php</a>
+</li>
+<li>item_photo_menu()
+: <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">conversation.php</a>
+</li>
+<li>item_post()
+: <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item.php</a>
+</li>
+<li>item_post_type()
+: <a class="el" href="text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e">text.php</a>
+</li>
+<li>item_redir_and_replace_images()
+: <a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">conversation.php</a>
+</li>
+<li>item_store()
+: <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">items.php</a>
+</li>
+<li>item_store_update()
+: <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">items.php</a>
+</li>
+<li>items_fetch()
+: <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x6a.html b/doc/html/globals_func_0x6a.html
new file mode 100644
index 000000000..e1e40dcce
--- /dev/null
+++ b/doc/html/globals_func_0x6a.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li class="current"><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x6a.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
+<li>jindent()
+: <a class="el" href="text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8">text.php</a>
+</li>
+<li>json_return_and_die()
+: <a class="el" href="include_2network_8php.html#a4c5d50079e089168d9248427018fffd4">network.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x6b.html b/doc/html/globals_func_0x6b.html
new file mode 100644
index 000000000..b00fe5da8
--- /dev/null
+++ b/doc/html/globals_func_0x6b.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li class="current"><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x6b.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>killme()
+: <a class="el" href="boot_8php.html#aea7fc57a4d8e9dcb42f2601b0b9b761c">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x6c.html b/doc/html/globals_func_0x6c.html
new file mode 100644
index 000000000..e34907368
--- /dev/null
+++ b/doc/html/globals_func_0x6c.html
@@ -0,0 +1,233 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li class="current"><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x6c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>lang_selector()
+: <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">text.php</a>
+</li>
+<li>legal_webbie()
+: <a class="el" href="text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728">text.php</a>
+</li>
+<li>like_content()
+: <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like.php</a>
+</li>
+<li>like_puller()
+: <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">conversation.php</a>
+</li>
+<li>limit_body_size()
+: <a class="el" href="items_8php.html#af94c281016c6c912d06e064113336c5c">items.php</a>
+</li>
+<li>link_compare()
+: <a class="el" href="text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285">text.php</a>
+</li>
+<li>linkify()
+: <a class="el" href="text_8php.html#a11255c8c4e5245b6c24f97684826aa54">text.php</a>
+</li>
+<li>load_config()
+: <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">config.php</a>
+</li>
+<li>load_contact_links()
+: <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">boot.php</a>
+</li>
+<li>load_database()
+: <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">setup.php</a>
+</li>
+<li>load_database_rem()
+: <a class="el" href="setup_8php.html#a2b375ddc555140236fc500135de99371">setup.php</a>
+</li>
+<li>load_hooks()
+: <a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">plugin.php</a>
+</li>
+<li>load_pconfig()
+: <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">config.php</a>
+</li>
+<li>load_plugin()
+: <a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">plugin.php</a>
+</li>
+<li>load_translation_table()
+: <a class="el" href="language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05">language.php</a>
+</li>
+<li>load_xconfig()
+: <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">config.php</a>
+</li>
+<li>local_delivery()
+: <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">items.php</a>
+</li>
+<li>local_user()
+: <a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">boot.php</a>
+</li>
+<li>localize_item()
+: <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">conversation.php</a>
+</li>
+<li>lockview_content()
+: <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview.php</a>
+</li>
+<li>logger()
+: <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">text.php</a>
+</li>
+<li>login()
+: <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">boot.php</a>
+</li>
+<li>login_content()
+: <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login.php</a>
+</li>
+<li>lose_follower()
+: <a class="el" href="items_8php.html#ade53043e7bc5ab9cc9ef1e4fed6569d4">items.php</a>
+</li>
+<li>lose_sharer()
+: <a class="el" href="items_8php.html#a3a218d5e8ffbe261f773225ecded86a2">items.php</a>
+</li>
+<li>lostpass_content()
+: <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass.php</a>
+</li>
+<li>lostpass_post()
+: <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass.php</a>
+</li>
+<li>lrdd()
+: <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">network.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x6d.html b/doc/html/globals_func_0x6d.html
new file mode 100644
index 000000000..4e8c0b537
--- /dev/null
+++ b/doc/html/globals_func_0x6d.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li class="current"><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x6d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>magic_init()
+: <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic.php</a>
+</li>
+<li>magic_link()
+: <a class="el" href="text_8php.html#a1e510c53624933ce9b7d6715784894db">text.php</a>
+</li>
+<li>magiclink_url()
+: <a class="el" href="text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6">text.php</a>
+</li>
+<li>mail_store()
+: <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">items.php</a>
+</li>
+<li>manage_content()
+: <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage.php</a>
+</li>
+<li>manual_config()
+: <a class="el" href="setup_8php.html#abe405d227ba7232971964a706d4f3bce">setup.php</a>
+</li>
+<li>map_scope()
+: <a class="el" href="items_8php.html#ac1fcf621dce7370515b420a7753f4726">items.php</a>
+</li>
+<li>marital_selector()
+: <a class="el" href="profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798">profile_selectors.php</a>
+</li>
+<li>match_content()
+: <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match.php</a>
+</li>
+<li>member_of()
+: <a class="el" href="include_2group_8php.html#a048f6892bfd28852de1b76470df411de">group.php</a>
+</li>
+<li>message_aside()
+: <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message.php</a>
+</li>
+<li>message_content()
+: <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message.php</a>
+</li>
+<li>message_post()
+: <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message.php</a>
+</li>
+<li>micropro()
+: <a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">text.php</a>
+</li>
+<li>mini_group_select()
+: <a class="el" href="include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f">group.php</a>
+</li>
+<li>mood_content()
+: <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood.php</a>
+</li>
+<li>mood_init()
+: <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood.php</a>
+</li>
+<li>msearch_post()
+: <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x6e.html b/doc/html/globals_func_0x6e.html
new file mode 100644
index 000000000..df09249bf
--- /dev/null
+++ b/doc/html/globals_func_0x6e.html
@@ -0,0 +1,239 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li class="current"><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x6e.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>namesList()
+: <a class="el" href="docblox__errorchecker_8php.html#a2b767cfc461fdd5061fffc9e4a806d5b">docblox_errorchecker.php</a>
+</li>
+<li>nav()
+: <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav.php</a>
+</li>
+<li>nav_set_selected()
+: <a class="el" href="nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a">nav.php</a>
+</li>
+<li>navbar_complete()
+: <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">acl.php</a>
+</li>
+<li>network_content()
+: <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network.php</a>
+</li>
+<li>network_init()
+: <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network.php</a>
+</li>
+<li>network_query_get_sel_tab()
+: <a class="el" href="mod_2network_8php.html#aeaa518c1a317516a3da337b88d358666">network.php</a>
+</li>
+<li>network_to_name()
+: <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">contact_selectors.php</a>
+</li>
+<li>new_channel_content()
+: <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel.php</a>
+</li>
+<li>new_channel_init()
+: <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel.php</a>
+</li>
+<li>new_channel_post()
+: <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel.php</a>
+</li>
+<li>new_contact()
+: <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">follow.php</a>
+</li>
+<li>new_cookie()
+: <a class="el" href="session_8php.html#a4c0ead624f95483e386bc80abf570a8f">session.php</a>
+</li>
+<li>new_follower()
+: <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">items.php</a>
+</li>
+<li>new_keypair()
+: <a class="el" href="crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a">crypto.php</a>
+</li>
+<li>node2bbcode()
+: <a class="el" href="html2bbcode_8php.html#ad174afe0ccbd8c475e48f8a6ee2f27d8">html2bbcode.php</a>
+</li>
+<li>node2bbcodesub()
+: <a class="el" href="html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7">html2bbcode.php</a>
+</li>
+<li>nogroup_content()
+: <a class="el" href="nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30">nogroup.php</a>
+</li>
+<li>nogroup_init()
+: <a class="el" href="nogroup_8php.html#a099cb353bf62e8453069ce107b763212">nogroup.php</a>
+</li>
+<li>normalise_link()
+: <a class="el" href="text_8php.html#a4bbb7d00c05cd20b4e043424f322388f">text.php</a>
+</li>
+<li>normalise_openid()
+: <a class="el" href="text_8php.html#adba17ec946f4285285dc100f7860bf51">text.php</a>
+</li>
+<li>notags()
+: <a class="el" href="text_8php.html#a1af49756c8c71902a66c7e329c462beb">text.php</a>
+</li>
+<li>notice()
+: <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">boot.php</a>
+</li>
+<li>notification()
+: <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">enotify.php</a>
+</li>
+<li>notifications_content()
+: <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications.php</a>
+</li>
+<li>notifications_post()
+: <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications.php</a>
+</li>
+<li>notifier_run()
+: <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier.php</a>
+</li>
+<li>notify_content()
+: <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify.php</a>
+</li>
+<li>notify_init()
+: <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify.php</a>
+</li>
+<li>nuke_session()
+: <a class="el" href="auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a">auth.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x6f.html b/doc/html/globals_func_0x6f.html
new file mode 100644
index 000000000..3bf397f45
--- /dev/null
+++ b/doc/html/globals_func_0x6f.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li class="current"><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x6f.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>oauth_get_client()
+: <a class="el" href="mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117">api.php</a>
+</li>
+<li>obj_verb_selector()
+: <a class="el" href="taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2">taxonomy.php</a>
+</li>
+<li>obj_verbs()
+: <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">taxonomy.php</a>
+</li>
+<li>oe_build_xpath()
+: <a class="el" href="include_2oembed_8php.html#ab953a6e7c11bc6498ce01ed73e2ba319">oembed.php</a>
+</li>
+<li>oe_get_inner_html()
+: <a class="el" href="include_2oembed_8php.html#a03fa3b7832c98a3d0b4630afeb73d487">oembed.php</a>
+</li>
+<li>oembed_bbcode2html()
+: <a class="el" href="include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2">oembed.php</a>
+</li>
+<li>oembed_fetch_url()
+: <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed.php</a>
+</li>
+<li>oembed_format_object()
+: <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed.php</a>
+</li>
+<li>oembed_html2bbcode()
+: <a class="el" href="include_2oembed_8php.html#a000a62b97113cf95b0e9e00412168172">oembed.php</a>
+</li>
+<li>oembed_iframe()
+: <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed.php</a>
+</li>
+<li>oembed_init()
+: <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed.php</a>
+</li>
+<li>oembed_replacecb()
+: <a class="el" href="include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0">oembed.php</a>
+</li>
+<li>oexchange_content()
+: <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange.php</a>
+</li>
+<li>oexchange_init()
+: <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange.php</a>
+</li>
+<li>onepoll_run()
+: <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll.php</a>
+</li>
+<li>opensearch_init()
+: <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x70.html b/doc/html/globals_func_0x70.html
new file mode 100644
index 000000000..51cd067e6
--- /dev/null
+++ b/doc/html/globals_func_0x70.html
@@ -0,0 +1,395 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li class="current"><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x70.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>page_content()
+: <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page.php</a>
+</li>
+<li>page_init()
+: <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page.php</a>
+</li>
+<li>paginate()
+: <a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">text.php</a>
+</li>
+<li>parse_url_content()
+: <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url.php</a>
+</li>
+<li>parse_xml_string()
+: <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">network.php</a>
+</li>
+<li>parseurl_getsiteinfo()
+: <a class="el" href="parse__url_8php.html#a25635549f2c22955d72465f4d2e58993">parse_url.php</a>
+</li>
+<li>perm_is_allowed()
+: <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">permissions.php</a>
+</li>
+<li>permissions_sql()
+: <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">security.php</a>
+</li>
+<li>perms2str()
+: <a class="el" href="text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee">text.php</a>
+</li>
+<li>photo_factory()
+: <a class="el" href="photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035">photo_driver.php</a>
+</li>
+<li>photo_init()
+: <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo.php</a>
+</li>
+<li>photo_new_resource()
+: <a class="el" href="text_8php.html#aa5528f41533927e1bd2da3618a74a6d7">text.php</a>
+</li>
+<li>photo_upload()
+: <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photos.php</a>
+</li>
+<li>photos_album_exists()
+: <a class="el" href="include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35">photos.php</a>
+</li>
+<li>photos_album_get_db_idstr()
+: <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos.php</a>
+</li>
+<li>photos_album_rename()
+: <a class="el" href="include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab">photos.php</a>
+</li>
+<li>photos_album_widget()
+: <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos.php</a>
+</li>
+<li>photos_albums_list()
+: <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos.php</a>
+</li>
+<li>photos_content()
+: <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos.php</a>
+</li>
+<li>photos_create_item()
+: <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos.php</a>
+</li>
+<li>photos_init()
+: <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos.php</a>
+</li>
+<li>photos_list_photos()
+: <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos.php</a>
+</li>
+<li>photos_post()
+: <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos.php</a>
+</li>
+<li>php_init()
+: <a class="el" href="php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6">php.php</a>
+</li>
+<li>ping_init()
+: <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping.php</a>
+</li>
+<li>pkcs5_pad()
+: <a class="el" href="crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec">crypto.php</a>
+</li>
+<li>pkcs5_unpad()
+: <a class="el" href="crypto_8php.html#ac95ac3b1b23b65b04a86613d4206ae85">crypto.php</a>
+</li>
+<li>po2php_run()
+: <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php.php</a>
+</li>
+<li>poco_init()
+: <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco.php</a>
+</li>
+<li>poco_load()
+: <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">socgraph.php</a>
+</li>
+<li>poke_content()
+: <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke.php</a>
+</li>
+<li>poke_init()
+: <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke.php</a>
+</li>
+<li>poller_run()
+: <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller.php</a>
+</li>
+<li>pop_lang()
+: <a class="el" href="language_8php.html#a78bd204955ec4cc3a9ac651285a1689d">language.php</a>
+</li>
+<li>populate_acl()
+: <a class="el" href="acl__selectors_8php.html#a51f2ec7a143d5a5b38e35efd5f3d6e2c">acl_selectors.php</a>
+</li>
+<li>post_activity_item()
+: <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">items.php</a>
+</li>
+<li>post_init()
+: <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post.php</a>
+</li>
+<li>post_post()
+: <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post.php</a>
+</li>
+<li>post_url()
+: <a class="el" href="include_2network_8php.html#aa44d9e33a579d930e9e79c4ebb3d6b5e">network.php</a>
+</li>
+<li>posted_date_widget()
+: <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">items.php</a>
+</li>
+<li>posted_dates()
+: <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">items.php</a>
+</li>
+<li>preg_heart()
+: <a class="el" href="text_8php.html#ac19d2b33a58372a357a43d51eed19162">text.php</a>
+</li>
+<li>prepare_body()
+: <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">text.php</a>
+</li>
+<li>prepare_page()
+: <a class="el" href="conversation_8php.html#a4b0888b0f26e1c284a4341fe5fd04f0c">conversation.php</a>
+</li>
+<li>prepare_text()
+: <a class="el" href="text_8php.html#afe54312607d92f7ce9593f5760831f80">text.php</a>
+</li>
+<li>pretheme_init()
+: <a class="el" href="pretheme_8php.html#af5660943ee99db5fd75182316522eafe">pretheme.php</a>
+</li>
+<li>print_template()
+: <a class="el" href="tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3">tpldebug.php</a>
+</li>
+<li>printable()
+: <a class="el" href="dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249">dba_driver.php</a>
+</li>
+<li>private_messages_drop()
+: <a class="el" href="include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1">message.php</a>
+</li>
+<li>private_messages_fetch_conversation()
+: <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">message.php</a>
+</li>
+<li>private_messages_fetch_message()
+: <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">message.php</a>
+</li>
+<li>private_messages_list()
+: <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">message.php</a>
+</li>
+<li>probe_content()
+: <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe.php</a>
+</li>
+<li>proc_run()
+: <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">boot.php</a>
+</li>
+<li>process_channel_sync_delivery()
+: <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">zot.php</a>
+</li>
+<li>process_delivery()
+: <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">zot.php</a>
+</li>
+<li>process_mail_delivery()
+: <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">zot.php</a>
+</li>
+<li>process_profile_delivery()
+: <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">zot.php</a>
+</li>
+<li>profile_activity()
+: <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">activities.php</a>
+</li>
+<li>profile_aside()
+: <a class="el" href="profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e">profile.php</a>
+</li>
+<li>profile_content()
+: <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile.php</a>
+</li>
+<li>profile_create_sidebar()
+: <a class="el" href="boot_8php.html#a5b45d647da3743a7fc8c6223350b4d67">boot.php</a>
+</li>
+<li>profile_init()
+: <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile.php</a>
+</li>
+<li>profile_load()
+: <a class="el" href="boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">boot.php</a>
+</li>
+<li>profile_photo_aside()
+: <a class="el" href="profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3">profile_photo.php</a>
+</li>
+<li>profile_photo_init()
+: <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo.php</a>
+</li>
+<li>profile_photo_post()
+: <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo.php</a>
+</li>
+<li>profile_sidebar()
+: <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">boot.php</a>
+</li>
+<li>profile_tabs()
+: <a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">boot.php</a>
+</li>
+<li>profiler()
+: <a class="el" href="text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6">text.php</a>
+</li>
+<li>profiles_aside()
+: <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles.php</a>
+</li>
+<li>profiles_content()
+: <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles.php</a>
+</li>
+<li>profiles_init()
+: <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles.php</a>
+</li>
+<li>profiles_post()
+: <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles.php</a>
+</li>
+<li>profperm_aside()
+: <a class="el" href="profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc">profperm.php</a>
+</li>
+<li>profperm_content()
+: <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm.php</a>
+</li>
+<li>profperm_init()
+: <a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm.php</a>
+</li>
+<li>protect_sprintf()
+: <a class="el" href="text_8php.html#a4e7698aca48982512594b274543c3b9b">text.php</a>
+</li>
+<li>public_permissions_sql()
+: <a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">security.php</a>
+</li>
+<li>public_recips()
+: <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">zot.php</a>
+</li>
+<li>purify_html()
+: <a class="el" href="text_8php.html#a4841df5beabdd1bdd1ed56781a915d61">text.php</a>
+</li>
+<li>push_lang()
+: <a class="el" href="language_8php.html#ac9142ef1d01a235c760deb0f16643f5a">language.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x71.html b/doc/html/globals_func_0x71.html
new file mode 100644
index 000000000..4a96236c7
--- /dev/null
+++ b/doc/html/globals_func_0x71.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li class="current"><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x71.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
+<li>q()
+: <a class="el" href="dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f">dba_driver.php</a>
+</li>
+<li>qp()
+: <a class="el" href="text_8php.html#afc998d2796a6b2a08e96f7cc061e7221">text.php</a>
+</li>
+<li>qsearch_init()
+: <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch.php</a>
+</li>
+<li>queue_run()
+: <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue.php</a>
+</li>
+<li>quotelevel()
+: <a class="el" href="html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0">html2plain.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x72.html b/doc/html/globals_func_0x72.html
new file mode 100644
index 000000000..48b17c390
--- /dev/null
+++ b/doc/html/globals_func_0x72.html
@@ -0,0 +1,272 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li class="current"><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x72.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>random_profile()
+: <a class="el" href="Contact_8php.html#a91281b5d4bbbb2ed468e27ec82ca083c">Contact.php</a>
+</li>
+<li>random_string()
+: <a class="el" href="text_8php.html#a9d6a5ee1290de7a8b483fe78585daade">text.php</a>
+</li>
+<li>randprof_init()
+: <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof.php</a>
+</li>
+<li>rebuild_theme_table()
+: <a class="el" href="admin_8php.html#ae46311a3fefc21abc838a26e91789de6">admin.php</a>
+</li>
+<li>red_zrl_callback()
+: <a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">items.php</a>
+</li>
+<li>redbasic_form()
+: <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">config.php</a>
+</li>
+<li>redbasic_init()
+: <a class="el" href="redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b">theme.php</a>
+</li>
+<li>redir_init()
+: <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir.php</a>
+</li>
+<li>redstrap_init()
+: <a class="el" href="redstrap_2php_2theme_8php.html#a4dac61d466b4261deca2846f548e484a">theme.php</a>
+</li>
+<li>reduce()
+: <a class="el" href="docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f">docblox_errorchecker.php</a>
+</li>
+<li>ref_session_close()
+: <a class="el" href="session_8php.html#a5e1c616e02b863d5450317d101366bb7">session.php</a>
+</li>
+<li>ref_session_destroy()
+: <a class="el" href="session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052">session.php</a>
+</li>
+<li>ref_session_gc()
+: <a class="el" href="session_8php.html#ac95373f4966862a028033dd2f94d4da1">session.php</a>
+</li>
+<li>ref_session_open()
+: <a class="el" href="session_8php.html#a26fa1042356d555023cbf15ddd4f8507">session.php</a>
+</li>
+<li>ref_session_read()
+: <a class="el" href="session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e">session.php</a>
+</li>
+<li>ref_session_write()
+: <a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">session.php</a>
+</li>
+<li>register_content()
+: <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register.php</a>
+</li>
+<li>register_hook()
+: <a class="el" href="plugin_8php.html#a425472c5f3afc137268b2ad45652b209">plugin.php</a>
+</li>
+<li>register_init()
+: <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register.php</a>
+</li>
+<li>register_post()
+: <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register.php</a>
+</li>
+<li>regmod_content()
+: <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod.php</a>
+</li>
+<li>relative_date()
+: <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">datetime.php</a>
+</li>
+<li>reload_plugins()
+: <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">plugin.php</a>
+</li>
+<li>reltoabs()
+: <a class="el" href="text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2">text.php</a>
+</li>
+<li>remote_user()
+: <a class="el" href="boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209">boot.php</a>
+</li>
+<li>remove_all_xchan_resources()
+: <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">Contact.php</a>
+</li>
+<li>remove_community_tag()
+: <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">zot.php</a>
+</li>
+<li>remove_queue_item()
+: <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">queue_fn.php</a>
+</li>
+<li>removeme_content()
+: <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme.php</a>
+</li>
+<li>removeme_post()
+: <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme.php</a>
+</li>
+<li>render_location_default()
+: <a class="el" href="conversation_8php.html#a40b9b5e7825bc73932a32e667f05e6f2">conversation.php</a>
+</li>
+<li>replace_macros()
+: <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">text.php</a>
+</li>
+<li>requestdata()
+: <a class="el" href="include_2api_8php.html#a43c47de8565cc00c3369cb35c19cc75e">api.php</a>
+</li>
+<li>return_bytes()
+: <a class="el" href="text_8php.html#ae2126da85966da0e79c6bcbac63b0bda">text.php</a>
+</li>
+<li>rmagic_content()
+: <a class="el" href="rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef">rmagic.php</a>
+</li>
+<li>rmagic_init()
+: <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic.php</a>
+</li>
+<li>rmagic_post()
+: <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic.php</a>
+</li>
+<li>rsa_sign()
+: <a class="el" href="crypto_8php.html#a920e5f222d0020f47556033d8b2b6552">crypto.php</a>
+</li>
+<li>rsa_verify()
+: <a class="el" href="crypto_8php.html#ab4f21d8f6b8ece0915e7c8bb73379f96">crypto.php</a>
+</li>
+<li>rsd_xml_content()
+: <a class="el" href="rsd__xml_8php.html#a740cd02fa15e5a53f8547fac73f0ab82">rsd_xml.php</a>
+</li>
+<li>runs()
+: <a class="el" href="docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec">docblox_errorchecker.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x73.html b/doc/html/globals_func_0x73.html
new file mode 100644
index 000000000..0cec92525
--- /dev/null
+++ b/doc/html/globals_func_0x73.html
@@ -0,0 +1,320 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li class="current"><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x73.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>sanitise_acl()
+: <a class="el" href="text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c">text.php</a>
+</li>
+<li>saved_searches()
+: <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">network.php</a>
+</li>
+<li>scale_external_images()
+: <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">network.php</a>
+</li>
+<li>search()
+: <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">text.php</a>
+</li>
+<li>search_ac_init()
+: <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac.php</a>
+</li>
+<li>search_content()
+: <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search.php</a>
+</li>
+<li>search_init()
+: <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search.php</a>
+</li>
+<li>search_post()
+: <a class="el" href="search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7">search.php</a>
+</li>
+<li>search_saved_searches()
+: <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search.php</a>
+</li>
+<li>select_timezone()
+: <a class="el" href="datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f">datetime.php</a>
+</li>
+<li>send_message()
+: <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">message.php</a>
+</li>
+<li>send_reg_approval_email()
+: <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">account.php</a>
+</li>
+<li>send_status_notifications()
+: <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">items.php</a>
+</li>
+<li>send_verification_email()
+: <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">account.php</a>
+</li>
+<li>service_class_allows()
+: <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">plugin.php</a>
+</li>
+<li>service_class_fetch()
+: <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">plugin.php</a>
+</li>
+<li>set_config()
+: <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">config.php</a>
+</li>
+<li>set_default_login_identity()
+: <a class="el" href="identity_8php.html#a78151baf4407a8482d2681a91a9c486b">identity.php</a>
+</li>
+<li>set_pconfig()
+: <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">config.php</a>
+</li>
+<li>set_xconfig()
+: <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">config.php</a>
+</li>
+<li>settings_aside()
+: <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings.php</a>
+</li>
+<li>settings_init()
+: <a class="el" href="settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings.php</a>
+</li>
+<li>settings_post()
+: <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings.php</a>
+</li>
+<li>setup_content()
+: <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup.php</a>
+</li>
+<li>setup_init()
+: <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup.php</a>
+</li>
+<li>setup_post()
+: <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup.php</a>
+</li>
+<li>sexpref_selector()
+: <a class="el" href="profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7">profile_selectors.php</a>
+</li>
+<li>share_init()
+: <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share.php</a>
+</li>
+<li>showForm()
+: <a class="el" href="fpostit_8php.html#a3f3ae3ae61578b5671673914fd894443">fpostit.php</a>
+</li>
+<li>siteinfo_content()
+: <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo.php</a>
+</li>
+<li>siteinfo_init()
+: <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo.php</a>
+</li>
+<li>smile_decode()
+: <a class="el" href="text_8php.html#aca0f589be74fab1a460c57e88dad9779">text.php</a>
+</li>
+<li>smile_encode()
+: <a class="el" href="text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6">text.php</a>
+</li>
+<li>smilies()
+: <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">text.php</a>
+</li>
+<li>smilies_content()
+: <a class="el" href="smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f">smilies.php</a>
+</li>
+<li>sort_by_date()
+: <a class="el" href="event_8php.html#a018ea4484910a873a7c1eaa126de9b1a">event.php</a>
+</li>
+<li>sort_item_children()
+: <a class="el" href="conversation_8php.html#ae996eb116d397a2c6396c312d7b98664">conversation.php</a>
+</li>
+<li>sort_thr_commented()
+: <a class="el" href="conversation_8php.html#a9f909b8885259b79c6ac8da93afd8f11">conversation.php</a>
+</li>
+<li>sort_thr_created()
+: <a class="el" href="conversation_8php.html#ac55e070f65f46fcc8e269f7896be4c7d">conversation.php</a>
+</li>
+<li>sort_thr_created_rev()
+: <a class="el" href="conversation_8php.html#a9cc2a679606da9e535a06433f9f553a0">conversation.php</a>
+</li>
+<li>starred_init()
+: <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred.php</a>
+</li>
+<li>startup()
+: <a class="el" href="boot_8php.html#aca47505b8732177f52bb2d647eb2741c">boot.php</a>
+</li>
+<li>status_editor()
+: <a class="el" href="conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a">conversation.php</a>
+</li>
+<li>store_item_tag()
+: <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">taxonomy.php</a>
+</li>
+<li>stream_perms_api_uids()
+: <a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">security.php</a>
+</li>
+<li>string_plural_select_default()
+: <a class="el" href="language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0">language.php</a>
+</li>
+<li>stringify_array_elms()
+: <a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">text.php</a>
+</li>
+<li>stripdcode_br_cb()
+: <a class="el" href="bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93">bb2diaspora.php</a>
+</li>
+<li>subthread_content()
+: <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread.php</a>
+</li>
+<li>suggest_aside()
+: <a class="el" href="suggest_8php.html#a4df91c84594d51ba56b5918de414230d">suggest.php</a>
+</li>
+<li>suggest_content()
+: <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest.php</a>
+</li>
+<li>suggest_init()
+: <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest.php</a>
+</li>
+<li>suggestion_query()
+: <a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">socgraph.php</a>
+</li>
+<li>sync_directories()
+: <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">dir_fns.php</a>
+</li>
+<li>syncdirs()
+: <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">dir_fns.php</a>
+</li>
+<li>system_down()
+: <a class="el" href="system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa">system_unavailable.php</a>
+</li>
+<li>system_unavailable()
+: <a class="el" href="boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x74.html b/doc/html/globals_func_0x74.html
new file mode 100644
index 000000000..163dba938
--- /dev/null
+++ b/doc/html/globals_func_0x74.html
@@ -0,0 +1,230 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li class="current"><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x74.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>t()
+: <a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">language.php</a>
+</li>
+<li>tag_deliver()
+: <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">items.php</a>
+</li>
+<li>tagadelic()
+: <a class="el" href="taxonomy_8php.html#a061b3db9426d4b074395f5824062cad4">taxonomy.php</a>
+</li>
+<li>tagblock()
+: <a class="el" href="taxonomy_8php.html#abdb698bc6921429df6d697f6c5dec96f">taxonomy.php</a>
+</li>
+<li>tagger_content()
+: <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger.php</a>
+</li>
+<li>tagrm_content()
+: <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm.php</a>
+</li>
+<li>tagrm_post()
+: <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm.php</a>
+</li>
+<li>tags_sort()
+: <a class="el" href="taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43">taxonomy.php</a>
+</li>
+<li>template_escape()
+: <a class="el" href="template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5">template_processor.php</a>
+</li>
+<li>template_unescape()
+: <a class="el" href="template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e">template_processor.php</a>
+</li>
+<li>term_query()
+: <a class="el" href="taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c">taxonomy.php</a>
+</li>
+<li>terminate_friendship()
+: <a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">Contact.php</a>
+</li>
+<li>termtype()
+: <a class="el" href="items_8php.html#ad34827ed330898456783fb14c7b46154">items.php</a>
+</li>
+<li>tgroup_check()
+: <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">items.php</a>
+</li>
+<li>theme_content()
+: <a class="el" href="view_2theme_2redstrap_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">config.php</a>
+</li>
+<li>theme_include()
+: <a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">plugin.php</a>
+</li>
+<li>theme_post()
+: <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">config.php</a>
+</li>
+<li>theme_status()
+: <a class="el" href="admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4">admin.php</a>
+</li>
+<li>thing_content()
+: <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing.php</a>
+</li>
+<li>thing_init()
+: <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing.php</a>
+</li>
+<li>timesel()
+: <a class="el" href="datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1">datetime.php</a>
+</li>
+<li>timezone_cmp()
+: <a class="el" href="datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865">datetime.php</a>
+</li>
+<li>title_is_body()
+: <a class="el" href="items_8php.html#aa371905f0a211b307cb3f7188c6cba04">items.php</a>
+</li>
+<li>toggle_mobile_init()
+: <a class="el" href="toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254">toggle_mobile.php</a>
+</li>
+<li>toggle_theme()
+: <a class="el" href="admin_8php.html#af81f081851791cd15e49e8ff6722dc27">admin.php</a>
+</li>
+<li>tryoembed()
+: <a class="el" href="bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7">bbcode.php</a>
+</li>
+<li>tt()
+: <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">language.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x75.html b/doc/html/globals_func_0x75.html
new file mode 100644
index 000000000..12d70ec9b
--- /dev/null
+++ b/doc/html/globals_func_0x75.html
@@ -0,0 +1,218 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li class="current"><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x75.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>uexport_init()
+: <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport.php</a>
+</li>
+<li>unamp()
+: <a class="el" href="text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7">text.php</a>
+</li>
+<li>undo_post_tagging()
+: <a class="el" href="text_8php.html#a740ad03e00459039a2c0992246c4e727">text.php</a>
+</li>
+<li>unescape_underscores_in_links()
+: <a class="el" href="bb2diaspora_8php.html#a599428bceb6f6d82a6a78cb66811f747">bb2diaspora.php</a>
+</li>
+<li>uninstall_plugin()
+: <a class="el" href="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">plugin.php</a>
+</li>
+<li>unload_plugin()
+: <a class="el" href="plugin_8php.html#a90538627db68605aeb6db17a8ead6523">plugin.php</a>
+</li>
+<li>unregister_hook()
+: <a class="el" href="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">plugin.php</a>
+</li>
+<li>unxmlify()
+: <a class="el" href="text_8php.html#a1360fed7f918d859daaca1c9f384f9af">text.php</a>
+</li>
+<li>update_channel_content()
+: <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel.php</a>
+</li>
+<li>update_community_content()
+: <a class="el" href="update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1">update_community.php</a>
+</li>
+<li>update_display_content()
+: <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display.php</a>
+</li>
+<li>update_imported_item()
+: <a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">zot.php</a>
+</li>
+<li>update_modtime()
+: <a class="el" href="zot_8php.html#a666d3efcac00ec1b4a4537a60655f2ab">zot.php</a>
+</li>
+<li>update_network_content()
+: <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network.php</a>
+</li>
+<li>update_queue_time()
+: <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">queue_fn.php</a>
+</li>
+<li>update_search_content()
+: <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search.php</a>
+</li>
+<li>update_suggestions()
+: <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">socgraph.php</a>
+</li>
+<li>upgrade_bool_message()
+: <a class="el" href="plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d">plugin.php</a>
+</li>
+<li>upgrade_link()
+: <a class="el" href="plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040">plugin.php</a>
+</li>
+<li>upgrade_message()
+: <a class="el" href="plugin_8php.html#a901657dd078e070516cf97285e0bada7">plugin.php</a>
+</li>
+<li>user_allow()
+: <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">account.php</a>
+</li>
+<li>user_deny()
+: <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">account.php</a>
+</li>
+<li>user_remove()
+: <a class="el" href="Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15">Contact.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x76.html b/doc/html/globals_func_0x76.html
new file mode 100644
index 000000000..4fa8d511c
--- /dev/null
+++ b/doc/html/globals_func_0x76.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li class="current"><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x76.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>valid_email()
+: <a class="el" href="text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb">text.php</a>
+</li>
+<li>validate_channelname()
+: <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">identity.php</a>
+</li>
+<li>validate_email()
+: <a class="el" href="include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02">network.php</a>
+</li>
+<li>validate_url()
+: <a class="el" href="include_2network_8php.html#a5caa264fab6d2b2344e6bd5b298b08f2">network.php</a>
+</li>
+<li>vcard_from_xchan()
+: <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">Contact.php</a>
+</li>
+<li>view_init()
+: <a class="el" href="view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e">view.php</a>
+</li>
+<li>viewconnections_aside()
+: <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections.php</a>
+</li>
+<li>viewconnections_content()
+: <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections.php</a>
+</li>
+<li>viewconnections_init()
+: <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections.php</a>
+</li>
+<li>viewsrc_content()
+: <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc.php</a>
+</li>
+<li>visible_activity()
+: <a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">conversation.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x77.html b/doc/html/globals_func_0x77.html
new file mode 100644
index 000000000..d89bff42a
--- /dev/null
+++ b/doc/html/globals_func_0x77.html
@@ -0,0 +1,176 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li class="current"><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x77.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>wall_attach_post()
+: <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach.php</a>
+</li>
+<li>wall_upload_post()
+: <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload.php</a>
+</li>
+<li>webfinger()
+: <a class="el" href="include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5">network.php</a>
+</li>
+<li>webfinger_content()
+: <a class="el" href="webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3">webfinger.php</a>
+</li>
+<li>webfinger_dfrn()
+: <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">network.php</a>
+</li>
+<li>webpages_content()
+: <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages.php</a>
+</li>
+<li>webpages_init()
+: <a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages.php</a>
+</li>
+<li>wfinger_init()
+: <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger.php</a>
+</li>
+<li>what_next()
+: <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">setup.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x78.html b/doc/html/globals_func_0x78.html
new file mode 100644
index 000000000..6df4adb06
--- /dev/null
+++ b/doc/html/globals_func_0x78.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li class="current"><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x78.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
+<li>x()
+: <a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">boot.php</a>
+</li>
+<li>xchan_content()
+: <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan.php</a>
+</li>
+<li>xchan_mail_query()
+: <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">text.php</a>
+</li>
+<li>xchan_query()
+: <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">text.php</a>
+</li>
+<li>xml2array()
+: <a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">network.php</a>
+</li>
+<li>xml_status()
+: <a class="el" href="include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6">network.php</a>
+</li>
+<li>xmlify()
+: <a class="el" href="text_8php.html#aaed4413ed8918838b517e3b2fafaea0d">text.php</a>
+</li>
+<li>xrd_init()
+: <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_func_0x7a.html b/doc/html/globals_func_0x7a.html
new file mode 100644
index 000000000..ff834a587
--- /dev/null
+++ b/doc/html/globals_func_0x7a.html
@@ -0,0 +1,227 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_func.html#index__"><span>_</span></a></li>
+ <li><a href="globals_func_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_func_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_func_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_func_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_func_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_func_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_func_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_func_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_func_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_func_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_func_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_func_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_func_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="globals_func_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_func_0x71.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_func_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_func_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_func_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_func_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_func_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_func_0x78.html#index_x"><span>x</span></a></li>
+ <li class="current"><a href="globals_func_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func_0x7a.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_z"></a>- z -</h3><ul>
+<li>z_birthday()
+: <a class="el" href="boot_8php.html#ab55e545b72ec8c097e052ea7d373491f">boot.php</a>
+</li>
+<li>z_fetch_url()
+: <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">network.php</a>
+</li>
+<li>z_mime_content_type()
+: <a class="el" href="include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a">attach.php</a>
+</li>
+<li>z_path()
+: <a class="el" href="boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda">boot.php</a>
+</li>
+<li>z_post_url()
+: <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">network.php</a>
+</li>
+<li>z_readdir()
+: <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">attach.php</a>
+</li>
+<li>z_root()
+: <a class="el" href="boot_8php.html#add517a0958ac684792c62142a3877f81">boot.php</a>
+</li>
+<li>zfinger_init()
+: <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger.php</a>
+</li>
+<li>zid()
+: <a class="el" href="boot_8php.html#a5b815330f3d177ab383af37a6c12e532">boot.php</a>
+</li>
+<li>zid_init()
+: <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">boot.php</a>
+</li>
+<li>zidify_callback()
+: <a class="el" href="text_8php.html#a405afe814a23f3bd94d826101aa168ab">text.php</a>
+</li>
+<li>zidify_img_callback()
+: <a class="el" href="text_8php.html#ab4a4c3d4700bc219bb84f33b499314f4">text.php</a>
+</li>
+<li>zidify_links()
+: <a class="el" href="text_8php.html#a29988052f3944111def3b6aaf2c7a8f6">text.php</a>
+</li>
+<li>zot_build_packet()
+: <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot.php</a>
+</li>
+<li>zot_feed()
+: <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">items.php</a>
+</li>
+<li>zot_fetch()
+: <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot.php</a>
+</li>
+<li>zot_finger()
+: <a class="el" href="zot_8php.html#a77720d6b59894e9b609af89c310c8a4d">zot.php</a>
+</li>
+<li>zot_get_hubloc()
+: <a class="el" href="zot_8php.html#acdea9362d78a63dce948fdf0ea73ef0e">zot.php</a>
+</li>
+<li>zot_gethub()
+: <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot.php</a>
+</li>
+<li>zot_import()
+: <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot.php</a>
+</li>
+<li>zot_new_uid()
+: <a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot.php</a>
+</li>
+<li>zot_process_response()
+: <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot.php</a>
+</li>
+<li>zot_refresh()
+: <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot.php</a>
+</li>
+<li>zot_register_hub()
+: <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot.php</a>
+</li>
+<li>zot_zot()
+: <a class="el" href="zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142">zot.php</a>
+</li>
+<li>zotfeed_init()
+: <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars.html b/doc/html/globals_vars.html
new file mode 100644
index 000000000..2e2ad1e36
--- /dev/null
+++ b/doc/html/globals_vars.html
@@ -0,0 +1,282 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_0x24"></a>- $ -</h3><ul>
+<li>$a
+: <a class="el" href="typo_8php.html#acebf83966ef6d7e5645a6b62ba368f9f">typo.php</a>
+</li>
+<li>$API
+: <a class="el" href="include_2api_8php.html#aeb2e7ad00ea666b4b6dfcf82008194f8">api.php</a>
+</li>
+<li>$arr
+: <a class="el" href="extract_8php.html#a63bb4c41bc532baacf6a4976cfaa0feb">extract.php</a>
+</li>
+<li>$called_api
+: <a class="el" href="include_2api_8php.html#aa62b15a6bbb280e86b98132eb214013d">api.php</a>
+</li>
+<li>$colour
+: <a class="el" href="redbasic_2php_2style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab">style.php</a>
+</li>
+<li>$dir
+: <a class="el" href="docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62">docblox_errorchecker.php</a>
+</li>
+<li>$dirs
+: <a class="el" href="typo_8php.html#a1b709c1d79631ebc8320b41bda028b54">typo.php</a>
+</li>
+<li>$dirstack
+: <a class="el" href="docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6">docblox_errorchecker.php</a>
+</li>
+<li>$displaystyle
+: <a class="el" href="redbasic_2php_2style_8php.html#aa658152b727ea1233f6df6ded6437dad">style.php</a>
+</li>
+<li>$filelist
+: <a class="el" href="docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b">docblox_errorchecker.php</a>
+</li>
+<li>$files
+: <a class="el" href="extract_8php.html#a9590b15215a21e9b42eb546aeef79704">extract.php</a>
+, <a class="el" href="tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149">tpldebug.php</a>
+, <a class="el" href="typo_8php.html#a9590b15215a21e9b42eb546aeef79704">typo.php</a>
+</li>
+<li>$gc_probability
+: <a class="el" href="session_8php.html#a96b09cc763572f45280786a7b33feb7e">session.php</a>
+</li>
+<li>$i
+: <a class="el" href="docblox__errorchecker_8php.html#a83018d9153d17d91fbcf3bc10158d34f">docblox_errorchecker.php</a>
+</li>
+<li>$infile
+: <a class="el" href="php2po_8php.html#a61f8ddeb5557d46ebc546cc355bda214">php2po.php</a>
+</li>
+<li>$ink
+: <a class="el" href="php2po_8php.html#a6b0b8ebd9ce811d1325ef2c129443bc0">php2po.php</a>
+</li>
+<li>$install_wizard_pass
+: <a class="el" href="setup_8php.html#addb24714bc2542aa4f4215e98fe48432">setup.php</a>
+</li>
+<li>$k
+: <a class="el" href="php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178">php2po.php</a>
+</li>
+<li>$line_height
+: <a class="el" href="redbasic_2php_2style_8php.html#a4131d1765ee4deb28e83fc4527943ee0">style.php</a>
+</li>
+<li>$linkcolour
+: <a class="el" href="redbasic_2php_2style_8php.html#a6628a80911a6b37b464ef110ac8f6e42">style.php</a>
+</li>
+<li>$nav_bg_1
+: <a class="el" href="redbasic_2php_2style_8php.html#a232513bf4339fe34908c4c63cb93168b">style.php</a>
+</li>
+<li>$nav_bg_2
+: <a class="el" href="redbasic_2php_2style_8php.html#a03a72942b7428fd9af1224770d20a8ba">style.php</a>
+</li>
+<li>$nav_bg_3
+: <a class="el" href="redbasic_2php_2style_8php.html#acc190405dda0a23a80551dee11c74c0c">style.php</a>
+</li>
+<li>$nav_bg_4
+: <a class="el" href="redbasic_2php_2style_8php.html#aef266cfcb27c6ddb3292584c945bab33">style.php</a>
+</li>
+<li>$navcolour
+: <a class="el" href="redbasic_2php_2style_8php.html#a938168352fd3cdaa1c10c16a34f5938a">style.php</a>
+</li>
+<li>$needed
+: <a class="el" href="docblox__errorchecker_8php.html#a852004caba0a34390297a079f4aaac73">docblox_errorchecker.php</a>
+</li>
+<li>$out
+: <a class="el" href="php2po_8php.html#a48cb304902320d173a4eaa41543327b9">php2po.php</a>
+</li>
+<li>$phpath
+: <a class="el" href="typo_8php.html#a3ecd17ac846be1b35f3662f5c12ab6bd">typo.php</a>
+</li>
+<li>$phpfile
+: <a class="el" href="php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4">php2po.php</a>
+</li>
+<li>$pofile
+: <a class="el" href="php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1">php2po.php</a>
+</li>
+<li>$radius
+: <a class="el" href="redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351">style.php</a>
+</li>
+<li>$redbasic_font_size
+: <a class="el" href="redstrap_2php_2style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda">style.php</a>
+</li>
+<li>$res
+: <a class="el" href="docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5">docblox_errorchecker.php</a>
+</li>
+<li>$resolution
+: <a class="el" href="redbasic_2php_2style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc">style.php</a>
+</li>
+<li>$s
+: <a class="el" href="extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634">extract.php</a>
+</li>
+<li>$session_exists
+: <a class="el" href="session_8php.html#a62e4a6cb26b4bb1b8ddd8277b26090eb">session.php</a>
+</li>
+<li>$session_expire
+: <a class="el" href="session_8php.html#af0100a2642a5268594bbd5742a03d885">session.php</a>
+</li>
+<li>$shadows
+: <a class="el" href="redbasic_2php_2style_8php.html#acb3046ad9c01b7d60cde20f58d77c548">style.php</a>
+</li>
+<li>$shiny
+: <a class="el" href="redbasic_2php_2style_8php.html#a0b942d36d8862908864e2ffa4521be70">style.php</a>
+</li>
+<li>$site_colour
+: <a class="el" href="redbasic_2php_2style_8php.html#a02d39b683a42fffbb27823d3860283bd">style.php</a>
+</li>
+<li>$site_line_height
+: <a class="el" href="redbasic_2php_2style_8php.html#a8749837e08dfb3372662af9c33fa2a2e">style.php</a>
+</li>
+<li>$site_redbasic_font_size
+: <a class="el" href="redstrap_2php_2style_8php.html#a45e6fafa363bc4586fa91dce1786be4f">style.php</a>
+</li>
+<li>$str
+: <a class="el" href="typohelper_8php.html#a7542d95618011800c61773127fa625cf">typohelper.php</a>
+</li>
+<li>$uid
+: <a class="el" href="redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a">style.php</a>
+</li>
+<li>$x
+: <a class="el" href="redbasic_2php_2style_8php.html#af3a16c5f0dd7a74cf9acf6a49fff73a7">style.php</a>
+</li>
+<li>$zones
+: <a class="el" href="extract_8php.html#a0cbe524ffc9a496114fd7ba9f423ef44">extract.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars.js b/doc/html/globals_vars.js
new file mode 100644
index 000000000..f614b41fa
--- /dev/null
+++ b/doc/html/globals_vars.js
@@ -0,0 +1,25 @@
+var globals_vars =
+[
+ [ "$", "globals_vars.html", null ],
+ [ "a", "globals_vars_0x61.html", null ],
+ [ "c", "globals_vars_0x63.html", null ],
+ [ "d", "globals_vars_0x64.html", null ],
+ [ "e", "globals_vars_0x65.html", null ],
+ [ "f", "globals_vars_0x66.html", null ],
+ [ "g", "globals_vars_0x67.html", null ],
+ [ "h", "globals_vars_0x68.html", null ],
+ [ "i", "globals_vars_0x69.html", null ],
+ [ "j", "globals_vars_0x6a.html", null ],
+ [ "k", "globals_vars_0x6b.html", null ],
+ [ "l", "globals_vars_0x6c.html", null ],
+ [ "m", "globals_vars_0x6d.html", null ],
+ [ "n", "globals_vars_0x6e.html", null ],
+ [ "p", "globals_vars_0x70.html", null ],
+ [ "r", "globals_vars_0x72.html", null ],
+ [ "s", "globals_vars_0x73.html", null ],
+ [ "t", "globals_vars_0x74.html", null ],
+ [ "u", "globals_vars_0x75.html", null ],
+ [ "w", "globals_vars_0x77.html", null ],
+ [ "x", "globals_vars_0x78.html", null ],
+ [ "z", "globals_vars_0x7a.html", null ]
+]; \ No newline at end of file
diff --git a/doc/html/globals_vars_0x61.html b/doc/html/globals_vars_0x61.html
new file mode 100644
index 000000000..534297367
--- /dev/null
+++ b/doc/html/globals_vars_0x61.html
@@ -0,0 +1,274 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li class="current"><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x61.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>ABOOK_FLAG_ARCHIVED
+: <a class="el" href="boot_8php.html#a222395aa223cfbff6166fab0b4e2e1d5">boot.php</a>
+</li>
+<li>ABOOK_FLAG_BLOCKED
+: <a class="el" href="boot_8php.html#a52b599cd13e152ebc80d7e4413683195">boot.php</a>
+</li>
+<li>ABOOK_FLAG_HIDDEN
+: <a class="el" href="boot_8php.html#a34c756469ebed32e2fc987bcde62d382">boot.php</a>
+</li>
+<li>ABOOK_FLAG_IGNORED
+: <a class="el" href="boot_8php.html#aa3425e2de85b08f7041656d3a8502cb6">boot.php</a>
+</li>
+<li>ABOOK_FLAG_PENDING
+: <a class="el" href="boot_8php.html#a68eebe493e6f729ffd1aeda7a4b11155">boot.php</a>
+</li>
+<li>ABOOK_FLAG_SELF
+: <a class="el" href="boot_8php.html#a0450389f24c632906fbc24347700a543">boot.php</a>
+</li>
+<li>ACCESS_TOKEN_DURATION
+: <a class="el" href="oauth_8php.html#ad343cab37aa860d2d14dc86b7f5ca0c6">oauth.php</a>
+</li>
+<li>ACCOUNT_BLOCKED
+: <a class="el" href="boot_8php.html#af3bdfc20979c16f15bb9c60446a480f9">boot.php</a>
+</li>
+<li>ACCOUNT_EXPIRED
+: <a class="el" href="boot_8php.html#a400519fa181591cd6fdbb8f25fbcba0a">boot.php</a>
+</li>
+<li>ACCOUNT_OK
+: <a class="el" href="boot_8php.html#a84057c5bfa1bca5fba8497fe005ee4d8">boot.php</a>
+</li>
+<li>ACCOUNT_PENDING
+: <a class="el" href="boot_8php.html#a032bbd6d0321e99e9117332c9ed2b1b8">boot.php</a>
+</li>
+<li>ACCOUNT_REMOVED
+: <a class="el" href="boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78">boot.php</a>
+</li>
+<li>ACCOUNT_ROLE_ADMIN
+: <a class="el" href="boot_8php.html#ac8400313df2c831653f9036f71ebd86d">boot.php</a>
+</li>
+<li>ACCOUNT_UNVERIFIED
+: <a class="el" href="boot_8php.html#af3a4271630aabd8be592213f925d6a36">boot.php</a>
+</li>
+<li>ACTIVITY_DISLIKE
+: <a class="el" href="boot_8php.html#a0e57f846e6d47a308feced0f7274f178">boot.php</a>
+</li>
+<li>ACTIVITY_FAVORITE
+: <a class="el" href="boot_8php.html#a3e2ea123d29a72012db1241f96280b0e">boot.php</a>
+</li>
+<li>ACTIVITY_FOLLOW
+: <a class="el" href="boot_8php.html#a5ae728ac966ea1d3525a19e7fec59434">boot.php</a>
+</li>
+<li>ACTIVITY_FRIEND
+: <a class="el" href="boot_8php.html#a176664e78dcb9132e16be69418223eb2">boot.php</a>
+</li>
+<li>ACTIVITY_JOIN
+: <a class="el" href="boot_8php.html#aced60c7285192e80b7c4757e45a7f1e3">boot.php</a>
+</li>
+<li>ACTIVITY_LIKE
+: <a class="el" href="boot_8php.html#abdcdfc873ace4e0902177bad934de0c0">boot.php</a>
+</li>
+<li>ACTIVITY_MOOD
+: <a class="el" href="boot_8php.html#a7aa57438db03834aaa0b468bdce773a6">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_ALBUM
+: <a class="el" href="boot_8php.html#aaf9b76832ee5f85e56466af162ba8a14">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_COMMENT
+: <a class="el" href="boot_8php.html#a0a98dd0110dc6c8e24cefc8ae74d5562">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_EVENT
+: <a class="el" href="boot_8php.html#a2e90096fede6acce16abf0da8cb2febe">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_GROUP
+: <a class="el" href="boot_8php.html#a7bff2278e68a71e524afd1c7c951e1e3">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_HEART
+: <a class="el" href="boot_8php.html#ad302cb26b838898d475f57f61b0fcc9f">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_NOTE
+: <a class="el" href="boot_8php.html#a44d069c8a1cfcc6d2007c506a17ff28f">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_P_PHOTO
+: <a class="el" href="boot_8php.html#a74bf27f7564c9a37975e7b37d973dcab">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_PERSON
+: <a class="el" href="boot_8php.html#a2f8f25b13480c37a5f22511f53da8bab">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_PHOTO
+: <a class="el" href="boot_8php.html#a774f0f792ebfec1e774c5a17bb9d5966">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_PROFILE
+: <a class="el" href="boot_8php.html#a62c832a95e38b1fa23e6cef39521b7d5">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_TAGTERM
+: <a class="el" href="boot_8php.html#a1da180f961f49a11573cac4ff6c62c05">boot.php</a>
+</li>
+<li>ACTIVITY_OBJ_THING
+: <a class="el" href="boot_8php.html#a0fb63e51c2a9814941842ae8f2f4dff8">boot.php</a>
+</li>
+<li>ACTIVITY_POKE
+: <a class="el" href="boot_8php.html#a14ba8f9e162f2559831ee3bf98e0c3bd">boot.php</a>
+</li>
+<li>ACTIVITY_POST
+: <a class="el" href="boot_8php.html#a5c3747e0f505f0d5271dc4c54e3feaf4">boot.php</a>
+</li>
+<li>ACTIVITY_REQ_FRIEND
+: <a class="el" href="boot_8php.html#afe084c30a1810c10442edb4fbcbc0086">boot.php</a>
+</li>
+<li>ACTIVITY_TAG
+: <a class="el" href="boot_8php.html#a12c781cefc20167231e2e3fd5866b1b5">boot.php</a>
+</li>
+<li>ACTIVITY_UNFOLLOW
+: <a class="el" href="boot_8php.html#a53e4bdb6f225da55115acb9277f75e53">boot.php</a>
+</li>
+<li>ACTIVITY_UNFRIEND
+: <a class="el" href="boot_8php.html#a29528a2544373cc19a378f350040c6a1">boot.php</a>
+</li>
+<li>ACTIVITY_UPDATE
+: <a class="el" href="boot_8php.html#a7f4264232dbb6c3b41f2617deecb1866">boot.php</a>
+</li>
+<li>ATOM_TIME
+: <a class="el" href="boot_8php.html#ad34c1547020a305915bcc39707744690">boot.php</a>
+</li>
+<li>ATTACH_FLAG_DIR
+: <a class="el" href="boot_8php.html#aa74438cf71e48e37bf7b440b94243985">boot.php</a>
+</li>
+<li>ATTACH_FLAG_OS
+: <a class="el" href="boot_8php.html#a781916f83fcc8ff1035649afa45f0292">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x63.html b/doc/html/globals_vars_0x63.html
new file mode 100644
index 000000000..91e566b58
--- /dev/null
+++ b/doc/html/globals_vars_0x63.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li class="current"><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x63.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>CLIENT_MODE_LOAD
+: <a class="el" href="boot_8php.html#af6f6f6f40139f12fc09ec47373b30919">boot.php</a>
+</li>
+<li>CLIENT_MODE_NORMAL
+: <a class="el" href="boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731">boot.php</a>
+</li>
+<li>CLIENT_MODE_UPDATE
+: <a class="el" href="boot_8php.html#a3f40aa5bafff8c4eebdc62e5121daf77">boot.php</a>
+</li>
+<li>CONTACT_IS_FOLLOWER
+: <a class="el" href="boot_8php.html#ada72d88ae39a7e3b45baea201cb49a29">boot.php</a>
+</li>
+<li>CONTACT_IS_FRIEND
+: <a class="el" href="boot_8php.html#a27299ecfb9e9a99826f17a1c14c6995f">boot.php</a>
+</li>
+<li>CONTACT_IS_SHARING
+: <a class="el" href="boot_8php.html#a6c5e9e293c8242dcb9bc2c3ea2fee2c9">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x64.html b/doc/html/globals_vars_0x64.html
new file mode 100644
index 000000000..e642dd020
--- /dev/null
+++ b/doc/html/globals_vars_0x64.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li class="current"><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x64.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>DB_UPDATE_VERSION
+: <a class="el" href="boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03">boot.php</a>
+</li>
+<li>DEFAULT_DB_ENGINE
+: <a class="el" href="boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d">boot.php</a>
+</li>
+<li>DIRECTORY_FALLBACK_MASTER
+: <a class="el" href="boot_8php.html#abedd940e664017c61b48c6efa31d0cb8">boot.php</a>
+</li>
+<li>DIRECTORY_MODE_NORMAL
+: <a class="el" href="boot_8php.html#ab7d65a7e7417825a4db62906bb600729">boot.php</a>
+</li>
+<li>DIRECTORY_MODE_PRIMARY
+: <a class="el" href="boot_8php.html#a8a60cc38bb567765fd926fef70205f16">boot.php</a>
+</li>
+<li>DIRECTORY_MODE_SECONDARY
+: <a class="el" href="boot_8php.html#aedfb9501ed408278667995524e0d15cf">boot.php</a>
+</li>
+<li>DIRECTORY_MODE_STANDALONE
+: <a class="el" href="boot_8php.html#a25476eec71fceda237f7dc1d78b0adb8">boot.php</a>
+</li>
+<li>DIRECTORY_REALM
+: <a class="el" href="boot_8php.html#a6b9909db6a7ec80ec6fdd40ba74014dd">boot.php</a>
+</li>
+<li>do
+: <a class="el" href="docblox__errorchecker_8php.html#a721c6ff80a6d3e4ad4ffa52a04c60085">docblox_errorchecker.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x65.html b/doc/html/globals_vars_0x65.html
new file mode 100644
index 000000000..db1069edc
--- /dev/null
+++ b/doc/html/globals_vars_0x65.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li class="current"><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x65.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>else
+: <a class="el" href="auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5">auth.php</a>
+, <a class="el" href="fpostit_8php.html#a501b5ca82f287509fc691c88524064c1">fpostit.php</a>
+, <a class="el" href="tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c">tpldebug.php</a>
+</li>
+<li>EOL
+: <a class="el" href="boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b">boot.php</a>
+</li>
+<li>EOT
+: <a class="el" href="typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805">typohelper.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x66.html b/doc/html/globals_vars_0x66.html
new file mode 100644
index 000000000..9d435e94a
--- /dev/null
+++ b/doc/html/globals_vars_0x66.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li class="current"><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x66.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>foreach
+: <a class="el" href="typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5">typo.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x67.html b/doc/html/globals_vars_0x67.html
new file mode 100644
index 000000000..ed4d31490
--- /dev/null
+++ b/doc/html/globals_vars_0x67.html
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li class="current"><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x67.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>GRAVITY_COMMENT
+: <a class="el" href="boot_8php.html#a4a12ce5de39789b0361e308d89925a20">boot.php</a>
+</li>
+<li>GRAVITY_LIKE
+: <a class="el" href="boot_8php.html#a1f5906598e90b5ea2b4245f682be4348">boot.php</a>
+</li>
+<li>GRAVITY_PARENT
+: <a class="el" href="boot_8php.html#a2af173e4e9836ee7c90757b4793a2be3">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x68.html b/doc/html/globals_vars_0x68.html
new file mode 100644
index 000000000..8551c60de
--- /dev/null
+++ b/doc/html/globals_vars_0x68.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li class="current"><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x68.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>HUBLOC_FLAGS_PRIMARY
+: <a class="el" href="boot_8php.html#a3ad9cc5d4354be741fa1de12b96e9955">boot.php</a>
+</li>
+<li>HUBLOC_FLAGS_UNVERIFIED
+: <a class="el" href="boot_8php.html#ab54b24cc302e1a42a67a49d788b6b764">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x69.html b/doc/html/globals_vars_0x69.html
new file mode 100644
index 000000000..f1e1b8181
--- /dev/null
+++ b/doc/html/globals_vars_0x69.html
@@ -0,0 +1,219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li class="current"><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x69.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>if
+: <a class="el" href="php2po_8php.html#a45b05625748f412ec97afcd61cf7980b">php2po.php</a>
+, <a class="el" href="php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762">default.php</a>
+, <a class="el" href="redbasic_2php_2style_8php.html#ac4c6bc3cd9cc92204f04cf6cb34b47dd">style.php</a>
+, <a class="el" href="theme_2redstrap_2php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762">default.php</a>
+, <a class="el" href="full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db">full.php</a>
+, <a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">style.php</a>
+</li>
+<li>ITEM_BLOCKED
+: <a class="el" href="boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f">boot.php</a>
+</li>
+<li>ITEM_DELAYED_PUBLISH
+: <a class="el" href="boot_8php.html#ac890557fedc5b5a3b1d996249b1e1a20">boot.php</a>
+</li>
+<li>ITEM_DELETED
+: <a class="el" href="boot_8php.html#a3515ea6bf77495de89b93e9ccd881c49">boot.php</a>
+</li>
+<li>ITEM_HIDDEN
+: <a class="el" href="boot_8php.html#ac99fc4d040764eac1736bec6973556fe">boot.php</a>
+</li>
+<li>ITEM_MENTIONSME
+: <a class="el" href="boot_8php.html#a8da836617174eed9fc2ac8054125354b">boot.php</a>
+</li>
+<li>ITEM_MODERATED
+: <a class="el" href="boot_8php.html#ac01230c7655e0705b2e99c9bc03c4450">boot.php</a>
+</li>
+<li>ITEM_NOCOMMENT
+: <a class="el" href="boot_8php.html#a949116d9a295b214293006c060ca4848">boot.php</a>
+</li>
+<li>ITEM_NOTSHOWN
+: <a class="el" href="boot_8php.html#a8663f32171568489dbb2a01dd00371f8">boot.php</a>
+</li>
+<li>ITEM_NSFW
+: <a class="el" href="boot_8php.html#a939de9a99278f4fd7dcd0ee67f243f08">boot.php</a>
+</li>
+<li>ITEM_OBSCURED
+: <a class="el" href="boot_8php.html#a2c8906f1af94a3559a5b4661067bb79d">boot.php</a>
+</li>
+<li>ITEM_ORIGIN
+: <a class="el" href="boot_8php.html#a8c9dce0ef27b35397e29298eb966f7f7">boot.php</a>
+</li>
+<li>ITEM_RELAY
+: <a class="el" href="boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221">boot.php</a>
+</li>
+<li>ITEM_SPAM
+: <a class="el" href="boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb">boot.php</a>
+</li>
+<li>ITEM_STARRED
+: <a class="el" href="boot_8php.html#a7af107fab8d62b9a73801713b774ed30">boot.php</a>
+</li>
+<li>ITEM_THREAD_TOP
+: <a class="el" href="boot_8php.html#a749144d8dd9c1366596a0213c277d050">boot.php</a>
+</li>
+<li>ITEM_UNPUBLISHED
+: <a class="el" href="boot_8php.html#adaeb4f590c56326b2dca3b19f31b6272">boot.php</a>
+</li>
+<li>ITEM_UNSEEN
+: <a class="el" href="boot_8php.html#a009e6a0637cb65804ea8094ecc4450b0">boot.php</a>
+</li>
+<li>ITEM_UPLINK
+: <a class="el" href="boot_8php.html#aefba06f1c0842036329033e7567ecf6d">boot.php</a>
+</li>
+<li>ITEM_UPLINK_PRV
+: <a class="el" href="boot_8php.html#aad33b494084f729b6ee3b0bc457718a1">boot.php</a>
+</li>
+<li>ITEM_VISIBLE
+: <a class="el" href="boot_8php.html#ab55b16ae7fc19fafe5afaedd49163bbf">boot.php</a>
+</li>
+<li>ITEM_WALL
+: <a class="el" href="boot_8php.html#a6788e99021ec8ffb0fa94d651f22a322">boot.php</a>
+</li>
+<li>ITEM_WEBPAGE
+: <a class="el" href="boot_8php.html#af489d0c3166551b93e63a79ff2c9be35">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x6a.html b/doc/html/globals_vars_0x6a.html
new file mode 100644
index 000000000..8f3835e21
--- /dev/null
+++ b/doc/html/globals_vars_0x6a.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li class="current"><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x6a.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
+<li>JPEG_QUALITY
+: <a class="el" href="boot_8php.html#a3475ff6c2e575f946ea0ee377e944173">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x6b.html b/doc/html/globals_vars_0x6b.html
new file mode 100644
index 000000000..5a1054bc9
--- /dev/null
+++ b/doc/html/globals_vars_0x6b.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li class="current"><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x6b.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>KEY_NOT_EXISTS
+: <a class="el" href="template__processor_8php.html#a797745996c7839a93b2ab1af456631ab">template_processor.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x6c.html b/doc/html/globals_vars_0x6c.html
new file mode 100644
index 000000000..1123f0847
--- /dev/null
+++ b/doc/html/globals_vars_0x6c.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li class="current"><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x6c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>LANGUAGE_DETECT_MIN_CONFIDENCE
+: <a class="el" href="boot_8php.html#a68d1d5bc9c7ccb663dc671b48c66df11">boot.php</a>
+</li>
+<li>LANGUAGE_DETECT_MIN_LENGTH
+: <a class="el" href="boot_8php.html#a17cf72338b040891781a4bcbdd9a8595">boot.php</a>
+</li>
+<li>LOGGER_ALL
+: <a class="el" href="boot_8php.html#afe63ae69ba55299f813766e54df06ede">boot.php</a>
+</li>
+<li>LOGGER_DATA
+: <a class="el" href="boot_8php.html#a6969947145a139ec374ce098224d8e81">boot.php</a>
+</li>
+<li>LOGGER_DEBUG
+: <a class="el" href="boot_8php.html#a93823d15ae07548a4c49de88d325cd26">boot.php</a>
+</li>
+<li>LOGGER_NORMAL
+: <a class="el" href="boot_8php.html#a17b4ea23d9ecf628d9c8f53b7abcb805">boot.php</a>
+</li>
+<li>LOGGER_TRACE
+: <a class="el" href="boot_8php.html#a022cea669f9f13ef7c6268b63884c57f">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x6d.html b/doc/html/globals_vars_0x6d.html
new file mode 100644
index 000000000..c127d9dc2
--- /dev/null
+++ b/doc/html/globals_vars_0x6d.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li class="current"><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x6d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>MAIL_DELETED
+: <a class="el" href="boot_8php.html#ad0876e837cf3fad8a26417e315f6e2c8">boot.php</a>
+</li>
+<li>MAIL_ISREPLY
+: <a class="el" href="boot_8php.html#aa544a6c078130d0967a1f4ed8ce0a2d2">boot.php</a>
+</li>
+<li>MAIL_OBSCURED
+: <a class="el" href="boot_8php.html#a44ae1542a805ffd7f826fb511db07374">boot.php</a>
+</li>
+<li>MAIL_RECALLED
+: <a class="el" href="boot_8php.html#ae4861de36017fe399c1839f778bad9f5">boot.php</a>
+</li>
+<li>MAIL_REPLIED
+: <a class="el" href="boot_8php.html#aa3679df31c8dad1b71816b0322d5baff">boot.php</a>
+</li>
+<li>MAIL_SEEN
+: <a class="el" href="boot_8php.html#a1fbb93cf030f07391f22cc2948744869">boot.php</a>
+</li>
+<li>MAX_IMAGE_LENGTH
+: <a class="el" href="boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa">boot.php</a>
+</li>
+<li>MAX_LIKERS
+: <a class="el" href="boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x6e.html b/doc/html/globals_vars_0x6e.html
new file mode 100644
index 000000000..a621d30d3
--- /dev/null
+++ b/doc/html/globals_vars_0x6e.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li class="current"><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x6e.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>n
+: <a class="el" href="php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b">php2po.php</a>
+</li>
+<li>NAMESPACE_ACTIVITY
+: <a class="el" href="boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2">boot.php</a>
+</li>
+<li>NAMESPACE_ACTIVITY_SCHEMA
+: <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">boot.php</a>
+</li>
+<li>NAMESPACE_ATOM1
+: <a class="el" href="boot_8php.html#a444ce608ce34efb82ee11852f36e825f">boot.php</a>
+</li>
+<li>NAMESPACE_DFRN
+: <a class="el" href="boot_8php.html#a7ed4581ab66ebcde97f6b3730856b028">boot.php</a>
+</li>
+<li>NAMESPACE_FEED
+: <a class="el" href="boot_8php.html#ac195fc9003298923ea81f144388e24b1">boot.php</a>
+</li>
+<li>NAMESPACE_GEORSS
+: <a class="el" href="boot_8php.html#a03d19251c245587de7ed959300b87bdf">boot.php</a>
+</li>
+<li>NAMESPACE_MEDIA
+: <a class="el" href="boot_8php.html#a6626f383c3d2d459f731ab8b4f237d16">boot.php</a>
+</li>
+<li>NAMESPACE_OSTATUS
+: <a class="el" href="boot_8php.html#acca19aae62e1a6951a856b945de20d67">boot.php</a>
+</li>
+<li>NAMESPACE_OSTATUSSUB
+: <a class="el" href="boot_8php.html#a181c111f4b6c14d091dfd3bf0d0a22cd">boot.php</a>
+</li>
+<li>NAMESPACE_POCO
+: <a class="el" href="boot_8php.html#a0b73e2548d6f9beb9c93211f488e336a">boot.php</a>
+</li>
+<li>NAMESPACE_SALMON_ME
+: <a class="el" href="boot_8php.html#aee324eca9de4e0fedf01ab5f92e27c67">boot.php</a>
+</li>
+<li>NAMESPACE_STATUSNET
+: <a class="el" href="boot_8php.html#afaf93b7026f784b113b4f8921745891e">boot.php</a>
+</li>
+<li>NAMESPACE_THREAD
+: <a class="el" href="boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86">boot.php</a>
+</li>
+<li>NAMESPACE_TOMB
+: <a class="el" href="boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e">boot.php</a>
+</li>
+<li>NAMESPACE_ZOT
+: <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">boot.php</a>
+</li>
+<li>NETWORK_DFRN
+: <a class="el" href="boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e">boot.php</a>
+</li>
+<li>NETWORK_DIASPORA
+: <a class="el" href="boot_8php.html#a38f6c7fe33b5434a24b4314567753dfa">boot.php</a>
+</li>
+<li>NETWORK_FACEBOOK
+: <a class="el" href="boot_8php.html#af3905ea8f8568d0236db13fca40514e3">boot.php</a>
+</li>
+<li>NETWORK_FEED
+: <a class="el" href="boot_8php.html#ab4bddb41a0cf407178ec5278b950c393">boot.php</a>
+</li>
+<li>NETWORK_GPLUS
+: <a class="el" href="boot_8php.html#a8905fde0a5b7882bdc083b20d9b34701">boot.php</a>
+</li>
+<li>NETWORK_LINKEDIN
+: <a class="el" href="boot_8php.html#a5b043b7fdcfd4e8c9c3747574afc6caa">boot.php</a>
+</li>
+<li>NETWORK_MAIL
+: <a class="el" href="boot_8php.html#a7236b2cdcf59f02a42302e893a99013b">boot.php</a>
+</li>
+<li>NETWORK_MAIL2
+: <a class="el" href="boot_8php.html#aa17a4f9c63f5cbc5c06f1066b6aebc42">boot.php</a>
+</li>
+<li>NETWORK_MYSPACE
+: <a class="el" href="boot_8php.html#ae94f7c7c0909629a75aed1c41f10bc95">boot.php</a>
+</li>
+<li>NETWORK_OSTATUS
+: <a class="el" href="boot_8php.html#aef4b6c558c68c88c10f13c5a00c20e3d">boot.php</a>
+</li>
+<li>NETWORK_PHANTOM
+: <a class="el" href="boot_8php.html#ab21fb0f3e6b962419955c6fc7f26734f">boot.php</a>
+</li>
+<li>NETWORK_XMPP
+: <a class="el" href="boot_8php.html#a43296b1b4398aacbf92a4b2d56bab91e">boot.php</a>
+</li>
+<li>NETWORK_ZOT
+: <a class="el" href="boot_8php.html#a2c65e925994566a63e6c03c381f1b4a0">boot.php</a>
+</li>
+<li>NOTIFY_COMMENT
+: <a class="el" href="boot_8php.html#a20f0eed431d25870b624b8937a07a59f">boot.php</a>
+</li>
+<li>NOTIFY_CONFIRM
+: <a class="el" href="boot_8php.html#af8c0cb0744c9a6b5d6d3baafb1f1e71d">boot.php</a>
+</li>
+<li>NOTIFY_INTRO
+: <a class="el" href="boot_8php.html#a56fd673eaa7014150297ce1162502db5">boot.php</a>
+</li>
+<li>NOTIFY_MAIL
+: <a class="el" href="boot_8php.html#a285732e7889fa7f333cbe431111e1029">boot.php</a>
+</li>
+<li>NOTIFY_POKE
+: <a class="el" href="boot_8php.html#aca08bc4f1554ba877500f6abcc99e1e8">boot.php</a>
+</li>
+<li>NOTIFY_PROFILE
+: <a class="el" href="boot_8php.html#a981d46380f9f23c308bac1f9cb00dc5b">boot.php</a>
+</li>
+<li>NOTIFY_SUGGEST
+: <a class="el" href="boot_8php.html#a9d01ef178b72b145016cca1393415bc4">boot.php</a>
+</li>
+<li>NOTIFY_SYSTEM
+: <a class="el" href="boot_8php.html#a14d44d4a00223dc3db4ea962325db192">boot.php</a>
+</li>
+<li>NOTIFY_TAGSELF
+: <a class="el" href="boot_8php.html#ab724491497ab2618b23a01d5da60aec0">boot.php</a>
+</li>
+<li>NOTIFY_TAGSHARE
+: <a class="el" href="boot_8php.html#af6937db5f581d006bf4a5c3d9c7e0461">boot.php</a>
+</li>
+<li>NOTIFY_WALL
+: <a class="el" href="boot_8php.html#a505410c7edc5f5bb5fa227b98359793e">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x70.html b/doc/html/globals_vars_0x70.html
new file mode 100644
index 000000000..cd83fa987
--- /dev/null
+++ b/doc/html/globals_vars_0x70.html
@@ -0,0 +1,246 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li class="current"><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x70.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>page
+: <a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">mod_import.php</a>
+, <a class="el" href="mod__new__channel_8php.html#a8db1899eeeb44dabd0904065b63627bb">mod_new_channel.php</a>
+, <a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">mod_register.php</a>
+</li>
+<li>PAGE_APPLICATION
+: <a class="el" href="boot_8php.html#a8231d115060d41a9c2a677f2c86f10ed">boot.php</a>
+</li>
+<li>PAGE_AUTOCONNECT
+: <a class="el" href="boot_8php.html#aa275653b9c87abc7391bb8040c1c2de9">boot.php</a>
+</li>
+<li>PAGE_DIRECTORY_CHANNEL
+: <a class="el" href="boot_8php.html#a5b8484922918946d041e5e0515dbe718">boot.php</a>
+</li>
+<li>PAGE_HIDDEN
+: <a class="el" href="boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640">boot.php</a>
+</li>
+<li>PAGE_NORMAL
+: <a class="el" href="boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3">boot.php</a>
+</li>
+<li>PAGE_REMOVED
+: <a class="el" href="boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6">boot.php</a>
+</li>
+<li>PERMS_A_DELEGATE
+: <a class="el" href="boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b">boot.php</a>
+</li>
+<li>PERMS_CONTACTS
+: <a class="el" href="boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6">boot.php</a>
+</li>
+<li>PERMS_NETWORK
+: <a class="el" href="boot_8php.html#a6df1102664f64b274810db85197c2755">boot.php</a>
+</li>
+<li>PERMS_PUBLIC
+: <a class="el" href="boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7">boot.php</a>
+</li>
+<li>PERMS_R_ABOOK
+: <a class="el" href="boot_8php.html#a3d6d4fc5fafcc9156811669158541caf">boot.php</a>
+</li>
+<li>PERMS_R_PAGES
+: <a class="el" href="boot_8php.html#ab51965fabe54dc031e9a0ce1142ee83e">boot.php</a>
+</li>
+<li>PERMS_R_PHOTOS
+: <a class="el" href="boot_8php.html#a29e921c0c72412cc738e44cca6ca1f62">boot.php</a>
+</li>
+<li>PERMS_R_PROFILE
+: <a class="el" href="boot_8php.html#ad789aef3cb95fc1eb36be7c4283d0137">boot.php</a>
+</li>
+<li>PERMS_R_STORAGE
+: <a class="el" href="boot_8php.html#a1db4f0009c9cb4e107eab0f914a3c8dc">boot.php</a>
+</li>
+<li>PERMS_R_STREAM
+: <a class="el" href="boot_8php.html#aec36f8fcd4cb14a52934590b3d6666b4">boot.php</a>
+</li>
+<li>PERMS_SITE
+: <a class="el" href="boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f">boot.php</a>
+</li>
+<li>PERMS_SPECIFIC
+: <a class="el" href="boot_8php.html#a9cc986b4f9dd6558cbb2e25aadbfd964">boot.php</a>
+</li>
+<li>PERMS_W_CHAT
+: <a class="el" href="boot_8php.html#acd877c405b06b348b37b6f7e62a211e9">boot.php</a>
+</li>
+<li>PERMS_W_COMMENT
+: <a class="el" href="boot_8php.html#a32df13fec0e43281da5979e1f5579aa8">boot.php</a>
+</li>
+<li>PERMS_W_MAIL
+: <a class="el" href="boot_8php.html#a6b31dd451bc6c37fe7c9c766ff385aaf">boot.php</a>
+</li>
+<li>PERMS_W_PAGES
+: <a class="el" href="boot_8php.html#aa9244fc9cc221980c07a20cc534111be">boot.php</a>
+</li>
+<li>PERMS_W_PHOTOS
+: <a class="el" href="boot_8php.html#a57eee7352714c004d36c26dda74af73e">boot.php</a>
+</li>
+<li>PERMS_W_STORAGE
+: <a class="el" href="boot_8php.html#a4fefd7486d3b888a05cfd3dc9575f115">boot.php</a>
+</li>
+<li>PERMS_W_STREAM
+: <a class="el" href="boot_8php.html#a8bb0395933b5e886f086f6a2fb0bfa55">boot.php</a>
+</li>
+<li>PERMS_W_TAGWALL
+: <a class="el" href="boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777">boot.php</a>
+</li>
+<li>PERMS_W_WALL
+: <a class="el" href="boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2">boot.php</a>
+</li>
+<li>PHOTO_NORMAL
+: <a class="el" href="boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4">boot.php</a>
+</li>
+<li>PHOTO_PROFILE
+: <a class="el" href="boot_8php.html#ab4bc9c50ecc927b92d519e36562b0df0">boot.php</a>
+</li>
+<li>PHOTO_THING
+: <a class="el" href="boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383">boot.php</a>
+</li>
+<li>PHOTO_XCHAN
+: <a class="el" href="boot_8php.html#ac43182e0d8bae7576a30b603774974f8">boot.php</a>
+</li>
+<li>PNG_QUALITY
+: <a class="el" href="boot_8php.html#a8df201788c9dd0ca91384e3a14c08bce">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x72.html b/doc/html/globals_vars_0x72.html
new file mode 100644
index 000000000..d0ed87061
--- /dev/null
+++ b/doc/html/globals_vars_0x72.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li class="current"><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x72.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>RANDOM_STRING_HEX
+: <a class="el" href="text_8php.html#aad557c054cf2ed915633701018fc7e3f">text.php</a>
+</li>
+<li>RANDOM_STRING_TEXT
+: <a class="el" href="text_8php.html#a2ffd79c60cc87cec24ef76447b905187">text.php</a>
+</li>
+<li>RED_PLATFORM
+: <a class="el" href="boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4">boot.php</a>
+</li>
+<li>RED_VERSION
+: <a class="el" href="boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3">boot.php</a>
+</li>
+<li>REGISTER_APPROVE
+: <a class="el" href="boot_8php.html#a7176c0f9f1c98421b97735d892cf6252">boot.php</a>
+</li>
+<li>REGISTER_CLOSED
+: <a class="el" href="boot_8php.html#a69aac276ed82e010dc382b16ab4d59e1">boot.php</a>
+</li>
+<li>REGISTER_OPEN
+: <a class="el" href="boot_8php.html#ad8887b49bbb02dd30b4eb9f6c7773c63">boot.php</a>
+</li>
+<li>REQUEST_TOKEN_DURATION
+: <a class="el" href="oauth_8php.html#a7a32a5990f113ac9465b03b29175cf16">oauth.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x73.html b/doc/html/globals_vars_0x73.html
new file mode 100644
index 000000000..6815e793e
--- /dev/null
+++ b/doc/html/globals_vars_0x73.html
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li class="current"><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x73.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>SSL_POLICY_FULL
+: <a class="el" href="boot_8php.html#a02566ac9d891369a1d3ebb81a15722fc">boot.php</a>
+</li>
+<li>SSL_POLICY_NONE
+: <a class="el" href="boot_8php.html#af86c651547aa8f9e549ee40a09455549">boot.php</a>
+</li>
+<li>SSL_POLICY_SELFSIGN
+: <a class="el" href="boot_8php.html#adca48aee78465ae3064ca4432c0d87b5">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x74.html b/doc/html/globals_vars_0x74.html
new file mode 100644
index 000000000..bc94bea8d
--- /dev/null
+++ b/doc/html/globals_vars_0x74.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li class="current"><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x74.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>TERM_CATEGORY
+: <a class="el" href="boot_8php.html#af33d1b2e98a1e21af672005525d46dfe">boot.php</a>
+</li>
+<li>TERM_FILE
+: <a class="el" href="boot_8php.html#afb97615e985a013799839b68b99018d7">boot.php</a>
+</li>
+<li>TERM_HASHTAG
+: <a class="el" href="boot_8php.html#a2750985ec445617d7e82ae3098c91e3f">boot.php</a>
+</li>
+<li>TERM_MENTION
+: <a class="el" href="boot_8php.html#ae37444eaa42705185080ccf3e670cbc2">boot.php</a>
+</li>
+<li>TERM_OBJ_CHANNEL
+: <a class="el" href="boot_8php.html#a8892374789fd261eb32a7969d934a14a">boot.php</a>
+</li>
+<li>TERM_OBJ_OBJECT
+: <a class="el" href="boot_8php.html#a882b666adfe21f035a0f8c02806066d6">boot.php</a>
+</li>
+<li>TERM_OBJ_PHOTO
+: <a class="el" href="boot_8php.html#a64617d4655804de2a3c86501ab4fdbfd">boot.php</a>
+</li>
+<li>TERM_OBJ_POST
+: <a class="el" href="boot_8php.html#a9eeb8989272d5ff804a616898bb13659">boot.php</a>
+</li>
+<li>TERM_OBJ_PROFILE
+: <a class="el" href="boot_8php.html#aead84fa27d7516b855220fe004964a45">boot.php</a>
+</li>
+<li>TERM_OBJ_THING
+: <a class="el" href="boot_8php.html#a0cc8dc76bd10ac0ec81bac08a46f82fe">boot.php</a>
+</li>
+<li>TERM_PCATEGORY
+: <a class="el" href="boot_8php.html#a45b12aefab9675baffc7a07a09486db8">boot.php</a>
+</li>
+<li>TERM_SAVEDSEARCH
+: <a class="el" href="boot_8php.html#abd7bb40da9cc073297e49736b338ca07">boot.php</a>
+</li>
+<li>TERM_THING
+: <a class="el" href="boot_8php.html#a0d877df1e20bae765e1708be50f6b503">boot.php</a>
+</li>
+<li>TERM_UNKNOWN
+: <a class="el" href="boot_8php.html#a0c59dde058efebbc66520d136cbd1631">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x75.html b/doc/html/globals_vars_0x75.html
new file mode 100644
index 000000000..38590bdc1
--- /dev/null
+++ b/doc/html/globals_vars_0x75.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li class="current"><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x75.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>UPDATE_FAILED
+: <a class="el" href="boot_8php.html#a75fc600186b13c3b25e661afefb5eac8">boot.php</a>
+</li>
+<li>UPDATE_SUCCESS
+: <a class="el" href="boot_8php.html#ac86615ddc0763a00f5311c90e991730c">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x77.html b/doc/html/globals_vars_0x77.html
new file mode 100644
index 000000000..5b6227b38
--- /dev/null
+++ b/doc/html/globals_vars_0x77.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li class="current"><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x77.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>while
+: <a class="el" href="docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d">docblox_errorchecker.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x78.html b/doc/html/globals_vars_0x78.html
new file mode 100644
index 000000000..d22cecfcf
--- /dev/null
+++ b/doc/html/globals_vars_0x78.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li class="current"><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x78.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
+<li>XCHAN_FLAGS_HIDDEN
+: <a class="el" href="boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x7a.html b/doc/html/globals_vars_0x7a.html
new file mode 100644
index 000000000..ca89a798d
--- /dev/null
+++ b/doc/html/globals_vars_0x7a.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li class="current"><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars_0x7a.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_z"></a>- z -</h3><ul>
+<li>ZCURL_TIMEOUT
+: <a class="el" href="boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af">boot.php</a>
+</li>
+<li>ZOT_REVISION
+: <a class="el" href="boot_8php.html#a36b31575f992a10b5927b76efba9362e">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/gprobe_8php.html b/doc/html/gprobe_8php.html
new file mode 100644
index 000000000..03273c090
--- /dev/null
+++ b/doc/html/gprobe_8php.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/gprobe.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('gprobe_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">gprobe.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:adf72cb0a70b5b9d99fdec1cc60e18ed1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run</a> ($<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>, $<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a>)</td></tr>
+<tr class="separator:adf72cb0a70b5b9d99fdec1cc60e18ed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="adf72cb0a70b5b9d99fdec1cc60e18ed1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">gprobe_run </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argv</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argc</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/gprobe_8php.js b/doc/html/gprobe_8php.js
new file mode 100644
index 000000000..1c0c6e44a
--- /dev/null
+++ b/doc/html/gprobe_8php.js
@@ -0,0 +1,4 @@
+var gprobe_8php =
+[
+ [ "gprobe_run", "gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1", null ]
+]; \ No newline at end of file
diff --git a/doc/html/hcard_8php.html b/doc/html/hcard_8php.html
new file mode 100644
index 000000000..cdf57807d
--- /dev/null
+++ b/doc/html/hcard_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/hcard.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('hcard_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">hcard.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac34f26b0e6a37eef44fa49bea135136d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ac34f26b0e6a37eef44fa49bea135136d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a956c7cae2009652a37900306e5b7b73d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hcard_8php.html#a956c7cae2009652a37900306e5b7b73d">hcard_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:a956c7cae2009652a37900306e5b7b73d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a956c7cae2009652a37900306e5b7b73d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">hcard_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac34f26b0e6a37eef44fa49bea135136d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">hcard_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/hcard_8php.js b/doc/html/hcard_8php.js
new file mode 100644
index 000000000..fe7ffda18
--- /dev/null
+++ b/doc/html/hcard_8php.js
@@ -0,0 +1,5 @@
+var hcard_8php =
+[
+ [ "hcard_aside", "hcard_8php.html#a956c7cae2009652a37900306e5b7b73d", null ],
+ [ "hcard_init", "hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d", null ]
+]; \ No newline at end of file
diff --git a/doc/html/help_8php.html b/doc/html/help_8php.html
new file mode 100644
index 000000000..96bc469ab
--- /dev/null
+++ b/doc/html/help_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/help.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('help_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">help.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af055e15f600ffa6fbca9386fdf715224"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(!function_exists('load_doc_file'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content</a> (&amp;$a)</td></tr>
+<tr class="separator:af055e15f600ffa6fbca9386fdf715224"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af055e15f600ffa6fbca9386fdf715224"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (!function_exists('load_doc_file')) help_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/help_8php.js b/doc/html/help_8php.js
new file mode 100644
index 000000000..1178a13f2
--- /dev/null
+++ b/doc/html/help_8php.js
@@ -0,0 +1,4 @@
+var help_8php =
+[
+ [ "help_content", "help_8php.html#af055e15f600ffa6fbca9386fdf715224", null ]
+]; \ No newline at end of file
diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html
new file mode 100644
index 000000000..df96b0fda
--- /dev/null
+++ b/doc/html/hierarchy.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Class Hierarchy</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li class="current"><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('hierarchy.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Class Hierarchy</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classApp.html" target="_self">App</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img id="arr_1_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('1_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classBaseObject.html" target="_self">BaseObject</a></td><td class="desc"></td></tr>
+<tr id="row_1_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classConversation.html" target="_self">Conversation</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classItem.html" target="_self">Item</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classCache.html" target="_self">Cache</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img id="arr_3_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classdba__driver.html" target="_self">dba_driver</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classdba__mysql.html" target="_self">dba_mysql</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classdba__mysqli.html" target="_self">dba_mysqli</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classenotify.html" target="_self">enotify</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><img id="arr_5_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('5_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="interfaceITemplateEngine.html" target="_self">ITemplateEngine</a></td><td class="desc"></td></tr>
+<tr id="row_5_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classFriendicaSmartyEngine.html" target="_self">FriendicaSmartyEngine</a></td><td class="desc"></td></tr>
+<tr id="row_5_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classTemplate.html" target="_self">Template</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><img id="arr_6_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('6_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>OAuthDataStore</b></td><td class="desc"></td></tr>
+<tr id="row_6_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classFKOAuthDataStore.html" target="_self">FKOAuthDataStore</a></td><td class="desc"></td></tr>
+<tr id="row_7_" class="even"><td class="entry"><img id="arr_7_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('7_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>OAuthServer</b></td><td class="desc"></td></tr>
+<tr id="row_7_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classFKOAuth1.html" target="_self">FKOAuth1</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><img id="arr_8_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('8_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classphoto__driver.html" target="_self">photo_driver</a></td><td class="desc"></td></tr>
+<tr id="row_8_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classphoto__gd.html" target="_self">photo_gd</a></td><td class="desc"></td></tr>
+<tr id="row_8_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classphoto__imagick.html" target="_self">photo_imagick</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><img id="arr_9_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('9_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classProtoDriver.html" target="_self">ProtoDriver</a></td><td class="desc"></td></tr>
+<tr id="row_9_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classZotDriver.html" target="_self">ZotDriver</a></td><td class="desc"></td></tr>
+<tr id="row_10_"><td class="entry"><img id="arr_10_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('10_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>Smarty</b></td><td class="desc"></td></tr>
+<tr id="row_10_0_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classFriendicaSmarty.html" target="_self">FriendicaSmarty</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/hierarchy.js b/doc/html/hierarchy.js
new file mode 100644
index 000000000..855cea45d
--- /dev/null
+++ b/doc/html/hierarchy.js
@@ -0,0 +1,34 @@
+var hierarchy =
+[
+ [ "App", "classApp.html", null ],
+ [ "BaseObject", "classBaseObject.html", [
+ [ "Conversation", "classConversation.html", null ],
+ [ "Item", "classItem.html", null ]
+ ] ],
+ [ "Cache", "classCache.html", null ],
+ [ "dba_driver", "classdba__driver.html", [
+ [ "dba_mysql", "classdba__mysql.html", null ],
+ [ "dba_mysqli", "classdba__mysqli.html", null ]
+ ] ],
+ [ "enotify", "classenotify.html", null ],
+ [ "ITemplateEngine", "interfaceITemplateEngine.html", [
+ [ "FriendicaSmartyEngine", "classFriendicaSmartyEngine.html", null ],
+ [ "Template", "classTemplate.html", null ]
+ ] ],
+ [ "OAuthDataStore", null, [
+ [ "FKOAuthDataStore", "classFKOAuthDataStore.html", null ]
+ ] ],
+ [ "OAuthServer", null, [
+ [ "FKOAuth1", "classFKOAuth1.html", null ]
+ ] ],
+ [ "photo_driver", "classphoto__driver.html", [
+ [ "photo_gd", "classphoto__gd.html", null ],
+ [ "photo_imagick", "classphoto__imagick.html", null ]
+ ] ],
+ [ "ProtoDriver", "classProtoDriver.html", [
+ [ "ZotDriver", "classZotDriver.html", null ]
+ ] ],
+ [ "Smarty", null, [
+ [ "FriendicaSmarty", "classFriendicaSmarty.html", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/doc/html/home_8php.html b/doc/html/home_8php.html
new file mode 100644
index 000000000..02a9998f1
--- /dev/null
+++ b/doc/html/home_8php.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/home.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('home_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">home.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/hostxrd_8php.html b/doc/html/hostxrd_8php.html
new file mode 100644
index 000000000..b9b6bf159
--- /dev/null
+++ b/doc/html/hostxrd_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/hostxrd.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('hostxrd_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">hostxrd.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aa37ffc8e7900bc76c4828bd25916db92"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init</a> (&amp;$a)</td></tr>
+<tr class="separator:aa37ffc8e7900bc76c4828bd25916db92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa37ffc8e7900bc76c4828bd25916db92"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">hostxrd_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/hostxrd_8php.js b/doc/html/hostxrd_8php.js
new file mode 100644
index 000000000..442e3dfac
--- /dev/null
+++ b/doc/html/hostxrd_8php.js
@@ -0,0 +1,4 @@
+var hostxrd_8php =
+[
+ [ "hostxrd_init", "hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92", null ]
+]; \ No newline at end of file
diff --git a/doc/html/html2bbcode_8php.html b/doc/html/html2bbcode_8php.html
new file mode 100644
index 000000000..178929237
--- /dev/null
+++ b/doc/html/html2bbcode_8php.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/html2bbcode.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('html2bbcode_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">html2bbcode.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ad174afe0ccbd8c475e48f8a6ee2f27d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="html2bbcode_8php.html#ad174afe0ccbd8c475e48f8a6ee2f27d8">node2bbcode</a> (&amp;$doc, $oldnode, $attributes, $startbb, $endbb)</td></tr>
+<tr class="separator:ad174afe0ccbd8c475e48f8a6ee2f27d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39c662b19d318990fee2ba795a55d7a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7">node2bbcodesub</a> (&amp;$doc, $oldnode, $attributes, $startbb, $endbb)</td></tr>
+<tr class="separator:a39c662b19d318990fee2ba795a55d7a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71a07f135d196ec5943b13f7b2e6a9b2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2">deletenode</a> (&amp;$doc, $node)</td></tr>
+<tr class="separator:a71a07f135d196ec5943b13f7b2e6a9b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ad726995ac4070213abdb3bd09f4837"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837">html2bbcode</a> ($message)</td></tr>
+<tr class="separator:a5ad726995ac4070213abdb3bd09f4837"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a71a07f135d196ec5943b13f7b2e6a9b2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">deletenode </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$doc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$node</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837">html2bbcode()</a>, and <a class="el" href="parse__url_8php.html#a25635549f2c22955d72465f4d2e58993">parseurl_getsiteinfo()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5ad726995ac4070213abdb3bd09f4837"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">html2bbcode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$message</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, <a class="el" href="bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6">diaspora2bb()</a>, and <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad174afe0ccbd8c475e48f8a6ee2f27d8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">node2bbcode </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$doc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$oldnode</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$attributes</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$startbb</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$endbb</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837">html2bbcode()</a>, and <a class="el" href="html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04">html2plain()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a39c662b19d318990fee2ba795a55d7a7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">node2bbcodesub </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$doc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$oldnode</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$attributes</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$startbb</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$endbb</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="html2bbcode_8php.html#ad174afe0ccbd8c475e48f8a6ee2f27d8">node2bbcode()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/html2bbcode_8php.js b/doc/html/html2bbcode_8php.js
new file mode 100644
index 000000000..18f333bc5
--- /dev/null
+++ b/doc/html/html2bbcode_8php.js
@@ -0,0 +1,7 @@
+var html2bbcode_8php =
+[
+ [ "deletenode", "html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2", null ],
+ [ "html2bbcode", "html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837", null ],
+ [ "node2bbcode", "html2bbcode_8php.html#ad174afe0ccbd8c475e48f8a6ee2f27d8", null ],
+ [ "node2bbcodesub", "html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7", null ]
+]; \ No newline at end of file
diff --git a/doc/html/html2plain_8php.html b/doc/html/html2plain_8php.html
new file mode 100644
index 000000000..89b965515
--- /dev/null
+++ b/doc/html/html2plain_8php.html
@@ -0,0 +1,241 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/html2plain.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('html2plain_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">html2plain.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a3214912e3d00cf0a948072daccf16740"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="html2plain_8php.html#a3214912e3d00cf0a948072daccf16740">breaklines</a> ($line, $level, $wraplength=75)</td></tr>
+<tr class="separator:a3214912e3d00cf0a948072daccf16740"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56d29b254333d29abb9d96a9a903a4b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0">quotelevel</a> ($message, $wraplength=75)</td></tr>
+<tr class="separator:a56d29b254333d29abb9d96a9a903a4b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1c203d0f089d5678d73a6c64a395201"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="html2plain_8php.html#ae1c203d0f089d5678d73a6c64a395201">collecturls</a> ($message)</td></tr>
+<tr class="separator:ae1c203d0f089d5678d73a6c64a395201"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3e121fa9f3feb16f9f942e705bc6c04"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04">html2plain</a> ($html, $wraplength=75, $compact=false)</td></tr>
+<tr class="separator:ab3e121fa9f3feb16f9f942e705bc6c04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a3214912e3d00cf0a948072daccf16740"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">breaklines </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$line</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$level</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$wraplength</em> = <code>75</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0">quotelevel()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae1c203d0f089d5678d73a6c64a395201"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">collecturls </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$message</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04">html2plain()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab3e121fa9f3feb16f9f942e705bc6c04"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">html2plain </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$html</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$wraplength</em> = <code>75</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$compact</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#ae82608c317421f27446465aa6724733d">api_format_messages()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, and <a class="el" href="include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0">email_send()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a56d29b254333d29abb9d96a9a903a4b0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">quotelevel </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$message</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$wraplength</em> = <code>75</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04">html2plain()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/html2plain_8php.js b/doc/html/html2plain_8php.js
new file mode 100644
index 000000000..377ba004e
--- /dev/null
+++ b/doc/html/html2plain_8php.js
@@ -0,0 +1,7 @@
+var html2plain_8php =
+[
+ [ "breaklines", "html2plain_8php.html#a3214912e3d00cf0a948072daccf16740", null ],
+ [ "collecturls", "html2plain_8php.html#ae1c203d0f089d5678d73a6c64a395201", null ],
+ [ "html2plain", "html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04", null ],
+ [ "quotelevel", "html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0", null ]
+]; \ No newline at end of file
diff --git a/doc/html/identity_8php.html b/doc/html/identity_8php.html
new file mode 100644
index 000000000..db7870dea
--- /dev/null
+++ b/doc/html/identity_8php.html
@@ -0,0 +1,297 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/identity.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('identity_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">identity.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac9fcd5c4c371998790b5c55c3d0f4633"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class</a> ($account_id)</td></tr>
+<tr class="separator:ac9fcd5c4c371998790b5c55c3d0f4633"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2802bc13a00a17b867bba7978ba8f58"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname</a> ($name)</td></tr>
+<tr class="separator:af2802bc13a00a17b867bba7978ba8f58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf6a9c6ed92d594f1d4513c4e22a7abd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd">create_dir_account</a> ()</td></tr>
+<tr class="separator:abf6a9c6ed92d594f1d4513c4e22a7abd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77d2237f1846964634b1c99089c27c7d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a77d2237f1846964634b1c99089c27c7d">channel_total</a> ()</td></tr>
+<tr class="separator:a77d2237f1846964634b1c99089c27c7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a345f4c943d84de502ec6e72d2c813945"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity</a> ($arr)</td></tr>
+<tr class="separator:a345f4c943d84de502ec6e72d2c813945"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78151baf4407a8482d2681a91a9c486b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a78151baf4407a8482d2681a91a9c486b">set_default_login_identity</a> ($account_id, $channel_id, $force=true)</td></tr>
+<tr class="separator:a78151baf4407a8482d2681a91a9c486b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3570a4eb77332b292d394c4132cb8f03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export</a> ($channel_id)</td></tr>
+<tr class="separator:a3570a4eb77332b292d394c4132cb8f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77ee7d66eb0758f7e7882f70ad0f9485"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a77ee7d66eb0758f7e7882f70ad0f9485">identity_basic_import</a> ($arr, $seize_primary=false)</td></tr>
+<tr class="separator:a77ee7d66eb0758f7e7882f70ad0f9485"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a77d2237f1846964634b1c99089c27c7d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">channel_total </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abf6a9c6ed92d594f1d4513c4e22a7abd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">create_dir_account </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a345f4c943d84de502ec6e72d2c813945"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">create_identity </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3570a4eb77332b292d394c4132cb8f03"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">identity_basic_export </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53">api_export_basic()</a>, and <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a77ee7d66eb0758f7e7882f70ad0f9485"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">identity_basic_import </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$seize_primary</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac9fcd5c4c371998790b5c55c3d0f4633"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">identity_check_service_class </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$account_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a78151baf4407a8482d2681a91a9c486b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">set_default_login_identity </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$account_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$force</em> = <code>true</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, and <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af2802bc13a00a17b867bba7978ba8f58"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">validate_channelname </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, and <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/identity_8php.js b/doc/html/identity_8php.js
new file mode 100644
index 000000000..44a63851e
--- /dev/null
+++ b/doc/html/identity_8php.js
@@ -0,0 +1,11 @@
+var identity_8php =
+[
+ [ "channel_total", "identity_8php.html#a77d2237f1846964634b1c99089c27c7d", null ],
+ [ "create_dir_account", "identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd", null ],
+ [ "create_identity", "identity_8php.html#a345f4c943d84de502ec6e72d2c813945", null ],
+ [ "identity_basic_export", "identity_8php.html#a3570a4eb77332b292d394c4132cb8f03", null ],
+ [ "identity_basic_import", "identity_8php.html#a77ee7d66eb0758f7e7882f70ad0f9485", null ],
+ [ "identity_check_service_class", "identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633", null ],
+ [ "set_default_login_identity", "identity_8php.html#a78151baf4407a8482d2681a91a9c486b", null ],
+ [ "validate_channelname", "identity_8php.html#af2802bc13a00a17b867bba7978ba8f58", null ]
+]; \ No newline at end of file
diff --git a/doc/html/import_8php.html b/doc/html/import_8php.html
new file mode 100644
index 000000000..13e836ac8
--- /dev/null
+++ b/doc/html/import_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/import.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('import_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">import.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af17fef0410518f7eac205d0ea416eaa2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post</a> (&amp;$a)</td></tr>
+<tr class="separator:af17fef0410518f7eac205d0ea416eaa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afdf25ed70096d5dbf4f6d0ca79fea184"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content</a> (&amp;$a)</td></tr>
+<tr class="separator:afdf25ed70096d5dbf4f6d0ca79fea184"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="afdf25ed70096d5dbf4f6d0ca79fea184"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">import_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af17fef0410518f7eac205d0ea416eaa2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">import_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/import_8php.js b/doc/html/import_8php.js
new file mode 100644
index 000000000..906bce463
--- /dev/null
+++ b/doc/html/import_8php.js
@@ -0,0 +1,5 @@
+var import_8php =
+[
+ [ "import_content", "import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184", null ],
+ [ "import_post", "import_8php.html#af17fef0410518f7eac205d0ea416eaa2", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2api_8php.html b/doc/html/include_2api_8php.html
new file mode 100644
index 000000000..a09a6c142
--- /dev/null
+++ b/doc/html/include_2api_8php.html
@@ -0,0 +1,1597 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/api.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2api_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">api.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:afb99daa6b731bf497b81f2128084852c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user</a> ()</td></tr>
+<tr class="separator:afb99daa6b731bf497b81f2128084852c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea2dda92a155f2843a0ca188d8dfdf25"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25">api_date</a> ($str)</td></tr>
+<tr class="separator:aea2dda92a155f2843a0ca188d8dfdf25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac2c2b18c426d697d11a830bca146be8a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a">api_register_func</a> ($path, $func, $auth=false)</td></tr>
+<tr class="separator:ac2c2b18c426d697d11a830bca146be8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe534f826e4282b72d66e8cadca7bb73"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login</a> (&amp;$a)</td></tr>
+<tr class="separator:afe534f826e4282b72d66e8cadca7bb73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a176c448d79c211ad41c2bbe3124658f5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call</a> (&amp;$a)</td></tr>
+<tr class="separator:a176c448d79c211ad41c2bbe3124658f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6a04b48168ba1d9dd2de3081a630611f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api_rss_extra</a> (&amp;$a, $arr, $user_info)</td></tr>
+<tr class="separator:a6a04b48168ba1d9dd2de3081a630611f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa40bae797bcd9ccacffdce5a3b5a1afa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user</a> (&amp;$a, $contact_id=Null)</td></tr>
+<tr class="separator:aa40bae797bcd9ccacffdce5a3b5a1afa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa49741342ad8ba285737eea1209a37e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1">api_item_get_user</a> (&amp;$a, $item)</td></tr>
+<tr class="separator:aa49741342ad8ba285737eea1209a37e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5990101034e7abf6404feba3cd273629"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template</a> ($templatename, $type, $data)</td></tr>
+<tr class="separator:a5990101034e7abf6404feba3cd273629"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a864191bb876a515ed71b17e260ef35ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad">api_account_verify_credentials</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a864191bb876a515ed71b17e260ef35ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e94eab9d6c164bfef7a1b2ab87b339b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a2e94eab9d6c164bfef7a1b2ab87b339b">api_account_logout</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a2e94eab9d6c164bfef7a1b2ab87b339b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43c47de8565cc00c3369cb35c19cc75e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a43c47de8565cc00c3369cb35c19cc75e">requestdata</a> ($k)</td></tr>
+<tr class="separator:a43c47de8565cc00c3369cb35c19cc75e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfc035ee6303c1d8ba5336a4ead2bd53"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53">api_export_basic</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:adfc035ee6303c1d8ba5336a4ead2bd53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72bfecac1970bc29b853073e816388ff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a72bfecac1970bc29b853073e816388ff">api_channel_stream</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a72bfecac1970bc29b853073e816388ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa9dc5350b26d6c7727d6c4b641ecba18"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18">api_albums</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:aa9dc5350b26d6c7727d6c4b641ecba18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6fc3bc8c0fad1d081db0dcc456dd77f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api_photos</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:aa6fc3bc8c0fad1d081db0dcc456dd77f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a450d8732b7b608f7ac929aee61572b95"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a450d8732b7b608f7ac929aee61572b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4d1634df6b35126552324683caaffa2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:ad4d1634df6b35126552324683caaffa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a645397787618b5c548a31e8686e8cca4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a645397787618b5c548a31e8686e8cca4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe8e929e93f7ab134b1cb1fb30f19a76"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:abe8e929e93f7ab134b1cb1fb30f19a76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a528d8070ee74ea800102936ce73cf366"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a528d8070ee74ea800102936ce73cf366"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad24ce1bf20867add4c9211a8eaf93f22"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:ad24ce1bf20867add4c9211a8eaf93f22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6f1d89cdb0a0621025efbec1597bc63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:af6f1d89cdb0a0621025efbec1597bc63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0fa388479cace9c5a7a45b571ab42f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:ae0fa388479cace9c5a7a45b571ab42f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4c29f43418f6110f85a6b3998239ab4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:ad4c29f43418f6110f85a6b3998239ab4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b25a186bd0893f51aa72a62f655735e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a8b25a186bd0893f51aa72a62f655735e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a32f0dda848d0c11c727fe1c3e741c283"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a32f0dda848d0c11c727fe1c3e741c283"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c71b1226ef1283b5370bd1c200fee5f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a2c71b1226ef1283b5370bd1c200fee5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a18cab7c6391df5c421753463f5d2a879"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a18cab7c6391df5c421753463f5d2a879">api_format_as</a> ($a, $ret, $user_info)</td></tr>
+<tr class="separator:a18cab7c6391df5c421753463f5d2a879"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae82608c317421f27446465aa6724733d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ae82608c317421f27446465aa6724733d">api_format_messages</a> ($item, $recipient, $sender)</td></tr>
+<tr class="separator:ae82608c317421f27446465aa6724733d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c6fb9fb5203aa60f4b3afd4521db8ea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items</a> ($r, $user_info)</td></tr>
+<tr class="separator:a4c6fb9fb5203aa60f4b3afd4521db8ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae8f5863e18d69421005c71441c9d99a5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5">api_account_rate_limit_status</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:ae8f5863e18d69421005c71441c9d99a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5a64cc81d70ff3cf866093ea9721d23"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23">api_help_test</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:ac5a64cc81d70ff3cf866093ea9721d23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa0d6b29fff0344a8e67f3507a6d01410"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f</a> (&amp;$a, $type, $qtype)</td></tr>
+<tr class="separator:aa0d6b29fff0344a8e67f3507a6d01410"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade742525b2e41c82b090799ef3c51d5e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e">api_statuses_friends</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:ade742525b2e41c82b090799ef3c51d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6951c690d87775eb37e569c66011988e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a6951c690d87775eb37e569c66011988e">api_statuses_followers</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a6951c690d87775eb37e569c66011988e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a623793229a7256dd31bcfd5ab90eef08"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a623793229a7256dd31bcfd5ab90eef08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8969e8d9c683f12ba17dcd4b059e020d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a8969e8d9c683f12ba17dcd4b059e020d">api_statusnet_version</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a8969e8d9c683f12ba17dcd4b059e020d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a53b0680b682ae6078f2e1ed18cfb3f74"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74">api_friendica_version</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a53b0680b682ae6078f2e1ed18cfb3f74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36344c80b8e9755da2f2dd3a0e28cce8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8">api_ff_ids</a> (&amp;$a, $type, $qtype)</td></tr>
+<tr class="separator:a36344c80b8e9755da2f2dd3a0e28cce8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acafd2899309a005fcb725289173dc7fe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#acafd2899309a005fcb725289173dc7fe">api_friends_ids</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:acafd2899309a005fcb725289173dc7fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1ecb58954f722444bfe03233345cb1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ab1ecb58954f722444bfe03233345cb1b">api_followers_ids</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:ab1ecb58954f722444bfe03233345cb1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0991f72554f821255397d615e76f3203"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a0991f72554f821255397d615e76f3203"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7759ccddc8dff012ad168e511ffe5af5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box</a> (&amp;$a, $type, $box)</td></tr>
+<tr class="separator:a7759ccddc8dff012ad168e511ffe5af5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58cf4c02ef435996f5c3bc4283d3968d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a58cf4c02ef435996f5c3bc4283d3968d">api_direct_messages_sentbox</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a58cf4c02ef435996f5c3bc4283d3968d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2b0192f3006918bea895de8074bf8d2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ad2b0192f3006918bea895de8074bf8d2">api_direct_messages_inbox</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:ad2b0192f3006918bea895de8074bf8d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a970b02c06dea8b229aa3d5fff9cf4705"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a970b02c06dea8b229aa3d5fff9cf4705">api_direct_messages_all</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a970b02c06dea8b229aa3d5fff9cf4705"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9160288b7ac220635942d8dc209b78c3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a9160288b7ac220635942d8dc209b78c3">api_direct_messages_conversation</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a9160288b7ac220635942d8dc209b78c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1bddb580510e70cc1a7b7381667f1a3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3">api_oauth_request_token</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:aa1bddb580510e70cc1a7b7381667f1a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff322705cc6084b329003fc8eab0aad0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0">api_oauth_access_token</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:aff322705cc6084b329003fc8eab0aad0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:aeb2e7ad00ea666b4b6dfcf82008194f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#aeb2e7ad00ea666b4b6dfcf82008194f8">$API</a> = array()</td></tr>
+<tr class="separator:aeb2e7ad00ea666b4b6dfcf82008194f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa62b15a6bbb280e86b98132eb214013d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#aa62b15a6bbb280e86b98132eb214013d">$called_api</a> = Null</td></tr>
+<tr class="separator:aa62b15a6bbb280e86b98132eb214013d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a2e94eab9d6c164bfef7a1b2ab87b339b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_account_logout </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae8f5863e18d69421005c71441c9d99a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_account_rate_limit_status </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a864191bb876a515ed71b17e260ef35ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_account_verify_credentials </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Returns an HTTP 200 OK response code and a representation of the requesting user if authentication was successful; returns a 401 status code and an error message if not. <a href="http://developer.twitter.com/doc/get/account/verify_credentials">http://developer.twitter.com/doc/get/account/verify_credentials</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="aa9dc5350b26d6c7727d6c4b641ecba18"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_albums </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5990101034e7abf6404feba3cd273629"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_apply_template </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$templatename</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>load api $templatename for $type and replace $data array </p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a2e94eab9d6c164bfef7a1b2ab87b339b">api_account_logout()</a>, <a class="el" href="include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5">api_account_rate_limit_status()</a>, <a class="el" href="include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad">api_account_verify_credentials()</a>, <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23">api_help_test()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#a6951c690d87775eb37e569c66011988e">api_statuses_followers()</a>, <a class="el" href="include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e">api_statuses_friends()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, and <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a176c448d79c211ad41c2bbe3124658f5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_call </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a72bfecac1970bc29b853073e816388ff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_channel_stream </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aea2dda92a155f2843a0ca188d8dfdf25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_date </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#ae82608c317421f27446465aa6724733d">api_format_messages()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api_rss_extra()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, and <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a970b02c06dea8b229aa3d5fff9cf4705"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_direct_messages_all </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7759ccddc8dff012ad168e511ffe5af5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_direct_messages_box </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$box</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a970b02c06dea8b229aa3d5fff9cf4705">api_direct_messages_all()</a>, <a class="el" href="include_2api_8php.html#a9160288b7ac220635942d8dc209b78c3">api_direct_messages_conversation()</a>, <a class="el" href="include_2api_8php.html#ad2b0192f3006918bea895de8074bf8d2">api_direct_messages_inbox()</a>, and <a class="el" href="include_2api_8php.html#a58cf4c02ef435996f5c3bc4283d3968d">api_direct_messages_sentbox()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9160288b7ac220635942d8dc209b78c3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_direct_messages_conversation </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad2b0192f3006918bea895de8074bf8d2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_direct_messages_inbox </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0991f72554f821255397d615e76f3203"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_direct_messages_new </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a58cf4c02ef435996f5c3bc4283d3968d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_direct_messages_sentbox </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adfc035ee6303c1d8ba5336a4ead2bd53"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_export_basic </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2c71b1226ef1283b5370bd1c200fee5f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_favorites </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a36344c80b8e9755da2f2dd3a0e28cce8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_ff_ids </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$qtype</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#ab1ecb58954f722444bfe03233345cb1b">api_followers_ids()</a>, and <a class="el" href="include_2api_8php.html#acafd2899309a005fcb725289173dc7fe">api_friends_ids()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab1ecb58954f722444bfe03233345cb1b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_followers_ids </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a18cab7c6391df5c421753463f5d2a879"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_format_as </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$ret</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user_info</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, and <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4c6fb9fb5203aa60f4b3afd4521db8ea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_format_items </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$r</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user_info</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, and <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae82608c317421f27446465aa6724733d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_format_messages </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$recipient</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sender</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, and <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a53b0680b682ae6078f2e1ed18cfb3f74"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_friendica_version </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acafd2899309a005fcb725289173dc7fe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_friends_ids </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa40bae797bcd9ccacffdce5a3b5a1afa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_get_user </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$contact_id</em> = <code>Null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Returns user info array. </p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad">api_account_verify_credentials()</a>, <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1">api_item_get_user()</a>, <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api_rss_extra()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, and <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac5a64cc81d70ff3cf866093ea9721d23"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_help_test </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa49741342ad8ba285737eea1209a37e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_item_get_user </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afe534f826e4282b72d66e8cadca7bb73"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_login </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Simple HTTP Login </p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call()</a>, and <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aff322705cc6084b329003fc8eab0aad0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_oauth_access_token </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa1bddb580510e70cc1a7b7381667f1a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_oauth_request_token </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa6fc3bc8c0fad1d081db0dcc456dd77f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_photos </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac2c2b18c426d697d11a830bca146be8a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_register_func </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$path</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$func</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$auth</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6a04b48168ba1d9dd2de3081a630611f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_rss_extra </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user_info</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>RSS extra info </p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, and <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a645397787618b5c548a31e8686e8cca4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_status_show </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, and <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad4c29f43418f6110f85a6b3998239ab4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statuses_destroy </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa0d6b29fff0344a8e67f3507a6d01410"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statuses_f </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$qtype</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p><a href="https://dev.twitter.com/docs/api/1/get/statuses/friends">https://dev.twitter.com/docs/api/1/get/statuses/friends</a> This function is deprecated by Twitter returns: json, xml </p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a6951c690d87775eb37e569c66011988e">api_statuses_followers()</a>, and <a class="el" href="include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e">api_statuses_friends()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6951c690d87775eb37e569c66011988e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statuses_followers </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ade742525b2e41c82b090799ef3c51d5e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statuses_friends </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a528d8070ee74ea800102936ce73cf366"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statuses_home_timeline </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p><a href="http://developer.twitter.com/doc/get/statuses/home_timeline">http://developer.twitter.com/doc/get/statuses/home_timeline</a></p>
+<p>TODO: Optional parameters TODO: Add reply info </p>
+
+</div>
+</div>
+<a class="anchor" id="a450d8732b7b608f7ac929aee61572b95"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statuses_mediap </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8b25a186bd0893f51aa72a62f655735e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statuses_mentions </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p><a href="http://developer.twitter.com/doc/get/statuses/mentions">http://developer.twitter.com/doc/get/statuses/mentions</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="ad24ce1bf20867add4c9211a8eaf93f22"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statuses_public_timeline </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae0fa388479cace9c5a7a45b571ab42f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statuses_repeat </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af6f1d89cdb0a0621025efbec1597bc63"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statuses_show </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad4d1634df6b35126552324683caaffa2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statuses_update </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a32f0dda848d0c11c727fe1c3e741c283"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statuses_user_timeline </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a623793229a7256dd31bcfd5ab90eef08"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statusnet_config </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8969e8d9c683f12ba17dcd4b059e020d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_statusnet_version </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afb99daa6b731bf497b81f2128084852c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_user </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad">api_account_verify_credentials()</a>, <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call()</a>, <a class="el" href="include_2api_8php.html#a72bfecac1970bc29b853073e816388ff">api_channel_stream()</a>, <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53">api_export_basic()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8">api_ff_ids()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, and <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abe8e929e93f7ab134b1cb1fb30f19a76"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_users_show </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Returns extended information of a given user, specified by ID or screen name as per the required id parameter. The author's most recent status will be returned inline. <a href="http://developer.twitter.com/doc/get/users/show">http://developer.twitter.com/doc/get/users/show</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a43c47de8565cc00c3369cb35c19cc75e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">requestdata </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$k</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>get data from $_REQUEST ( e.g. $_POST or $_GET ) </p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, and <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="aeb2e7ad00ea666b4b6dfcf82008194f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$API = array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>TWITTER API </p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call()</a>, and <a class="el" href="include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a">api_register_func()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa62b15a6bbb280e86b98132eb214013d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$called_api = Null</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call()</a>, and <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2api_8php.js b/doc/html/include_2api_8php.js
new file mode 100644
index 000000000..5ffbeb070
--- /dev/null
+++ b/doc/html/include_2api_8php.js
@@ -0,0 +1,55 @@
+var include_2api_8php =
+[
+ [ "api_account_logout", "include_2api_8php.html#a2e94eab9d6c164bfef7a1b2ab87b339b", null ],
+ [ "api_account_rate_limit_status", "include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5", null ],
+ [ "api_account_verify_credentials", "include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad", null ],
+ [ "api_albums", "include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18", null ],
+ [ "api_apply_template", "include_2api_8php.html#a5990101034e7abf6404feba3cd273629", null ],
+ [ "api_call", "include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5", null ],
+ [ "api_channel_stream", "include_2api_8php.html#a72bfecac1970bc29b853073e816388ff", null ],
+ [ "api_date", "include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25", null ],
+ [ "api_direct_messages_all", "include_2api_8php.html#a970b02c06dea8b229aa3d5fff9cf4705", null ],
+ [ "api_direct_messages_box", "include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5", null ],
+ [ "api_direct_messages_conversation", "include_2api_8php.html#a9160288b7ac220635942d8dc209b78c3", null ],
+ [ "api_direct_messages_inbox", "include_2api_8php.html#ad2b0192f3006918bea895de8074bf8d2", null ],
+ [ "api_direct_messages_new", "include_2api_8php.html#a0991f72554f821255397d615e76f3203", null ],
+ [ "api_direct_messages_sentbox", "include_2api_8php.html#a58cf4c02ef435996f5c3bc4283d3968d", null ],
+ [ "api_export_basic", "include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53", null ],
+ [ "api_favorites", "include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f", null ],
+ [ "api_ff_ids", "include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8", null ],
+ [ "api_followers_ids", "include_2api_8php.html#ab1ecb58954f722444bfe03233345cb1b", null ],
+ [ "api_format_as", "include_2api_8php.html#a18cab7c6391df5c421753463f5d2a879", null ],
+ [ "api_format_items", "include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea", null ],
+ [ "api_format_messages", "include_2api_8php.html#ae82608c317421f27446465aa6724733d", null ],
+ [ "api_friendica_version", "include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74", null ],
+ [ "api_friends_ids", "include_2api_8php.html#acafd2899309a005fcb725289173dc7fe", null ],
+ [ "api_get_user", "include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa", null ],
+ [ "api_help_test", "include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23", null ],
+ [ "api_item_get_user", "include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1", null ],
+ [ "api_login", "include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73", null ],
+ [ "api_oauth_access_token", "include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0", null ],
+ [ "api_oauth_request_token", "include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3", null ],
+ [ "api_photos", "include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f", null ],
+ [ "api_register_func", "include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a", null ],
+ [ "api_rss_extra", "include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f", null ],
+ [ "api_status_show", "include_2api_8php.html#a645397787618b5c548a31e8686e8cca4", null ],
+ [ "api_statuses_destroy", "include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4", null ],
+ [ "api_statuses_f", "include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410", null ],
+ [ "api_statuses_followers", "include_2api_8php.html#a6951c690d87775eb37e569c66011988e", null ],
+ [ "api_statuses_friends", "include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e", null ],
+ [ "api_statuses_home_timeline", "include_2api_8php.html#a528d8070ee74ea800102936ce73cf366", null ],
+ [ "api_statuses_mediap", "include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95", null ],
+ [ "api_statuses_mentions", "include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e", null ],
+ [ "api_statuses_public_timeline", "include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22", null ],
+ [ "api_statuses_repeat", "include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8", null ],
+ [ "api_statuses_show", "include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63", null ],
+ [ "api_statuses_update", "include_2api_8php.html#ad4d1634df6b35126552324683caaffa2", null ],
+ [ "api_statuses_user_timeline", "include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283", null ],
+ [ "api_statusnet_config", "include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08", null ],
+ [ "api_statusnet_version", "include_2api_8php.html#a8969e8d9c683f12ba17dcd4b059e020d", null ],
+ [ "api_user", "include_2api_8php.html#afb99daa6b731bf497b81f2128084852c", null ],
+ [ "api_users_show", "include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76", null ],
+ [ "requestdata", "include_2api_8php.html#a43c47de8565cc00c3369cb35c19cc75e", null ],
+ [ "$API", "include_2api_8php.html#aeb2e7ad00ea666b4b6dfcf82008194f8", null ],
+ [ "$called_api", "include_2api_8php.html#aa62b15a6bbb280e86b98132eb214013d", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2attach_8php.html b/doc/html/include_2attach_8php.html
new file mode 100644
index 000000000..886ea944b
--- /dev/null
+++ b/doc/html/include_2attach_8php.html
@@ -0,0 +1,402 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/attach.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2attach_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">attach.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a6fdd92775f31c07d2863e16e0026018a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a">z_mime_content_type</a> ($filename)</td></tr>
+<tr class="separator:a6fdd92775f31c07d2863e16e0026018a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a887d2d44a3ef18dcb6624e7fb58dc8e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files</a> ($channel_id, $observer, $hash= '', $filename= '', $filetype= '')</td></tr>
+<tr class="separator:a887d2d44a3ef18dcb6624e7fb58dc8e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3634af95f11a023dd8e882c3c7a3600d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files</a> ($channel_id, $observer, $hash= '', $filename= '', $filetype= '', $orderby= 'created desc', $start=0, $entries=0)</td></tr>
+<tr class="separator:a3634af95f11a023dd8e882c3c7a3600d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d07c5b83d3d54e186f752e571847b36"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash</a> ($hash, $rev=0)</td></tr>
+<tr class="separator:a0d07c5b83d3d54e186f752e571847b36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad991208ce939387e2f93a3bce7d09932"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata</a> ($hash, $rev=0)</td></tr>
+<tr class="separator:ad991208ce939387e2f93a3bce7d09932"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84a8a64c4805e1525b42d4add464833f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store</a> ($channel, $observer_hash, $options= '', $arr=null)</td></tr>
+<tr class="separator:a84a8a64c4805e1525b42d4add464833f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb07968990e66a88c95483ca09a7f909"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir</a> ($channel_id, $observer_hash, $pathname, $parent_hash= '')</td></tr>
+<tr class="separator:aeb07968990e66a88c95483ca09a7f909"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a0d07c5b83d3d54e186f752e571847b36"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">attach_by_hash </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$rev</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad991208ce939387e2f93a3bce7d09932"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">attach_by_hash_nodata </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$rev</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a887d2d44a3ef18dcb6624e7fb58dc8e3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">attach_count_files </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hash</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$filename</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$filetype</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3634af95f11a023dd8e882c3c7a3600d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">attach_list_files </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hash</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$filename</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$filetype</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$orderby</em> = <code>'created&#160;desc'</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$start</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$entries</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a84a8a64c4805e1525b42d4add464833f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">attach_store </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer_hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$options</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a3daae7944f737bd30412a0d042207c0f">fix_attached_file_permissions()</a>, and <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6fdd92775f31c07d2863e16e0026018a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">z_mime_content_type </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$filename</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aeb07968990e66a88c95483ca09a7f909"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">z_readdir </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer_hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pathname</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$parent_hash</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Read a virtual directory and return contents, checking permissions of all parent components. z_readdir </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">integer</td><td class="paramname">$channel_id</td><td></td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$observer_hash</td><td></td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$pathname</td><td></td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$parent_hash</td><td>(optional)</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>array $ret $ret['success'] = boolean true or false $ret['message'] = error message if success is false $ret['data'] = array of attach DB entries without data component </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2attach_8php.js b/doc/html/include_2attach_8php.js
new file mode 100644
index 000000000..750e2d059
--- /dev/null
+++ b/doc/html/include_2attach_8php.js
@@ -0,0 +1,10 @@
+var include_2attach_8php =
+[
+ [ "attach_by_hash", "include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36", null ],
+ [ "attach_by_hash_nodata", "include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932", null ],
+ [ "attach_count_files", "include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3", null ],
+ [ "attach_list_files", "include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d", null ],
+ [ "attach_store", "include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f", null ],
+ [ "z_mime_content_type", "include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a", null ],
+ [ "z_readdir", "include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2config_8php.html b/doc/html/include_2config_8php.html
new file mode 100644
index 000000000..d34e8a42f
--- /dev/null
+++ b/doc/html/include_2config_8php.html
@@ -0,0 +1,555 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/config.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2config_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">config.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a27559f388c9b9af81c94e48d6889d1d1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config</a> ($family)</td></tr>
+<tr class="separator:a27559f388c9b9af81c94e48d6889d1d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af02c96e6b37335774b548914ede1d22e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a> ($family, $key)</td></tr>
+<tr class="separator:af02c96e6b37335774b548914ede1d22e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af08b7adb63adfb2eda7c466fba0cce74"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74">get_config_from_storage</a> ($family, $key)</td></tr>
+<tr class="separator:af08b7adb63adfb2eda7c466fba0cce74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6da879e4fb5b37d1e161d4e9be5c32a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config</a> ($family, $key, $value)</td></tr>
+<tr class="separator:ad6da879e4fb5b37d1e161d4e9be5c32a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a549910227348003efc3c05c9105c42da"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#a549910227348003efc3c05c9105c42da">del_config</a> ($family, $key)</td></tr>
+<tr class="separator:a549910227348003efc3c05c9105c42da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac543813a980b3841cc5a277fcd4a24a6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig</a> ($uid, $family= '')</td></tr>
+<tr class="separator:ac543813a980b3841cc5a277fcd4a24a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad58a4913937179adb13201c2ee3261ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a> ($uid, $family, $key, $instore=false)</td></tr>
+<tr class="separator:ad58a4913937179adb13201c2ee3261ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61591371cb18764138655d67dc817ab2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig</a> ($uid, $family, $key, $value)</td></tr>
+<tr class="separator:a61591371cb18764138655d67dc817ab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ad2081c5f812ac4387fd76f3762d941"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig</a> ($uid, $family, $key)</td></tr>
+<tr class="separator:a7ad2081c5f812ac4387fd76f3762d941"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55bbed9a014c9109c767486834f3ca33"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig</a> ($xchan, $family= '')</td></tr>
+<tr class="separator:a55bbed9a014c9109c767486834f3ca33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3dc1d3de2d091ac702e675acd3a085e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e">get_xconfig</a> ($xchan, $family, $key)</td></tr>
+<tr class="separator:aa3dc1d3de2d091ac702e675acd3a085e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe117b70f1bba2f6348d9300b601f86e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">set_xconfig</a> ($xchan, $family, $key, $value)</td></tr>
+<tr class="separator:afe117b70f1bba2f6348d9300b601f86e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c171def547deee16738dc58fdeb4b72"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig</a> ($xchan, $family, $key)</td></tr>
+<tr class="separator:a9c171def547deee16738dc58fdeb4b72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a549910227348003efc3c05c9105c42da"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">del_config </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$family</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, and <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7ad2081c5f812ac4387fd76f3762d941"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">del_pconfig </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$family</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9c171def547deee16738dc58fdeb4b72"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">del_xconfig </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$family</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af02c96e6b37335774b548914ede1d22e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_config </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$family</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694">allowed_email()</a>, <a class="el" href="include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7">allowed_url()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">check_account_admin()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind_content()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c">dlogger()</a>, <a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="include_2network_8php.html#a37ddeb88a3fd1dee9e8339723f9edf9a">fetch_url()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00">photo_gd\imageString()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">photo_imagick\load()</a>, <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">logger()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a">new_keypair()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2">oembed_bbcode2html()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2network_8php.html#aa44d9e33a579d930e9e79c4ebb3d6b5e">post_url()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="boot_8php.html#a5b45d647da3743a7fc8c6223350b4d67">profile_create_sidebar()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">reload_plugins()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040">upgrade_link()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb">valid_email()</a>, <a class="el" href="include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02">validate_email()</a>, <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections_aside()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af08b7adb63adfb2eda7c466fba0cce74"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_config_from_storage </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$family</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad58a4913937179adb13201c2ee3261ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_pconfig </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$family</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$instore</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="boot_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa3dc1d3de2d091ac702e675acd3a085e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_xconfig </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$family</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">set_xconfig()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a27559f388c9b9af81c94e48d6889d1d1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">load_config </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$family</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Arbitrary configuration storage Note: Please do not store booleans - convert to 0/1 integer values The get_?config() functions return boolean false for keys that are unset, and this could lead to subtle bugs.</p>
+<p>There are a few places in the code (such as the admin panel) where boolean configurations need to be fixed as of 10/08/2011. </p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</a>, and <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac543813a980b3841cc5a277fcd4a24a6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">load_pconfig </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$family</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, and <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a55bbed9a014c9109c767486834f3ca33"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">load_xconfig </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$family</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e">get_xconfig()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad6da879e4fb5b37d1e161d4e9be5c32a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">set_config </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$family</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, and <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a61591371cb18764138655d67dc817ab2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">set_pconfig </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$family</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">theme_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afe117b70f1bba2f6348d9300b601f86e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">set_xconfig </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$family</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2config_8php.js b/doc/html/include_2config_8php.js
new file mode 100644
index 000000000..a9f05bed3
--- /dev/null
+++ b/doc/html/include_2config_8php.js
@@ -0,0 +1,16 @@
+var include_2config_8php =
+[
+ [ "del_config", "include_2config_8php.html#a549910227348003efc3c05c9105c42da", null ],
+ [ "del_pconfig", "include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941", null ],
+ [ "del_xconfig", "include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72", null ],
+ [ "get_config", "include_2config_8php.html#af02c96e6b37335774b548914ede1d22e", null ],
+ [ "get_config_from_storage", "include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74", null ],
+ [ "get_pconfig", "include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad", null ],
+ [ "get_xconfig", "include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e", null ],
+ [ "load_config", "include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1", null ],
+ [ "load_pconfig", "include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6", null ],
+ [ "load_xconfig", "include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33", null ],
+ [ "set_config", "include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a", null ],
+ [ "set_pconfig", "include_2config_8php.html#a61591371cb18764138655d67dc817ab2", null ],
+ [ "set_xconfig", "include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2directory_8php.html b/doc/html/include_2directory_8php.html
new file mode 100644
index 000000000..136d7715b
--- /dev/null
+++ b/doc/html/include_2directory_8php.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/directory.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2directory_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">directory.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aa75d3b0697ca1456aaabdb37a74aa0f0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run</a> ($<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>, $<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a>)</td></tr>
+<tr class="separator:aa75d3b0697ca1456aaabdb37a74aa0f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa75d3b0697ca1456aaabdb37a74aa0f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">directory_run </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argv</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argc</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2directory_8php.js b/doc/html/include_2directory_8php.js
new file mode 100644
index 000000000..d5acd0735
--- /dev/null
+++ b/doc/html/include_2directory_8php.js
@@ -0,0 +1,4 @@
+var include_2directory_8php =
+[
+ [ "directory_run", "include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2follow_8php.html b/doc/html/include_2follow_8php.html
new file mode 100644
index 000000000..ed557fda9
--- /dev/null
+++ b/doc/html/include_2follow_8php.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/follow.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2follow_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">follow.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a6553a7650fae55f95660510d90983144"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact</a> ($uid, $url, $channel, $interactive=false)</td></tr>
+<tr class="separator:a6553a7650fae55f95660510d90983144"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a6553a7650fae55f95660510d90983144"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">new_contact </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$interactive</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>If there is a default group for this channel, add this member to it </p>
+
+<p>Referenced by <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2follow_8php.js b/doc/html/include_2follow_8php.js
new file mode 100644
index 000000000..a44d66d5b
--- /dev/null
+++ b/doc/html/include_2follow_8php.js
@@ -0,0 +1,4 @@
+var include_2follow_8php =
+[
+ [ "new_contact", "include_2follow_8php.html#a6553a7650fae55f95660510d90983144", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2group_8php.html b/doc/html/include_2group_8php.html
new file mode 100644
index 000000000..4bd2fefa9
--- /dev/null
+++ b/doc/html/include_2group_8php.html
@@ -0,0 +1,481 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/group.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2group_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">group.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a0a515d42ec78aa0066aac4c278ead5b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0">group_add</a> ($uid, $name)</td></tr>
+<tr class="separator:a0a515d42ec78aa0066aac4c278ead5b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4118f498bbd1530c1d0136d016d197a5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group_rmv</a> ($uid, $name)</td></tr>
+<tr class="separator:a4118f498bbd1530c1d0136d016d197a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd66a5ea34a07a3422dc2dde6c7b3ecb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group_byname</a> ($uid, $name)</td></tr>
+<tr class="separator:abd66a5ea34a07a3422dc2dde6c7b3ecb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a90e157b3e1b99c981809cb5a2abd3245"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245">group_rec_byhash</a> ($uid, $hash)</td></tr>
+<tr class="separator:a90e157b3e1b99c981809cb5a2abd3245"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a540e3ef36f47d47532646be4241f6518"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group_rmv_member</a> ($uid, $name, $member)</td></tr>
+<tr class="separator:a540e3ef36f47d47532646be4241f6518"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0122ef312df2c5546b1a46b3e6c7b31b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group_add_member</a> ($uid, $name, $member, $gid=0)</td></tr>
+<tr class="separator:a0122ef312df2c5546b1a46b3e6c7b31b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5bd191d9692e6c34d48c0ede10810f09"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members</a> ($gid)</td></tr>
+<tr class="separator:a5bd191d9692e6c34d48c0ede10810f09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4d9e5b59f48787cb01baae5dc6c381f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f">mini_group_select</a> ($uid, $gid=0)</td></tr>
+<tr class="separator:ab4d9e5b59f48787cb01baae5dc6c381f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1042d74055bafe54a6a30103d87a7f17"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side</a> ($every=&quot;contacts&quot;, $each=&quot;group&quot;, $edit=false, $group_id=0, $cid= '')</td></tr>
+<tr class="separator:a1042d74055bafe54a6a30103d87a7f17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22a81875259c7d3d64d4848afea6b345"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups</a> ($a)</td></tr>
+<tr class="separator:a22a81875259c7d3d64d4848afea6b345"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a048f6892bfd28852de1b76470df411de"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#a048f6892bfd28852de1b76470df411de">member_of</a> ($c)</td></tr>
+<tr class="separator:a048f6892bfd28852de1b76470df411de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afb802ae2ce73aae4bc36d157f7b6a92f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">groups_containing</a> ($uid, $c)</td></tr>
+<tr class="separator:afb802ae2ce73aae4bc36d157f7b6a92f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a22a81875259c7d3d64d4848afea6b345"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">expand_groups </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67">enumerate_permissions()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, and <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0a515d42ec78aa0066aac4c278ead5b0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">group_add </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, and <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0122ef312df2c5546b1a46b3e6c7b31b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">group_add_member </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$member</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$gid</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, and <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abd66a5ea34a07a3422dc2dde6c7b3ecb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">group_byname </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0">group_add()</a>, <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group_add_member()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, and <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group_rmv_member()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5bd191d9692e6c34d48c0ede10810f09"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">group_get_members </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$gid</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, and <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a90e157b3e1b99c981809cb5a2abd3245"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">group_rec_byhash </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hash</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4118f498bbd1530c1d0136d016d197a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">group_rmv </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a540e3ef36f47d47532646be4241f6518"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">group_rmv_member </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$member</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, and <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1042d74055bafe54a6a30103d87a7f17"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">group_side </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$every</em> = <code>&quot;contacts&quot;</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$each</em> = <code>&quot;group&quot;</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$edit</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$group_id</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$cid</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside()</a>, <a class="el" href="mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c">group_aside()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, and <a class="el" href="nogroup_8php.html#a099cb353bf62e8453069ce107b763212">nogroup_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afb802ae2ce73aae4bc36d157f7b6a92f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">groups_containing </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$c</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a048f6892bfd28852de1b76470df411de"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">member_of </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$c</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab4d9e5b59f48787cb01baae5dc6c381f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">mini_group_select </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$gid</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2group_8php.js b/doc/html/include_2group_8php.js
new file mode 100644
index 000000000..b4066a244
--- /dev/null
+++ b/doc/html/include_2group_8php.js
@@ -0,0 +1,15 @@
+var include_2group_8php =
+[
+ [ "expand_groups", "include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345", null ],
+ [ "group_add", "include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0", null ],
+ [ "group_add_member", "include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b", null ],
+ [ "group_byname", "include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb", null ],
+ [ "group_get_members", "include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09", null ],
+ [ "group_rec_byhash", "include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245", null ],
+ [ "group_rmv", "include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5", null ],
+ [ "group_rmv_member", "include_2group_8php.html#a540e3ef36f47d47532646be4241f6518", null ],
+ [ "group_side", "include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17", null ],
+ [ "groups_containing", "include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f", null ],
+ [ "member_of", "include_2group_8php.html#a048f6892bfd28852de1b76470df411de", null ],
+ [ "mini_group_select", "include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2message_8php.html b/doc/html/include_2message_8php.html
new file mode 100644
index 000000000..9fcd5d528
--- /dev/null
+++ b/doc/html/include_2message_8php.html
@@ -0,0 +1,316 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/message.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2message_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">message.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac382fdcdf990dcfa8f6528ab8fd280bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">send_message</a> ($uid=0, $recipient='', $body='', $subject='', $replyto='')</td></tr>
+<tr class="separator:ac382fdcdf990dcfa8f6528ab8fd280bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a652973ce47a262f2d238c2fd6233d97e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list</a> ($uid, $mailbox= '', $start=0, $numitems=0)</td></tr>
+<tr class="separator:a652973ce47a262f2d238c2fd6233d97e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a254a756031e4d5e94f85e2939bdb5091"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message</a> ($channel_id, $messageitem_id, $updateseen=false)</td></tr>
+<tr class="separator:a254a756031e4d5e94f85e2939bdb5091"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aed272d77c06a309e2836ac79e75613f1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1">private_messages_drop</a> ($channel_id, $messageitem_id, $drop_conversation=false)</td></tr>
+<tr class="separator:aed272d77c06a309e2836ac79e75613f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f8de9847e203329e317ac38dc646898"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation</a> ($channel_id, $messageitem_id, $updateseen=false)</td></tr>
+<tr class="separator:a5f8de9847e203329e317ac38dc646898"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aed272d77c06a309e2836ac79e75613f1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">private_messages_drop </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$messageitem_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$drop_conversation</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5f8de9847e203329e317ac38dc646898"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">private_messages_fetch_conversation </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$messageitem_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$updateseen</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a254a756031e4d5e94f85e2939bdb5091"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">private_messages_fetch_message </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$messageitem_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$updateseen</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a652973ce47a262f2d238c2fd6233d97e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">private_messages_list </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$mailbox</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$start</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$numitems</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac382fdcdf990dcfa8f6528ab8fd280bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">send_message </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$recipient</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$body</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$subject</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$replyto</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>When a photo was uploaded into the message using the (profile wall) ajax uploader, The permissions are initially set to disallow anybody but the owner from seeing it. This is because the permissions may not yet have been set for the post. If it's private, the photo permissions should be set appropriately. But we didn't know the final permissions on the post until now. So now we'll look for links of uploaded messages that are in the post and set them to the same permissions as the post itself.</p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, and <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2message_8php.js b/doc/html/include_2message_8php.js
new file mode 100644
index 000000000..ac91159ba
--- /dev/null
+++ b/doc/html/include_2message_8php.js
@@ -0,0 +1,8 @@
+var include_2message_8php =
+[
+ [ "private_messages_drop", "include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1", null ],
+ [ "private_messages_fetch_conversation", "include_2message_8php.html#a5f8de9847e203329e317ac38dc646898", null ],
+ [ "private_messages_fetch_message", "include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091", null ],
+ [ "private_messages_list", "include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e", null ],
+ [ "send_message", "include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2network_8php.html b/doc/html/include_2network_8php.html
new file mode 100644
index 000000000..1e2c69a68
--- /dev/null
+++ b/doc/html/include_2network_8php.html
@@ -0,0 +1,907 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/network.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2network_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">network.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a78e89557b2fbd344ad790846d761b0c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7">get_capath</a> ()</td></tr>
+<tr class="separator:a78e89557b2fbd344ad790846d761b0c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37ddeb88a3fd1dee9e8339723f9edf9a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a37ddeb88a3fd1dee9e8339723f9edf9a">fetch_url</a> ($url, $binary=false, &amp;$redirects=0, $timeout=0, $accept_content=Null)</td></tr>
+<tr class="separator:a37ddeb88a3fd1dee9e8339723f9edf9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa44d9e33a579d930e9e79c4ebb3d6b5e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#aa44d9e33a579d930e9e79c4ebb3d6b5e">post_url</a> ($url, $params, $headers=null, &amp;$redirects=0, $timeout=0)</td></tr>
+<tr class="separator:aa44d9e33a579d930e9e79c4ebb3d6b5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aafd06c0a75402aefb06cfb9f9740fa37"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url</a> ($url, $binary=false, $redirects=0, $opts=array())</td></tr>
+<tr class="separator:aafd06c0a75402aefb06cfb9f9740fa37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9129fd55e7fc175b4ea9a195cccc16bc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url</a> ($url, $params, $redirects=0, $opts=array())</td></tr>
+<tr class="separator:a9129fd55e7fc175b4ea9a195cccc16bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c5d50079e089168d9248427018fffd4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a4c5d50079e089168d9248427018fffd4">json_return_and_die</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="separator:a4c5d50079e089168d9248427018fffd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9e9da2aafb806c98ecdc318604e60dc6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6">xml_status</a> ($st, $message= '')</td></tr>
+<tr class="separator:a9e9da2aafb806c98ecdc318604e60dc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4cfb2c05a1c295317283d762440ce0b2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">http_status_exit</a> ($val, $msg= '')</td></tr>
+<tr class="separator:a4cfb2c05a1c295317283d762440ce0b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4056d3ce69988f5c1a997a79f503246"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#ad4056d3ce69988f5c1a997a79f503246">convert_xml_element_to_array</a> ($xml_element, &amp;$recursion_depth=0)</td></tr>
+<tr class="separator:ad4056d3ce69988f5c1a997a79f503246"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf6008b38c555e98e7ed10da9ede2335"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">webfinger_dfrn</a> ($s, &amp;$hcard)</td></tr>
+<tr class="separator:adf6008b38c555e98e7ed10da9ede2335"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8122356933bcd6b0a8567e8e15ae5cc5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5">webfinger</a> ($s, $debug=false)</td></tr>
+<tr class="separator:a8122356933bcd6b0a8567e8e15ae5cc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adbc7fe45cc7fd9cd78f6b2f425ee9041"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd</a> ($uri, $debug=false)</td></tr>
+<tr class="separator:adbc7fe45cc7fd9cd78f6b2f425ee9041"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d5a3afb51cc932032b5dcc159efaae0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0">fetch_lrdd_template</a> ($host)</td></tr>
+<tr class="separator:a8d5a3afb51cc932032b5dcc159efaae0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a850ed5307c6a18076f4b80addc99602d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links</a> ($url)</td></tr>
+<tr class="separator:a850ed5307c6a18076f4b80addc99602d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5caa264fab6d2b2344e6bd5b298b08f2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a5caa264fab6d2b2344e6bd5b298b08f2">validate_url</a> (&amp;$url)</td></tr>
+<tr class="separator:a5caa264fab6d2b2344e6bd5b298b08f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a897e7112d86eb95526cbd0bff9375f02"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02">validate_email</a> ($addr)</td></tr>
+<tr class="separator:a897e7112d86eb95526cbd0bff9375f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee35d9ad6b3f872bfb39ba3598936aa7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7">allowed_url</a> ($url)</td></tr>
+<tr class="separator:aee35d9ad6b3f872bfb39ba3598936aa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba38458a2ff2d92d3536488dbb119694"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694">allowed_email</a> ($email)</td></tr>
+<tr class="separator:aba38458a2ff2d92d3536488dbb119694"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab07ce9d75eae559865ed90aad2154bd7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img</a> ($email)</td></tr>
+<tr class="separator:ab07ce9d75eae559865ed90aad2154bd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27a951b59d8d622c0b3e7b0673ba74c6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">parse_xml_string</a> ($s, $strict=true)</td></tr>
+<tr class="separator:a27a951b59d8d622c0b3e7b0673ba74c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0bdc4b0bfc54797c249dc4eca25aeda4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a0bdc4b0bfc54797c249dc4eca25aeda4">add_fcontact</a> ($arr, $update=false)</td></tr>
+<tr class="separator:a0bdc4b0bfc54797c249dc4eca25aeda4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae8d9c41a11000fb8667039fc71b4f73f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images</a> ($s, $include_link=true, $scale_replace=false)</td></tr>
+<tr class="separator:ae8d9c41a11000fb8667039fc71b4f73f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2729d012410e470c527a62a3f777ded8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a2729d012410e470c527a62a3f777ded8">fix_contact_ssl_policy</a> (&amp;$contact, $new_policy)</td></tr>
+<tr class="separator:a2729d012410e470c527a62a3f777ded8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a99353baabbc3e0584b85eb79ee802cff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">xml2array</a> ($contents, $namespaces=true, $get_attributes=1, $priority= 'attribute')</td></tr>
+<tr class="separator:a99353baabbc3e0584b85eb79ee802cff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a540420ff3675a72cb781ef9a7e8c2cd9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a540420ff3675a72cb781ef9a7e8c2cd9">email_header_encode</a> ($in_str, $charset)</td></tr>
+<tr class="separator:a540420ff3675a72cb781ef9a7e8c2cd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1ff07d9fad93b713b93da0ab77aab7f0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0">email_send</a> ($addr, $subject, $headers, $item)</td></tr>
+<tr class="separator:a1ff07d9fad93b713b93da0ab77aab7f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a0bdc4b0bfc54797c249dc4eca25aeda4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">add_fcontact </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$update</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aba38458a2ff2d92d3536488dbb119694"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">allowed_email </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$email</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aee35d9ad6b3f872bfb39ba3598936aa7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">allowed_url </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab07ce9d75eae559865ed90aad2154bd7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">avatar_img </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$email</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad4056d3ce69988f5c1a997a79f503246"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">convert_xml_element_to_array </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xml_element</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$recursion_depth</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a540420ff3675a72cb781ef9a7e8c2cd9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">email_header_encode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$in_str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$charset</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, and <a class="el" href="classenotify.html#afbc088860f534c6c05788b48cfc262c6">enotify\send()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1ff07d9fad93b713b93da0ab77aab7f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">email_send </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$addr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$subject</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$headers</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8d5a3afb51cc932032b5dcc159efaae0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fetch_lrdd_template </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$host</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5">webfinger()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a37ddeb88a3fd1dee9e8339723f9edf9a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fetch_url </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$binary</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$redirects</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$timeout</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$accept_content</em> = <code>Null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>fetch_url is deprecated and being replaced by the more capable z_fetch_url please use that function instead. Once all occurrences of fetch_url are removed from the codebase we will remove this function and perhaps rename z_fetch_url back to fetch_url </p>
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind_content()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="include_2network_8php.html#aa44d9e33a579d930e9e79c4ebb3d6b5e">post_url()</a>, and <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a850ed5307c6a18076f4b80addc99602d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fetch_xrd_links </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0">fetch_lrdd_template()</a>, <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, and <a class="el" href="include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5">webfinger()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2729d012410e470c527a62a3f777ded8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fix_contact_ssl_policy </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$contact</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$new_policy</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a78e89557b2fbd344ad790846d761b0c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_capath </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2network_8php.html#a37ddeb88a3fd1dee9e8339723f9edf9a">fetch_url()</a>, <a class="el" href="include_2network_8php.html#aa44d9e33a579d930e9e79c4ebb3d6b5e">post_url()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, and <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4cfb2c05a1c295317283d762440ce0b2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">http_status_exit </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$val</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$msg</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>http_status_exit</p>
+<p>Send HTTP status header and exit </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$val</td><td>integer HTTP status result value </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$msg</td><td>optional message </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>(does not return, process is terminated) </dd></dl>
+
+<p>Referenced by <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, and <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4c5d50079e089168d9248427018fffd4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">json_return_and_die </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18">api_albums()</a>, <a class="el" href="include_2api_8php.html#a72bfecac1970bc29b853073e816388ff">api_channel_stream()</a>, <a class="el" href="include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53">api_export_basic()</a>, <a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api_photos()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adbc7fe45cc7fd9cd78f6b2f425ee9041"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">lrdd </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uri</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$debug</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, and <a class="el" href="webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3">webfinger_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a27a951b59d8d622c0b3e7b0673ba74c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">parse_xml_string </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$strict</em> = <code>true</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, and <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa44d9e33a579d930e9e79c4ebb3d6b5e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">post_url </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$params</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$headers</em> = <code>null</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$redirects</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$timeout</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, and <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae8d9c41a11000fb8667039fc71b4f73f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">scale_external_images </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$include_link</em> = <code>true</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$scale_replace</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6">diaspora2bb()</a>, and <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a897e7112d86eb95526cbd0bff9375f02"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">validate_email </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$addr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, and <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5caa264fab6d2b2344e6bd5b298b08f2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">validate_url </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$url</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8122356933bcd6b0a8567e8e15ae5cc5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">webfinger </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$debug</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, <a class="el" href="webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3">webfinger_content()</a>, and <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">webfinger_dfrn()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adf6008b38c555e98e7ed10da9ede2335"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">webfinger_dfrn </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$hcard</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a99353baabbc3e0584b85eb79ee802cff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xml2array </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$contents</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$namespaces</em> = <code>true</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$get_attributes</em> = <code>1</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$priority</em> = <code>'attribute'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p><a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">xml2array()</a> will convert the given XML text to an array in the XML structure. Link: <a href="http://www.bin-co.com/php/scripts/xml2array/">http://www.bin-co.com/php/scripts/xml2array/</a> Portions significantly re-written by <a href="#" onclick="location.href='mai'+'lto:'+'mik'+'e@'+'mac'+'gi'+'rvi'+'n.'+'com'; return false;">mike@<span style="display: none;">.nosp@m.</span>macg<span style="display: none;">.nosp@m.</span>irvin<span style="display: none;">.nosp@m.</span>.com</a> for <a class="el" href="namespaceFriendica.html">Friendica</a> (namespaces, lowercase tags, get_attribute default changed, more...) Arguments : $contents - The XML text $namespaces - true or false include namespace information in the returned array as array elements. $get_attributes - 1 or 0. If this is 1 the function will get the attributes as well as the tag values - this results in a different array structure in the return value. $priority - Can be 'tag' or 'attribute'. This will change the way the resulting array sturcture. For 'tag', the tags are given more importance. Return: The parsed XML in an array form. Use print_r() to see the resulting array structure. Examples: $array = xml2array(file_get_contents('feed.xml')); $array = xml2array(file_get_contents('feed.xml', true, 1, 'attribute')); </p>
+
+<p>Referenced by <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9e9da2aafb806c98ecdc318604e60dc6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xml_status </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$st</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$message</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aafd06c0a75402aefb06cfb9f9740fa37"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">z_fetch_url </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$binary</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$redirects</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$opts</em> = <code>array()</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>z_fetch_url </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$url</td><td>URL to fetch </td></tr>
+ <tr><td class="paramtype">boolean</td><td class="paramname">$binary</td><td>= false TRUE if asked to return binary results (file download) </td></tr>
+ <tr><td class="paramtype">int</td><td class="paramname">$redirects</td><td>= 0 internal use, recursion counter </td></tr>
+ <tr><td class="paramtype">array</td><td class="paramname">$opts</td><td>(optional parameters) 'accept_content' =&gt; supply Accept: header with 'accept_content' as the value 'timeout' =&gt; int seconds, default system config value or 60 seconds 'http_auth' =&gt; username:password 'novalidate' =&gt; do not validate SSL certs, default is to validate using our CA list</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>array 'return_code' =&gt; HTTP return code or 0 if timeout or failure 'success' =&gt; boolean true (if HTTP 2xx result) or false 'header' =&gt; HTTP headers 'body' =&gt; fetched content </dd></dl>
+
+<p>Referenced by <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="parse__url_8php.html#a25635549f2c22955d72465f4d2e58993">parseurl_getsiteinfo()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, <a class="el" href="zot_8php.html#a77720d6b59894e9b609af89c310c8a4d">zot_finger()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9129fd55e7fc175b4ea9a195cccc16bc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">z_post_url </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$params</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$redirects</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$opts</em> = <code>array()</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a77720d6b59894e9b609af89c310c8a4d">zot_finger()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142">zot_zot()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2network_8php.js b/doc/html/include_2network_8php.js
new file mode 100644
index 000000000..aa37991b7
--- /dev/null
+++ b/doc/html/include_2network_8php.js
@@ -0,0 +1,29 @@
+var include_2network_8php =
+[
+ [ "add_fcontact", "include_2network_8php.html#a0bdc4b0bfc54797c249dc4eca25aeda4", null ],
+ [ "allowed_email", "include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694", null ],
+ [ "allowed_url", "include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7", null ],
+ [ "avatar_img", "include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7", null ],
+ [ "convert_xml_element_to_array", "include_2network_8php.html#ad4056d3ce69988f5c1a997a79f503246", null ],
+ [ "email_header_encode", "include_2network_8php.html#a540420ff3675a72cb781ef9a7e8c2cd9", null ],
+ [ "email_send", "include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0", null ],
+ [ "fetch_lrdd_template", "include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0", null ],
+ [ "fetch_url", "include_2network_8php.html#a37ddeb88a3fd1dee9e8339723f9edf9a", null ],
+ [ "fetch_xrd_links", "include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d", null ],
+ [ "fix_contact_ssl_policy", "include_2network_8php.html#a2729d012410e470c527a62a3f777ded8", null ],
+ [ "get_capath", "include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7", null ],
+ [ "http_status_exit", "include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2", null ],
+ [ "json_return_and_die", "include_2network_8php.html#a4c5d50079e089168d9248427018fffd4", null ],
+ [ "lrdd", "include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041", null ],
+ [ "parse_xml_string", "include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6", null ],
+ [ "post_url", "include_2network_8php.html#aa44d9e33a579d930e9e79c4ebb3d6b5e", null ],
+ [ "scale_external_images", "include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f", null ],
+ [ "validate_email", "include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02", null ],
+ [ "validate_url", "include_2network_8php.html#a5caa264fab6d2b2344e6bd5b298b08f2", null ],
+ [ "webfinger", "include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5", null ],
+ [ "webfinger_dfrn", "include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335", null ],
+ [ "xml2array", "include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff", null ],
+ [ "xml_status", "include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6", null ],
+ [ "z_fetch_url", "include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37", null ],
+ [ "z_post_url", "include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2notify_8php.html b/doc/html/include_2notify_8php.html
new file mode 100644
index 000000000..8f9feff11
--- /dev/null
+++ b/doc/html/include_2notify_8php.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/notify.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2notify_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">notify.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a0e61728e487df50c72e6434f911a57d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification</a> ($item)</td></tr>
+<tr class="separator:a0e61728e487df50c72e6434f911a57d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a0e61728e487df50c72e6434f911a57d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">format_notification </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2notify_8php.js b/doc/html/include_2notify_8php.js
new file mode 100644
index 000000000..7e82eaf72
--- /dev/null
+++ b/doc/html/include_2notify_8php.js
@@ -0,0 +1,4 @@
+var include_2notify_8php =
+[
+ [ "format_notification", "include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2oembed_8php.html b/doc/html/include_2oembed_8php.html
new file mode 100644
index 000000000..e3beaa1d9
--- /dev/null
+++ b/doc/html/include_2oembed_8php.html
@@ -0,0 +1,306 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/oembed.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2oembed_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">oembed.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a00c4c80deffd9daf8dc97b58d4c64ed0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0">oembed_replacecb</a> ($matches)</td></tr>
+<tr class="separator:a00c4c80deffd9daf8dc97b58d4c64ed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a98549b9af8140eda3eceaeedcaabc2c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url</a> ($embedurl)</td></tr>
+<tr class="separator:a98549b9af8140eda3eceaeedcaabc2c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26bb4c1e330d2f94ea7b6ce2fe970cf3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object</a> ($j)</td></tr>
+<tr class="separator:a26bb4c1e330d2f94ea7b6ce2fe970cf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9e57f3e36a0a0a47e6db79544b701d9a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe</a> ($src, $width, $height)</td></tr>
+<tr class="separator:a9e57f3e36a0a0a47e6db79544b701d9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba89ae64b355efcb4f706553d3edb6a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2">oembed_bbcode2html</a> ($text)</td></tr>
+<tr class="separator:aba89ae64b355efcb4f706553d3edb6a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab953a6e7c11bc6498ce01ed73e2ba319"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2oembed_8php.html#ab953a6e7c11bc6498ce01ed73e2ba319">oe_build_xpath</a> ($attr, $value)</td></tr>
+<tr class="separator:ab953a6e7c11bc6498ce01ed73e2ba319"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03fa3b7832c98a3d0b4630afeb73d487"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2oembed_8php.html#a03fa3b7832c98a3d0b4630afeb73d487">oe_get_inner_html</a> ($node)</td></tr>
+<tr class="separator:a03fa3b7832c98a3d0b4630afeb73d487"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a000a62b97113cf95b0e9e00412168172"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2oembed_8php.html#a000a62b97113cf95b0e9e00412168172">oembed_html2bbcode</a> ($text)</td></tr>
+<tr class="separator:a000a62b97113cf95b0e9e00412168172"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ab953a6e7c11bc6498ce01ed73e2ba319"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">oe_build_xpath </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$attr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, and <a class="el" href="include_2oembed_8php.html#a000a62b97113cf95b0e9e00412168172">oembed_html2bbcode()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a03fa3b7832c98a3d0b4630afeb73d487"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">oe_get_inner_html </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$node</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2oembed_8php.html#a000a62b97113cf95b0e9e00412168172">oembed_html2bbcode()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aba89ae64b355efcb4f706553d3edb6a2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">oembed_bbcode2html </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$text</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a98549b9af8140eda3eceaeedcaabc2c2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">oembed_fetch_url </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$embedurl</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0">oembed_replacecb()</a>, and <a class="el" href="bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7">tryoembed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a26bb4c1e330d2f94ea7b6ce2fe970cf3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">oembed_format_object </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$j</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0">oembed_replacecb()</a>, and <a class="el" href="bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7">tryoembed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a000a62b97113cf95b0e9e00412168172"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">oembed_html2bbcode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$text</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Find <span class="oembed">..<a href="url" rel="oembed">..</a></span> and replace it with [embed]url[/embed] </p>
+
+<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, and <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9e57f3e36a0a0a47e6db79544b701d9a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">oembed_iframe </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$src</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$width</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$height</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a00c4c80deffd9daf8dc97b58d4c64ed0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">oembed_replacecb </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$matches</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2oembed_8php.js b/doc/html/include_2oembed_8php.js
new file mode 100644
index 000000000..5f1e16330
--- /dev/null
+++ b/doc/html/include_2oembed_8php.js
@@ -0,0 +1,11 @@
+var include_2oembed_8php =
+[
+ [ "oe_build_xpath", "include_2oembed_8php.html#ab953a6e7c11bc6498ce01ed73e2ba319", null ],
+ [ "oe_get_inner_html", "include_2oembed_8php.html#a03fa3b7832c98a3d0b4630afeb73d487", null ],
+ [ "oembed_bbcode2html", "include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2", null ],
+ [ "oembed_fetch_url", "include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2", null ],
+ [ "oembed_format_object", "include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3", null ],
+ [ "oembed_html2bbcode", "include_2oembed_8php.html#a000a62b97113cf95b0e9e00412168172", null ],
+ [ "oembed_iframe", "include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a", null ],
+ [ "oembed_replacecb", "include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2photos_8php.html b/doc/html/include_2photos_8php.html
new file mode 100644
index 000000000..927fa57bf
--- /dev/null
+++ b/doc/html/include_2photos_8php.html
@@ -0,0 +1,403 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/photos.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2photos_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">photos.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a6c40ef58aefef705a5adc84a40e97109"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload</a> ($channel, $observer, $args)</td></tr>
+<tr class="separator:a6c40ef58aefef705a5adc84a40e97109"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedccaf18282b26899d9549c29bd9d1b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list</a> ($channel, $observer)</td></tr>
+<tr class="separator:aedccaf18282b26899d9549c29bd9d1b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af24c6aeed28ecc31ec39e7d9a1804979"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget</a> ($channelx, $observer, $albums=null)</td></tr>
+<tr class="separator:af24c6aeed28ecc31ec39e7d9a1804979"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa27b9e435dcc34e1009f56dc02c7ca51"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos</a> ($channel, $observer, $album= '')</td></tr>
+<tr class="separator:aa27b9e435dcc34e1009f56dc02c7ca51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e8b7be99e24c2497bc2cb3339280c35"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35">photos_album_exists</a> ($channel_id, $album)</td></tr>
+<tr class="separator:a8e8b7be99e24c2497bc2cb3339280c35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0365f25b22ccea5f085fe7c49e1f4ab"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab">photos_album_rename</a> ($channel_id, $oldname, $newname)</td></tr>
+<tr class="separator:ab0365f25b22ccea5f085fe7c49e1f4ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e7abc69872180697c5471dc69349afe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos_album_get_db_idstr</a> ($channel_id, $album, $remote_xchan= '')</td></tr>
+<tr class="separator:a7e7abc69872180697c5471dc69349afe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad648c0c5544fe9263409b6f6e57c6274"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item</a> ($channel, $creator_hash, $photo, $visible=false)</td></tr>
+<tr class="separator:ad648c0c5544fe9263409b6f6e57c6274"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a6c40ef58aefef705a5adc84a40e97109"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_upload </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$args</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Determine the album to use</p>
+<p>We create a wall item for every photo, but we don't want to overwhelm the data stream with a hundred newly uploaded photos. So we will make the first photo uploaded to this album in the last several hours visible by default, the rest will become visible over time when and if they acquire comments, likes, dislikes, and/or tags</p>
+
+<p>Referenced by <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8e8b7be99e24c2497bc2cb3339280c35"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photos_album_exists </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$album</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7e7abc69872180697c5471dc69349afe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photos_album_get_db_idstr </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$album</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$remote_xchan</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab0365f25b22ccea5f085fe7c49e1f4ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photos_album_rename </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$oldname</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$newname</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af24c6aeed28ecc31ec39e7d9a1804979"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photos_album_widget </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channelx</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$albums</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aedccaf18282b26899d9549c29bd9d1b9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photos_albums_list </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18">api_albums()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, and <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad648c0c5544fe9263409b6f6e57c6274"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photos_create_item </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$creator_hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$photo</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$visible</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa27b9e435dcc34e1009f56dc02c7ca51"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photos_list_photos </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$album</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api_photos()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2photos_8php.js b/doc/html/include_2photos_8php.js
new file mode 100644
index 000000000..f96bfc915
--- /dev/null
+++ b/doc/html/include_2photos_8php.js
@@ -0,0 +1,11 @@
+var include_2photos_8php =
+[
+ [ "photo_upload", "include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109", null ],
+ [ "photos_album_exists", "include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35", null ],
+ [ "photos_album_get_db_idstr", "include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe", null ],
+ [ "photos_album_rename", "include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab", null ],
+ [ "photos_album_widget", "include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979", null ],
+ [ "photos_albums_list", "include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9", null ],
+ [ "photos_create_item", "include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274", null ],
+ [ "photos_list_photos", "include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2settings_8php.html b/doc/html/include_2settings_8php.html
new file mode 100644
index 000000000..c938f95cf
--- /dev/null
+++ b/doc/html/include_2settings_8php.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/settings.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2settings_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">settings.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac34e479d27f32b82dd6b33542f81a6a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2settings_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet</a> ($uid=0, $packet=null)</td></tr>
+<tr class="separator:ac34e479d27f32b82dd6b33542f81a6a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ac34e479d27f32b82dd6b33542f81a6a7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">build_sync_packet </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$packet</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Send a zot packet to all hubs where this channel is duplicated, refreshing such things as personal settings, channel permissions, address book updates, etc. </p>
+
+<p>Referenced by <a class="el" href="connections_8php.html#a15af118efee9c948b6f8294e54a73bb2">connections_clone()</a>, and <a class="el" href="mod_2settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2settings_8php.js b/doc/html/include_2settings_8php.js
new file mode 100644
index 000000000..9bca76f88
--- /dev/null
+++ b/doc/html/include_2settings_8php.js
@@ -0,0 +1,4 @@
+var include_2settings_8php =
+[
+ [ "build_sync_packet", "include_2settings_8php.html#ac34e479d27f32b82dd6b33542f81a6a7", null ]
+]; \ No newline at end of file
diff --git a/doc/html/index.html b/doc/html/index.html
new file mode 100644
index 000000000..472a884df
--- /dev/null
+++ b/doc/html/index.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Main Page</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('index.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">The Red Matrix Documentation</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/interfaceITemplateEngine-members.html b/doc/html/interfaceITemplateEngine-members.html
new file mode 100644
index 000000000..600dfad9c
--- /dev/null
+++ b/doc/html/interfaceITemplateEngine-members.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('interfaceITemplateEngine.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">ITemplateEngine Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interfaceITemplateEngine.html">ITemplateEngine</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442">get_markup_template</a>($file, $root='')</td><td class="entry"><a class="el" href="interfaceITemplateEngine.html">ITemplateEngine</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243">replace_macros</a>($s, $v)</td><td class="entry"><a class="el" href="interfaceITemplateEngine.html">ITemplateEngine</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/interfaceITemplateEngine.html b/doc/html/interfaceITemplateEngine.html
new file mode 100644
index 000000000..45e1f031a
--- /dev/null
+++ b/doc/html/interfaceITemplateEngine.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: ITemplateEngine Interface Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('interfaceITemplateEngine.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="interfaceITemplateEngine-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">ITemplateEngine Interface Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for ITemplateEngine:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="interfaceITemplateEngine.png" usemap="#ITemplateEngine_map" alt=""/>
+ <map id="ITemplateEngine_map" name="ITemplateEngine_map">
+<area href="classFriendicaSmartyEngine.html" alt="FriendicaSmartyEngine" shape="rect" coords="0,56,144,80"/>
+<area href="classTemplate.html" alt="Template" shape="rect" coords="154,56,298,80"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aaa7381c8becc3d1c1790b53988a0f243"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243">replace_macros</a> ($s, $v)</td></tr>
+<tr class="separator:aaa7381c8becc3d1c1790b53988a0f243"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf2698adbf46c073c24b162fe1b1c442"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442">get_markup_template</a> ($file, $root='')</td></tr>
+<tr class="separator:aaf2698adbf46c073c24b162fe1b1c442"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Interface for template engines </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aaf2698adbf46c073c24b162fe1b1c442"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ITemplateEngine::get_markup_template </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$file</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$root</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Implemented in <a class="el" href="classTemplate.html#afd97b4b1e7754a550e67c0ea79159059">Template</a>, and <a class="el" href="classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88">FriendicaSmartyEngine</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaa7381c8becc3d1c1790b53988a0f243"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ITemplateEngine::replace_macros </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$v</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Implemented in <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">Template</a>, and <a class="el" href="classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2">FriendicaSmartyEngine</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this interface was generated from the following file:<ul>
+<li>include/<a class="el" href="ITemplateEngine_8php.html">ITemplateEngine.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/interfaceITemplateEngine.js b/doc/html/interfaceITemplateEngine.js
new file mode 100644
index 000000000..b6e108520
--- /dev/null
+++ b/doc/html/interfaceITemplateEngine.js
@@ -0,0 +1,5 @@
+var interfaceITemplateEngine =
+[
+ [ "get_markup_template", "interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442", null ],
+ [ "replace_macros", "interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243", null ]
+]; \ No newline at end of file
diff --git a/doc/html/interfaceITemplateEngine.png b/doc/html/interfaceITemplateEngine.png
new file mode 100644
index 000000000..f61b50d22
--- /dev/null
+++ b/doc/html/interfaceITemplateEngine.png
Binary files differ
diff --git a/doc/html/intro_8php.html b/doc/html/intro_8php.html
new file mode 100644
index 000000000..28ca22cc8
--- /dev/null
+++ b/doc/html/intro_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/intro.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('intro_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">intro.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af3681062183ccbdf065ae2647b07d6f1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post</a> (&amp;$a)</td></tr>
+<tr class="separator:af3681062183ccbdf065ae2647b07d6f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc3abf25da64f98f215126eb08c7936b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="intro_8php.html#abc3abf25da64f98f215126eb08c7936b">intro_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:abc3abf25da64f98f215126eb08c7936b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e2a523697633ddb4517b9266a515f5b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a3e2a523697633ddb4517b9266a515f5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="abc3abf25da64f98f215126eb08c7936b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">intro_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3e2a523697633ddb4517b9266a515f5b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">intro_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af3681062183ccbdf065ae2647b07d6f1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">intro_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/intro_8php.js b/doc/html/intro_8php.js
new file mode 100644
index 000000000..f93a2dcdc
--- /dev/null
+++ b/doc/html/intro_8php.js
@@ -0,0 +1,6 @@
+var intro_8php =
+[
+ [ "intro_aside", "intro_8php.html#abc3abf25da64f98f215126eb08c7936b", null ],
+ [ "intro_content", "intro_8php.html#a3e2a523697633ddb4517b9266a515f5b", null ],
+ [ "intro_post", "intro_8php.html#af3681062183ccbdf065ae2647b07d6f1", null ]
+]; \ No newline at end of file
diff --git a/doc/html/invite_8php.html b/doc/html/invite_8php.html
new file mode 100644
index 000000000..5e25bdd3d
--- /dev/null
+++ b/doc/html/invite_8php.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/invite.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('invite_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">invite.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aeb0881c0f93c8e8552e5ed756ce6e5a5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post</a> (&amp;$a)</td></tr>
+<tr class="separator:aeb0881c0f93c8e8552e5ed756ce6e5a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a244385b28cfd021d308715f01158bfd9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a244385b28cfd021d308715f01158bfd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a244385b28cfd021d308715f01158bfd9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">invite_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeb0881c0f93c8e8552e5ed756ce6e5a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">invite_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>module: <a class="el" href="invite_8php.html">invite.php</a></p>
+<p>send email invitations to join social network </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/invite_8php.js b/doc/html/invite_8php.js
new file mode 100644
index 000000000..35604353d
--- /dev/null
+++ b/doc/html/invite_8php.js
@@ -0,0 +1,5 @@
+var invite_8php =
+[
+ [ "invite_content", "invite_8php.html#a244385b28cfd021d308715f01158bfd9", null ],
+ [ "invite_post", "invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5", null ]
+]; \ No newline at end of file
diff --git a/doc/html/iquery_8php.html b/doc/html/iquery_8php.html
new file mode 100644
index 000000000..f508cdcf3
--- /dev/null
+++ b/doc/html/iquery_8php.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: include/iquery.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('iquery_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">iquery.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aa41c07bf856eb8b386430cc53d80d4ac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="iquery_8php.html#aa41c07bf856eb8b386430cc53d80d4ac">network_query</a> ($a, $arr)</td></tr>
+<tr class="separator:aa41c07bf856eb8b386430cc53d80d4ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa41c07bf856eb8b386430cc53d80d4ac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">network_query </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/iquery_8php.js b/doc/html/iquery_8php.js
new file mode 100644
index 000000000..d56bfffa6
--- /dev/null
+++ b/doc/html/iquery_8php.js
@@ -0,0 +1,4 @@
+var iquery_8php =
+[
+ [ "network_query", "iquery_8php.html#aa41c07bf856eb8b386430cc53d80d4ac", null ]
+]; \ No newline at end of file
diff --git a/doc/html/item_8php.html b/doc/html/item_8php.html
new file mode 100644
index 000000000..899bbda68
--- /dev/null
+++ b/doc/html/item_8php.html
@@ -0,0 +1,349 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/item.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('item_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">item.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a693cd09805755ab85bbb5ecae69a48c3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a693cd09805755ab85bbb5ecae69a48c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a764bbb2e9a885a86fb23d0b5e4a09221"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a764bbb2e9a885a86fb23d0b5e4a09221"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0e603a6696051af16476eb968d52e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag</a> ($a, &amp;$body, &amp;$inform, &amp;$str_tags, $profile_uid, $tag)</td></tr>
+<tr class="separator:abd0e603a6696051af16476eb968d52e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b63a9d0cd02096e17dcf11f4afa7c10"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions</a> ($uid, $xchan_hash, $body, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny)</td></tr>
+<tr class="separator:a7b63a9d0cd02096e17dcf11f4afa7c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3daae7944f737bd30412a0d042207c0f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="item_8php.html#a3daae7944f737bd30412a0d042207c0f">fix_attached_file_permissions</a> ($channel, $observer_hash, $body, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny)</td></tr>
+<tr class="separator:a3daae7944f737bd30412a0d042207c0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a3daae7944f737bd30412a0d042207c0f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fix_attached_file_permissions </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer_hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$body</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str_contact_allow</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str_group_allow</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str_contact_deny</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str_group_deny</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7b63a9d0cd02096e17dcf11f4afa7c10"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fix_attached_photo_permissions </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan_hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$body</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str_contact_allow</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str_group_allow</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str_contact_deny</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str_group_deny</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abd0e603a6696051af16476eb968d52e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">handle_tag </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$body</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$inform</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$str_tags</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$profile_uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$tag</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>This function removes the tag $tag from the text $body and replaces it with the appropiate link.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">unknown_type</td><td class="paramname">$body</td><td>the text to replace the tag in </td></tr>
+ <tr><td class="paramtype">unknown_type</td><td class="paramname">$inform</td><td>a comma-seperated string containing everybody to inform </td></tr>
+ <tr><td class="paramtype">unknown_type</td><td class="paramname">$str_tags</td><td>string to add the tag to </td></tr>
+ <tr><td class="paramtype">unknown_type</td><td class="paramname">$profile_uid</td><td></td></tr>
+ <tr><td class="paramtype">unknown_type</td><td class="paramname">$tag</td><td>the tag to replace</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>boolean true if replaced, false if not replaced </dd></dl>
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a764bbb2e9a885a86fb23d0b5e4a09221"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">item_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a693cd09805755ab85bbb5ecae69a48c3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">item_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>This is the POST destination for most all locally posted text stuff. This function handles status, wall-to-wall status, local comments, and remote coments that are posted on this site (as opposed to being delivered in a feed). Also processed here are posts and comments coming through the statusnet/twitter API. All of these become an "item" which is our basic unit of information. Posts that originate externally or do not fall into the above posting categories go through <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a> instead of this function. </p>
+<p>Is this a reply to something?</p>
+<p>fix naked links by passing through a callback to see if this is a red site (already known to us) which will get a zrl, otherwise link with url</p>
+<p>When a photo was uploaded into the message using the (profile wall) ajax uploader, The permissions are initially set to disallow anybody but the owner from seeing it. This is because the permissions may not yet have been set for the post. If it's private, the photo permissions should be set appropriately. But we didn't know the final permissions on the post until now. So now we'll look for links of uploaded messages that are in the post and set them to the same permissions as the post itself.</p>
+<p>Fold multi-line [code] sequences</p>
+<p>Look for any tags and linkify them</p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, and <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/item_8php.js b/doc/html/item_8php.js
new file mode 100644
index 000000000..39c3eba5f
--- /dev/null
+++ b/doc/html/item_8php.js
@@ -0,0 +1,8 @@
+var item_8php =
+[
+ [ "fix_attached_file_permissions", "item_8php.html#a3daae7944f737bd30412a0d042207c0f", null ],
+ [ "fix_attached_photo_permissions", "item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10", null ],
+ [ "handle_tag", "item_8php.html#abd0e603a6696051af16476eb968d52e7", null ],
+ [ "item_content", "item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221", null ],
+ [ "item_post", "item_8php.html#a693cd09805755ab85bbb5ecae69a48c3", null ]
+]; \ No newline at end of file
diff --git a/doc/html/items_8php.html b/doc/html/items_8php.html
new file mode 100644
index 000000000..6cf7dae20
--- /dev/null
+++ b/doc/html/items_8php.html
@@ -0,0 +1,1764 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/items.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('items_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">items.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a01e3cf44e082fa9bd06dcde5bf713d70"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients</a> ($item, &amp;$private)</td></tr>
+<tr class="separator:a01e3cf44e082fa9bd06dcde5bf713d70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e75047cf175aaee8dd16aa761913ff9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a1e75047cf175aaee8dd16aa761913ff9">can_comment_on_post</a> ($observer_xchan, $item)</td></tr>
+<tr class="separator:a1e75047cf175aaee8dd16aa761913ff9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e6d7639431e0dd8e9f4dba8e1ac408b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">red_zrl_callback</a> ($matches)</td></tr>
+<tr class="separator:a4e6d7639431e0dd8e9f4dba8e1ac408b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a410f9c743877c125ca06312373346903"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item</a> ($arr)</td></tr>
+<tr class="separator:a410f9c743877c125ca06312373346903"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a079e099e15d88d47aeb6ca6d60da7107"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed</a> ($channel, $params)</td></tr>
+<tr class="separator:a079e099e15d88d47aeb6ca6d60da7107"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a04a35b610acfe54434df08adec39c0c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for</a> ($channel, $observer_hash, $params)</td></tr>
+<tr class="separator:a04a35b610acfe54434df08adec39c0c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f3c85c584ccd2b98c3ca440e45b40f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8">construct_verb</a> ($item)</td></tr>
+<tr class="separator:a8f3c85c584ccd2b98c3ca440e45b40f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa9e99613d38a97b39c8cf5449699c2ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee">construct_activity_object</a> ($item)</td></tr>
+<tr class="separator:aa9e99613d38a97b39c8cf5449699c2ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa579bc4445d60098b1410961ca8e96b7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aa579bc4445d60098b1410961ca8e96b7">construct_activity_target</a> ($item)</td></tr>
+<tr class="separator:aa579bc4445d60098b1410961ca8e96b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af94c281016c6c912d06e064113336c5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#af94c281016c6c912d06e064113336c5c">limit_body_size</a> ($body)</td></tr>
+<tr class="separator:af94c281016c6c912d06e064113336c5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa371905f0a211b307cb3f7188c6cba04"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aa371905f0a211b307cb3f7188c6cba04">title_is_body</a> ($title, $body)</td></tr>
+<tr class="separator:aa371905f0a211b307cb3f7188c6cba04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a536d0313b6ffe33b9d2490c4e25c5361"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="separator:a536d0313b6ffe33b9d2490c4e25c5361"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae73794179b62d39bb597ff670ab1c1e5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="separator:ae73794179b62d39bb597ff670ab1c1e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a82955cc578f0fa600acec84475026194"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item</a> ($item)</td></tr>
+<tr class="separator:a82955cc578f0fa600acec84475026194"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1fcf621dce7370515b420a7753f4726"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ac1fcf621dce7370515b420a7753f4726">map_scope</a> ($scope)</td></tr>
+<tr class="separator:ac1fcf621dce7370515b420a7753f4726"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a566c601726697e044e75284af7fb6f17"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a566c601726697e044e75284af7fb6f17">encode_item_xchan</a> ($xchan)</td></tr>
+<tr class="separator:a566c601726697e044e75284af7fb6f17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6673627d289ee4f547de0fe3b7acd0a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms</a> ($terms)</td></tr>
+<tr class="separator:ac6673627d289ee4f547de0fe3b7acd0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad34827ed330898456783fb14c7b46154"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ad34827ed330898456783fb14c7b46154">termtype</a> ($<a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t</a>)</td></tr>
+<tr class="separator:ad34827ed330898456783fb14c7b46154"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56b2a4abcadfac71175cd50555528cc3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags</a> ($<a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t</a>)</td></tr>
+<tr class="separator:a56b2a4abcadfac71175cd50555528cc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36e656667193c83aa2cc03a024fc131b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a36e656667193c83aa2cc03a024fc131b">activity_sanitise</a> ($arr)</td></tr>
+<tr class="separator:a36e656667193c83aa2cc03a024fc131b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf7a1b73eb352d79acd36309b0dababd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#abf7a1b73eb352d79acd36309b0dababd">array_sanitise</a> ($arr)</td></tr>
+<tr class="separator:abf7a1b73eb352d79acd36309b0dababd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f690fc2484abec07840b4f9dd525bd9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a5f690fc2484abec07840b4f9dd525bd9">encode_item_flags</a> ($item)</td></tr>
+<tr class="separator:a5f690fc2484abec07840b4f9dd525bd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d840c74ed23d1b6c7daee05cf89dda7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail</a> ($item)</td></tr>
+<tr class="separator:a2d840c74ed23d1b6c7daee05cf89dda7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94ddb1d6c8fa21dd7433677e85168037"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="separator:a94ddb1d6c8fa21dd7433677e85168037"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a251343637ff40a50cca93452cd530c26"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="separator:a251343637ff40a50cca93452cd530c26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a896c1809d58f2d7a42cfe14577958ddf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements</a> ($feed, $item)</td></tr>
+<tr class="separator:a896c1809d58f2d7a42cfe14577958ddf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa723c0571e314a1853a24c5854b4f54f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aa723c0571e314a1853a24c5854b4f54f">encode_rel_links</a> ($links)</td></tr>
+<tr class="separator:aa723c0571e314a1853a24c5854b4f54f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ef003b2bc2dc4816bdcf5800aec1049"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store</a> ($arr, $force_parent=false)</td></tr>
+<tr class="separator:a8ef003b2bc2dc4816bdcf5800aec1049"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2dc4fb9347f6fb804da4f32c107afb53"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update</a> ($arr, $force_parent=false)</td></tr>
+<tr class="separator:a2dc4fb9347f6fb804da4f32c107afb53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab9e0c58247427126de0699c729c3b6c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications</a> ($post_id, $item)</td></tr>
+<tr class="separator:aab9e0c58247427126de0699c729c3b6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab9c6bae4c40799867596bdaae9829fd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aab9c6bae4c40799867596bdaae9829fd">get_item_contact</a> ($item, $contacts)</td></tr>
+<tr class="separator:aab9c6bae4c40799867596bdaae9829fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1bce4261bcf75ad62753b498a144d17"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver</a> ($uid, $item_id)</td></tr>
+<tr class="separator:ab1bce4261bcf75ad62753b498a144d17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88c6cf7649ac836fbbed82a7a0315110"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check</a> ($uid, $item)</td></tr>
+<tr class="separator:a88c6cf7649ac836fbbed82a7a0315110"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77da7ce9a117601d49ac4a67c71b514f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store</a> ($arr)</td></tr>
+<tr class="separator:a77da7ce9a117601d49ac4a67c71b514f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8395d189a36abfa0dfff81a2b0e70669"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver</a> ($owner, $contact, $atom, $dissolve=false)</td></tr>
+<tr class="separator:a8395d189a36abfa0dfff81a2b0e70669"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8794863cdf8ce1333040933d3a3f66bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed</a> ($xml, $importer, &amp;$contact, &amp;$hub, $datedir=0, $pass=0)</td></tr>
+<tr class="separator:a8794863cdf8ce1333040933d3a3f66bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1c27d1a6379231ac7c0435c8a791d45"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery</a> ($importer, $data)</td></tr>
+<tr class="separator:ae1c27d1a6379231ac7c0435c8a791d45"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a53eb3d27e1c55083be93a32f392d54e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower</a> ($importer, $contact, $datarray, $item, $sharing=false)</td></tr>
+<tr class="separator:a53eb3d27e1c55083be93a32f392d54e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade53043e7bc5ab9cc9ef1e4fed6569d4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ade53043e7bc5ab9cc9ef1e4fed6569d4">lose_follower</a> ($importer, $contact, $datarray, $item)</td></tr>
+<tr class="separator:ade53043e7bc5ab9cc9ef1e4fed6569d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a218d5e8ffbe261f773225ecded86a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a3a218d5e8ffbe261f773225ecded86a2">lose_sharer</a> ($importer, $contact, $datarray, $item)</td></tr>
+<tr class="separator:a3a218d5e8ffbe261f773225ecded86a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a016dd86c827d08db89061ea81d15c6cb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a016dd86c827d08db89061ea81d15c6cb">atom_author</a> ($tag, $name, $uri, $h, $w, $type, $photo)</td></tr>
+<tr class="separator:a016dd86c827d08db89061ea81d15c6cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a275108c050f7eb18bcbb5018e6b81cf6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry</a> ($item, $type, $author, $owner, $comment=false, $cid=0)</td></tr>
+<tr class="separator:a275108c050f7eb18bcbb5018e6b81cf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba98fcbbcd7044a7e9ea34edabc14c87"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos</a> ($s, $uid, $item=null, $cid=0)</td></tr>
+<tr class="separator:aba98fcbbcd7044a7e9ea34edabc14c87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77051724d1784074ff187e73a4db93fe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a77051724d1784074ff187e73a4db93fe">has_permissions</a> ($obj)</td></tr>
+<tr class="separator:a77051724d1784074ff187e73a4db93fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0790a4550b829e85504af548623002ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a0790a4550b829e85504af548623002ca">compare_permissions</a> ($obj1, $obj2)</td></tr>
+<tr class="separator:a0790a4550b829e85504af548623002ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afbcf26dfcf8a83fff952aa858c1b7b67"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67">enumerate_permissions</a> ($obj)</td></tr>
+<tr class="separator:afbcf26dfcf8a83fff952aa858c1b7b67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a649dc3e53ed794d0ead4b5d037f8d8d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7">item_getfeedtags</a> ($item)</td></tr>
+<tr class="separator:a649dc3e53ed794d0ead4b5d037f8d8d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09d425596b9f8663472cf7474ad36d96"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a09d425596b9f8663472cf7474ad36d96">item_getfeedattach</a> ($item)</td></tr>
+<tr class="separator:a09d425596b9f8663472cf7474ad36d96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f7e1334af5d684a987fa6a3eb37f4cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire</a> ($uid, $days)</td></tr>
+<tr class="separator:a6f7e1334af5d684a987fa6a3eb37f4cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a668ece2c37f05cc3abe538eb0dabfe55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items</a> ($items)</td></tr>
+<tr class="separator:a668ece2c37f05cc3abe538eb0dabfe55"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa1db13c2a8b73b5b17b97f17e5a19d1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item</a> ($id, $interactive=true)</td></tr>
+<tr class="separator:afa1db13c2a8b73b5b17b97f17e5a19d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b56a4c01bd22a648d52ec9af1a04259"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel</a> ($item)</td></tr>
+<tr class="separator:a2b56a4c01bd22a648d52ec9af1a04259"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0cf98bb619f07dd18f602683a55a5f59"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date</a> ($uid, $wall=false)</td></tr>
+<tr class="separator:a0cf98bb619f07dd18f602683a55a5f59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2abb4644ff1f20fefbc80326fe01cf0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates</a> ($uid, $wall)</td></tr>
+<tr class="separator:ad2abb4644ff1f20fefbc80326fe01cf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe695dd89e1e10ed042c26b80114f0ed"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget</a> ($url, $uid, $wall)</td></tr>
+<tr class="separator:abe695dd89e1e10ed042c26b80114f0ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf980098b6de9c3993bc3ff26a8dd6f9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags</a> ($items, $link=false)</td></tr>
+<tr class="separator:adf980098b6de9c3993bc3ff26a8dd6f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a004e89d86b0f29b2c4da20108ecc4091"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed</a> ($uid, $observer_xchan, $mindate)</td></tr>
+<tr class="separator:a004e89d86b0f29b2c4da20108ecc4091"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a756738301f2ed96be50232500677d58a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch</a> ($arr, $channel=null, $observer_hash=null, $client_mode=<a class="el" href="boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731">CLIENT_MODE_NORMAL</a>, $module= 'network')</td></tr>
+<tr class="separator:a756738301f2ed96be50232500677d58a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a36e656667193c83aa2cc03a024fc131b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">activity_sanitise </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, and <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abf7a1b73eb352d79acd36309b0dababd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">array_sanitise </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a016dd86c827d08db89061ea81d15c6cb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">atom_author </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$tag</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uri</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$h</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$w</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$photo</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a275108c050f7eb18bcbb5018e6b81cf6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">atom_entry </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$author</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$owner</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$comment</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$cid</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1e75047cf175aaee8dd16aa761913ff9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">can_comment_on_post </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer_xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a01e3cf44e082fa9bd06dcde5bf713d70"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">collect_recipients </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$private</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0790a4550b829e85504af548623002ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">compare_permissions </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$obj1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$obj2</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa9e99613d38a97b39c8cf5449699c2ee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">construct_activity_object </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa579bc4445d60098b1410961ca8e96b7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">construct_activity_target </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8f3c85c584ccd2b98c3ca440e45b40f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">construct_verb </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8794863cdf8ce1333040933d3a3f66bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">consume_feed </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xml</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$importer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$contact</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$hub</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$datedir</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pass</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>consume_feed - process atom feed and update anything/everything we might need to update</p>
+<p>$xml = the (atom) feed to consume - RSS isn't as fully supported but may work for simple feeds.</p>
+<p>$importer = the contact_record (joined to user_record) of the local user who owns this relationship. It is this person's stuff that is going to be updated. $contact = the person who is sending us stuff. If not set, we MAY be processing a "follow" activity from an external network and MAY create an appropriate contact record. Otherwise, we MUST have a contact record. $hub = should we find a hub declation in the feed, pass it back to our calling process, who might (or might not) try and subscribe to it. $datedir sorts in reverse order $pass - by default ($pass = 0) we cannot guarantee that a parent item has been imported prior to its children being seen in the stream unless we are certain of how the feed is arranged/ordered. With $pass = 1, we only pull parent items out of the stream. With $pass = 2, we only pull children (comments/likes).</p>
+<p>So running this twice, first with pass 1 and then with pass 2 will do the right thing regardless of feed ordering. This won't be adequate in a fully-threaded model where comments can have sub-threads. That would require some massive sorting to get all the feed items into a mostly linear ordering, and might still require recursion. </p>
+<p>Add new birthday event for this person</p>
+<p>$bdtext is just a readable placeholder in case the event is shared with others. We will replace it during presentation to our $importer to contain a sparkle link and perhaps a photo.</p>
+
+</div>
+</div>
+<a class="anchor" id="a56b2a4abcadfac71175cd50555528cc3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">decode_tags </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$t</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2b56a4c01bd22a648d52ec9af1a04259"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">delete_item_lowlevel </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8395d189a36abfa0dfff81a2b0e70669"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dfrn_deliver </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$owner</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$contact</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$atom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dissolve</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">terminate_friendship()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afa1db13c2a8b73b5b17b97f17e5a19d1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">drop_item </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$interactive</em> = <code>true</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a668ece2c37f05cc3abe538eb0dabfe55"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">drop_items </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$items</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a82955cc578f0fa600acec84475026194"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">encode_item </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5f690fc2484abec07840b4f9dd525bd9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">encode_item_flags </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac6673627d289ee4f547de0fe3b7acd0a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">encode_item_terms </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$terms</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a566c601726697e044e75284af7fb6f17"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">encode_item_xchan </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, and <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2d840c74ed23d1b6c7daee05cf89dda7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">encode_mail </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa723c0571e314a1853a24c5854b4f54f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">encode_rel_links </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$links</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afbcf26dfcf8a83fff952aa858c1b7b67"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enumerate_permissions </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$obj</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a0790a4550b829e85504af548623002ca">compare_permissions()</a>, and <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adf980098b6de9c3993bc3ff26a8dd6f9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fetch_post_tags </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$items</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$link</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0cf98bb619f07dd18f602683a55a5f59"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">first_post_date </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$wall</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aba98fcbbcd7044a7e9ea34edabc14c87"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fix_private_photos </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em> = <code>null</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$cid</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a896c1809d58f2d7a42cfe14577958ddf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_atom_elements </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$feed</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>If there's a copy of the body content which is guaranteed to have survived mangling in transit, use it.</p>
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, and <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a04a35b610acfe54434df08adec39c0c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_feed_for </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer_hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$params</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aab9c6bae4c40799867596bdaae9829fd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_item_contact </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$contacts</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a536d0313b6ffe33b9d2490c4e25c5361"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_item_elements </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a94ddb1d6c8fa21dd7433677e85168037"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_mail_elements </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a251343637ff40a50cca93452cd530c26"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_profile_elements </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a079e099e15d88d47aeb6ca6d60da7107"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_public_feed </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$params</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a77051724d1784074ff187e73a4db93fe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">has_permissions </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$obj</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae73794179b62d39bb597ff670ab1c1e5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">import_author_xchan </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, and <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6f7e1334af5d684a987fa6a3eb37f4cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">item_expire </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$days</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a09d425596b9f8663472cf7474ad36d96"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">item_getfeedattach </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a649dc3e53ed794d0ead4b5d037f8d8d7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">item_getfeedtags </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8ef003b2bc2dc4816bdcf5800aec1049"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">item_store </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$force_parent</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, and <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2dc4fb9347f6fb804da4f32c107afb53"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">item_store_update </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$force_parent</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">update_imported_item()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a756738301f2ed96be50232500677d58a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">items_fetch </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em> = <code>null</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer_hash</em> = <code>null</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$client_mode</em> = <code><a class="el" href="boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731">CLIENT_MODE_NORMAL</a></code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$module</em> = <code>'network'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af94c281016c6c912d06e064113336c5c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">limit_body_size </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$body</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae1c27d1a6379231ac7c0435c8a791d45"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">local_delivery </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$importer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ade53043e7bc5ab9cc9ef1e4fed6569d4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">lose_follower </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$importer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$contact</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$datarray</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3a218d5e8ffbe261f773225ecded86a2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">lose_sharer </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$importer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$contact</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$datarray</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a77da7ce9a117601d49ac4a67c71b514f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">mail_store </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac1fcf621dce7370515b420a7753f4726"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">map_scope </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$scope</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, and <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a53eb3d27e1c55083be93a32f392d54e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">new_follower </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$importer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$contact</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$datarray</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sharing</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a410f9c743877c125ca06312373346903"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">post_activity_item </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>post_activity_item($arr) </p>
+<pre class="fragment">post an activity
+</pre><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">array</td><td class="paramname">$arr</td><td>In its simplest form one needs only to set $arr['body'] to post a note to the logged in channel's wall. Much more complex activities can be created. Permissions are checked. No filtering, tag expansion or other processing is performed.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>array 'success' =&gt; true or false 'activity' =&gt; the resulting activity if successful </dd></dl>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a72bfecac1970bc29b853073e816388ff">api_channel_stream()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abe695dd89e1e10ed042c26b80114f0ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">posted_date_widget </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$wall</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, and <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad2abb4644ff1f20fefbc80326fe01cf0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">posted_dates </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$wall</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4e6d7639431e0dd8e9f4dba8e1ac408b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">red_zrl_callback </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$matches</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>red_zrl_callback preg_match function when fixing 'naked' links in mod <a class="el" href="item_8php.html">item.php</a> Check if we've got a hubloc for the site and use a zrl if we do, a url if we don't. </p>
+
+</div>
+</div>
+<a class="anchor" id="aab9e0c58247427126de0699c729c3b6c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">send_status_notifications </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$post_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, and <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab1bce4261bcf75ad62753b498a144d17"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tag_deliver </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_id</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, and <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad34827ed330898456783fb14c7b46154"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">termtype </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$t</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a88c6cf7649ac836fbbed82a7a0315110"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tgroup_check </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, and <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa371905f0a211b307cb3f7188c6cba04"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">title_is_body </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$title</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$body</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a004e89d86b0f29b2c4da20108ecc4091"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_feed </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer_xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$mindate</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/items_8php.js b/doc/html/items_8php.js
new file mode 100644
index 000000000..f68d04926
--- /dev/null
+++ b/doc/html/items_8php.js
@@ -0,0 +1,61 @@
+var items_8php =
+[
+ [ "activity_sanitise", "items_8php.html#a36e656667193c83aa2cc03a024fc131b", null ],
+ [ "array_sanitise", "items_8php.html#abf7a1b73eb352d79acd36309b0dababd", null ],
+ [ "atom_author", "items_8php.html#a016dd86c827d08db89061ea81d15c6cb", null ],
+ [ "atom_entry", "items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6", null ],
+ [ "can_comment_on_post", "items_8php.html#a1e75047cf175aaee8dd16aa761913ff9", null ],
+ [ "collect_recipients", "items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70", null ],
+ [ "compare_permissions", "items_8php.html#a0790a4550b829e85504af548623002ca", null ],
+ [ "construct_activity_object", "items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee", null ],
+ [ "construct_activity_target", "items_8php.html#aa579bc4445d60098b1410961ca8e96b7", null ],
+ [ "construct_verb", "items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8", null ],
+ [ "consume_feed", "items_8php.html#a8794863cdf8ce1333040933d3a3f66bd", null ],
+ [ "decode_tags", "items_8php.html#a56b2a4abcadfac71175cd50555528cc3", null ],
+ [ "delete_item_lowlevel", "items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259", null ],
+ [ "dfrn_deliver", "items_8php.html#a8395d189a36abfa0dfff81a2b0e70669", null ],
+ [ "drop_item", "items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1", null ],
+ [ "drop_items", "items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55", null ],
+ [ "encode_item", "items_8php.html#a82955cc578f0fa600acec84475026194", null ],
+ [ "encode_item_flags", "items_8php.html#a5f690fc2484abec07840b4f9dd525bd9", null ],
+ [ "encode_item_terms", "items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a", null ],
+ [ "encode_item_xchan", "items_8php.html#a566c601726697e044e75284af7fb6f17", null ],
+ [ "encode_mail", "items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7", null ],
+ [ "encode_rel_links", "items_8php.html#aa723c0571e314a1853a24c5854b4f54f", null ],
+ [ "enumerate_permissions", "items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67", null ],
+ [ "fetch_post_tags", "items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9", null ],
+ [ "first_post_date", "items_8php.html#a0cf98bb619f07dd18f602683a55a5f59", null ],
+ [ "fix_private_photos", "items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87", null ],
+ [ "get_atom_elements", "items_8php.html#a896c1809d58f2d7a42cfe14577958ddf", null ],
+ [ "get_feed_for", "items_8php.html#a04a35b610acfe54434df08adec39c0c7", null ],
+ [ "get_item_contact", "items_8php.html#aab9c6bae4c40799867596bdaae9829fd", null ],
+ [ "get_item_elements", "items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361", null ],
+ [ "get_mail_elements", "items_8php.html#a94ddb1d6c8fa21dd7433677e85168037", null ],
+ [ "get_profile_elements", "items_8php.html#a251343637ff40a50cca93452cd530c26", null ],
+ [ "get_public_feed", "items_8php.html#a079e099e15d88d47aeb6ca6d60da7107", null ],
+ [ "has_permissions", "items_8php.html#a77051724d1784074ff187e73a4db93fe", null ],
+ [ "import_author_xchan", "items_8php.html#ae73794179b62d39bb597ff670ab1c1e5", null ],
+ [ "item_expire", "items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc", null ],
+ [ "item_getfeedattach", "items_8php.html#a09d425596b9f8663472cf7474ad36d96", null ],
+ [ "item_getfeedtags", "items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7", null ],
+ [ "item_store", "items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049", null ],
+ [ "item_store_update", "items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53", null ],
+ [ "items_fetch", "items_8php.html#a756738301f2ed96be50232500677d58a", null ],
+ [ "limit_body_size", "items_8php.html#af94c281016c6c912d06e064113336c5c", null ],
+ [ "local_delivery", "items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45", null ],
+ [ "lose_follower", "items_8php.html#ade53043e7bc5ab9cc9ef1e4fed6569d4", null ],
+ [ "lose_sharer", "items_8php.html#a3a218d5e8ffbe261f773225ecded86a2", null ],
+ [ "mail_store", "items_8php.html#a77da7ce9a117601d49ac4a67c71b514f", null ],
+ [ "map_scope", "items_8php.html#ac1fcf621dce7370515b420a7753f4726", null ],
+ [ "new_follower", "items_8php.html#a53eb3d27e1c55083be93a32f392d54e7", null ],
+ [ "post_activity_item", "items_8php.html#a410f9c743877c125ca06312373346903", null ],
+ [ "posted_date_widget", "items_8php.html#abe695dd89e1e10ed042c26b80114f0ed", null ],
+ [ "posted_dates", "items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0", null ],
+ [ "red_zrl_callback", "items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b", null ],
+ [ "send_status_notifications", "items_8php.html#aab9e0c58247427126de0699c729c3b6c", null ],
+ [ "tag_deliver", "items_8php.html#ab1bce4261bcf75ad62753b498a144d17", null ],
+ [ "termtype", "items_8php.html#ad34827ed330898456783fb14c7b46154", null ],
+ [ "tgroup_check", "items_8php.html#a88c6cf7649ac836fbbed82a7a0315110", null ],
+ [ "title_is_body", "items_8php.html#aa371905f0a211b307cb3f7188c6cba04", null ],
+ [ "zot_feed", "items_8php.html#a004e89d86b0f29b2c4da20108ecc4091", null ]
+]; \ No newline at end of file
diff --git a/doc/html/jquery.js b/doc/html/jquery.js
new file mode 100644
index 000000000..78ad0bdff
--- /dev/null
+++ b/doc/html/jquery.js
@@ -0,0 +1,77 @@
+/*! jQuery v1.7.1 jquery.com | jquery.org/license */
+(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function()
+{g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
+f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d
+&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),
+f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
+{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c)
+{if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
+/*!
+ * jQuery UI 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(a,b){function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;if(!b.href||!g||f.nodeName.toLowerCase()!=="map")return!1;h=a("img[usemap=#"+g+"]")[0];return!!h&&d(h)}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}a.ui=a.ui||{};a.ui.version||(a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)});return c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){if(c===b)return g["inner"+d].call(this);return this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){if(typeof b!="number")return g["outer"+d].call(this,b);return this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e<d.length;e++)a.options[d[e][0]]&&d[e][1].apply(a.element,c)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(b,c){if(a(b).css("overflow")==="hidden")return!1;var d=c&&c==="left"?"scrollLeft":"scrollTop",e=!1;if(b[d]>0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a<b+c},isOver:function(b,c,d,e,f,g){return a.ui.isOverAxis(b,d,f)&&a.ui.isOverAxis(c,e,g)}}))})(jQuery);
+/*!
+ * jQuery UI Widget 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(a,b){if(a.cleanData){var c=a.cleanData;a.cleanData=function(b){for(var d=0,e;(e=b[d])!=null;d++)try{a(e).triggerHandler("remove")}catch(f){}c(b)}}else{var d=a.fn.remove;a.fn.remove=function(b,c){return this.each(function(){c||(!b||a.filter(b,[this]).length)&&a("*",this).add([this]).each(function(){try{a(this).triggerHandler("remove")}catch(b){}});return d.call(a(this),b,c)})}}a.widget=function(b,c,d){var e=b.split(".")[0],f;b=b.split(".")[1],f=e+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][f]=function(c){return!!a.data(c,b)},a[e]=a[e]||{},a[e][b]=function(a,b){arguments.length&&this._createWidget(a,b)};var g=new c;g.options=a.extend(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])},a.widget.bridge=function(c,d){a.fn[c]=function(e){var f=typeof e=="string",g=Array.prototype.slice.call(arguments,1),h=this;e=!f&&g.length?a.extend.apply(null,[!0,e].concat(g)):e;if(f&&e.charAt(0)==="_")return h;f?this.each(function(){var d=a.data(this,c),f=d&&a.isFunction(d[e])?d[e].apply(d,g):d;if(f!==d&&f!==b){h=f;return!1}}):this.each(function(){var b=a.data(this,c);b?b.option(e||{})._init():a.data(this,c,new d(e,this))});return h}},a.Widget=function(a,b){arguments.length&&this._createWidget(a,b)},a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:!1},_createWidget:function(b,c){a.data(c,this.widgetName,this),this.element=a(c),this.options=a.extend(!0,{},this.options,this._getCreateOptions(),b);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()}),this._create(),this._trigger("create"),this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName),this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+"ui-state-disabled")},widget:function(){return this.element},option:function(c,d){var e=c;if(arguments.length===0)return a.extend({},this.options);if(typeof c=="string"){if(d===b)return this.options[c];e={},e[c]=d}this._setOptions(e);return this},_setOptions:function(b){var c=this;a.each(b,function(a,b){c._setOption(a,b)});return this},_setOption:function(a,b){this.options[a]=b,a==="disabled"&&this.widget()[b?"addClass":"removeClass"](this.widgetBaseClass+"-disabled"+" "+"ui-state-disabled").attr("aria-disabled",b);return this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_trigger:function(b,c,d){var e,f,g=this.options[b];d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent;if(f)for(e in f)e in c||(c[e]=f[e]);this.element.trigger(c,d);return!(a.isFunction(g)&&g.call(this.element[0],c,d)===!1||c.isDefaultPrevented())}}})(jQuery);
+/*!
+ * jQuery UI Mouse 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ * jquery.ui.widget.js
+ */
+(function(a,b){var c=!1;a(document).mouseup(function(a){c=!1}),a.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).bind("click."+this.widgetName,function(c){if(!0===a.data(c.target,b.widgetName+".preventClickEvent")){a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation();return!1}}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(b){if(!c){this._mouseStarted&&this._mouseUp(b),this._mouseDownEvent=b;var d=this,e=b.which==1,f=typeof this.options.cancel=="string"&&b.target.nodeName?a(b.target).closest(this.options.cancel).length:!1;if(!e||f||!this._mouseCapture(b))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){d.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=this._mouseStart(b)!==!1;if(!this._mouseStarted){b.preventDefault();return!0}}!0===a.data(b.target,this.widgetName+".preventClickEvent")&&a.removeData(b.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return d._mouseMove(a)},this._mouseUpDelegate=function(a){return d._mouseUp(a)},a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),b.preventDefault(),c=!0;return!0}},_mouseMove:function(b){if(a.browser.msie&&!(document.documentMode>=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);
+/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizables
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.mouse.js
+ * jquery.ui.widget.js
+ */
+(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e<d.length;e++){var f=a.trim(d[e]),g="ui-resizable-"+f,h=a('<div class="ui-resizable-handle '+g+'"></div>');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),e<h.maxWidth&&(h.maxWidth=e),g<h.maxHeight&&(h.maxHeight=g);this._vBoundaries=h},_updateCache:function(a){var b=this.options;this.offset=this.helper.offset(),d(a.left)&&(this.position.left=a.left),d(a.top)&&(this.position.top=a.top),d(a.height)&&(this.size.height=a.height),d(a.width)&&(this.size.width=a.width)},_updateRatio:function(a,b){var c=this.options,e=this.position,f=this.size,g=this.axis;d(a.height)?a.width=a.height*this.aspectRatio:d(a.width)&&(a.height=a.width/this.aspectRatio),g=="sw"&&(a.left=e.left+(f.width-a.width),a.top=null),g=="nw"&&(a.top=e.top+(f.height-a.height),a.left=e.left+(f.width-a.width));return a},_respectSize:function(a,b){var c=this.helper,e=this._vBoundaries,f=this._aspectRatio||b.shiftKey,g=this.axis,h=d(a.width)&&e.maxWidth&&e.maxWidth<a.width,i=d(a.height)&&e.maxHeight&&e.maxHeight<a.height,j=d(a.width)&&e.minWidth&&e.minWidth>a.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d<this._proportionallyResizeElements.length;d++){var e=this._proportionallyResizeElements[d];if(!this.borderDif){var f=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],g=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];this.borderDif=a.map(f,function(a,b){var c=parseInt(a,10)||0,d=parseInt(g[b],10)||0;return c+d})}if(a.browser.msie&&(!!a(c).is(":hidden")||!!a(c).parents(":hidden").length))continue;e.css({height:c.height()-this.borderDif[0]-this.borderDif[2]||0,width:c.width()-this.borderDif[1]-this.borderDif[3]||0})}}},_renderProxy:function(){var b=this.element,c=this.options;this.elementOffset=b.offset();if(this._helper){this.helper=this.helper||a('<div style="overflow:hidden;"></div>');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.18"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p
+&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);
+/*
+ * jQuery hashchange event - v1.3 - 7/21/2010
+ * http://benalman.com/projects/jquery-hashchange-plugin/
+ *
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);
+/**
+ * jQuery.ScrollTo - Easy element scrolling using jQuery.
+ * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
+ * Dual licensed under MIT and GPL.
+ * Date: 5/25/2009
+ * @author Ariel Flesler
+ * @version 1.4.2
+ *
+ * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
+ */
+;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
diff --git a/doc/html/language_8php.html b/doc/html/language_8php.html
new file mode 100644
index 000000000..c048fe064
--- /dev/null
+++ b/doc/html/language_8php.html
@@ -0,0 +1,323 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/language.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('language_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">language.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ace67d6cad57da08d030ad9dc9b8c836e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e">get_browser_language</a> ()</td></tr>
+<tr class="separator:ace67d6cad57da08d030ad9dc9b8c836e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a980dee1d8715a98ab02e36b59facf8ed"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#a980dee1d8715a98ab02e36b59facf8ed">get_best_language</a> ()</td></tr>
+<tr class="separator:a980dee1d8715a98ab02e36b59facf8ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9142ef1d01a235c760deb0f16643f5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#ac9142ef1d01a235c760deb0f16643f5a">push_lang</a> ($language)</td></tr>
+<tr class="separator:ac9142ef1d01a235c760deb0f16643f5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78bd204955ec4cc3a9ac651285a1689d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#a78bd204955ec4cc3a9ac651285a1689d">pop_lang</a> ()</td></tr>
+<tr class="separator:a78bd204955ec4cc3a9ac651285a1689d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e9904c730bb24ddcb0ff50fc96f6b05"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05">load_translation_table</a> ($lang, $install=false)</td></tr>
+<tr class="separator:a7e9904c730bb24ddcb0ff50fc96f6b05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae0c3638fb476ae1e31f8d242f5dac04"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t</a> ($s)</td></tr>
+<tr class="separator:aae0c3638fb476ae1e31f8d242f5dac04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae310fb3880484ee1cc4faefe0c63c06d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt</a> ($singular, $plural, $count)</td></tr>
+<tr class="separator:ae310fb3880484ee1cc4faefe0c63c06d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a151e5b4689aef86a12642cbb7a00bfe0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0">string_plural_select_default</a> ($<a class="el" href="php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b">n</a>)</td></tr>
+<tr class="separator:a151e5b4689aef86a12642cbb7a00bfe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a632da17c7ac0d2dc1a00a4706870194b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language</a> ($s)</td></tr>
+<tr class="separator:a632da17c7ac0d2dc1a00a4706870194b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a632da17c7ac0d2dc1a00a4706870194b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">detect_language </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, and <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a980dee1d8715a98ab02e36b59facf8ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_best_language </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ace67d6cad57da08d030ad9dc9b8c836e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_browser_language </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>translation support</p>
+<p>Get the language setting directly from system variables, bypassing <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config()</a> as database may not yet be configured.</p>
+<p>If possible, we use the value from the browser. </p>
+
+<p>Referenced by <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, and <a class="el" href="language_8php.html#a980dee1d8715a98ab02e36b59facf8ed">get_best_language()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7e9904c730bb24ddcb0ff50fc96f6b05"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">load_translation_table </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$lang</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$install</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="language_8php.html#ac9142ef1d01a235c760deb0f16643f5a">push_lang()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a78bd204955ec4cc3a9ac651285a1689d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">pop_lang </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, and <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac9142ef1d01a235c760deb0f16643f5a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">push_lang </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$language</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, and <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a151e5b4689aef86a12642cbb7a00bfe0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">string_plural_select_default </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$n</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aae0c3638fb476ae1e31f8d242f5dac04"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">t </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="bbcode_8php.html#a52c45273fbb7ce5ec27094f7936856e1">bb_ShareAttributes()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="security_8php.html#a20f8b9851f23ee8894b8925584ef6821">check_form_security_std_err_msg()</a>, <a class="el" href="setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e">check_funcs()</a>, <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f">check_htconfig()</a>, <a class="el" href="setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76">check_keys()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="setup_8php.html#afd8b0b3ade1507c45325caf377bf459d">check_smarty3()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f">contact_poll_interval()</a>, <a class="el" href="contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53">contact_reputation()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa">datesel_format()</a>, <a class="el" href="text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63">day_translate()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind_content()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">format_event_html()</a>, <a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">format_like()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355">gender_selector()</a>, <a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">get_features()</a>, <a class="el" href="text_8php.html#a736db13a966b8abaf8c9198faa35911a">get_mood_verbs()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="text_8php.html#a05b7f26dc2df78681f57eeade53040c6">get_plink()</a>, <a class="el" href="text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66">get_poke_verbs()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0">group_add()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">dba_driver\install()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e">item_post_type()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="setup_8php.html#abe405d227ba7232971964a706d4f3bce">manual_config()</a>, <a class="el" href="profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798">marital_selector()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message_aside()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f">mini_group_select()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, <a class="el" href="nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30">nogroup_content()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs()</a>, <a class="el" href="include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2">oembed_bbcode2html()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">paginate()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="acl__selectors_8php.html#a51f2ec7a143d5a5b38e35efd5f3d6e2c">populate_acl()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">profile_tabs()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef">rmagic_content()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search_saved_searches()</a>, <a class="el" href="datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f">select_timezone()</a>, <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7">sexpref_selector()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="taxonomy_8php.html#abdb698bc6921429df6d697f6c5dec96f">tagblock()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865">timezone_cmp()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1">update_community_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d">upgrade_bool_message()</a>, <a class="el" href="plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040">upgrade_link()</a>, <a class="el" href="plugin_8php.html#a901657dd078e070516cf97285e0bada7">upgrade_message()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</a>, <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">what_next()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae310fb3880484ee1cc4faefe0c63c06d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tt </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$singular</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$plural</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$count</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, and <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/language_8php.js b/doc/html/language_8php.js
new file mode 100644
index 000000000..ed2266957
--- /dev/null
+++ b/doc/html/language_8php.js
@@ -0,0 +1,12 @@
+var language_8php =
+[
+ [ "detect_language", "language_8php.html#a632da17c7ac0d2dc1a00a4706870194b", null ],
+ [ "get_best_language", "language_8php.html#a980dee1d8715a98ab02e36b59facf8ed", null ],
+ [ "get_browser_language", "language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e", null ],
+ [ "load_translation_table", "language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05", null ],
+ [ "pop_lang", "language_8php.html#a78bd204955ec4cc3a9ac651285a1689d", null ],
+ [ "push_lang", "language_8php.html#ac9142ef1d01a235c760deb0f16643f5a", null ],
+ [ "string_plural_select_default", "language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0", null ],
+ [ "t", "language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04", null ],
+ [ "tt", "language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d", null ]
+]; \ No newline at end of file
diff --git a/doc/html/like_8php.html b/doc/html/like_8php.html
new file mode 100644
index 000000000..c21ee8815
--- /dev/null
+++ b/doc/html/like_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/like.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('like_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">like.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a9d7dd268f21c21e9d29dd2aca2dd9538"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a9d7dd268f21c21e9d29dd2aca2dd9538"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a9d7dd268f21c21e9d29dd2aca2dd9538"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">like_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/like_8php.js b/doc/html/like_8php.js
new file mode 100644
index 000000000..9706955e1
--- /dev/null
+++ b/doc/html/like_8php.js
@@ -0,0 +1,4 @@
+var like_8php =
+[
+ [ "like_content", "like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538", null ]
+]; \ No newline at end of file
diff --git a/doc/html/lockview_8php.html b/doc/html/lockview_8php.html
new file mode 100644
index 000000000..7db48f0d0
--- /dev/null
+++ b/doc/html/lockview_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/lockview.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('lockview_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">lockview.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a851e26ab9a1008df5c5ebebea31e9b44"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a851e26ab9a1008df5c5ebebea31e9b44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a851e26ab9a1008df5c5ebebea31e9b44"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">lockview_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/lockview_8php.js b/doc/html/lockview_8php.js
new file mode 100644
index 000000000..7a5d6a5a8
--- /dev/null
+++ b/doc/html/lockview_8php.js
@@ -0,0 +1,4 @@
+var lockview_8php =
+[
+ [ "lockview_content", "lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44", null ]
+]; \ No newline at end of file
diff --git a/doc/html/login_8php.html b/doc/html/login_8php.html
new file mode 100644
index 000000000..b26bfc750
--- /dev/null
+++ b/doc/html/login_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/login.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('login_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">login.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a1d69ca88eb9005a7026e128b9a645904"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a1d69ca88eb9005a7026e128b9a645904"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a1d69ca88eb9005a7026e128b9a645904"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">login_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/login_8php.js b/doc/html/login_8php.js
new file mode 100644
index 000000000..7acaf7886
--- /dev/null
+++ b/doc/html/login_8php.js
@@ -0,0 +1,4 @@
+var login_8php =
+[
+ [ "login_content", "login_8php.html#a1d69ca88eb9005a7026e128b9a645904", null ]
+]; \ No newline at end of file
diff --git a/doc/html/lostpass_8php.html b/doc/html/lostpass_8php.html
new file mode 100644
index 000000000..f8c12deda
--- /dev/null
+++ b/doc/html/lostpass_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/lostpass.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('lostpass_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">lostpass.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a8ed35ba71a4404eaf4903da61d0321cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a8ed35ba71a4404eaf4903da61d0321cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0314d94e48c789b1b3a201d740c9eab3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a0314d94e48c789b1b3a201d740c9eab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a0314d94e48c789b1b3a201d740c9eab3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">lostpass_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8ed35ba71a4404eaf4903da61d0321cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">lostpass_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/lostpass_8php.js b/doc/html/lostpass_8php.js
new file mode 100644
index 000000000..a6f1eb8ff
--- /dev/null
+++ b/doc/html/lostpass_8php.js
@@ -0,0 +1,5 @@
+var lostpass_8php =
+[
+ [ "lostpass_content", "lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3", null ],
+ [ "lostpass_post", "lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc", null ]
+]; \ No newline at end of file
diff --git a/doc/html/magic_8php.html b/doc/html/magic_8php.html
new file mode 100644
index 000000000..79231f66f
--- /dev/null
+++ b/doc/html/magic_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/magic.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('magic_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">magic.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:acea2cc792849ca2d71d4b689f66518bf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init</a> (&amp;$a)</td></tr>
+<tr class="separator:acea2cc792849ca2d71d4b689f66518bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="acea2cc792849ca2d71d4b689f66518bf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">magic_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/magic_8php.js b/doc/html/magic_8php.js
new file mode 100644
index 000000000..331687144
--- /dev/null
+++ b/doc/html/magic_8php.js
@@ -0,0 +1,4 @@
+var magic_8php =
+[
+ [ "magic_init", "magic_8php.html#acea2cc792849ca2d71d4b689f66518bf", null ]
+]; \ No newline at end of file
diff --git a/doc/html/manage_8php.html b/doc/html/manage_8php.html
new file mode 100644
index 000000000..b64321642
--- /dev/null
+++ b/doc/html/manage_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/manage.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('manage_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">manage.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a2bca247b5296827638959138367db4f5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a2bca247b5296827638959138367db4f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a2bca247b5296827638959138367db4f5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">manage_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/manage_8php.js b/doc/html/manage_8php.js
new file mode 100644
index 000000000..222f22c2a
--- /dev/null
+++ b/doc/html/manage_8php.js
@@ -0,0 +1,4 @@
+var manage_8php =
+[
+ [ "manage_content", "manage_8php.html#a2bca247b5296827638959138367db4f5", null ]
+]; \ No newline at end of file
diff --git a/doc/html/match_8php.html b/doc/html/match_8php.html
new file mode 100644
index 000000000..576b896bc
--- /dev/null
+++ b/doc/html/match_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/match.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('match_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">match.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a1dd853e959b9e70c1911bb2fb5f5130d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a1dd853e959b9e70c1911bb2fb5f5130d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a1dd853e959b9e70c1911bb2fb5f5130d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">match_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/match_8php.js b/doc/html/match_8php.js
new file mode 100644
index 000000000..2634e9eaa
--- /dev/null
+++ b/doc/html/match_8php.js
@@ -0,0 +1,4 @@
+var match_8php =
+[
+ [ "match_content", "match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d", null ]
+]; \ No newline at end of file
diff --git a/doc/html/md_README.html b/doc/html/md_README.html
new file mode 100644
index 000000000..c1c4efb72
--- /dev/null
+++ b/doc/html/md_README.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Redstrap theme</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('md_README.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Redstrap theme </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h2>Licensing</h2>
+<p>This theme is intended to work with <a class="el" href="namespaceFriendica.html">Friendica</a> Red (MIT license). It's based on Twitter's Bootstrap (Apache license).</p>
+<p>Redstrap itself is currently under the MIT license.</p>
+<h2>Status</h2>
+<p>It's a work in progress. Most basic aspects should be working, but it lacks quite a bit of polish here and there. It's expected to work on Red's latest git.</p>
+<h2>Installation</h2>
+<p>The 'redstrap' should be cloned into Red's /view/theme/ directory as "redstrap". </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/md_config.html b/doc/html/md_config.html
new file mode 100644
index 000000000..466f0200d
--- /dev/null
+++ b/doc/html/md_config.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: CLI config utility</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('md_config.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">CLI config utility </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Usage:</p>
+<p>config displays all config entries</p>
+<p>config family displays all config entries for family (system, database, etc)</p>
+<p>config family key displays single config entry for specified family and key</p>
+<p>config family key value set config entry for specified family and key to value and display result</p>
+<p>Notes: Setting config entries which are manually set in .htconfig.php may result in conflict between database settings and the manual startup settings. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/md_fresh.html b/doc/html/md_fresh.html
new file mode 100644
index 000000000..710177107
--- /dev/null
+++ b/doc/html/md_fresh.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Fresh - The Freaking REd Shell</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('md_fresh.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Fresh - The Freaking REd Shell </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>This will only work on Unix/Linux. If the readline module is installed, we will use that for input, otherwise we will just read from stdin and write to stdout.</p>
+<p>Commands are processed sequentially until the command "exit", "quit", or end of file is reached.</p>
+<p>Commands:</p>
+<ul>
+<li>version Report current fresh version</li>
+</ul>
+<ul>
+<li>login email_address Prompts for a password, and authenticates email_address as the current user.</li>
+</ul>
+<ul>
+<li>finger channel_address performs a lookup of channel_address and reports the result.</li>
+</ul>
+<ul>
+<li>channel channel_nickname switches the current channel to the channel with nickname specified.</li>
+</ul>
+<ul>
+<li>conn [id1 id2 ...] With no arguments lists all connections of the current channel, with an id. If IDs are provided the connections details of each will be displayed. </li>
+</ul>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/minimal_8php.html b/doc/html/minimal_8php.html
new file mode 100644
index 000000000..410c086ff
--- /dev/null
+++ b/doc/html/minimal_8php.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/php/minimal.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('minimal_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">minimal.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2api_8php.html b/doc/html/mod_2api_8php.html
new file mode 100644
index 000000000..829fb2cf7
--- /dev/null
+++ b/doc/html/mod_2api_8php.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/api.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod_2api_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">api.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a02ae0f60e240dc806b860edb7d582117"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117">oauth_get_client</a> ($request)</td></tr>
+<tr class="separator:a02ae0f60e240dc806b860edb7d582117"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fe77f05c07cb51048df0d557b4b9bd2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a6fe77f05c07cb51048df0d557b4b9bd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33315b5bbf5418f6850b2038107b526d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a33315b5bbf5418f6850b2038107b526d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a33315b5bbf5418f6850b2038107b526d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6fe77f05c07cb51048df0d557b4b9bd2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a02ae0f60e240dc806b860edb7d582117"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">oauth_get_client </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$request</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2api_8php.js b/doc/html/mod_2api_8php.js
new file mode 100644
index 000000000..61f9c7f58
--- /dev/null
+++ b/doc/html/mod_2api_8php.js
@@ -0,0 +1,6 @@
+var mod_2api_8php =
+[
+ [ "api_content", "mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d", null ],
+ [ "api_post", "mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2", null ],
+ [ "oauth_get_client", "mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod_2attach_8php.html b/doc/html/mod_2attach_8php.html
new file mode 100644
index 000000000..034d27ae7
--- /dev/null
+++ b/doc/html/mod_2attach_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/attach.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod_2attach_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">attach.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aa88eb5ad87aa1036a30e70339cc6c1b1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init</a> (&amp;$a)</td></tr>
+<tr class="separator:aa88eb5ad87aa1036a30e70339cc6c1b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa88eb5ad87aa1036a30e70339cc6c1b1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">attach_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2attach_8php.js b/doc/html/mod_2attach_8php.js
new file mode 100644
index 000000000..19c8c722e
--- /dev/null
+++ b/doc/html/mod_2attach_8php.js
@@ -0,0 +1,4 @@
+var mod_2attach_8php =
+[
+ [ "attach_init", "mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod_2directory_8php.html b/doc/html/mod_2directory_8php.html
new file mode 100644
index 000000000..25a40e698
--- /dev/null
+++ b/doc/html/mod_2directory_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/directory.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod_2directory_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">directory.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a5ee59c213508b6b9787612a8219cb5bf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf">directory_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a5ee59c213508b6b9787612a8219cb5bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1d928543212871491706216742dd73c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:aa1d928543212871491706216742dd73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac79396570d759da2efac24fcedf5b44"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aac79396570d759da2efac24fcedf5b44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa1d928543212871491706216742dd73c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">directory_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aac79396570d759da2efac24fcedf5b44"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">directory_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5ee59c213508b6b9787612a8219cb5bf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">directory_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2directory_8php.js b/doc/html/mod_2directory_8php.js
new file mode 100644
index 000000000..9628750ce
--- /dev/null
+++ b/doc/html/mod_2directory_8php.js
@@ -0,0 +1,6 @@
+var mod_2directory_8php =
+[
+ [ "directory_aside", "mod_2directory_8php.html#aa1d928543212871491706216742dd73c", null ],
+ [ "directory_content", "mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44", null ],
+ [ "directory_init", "mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod_2follow_8php.html b/doc/html/mod_2follow_8php.html
new file mode 100644
index 000000000..45c1294b9
--- /dev/null
+++ b/doc/html/mod_2follow_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/follow.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod_2follow_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">follow.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a171f5b19f50d7738adc3b2e96ec6018a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a171f5b19f50d7738adc3b2e96ec6018a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c540ea4e9f5c581c1a53516ac585592"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592">follow_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a4c540ea4e9f5c581c1a53516ac585592"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a4c540ea4e9f5c581c1a53516ac585592"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">follow_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a171f5b19f50d7738adc3b2e96ec6018a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">follow_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2follow_8php.js b/doc/html/mod_2follow_8php.js
new file mode 100644
index 000000000..8ca687406
--- /dev/null
+++ b/doc/html/mod_2follow_8php.js
@@ -0,0 +1,5 @@
+var mod_2follow_8php =
+[
+ [ "follow_content", "mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592", null ],
+ [ "follow_init", "mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod_2group_8php.html b/doc/html/mod_2group_8php.html
new file mode 100644
index 000000000..7405dbefe
--- /dev/null
+++ b/doc/html/mod_2group_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/group.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod_2group_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">group.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aeb0784dd928e53e6d8693513bec8928c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c">group_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:aeb0784dd928e53e6d8693513bec8928c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aed1f009b1221348021bb34761160ef35"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post</a> (&amp;$a)</td></tr>
+<tr class="separator:aed1f009b1221348021bb34761160ef35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a07a64f6c65b0080d8190b3d9728a7a83"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a07a64f6c65b0080d8190b3d9728a7a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aeb0784dd928e53e6d8693513bec8928c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">group_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a07a64f6c65b0080d8190b3d9728a7a83"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">group_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aed1f009b1221348021bb34761160ef35"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">group_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2group_8php.js b/doc/html/mod_2group_8php.js
new file mode 100644
index 000000000..361f32a48
--- /dev/null
+++ b/doc/html/mod_2group_8php.js
@@ -0,0 +1,6 @@
+var mod_2group_8php =
+[
+ [ "group_aside", "mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c", null ],
+ [ "group_content", "mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83", null ],
+ [ "group_post", "mod_2group_8php.html#aed1f009b1221348021bb34761160ef35", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod_2message_8php.html b/doc/html/mod_2message_8php.html
new file mode 100644
index 000000000..b4049e3f1
--- /dev/null
+++ b/doc/html/mod_2message_8php.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/message.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod_2message_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">message.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af4ba72486117cc24335fd8e92a2112a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:af4ba72486117cc24335fd8e92a2112a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0db7030362a7e9ed9549b341d7b35718"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a0db7030362a7e9ed9549b341d7b35718"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3547ed86d09a4bb8fa64ec374a40ee79"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(!function_exists('<a class="el" href="conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654">item_extract_images</a>')) <br class="typebreak"/>
+<a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(!function_exists('<a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">item_redir_and_replace_images</a>'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a3547ed86d09a4bb8fa64ec374a40ee79"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af4ba72486117cc24335fd8e92a2112a7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">message_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3547ed86d09a4bb8fa64ec374a40ee79"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (!function_exists('<a class="el" href="conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654">item_extract_images</a>')) <a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (!function_exists('<a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">item_redir_and_replace_images</a>')) message_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0db7030362a7e9ed9549b341d7b35718"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">message_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2message_8php.js b/doc/html/mod_2message_8php.js
new file mode 100644
index 000000000..10f9423f9
--- /dev/null
+++ b/doc/html/mod_2message_8php.js
@@ -0,0 +1,6 @@
+var mod_2message_8php =
+[
+ [ "message_aside", "mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7", null ],
+ [ "message_content", "mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79", null ],
+ [ "message_post", "mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod_2network_8php.html b/doc/html/mod_2network_8php.html
new file mode 100644
index 000000000..acb93b9c7
--- /dev/null
+++ b/doc/html/mod_2network_8php.html
@@ -0,0 +1,216 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/network.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod_2network_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">network.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a180fce90ad11d7e0e45be094da7149ec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a180fce90ad11d7e0e45be094da7149ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36e03af6f2efe62ecaa247509365bfad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches</a> ($<a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search</a>)</td></tr>
+<tr class="separator:a36e03af6f2efe62ecaa247509365bfad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeaa518c1a317516a3da337b88d358666"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2network_8php.html#aeaa518c1a317516a3da337b88d358666">network_query_get_sel_tab</a> ($a)</td></tr>
+<tr class="separator:aeaa518c1a317516a3da337b88d358666"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43f2f29b90c5e29072c561934bc8f8b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content</a> (&amp;$a, $update=0, $load=false)</td></tr>
+<tr class="separator:a43f2f29b90c5e29072c561934bc8f8b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a43f2f29b90c5e29072c561934bc8f8b4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">network_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$update</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$load</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a180fce90ad11d7e0e45be094da7149ec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">network_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeaa518c1a317516a3da337b88d358666"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">network_query_get_sel_tab </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Return selected tab from query</p>
+<p>urls -&gt; returns '/network' =&gt; $no_active = 'active' '/network?f=&amp;order=comment' =&gt; $comment_active = 'active' '/network?f=&amp;order=post' =&gt; $postord_active = 'active' '/network?f=&amp;conv=1', =&gt; $conv_active = 'active' '/network/new', =&gt; $new_active = 'active' '/network?f=&amp;star=1', =&gt; $starred_active = 'active' '/network?f=&amp;spam=1', =&gt; $spam_active = 'active'</p>
+<dl class="section return"><dt>Returns</dt><dd>Array ( $no_active, $comment_active, $postord_active, $conv_active, $new_active, $starred_active, $spam_active ); </dd></dl>
+
+<p>Referenced by <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a36e03af6f2efe62ecaa247509365bfad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">saved_searches </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$search</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2network_8php.js b/doc/html/mod_2network_8php.js
new file mode 100644
index 000000000..4bc180c33
--- /dev/null
+++ b/doc/html/mod_2network_8php.js
@@ -0,0 +1,7 @@
+var mod_2network_8php =
+[
+ [ "network_content", "mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4", null ],
+ [ "network_init", "mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec", null ],
+ [ "network_query_get_sel_tab", "mod_2network_8php.html#aeaa518c1a317516a3da337b88d358666", null ],
+ [ "saved_searches", "mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod_2notify_8php.html b/doc/html/mod_2notify_8php.html
new file mode 100644
index 000000000..67a9fc74b
--- /dev/null
+++ b/doc/html/mod_2notify_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/notify.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod_2notify_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">notify.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a94f9a6a9d4b5fd704baafff0c34f41ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a94f9a6a9d4b5fd704baafff0c34f41ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acdf3851688ebd6d6a575eb84ef9febe3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content</a> (&amp;$a)</td></tr>
+<tr class="separator:acdf3851688ebd6d6a575eb84ef9febe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="acdf3851688ebd6d6a575eb84ef9febe3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">notify_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a94f9a6a9d4b5fd704baafff0c34f41ae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">notify_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2notify_8php.js b/doc/html/mod_2notify_8php.js
new file mode 100644
index 000000000..cb5e5e71e
--- /dev/null
+++ b/doc/html/mod_2notify_8php.js
@@ -0,0 +1,5 @@
+var mod_2notify_8php =
+[
+ [ "notify_content", "mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3", null ],
+ [ "notify_init", "mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod_2oembed_8php.html b/doc/html/mod_2oembed_8php.html
new file mode 100644
index 000000000..22dd69196
--- /dev/null
+++ b/doc/html/mod_2oembed_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/oembed.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod_2oembed_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">oembed.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a9145025aaf057fb5d3f9f7011e5e1014"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a9145025aaf057fb5d3f9f7011e5e1014"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a9145025aaf057fb5d3f9f7011e5e1014"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">oembed_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2oembed_8php.js b/doc/html/mod_2oembed_8php.js
new file mode 100644
index 000000000..fa9f10f16
--- /dev/null
+++ b/doc/html/mod_2oembed_8php.js
@@ -0,0 +1,4 @@
+var mod_2oembed_8php =
+[
+ [ "oembed_init", "mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod_2photos_8php.html b/doc/html/mod_2photos_8php.html
new file mode 100644
index 000000000..597449f36
--- /dev/null
+++ b/doc/html/mod_2photos_8php.html
@@ -0,0 +1,176 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/photos.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod_2photos_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">photos.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab950295cd77626f5fe65331a87693014"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ab950295cd77626f5fe65331a87693014"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a062bed4d04d14fee8a53f4c9be673080"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a062bed4d04d14fee8a53f4c9be673080"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa87382611a66ec5effdb2d78f13f5812"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aa87382611a66ec5effdb2d78f13f5812"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa87382611a66ec5effdb2d78f13f5812"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photos_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Display upload form</p>
+<p>Display one photo</p>
+
+</div>
+</div>
+<a class="anchor" id="ab950295cd77626f5fe65331a87693014"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photos_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a062bed4d04d14fee8a53f4c9be673080"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photos_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>default post action - upload a photo</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2photos_8php.js b/doc/html/mod_2photos_8php.js
new file mode 100644
index 000000000..5048ba9c1
--- /dev/null
+++ b/doc/html/mod_2photos_8php.js
@@ -0,0 +1,6 @@
+var mod_2photos_8php =
+[
+ [ "photos_content", "mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812", null ],
+ [ "photos_init", "mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014", null ],
+ [ "photos_post", "mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod_2settings_8php.html b/doc/html/mod_2settings_8php.html
new file mode 100644
index 000000000..4e3633c56
--- /dev/null
+++ b/doc/html/mod_2settings_8php.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/settings.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod_2settings_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">settings.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a39abc76ff5459c57e3b957664f273f18"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2settings_8php.html#a39abc76ff5459c57e3b957664f273f18">get_theme_config_file</a> ($theme)</td></tr>
+<tr class="separator:a39abc76ff5459c57e3b957664f273f18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a4cde287482fced008583f54ba2a722"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a3a4cde287482fced008583f54ba2a722"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5aebccb006bee1300078576baaf5582"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:ae5aebccb006bee1300078576baaf5582"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa7ee94d88ac088edb04ccf3a26de3586"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post</a> (&amp;$a)</td></tr>
+<tr class="separator:aa7ee94d88ac088edb04ccf3a26de3586"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a39abc76ff5459c57e3b957664f273f18"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_theme_config_file </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$theme</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae5aebccb006bee1300078576baaf5582"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">settings_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3a4cde287482fced008583f54ba2a722"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">settings_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa7ee94d88ac088edb04ccf3a26de3586"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">settings_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2settings_8php.js b/doc/html/mod_2settings_8php.js
new file mode 100644
index 000000000..272bdc623
--- /dev/null
+++ b/doc/html/mod_2settings_8php.js
@@ -0,0 +1,7 @@
+var mod_2settings_8php =
+[
+ [ "get_theme_config_file", "mod_2settings_8php.html#a39abc76ff5459c57e3b957664f273f18", null ],
+ [ "settings_aside", "mod_2settings_8php.html#ae5aebccb006bee1300078576baaf5582", null ],
+ [ "settings_init", "mod_2settings_8php.html#a3a4cde287482fced008583f54ba2a722", null ],
+ [ "settings_post", "mod_2settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod__import_8php.html b/doc/html/mod__import_8php.html
new file mode 100644
index 000000000..73cc22718
--- /dev/null
+++ b/doc/html/mod__import_8php.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/php/mod_import.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod__import_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">mod_import.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a8db1899eeeb44dabd0904065b63627bb"><td class="memItemLeft" align="right" valign="top">$a&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a> ['template'] = 'full'</td></tr>
+<tr class="separator:a8db1899eeeb44dabd0904065b63627bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a8db1899eeeb44dabd0904065b63627bb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$a page['template'] = 'full'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>, and <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod__import_8php.js b/doc/html/mod__import_8php.js
new file mode 100644
index 000000000..906263adf
--- /dev/null
+++ b/doc/html/mod__import_8php.js
@@ -0,0 +1,4 @@
+var mod__import_8php =
+[
+ [ "page", "mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod__new__channel_8php.html b/doc/html/mod__new__channel_8php.html
new file mode 100644
index 000000000..70dd374f4
--- /dev/null
+++ b/doc/html/mod__new__channel_8php.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/php/mod_new_channel.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod__new__channel_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">mod_new_channel.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a8db1899eeeb44dabd0904065b63627bb"><td class="memItemLeft" align="right" valign="top">$a&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod__new__channel_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a> ['template'] = 'full'</td></tr>
+<tr class="separator:a8db1899eeeb44dabd0904065b63627bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a8db1899eeeb44dabd0904065b63627bb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$a page['template'] = 'full'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod__new__channel_8php.js b/doc/html/mod__new__channel_8php.js
new file mode 100644
index 000000000..81be48cb5
--- /dev/null
+++ b/doc/html/mod__new__channel_8php.js
@@ -0,0 +1,4 @@
+var mod__new__channel_8php =
+[
+ [ "page", "mod__new__channel_8php.html#a8db1899eeeb44dabd0904065b63627bb", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod__register_8php.html b/doc/html/mod__register_8php.html
new file mode 100644
index 000000000..a20f3ecd7
--- /dev/null
+++ b/doc/html/mod__register_8php.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/php/mod_register.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod__register_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">mod_register.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a8db1899eeeb44dabd0904065b63627bb"><td class="memItemLeft" align="right" valign="top">$a&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a> ['template'] = 'full'</td></tr>
+<tr class="separator:a8db1899eeeb44dabd0904065b63627bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a8db1899eeeb44dabd0904065b63627bb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$a page['template'] = 'full'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod__register_8php.js b/doc/html/mod__register_8php.js
new file mode 100644
index 000000000..ac5d5ab70
--- /dev/null
+++ b/doc/html/mod__register_8php.js
@@ -0,0 +1,4 @@
+var mod__register_8php =
+[
+ [ "page", "mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mood_8php.html b/doc/html/mood_8php.html
new file mode 100644
index 000000000..8215acc76
--- /dev/null
+++ b/doc/html/mood_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/mood.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mood_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">mood.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7ae136dd7476865b4828136175db5022"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a7ae136dd7476865b4828136175db5022"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a721b9b6703b3234a005641c92d409b8f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a721b9b6703b3234a005641c92d409b8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a721b9b6703b3234a005641c92d409b8f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">mood_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7ae136dd7476865b4828136175db5022"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">mood_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mood_8php.js b/doc/html/mood_8php.js
new file mode 100644
index 000000000..48b12ef8f
--- /dev/null
+++ b/doc/html/mood_8php.js
@@ -0,0 +1,5 @@
+var mood_8php =
+[
+ [ "mood_content", "mood_8php.html#a721b9b6703b3234a005641c92d409b8f", null ],
+ [ "mood_init", "mood_8php.html#a7ae136dd7476865b4828136175db5022", null ]
+]; \ No newline at end of file
diff --git a/doc/html/msearch_8php.html b/doc/html/msearch_8php.html
new file mode 100644
index 000000000..4231ba63a
--- /dev/null
+++ b/doc/html/msearch_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/msearch.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('msearch_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">msearch.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac80d2a6c0a92e79eec7efbbccd74d9a8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post</a> (&amp;$a)</td></tr>
+<tr class="separator:ac80d2a6c0a92e79eec7efbbccd74d9a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ac80d2a6c0a92e79eec7efbbccd74d9a8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">msearch_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/msearch_8php.js b/doc/html/msearch_8php.js
new file mode 100644
index 000000000..16b349389
--- /dev/null
+++ b/doc/html/msearch_8php.js
@@ -0,0 +1,4 @@
+var msearch_8php =
+[
+ [ "msearch_post", "msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8", null ]
+]; \ No newline at end of file
diff --git a/doc/html/namespaceFriendica.html b/doc/html/namespaceFriendica.html
new file mode 100644
index 000000000..a4d16b022
--- /dev/null
+++ b/doc/html/namespaceFriendica.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Friendica Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespaceFriendica.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Friendica Namespace Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>FileBrowser </p>
+<dl class="section author"><dt>Author</dt><dd>Fabio Comuni <a href="#" onclick="location.href='mai'+'lto:'+'fab'+'ri'+'xxm'+'@k'+'irg'+'ro'+'up.'+'co'+'m'; return false;">fabri<span style="display: none;">.nosp@m.</span>xxm@<span style="display: none;">.nosp@m.</span>kirgr<span style="display: none;">.nosp@m.</span>oup.<span style="display: none;">.nosp@m.</span>com</a> </dd></dl>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/namespaceacl__selectors.html b/doc/html/namespaceacl__selectors.html
new file mode 100644
index 000000000..ad98afb3a
--- /dev/null
+++ b/doc/html/namespaceacl__selectors.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: acl_selectors Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespaceacl__selectors.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">acl_selectors Namespace Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/namespacefriendica-to-smarty-tpl.html b/doc/html/namespacefriendica-to-smarty-tpl.html
new file mode 100644
index 000000000..7124c430b
--- /dev/null
+++ b/doc/html/namespacefriendica-to-smarty-tpl.html
@@ -0,0 +1,378 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: friendica-to-smarty-tpl Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacefriendica-to-smarty-tpl.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">friendica-to-smarty-tpl Namespace Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a89388ea9b2826e8218ed480e917d8105"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a89388ea9b2826e8218ed480e917d8105">fToSmarty</a></td></tr>
+<tr class="separator:a89388ea9b2826e8218ed480e917d8105"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3719dd46e286a57d315e6adae1845854"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a3719dd46e286a57d315e6adae1845854">fix_element</a></td></tr>
+<tr class="separator:a3719dd46e286a57d315e6adae1845854"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a38503e37fe68ac27c88cce91a9ac9efa"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a38503e37fe68ac27c88cce91a9ac9efa">convert</a></td></tr>
+<tr class="separator:a38503e37fe68ac27c88cce91a9ac9efa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6b2c793958aae2aadc294577431f749"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#af6b2c793958aae2aadc294577431f749">help</a></td></tr>
+<tr class="separator:af6b2c793958aae2aadc294577431f749"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a0b4cf73d1a8d201a28d269eeb62a5d5c"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a0b4cf73d1a8d201a28d269eeb62a5d5c">ldelim</a> = '{{'</td></tr>
+<tr class="separator:a0b4cf73d1a8d201a28d269eeb62a5d5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8540514fb7c4aa18ad2dffa2a975036b"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a8540514fb7c4aa18ad2dffa2a975036b">rdelim</a> = '}}'</td></tr>
+<tr class="separator:a8540514fb7c4aa18ad2dffa2a975036b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a68d15934660cd1f4301ce251b1646f09"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a68d15934660cd1f4301ce251b1646f09">path</a> = ''</td></tr>
+<tr class="separator:a68d15934660cd1f4301ce251b1646f09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a005c1b7a69cac31fad72a941974ba7bb"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a005c1b7a69cac31fad72a941974ba7bb">outpath</a> = <a class="el" href="namespacefriendica-to-smarty-tpl.html#a68d15934660cd1f4301ce251b1646f09">path</a>+'smarty3/'</td></tr>
+<tr class="separator:a005c1b7a69cac31fad72a941974ba7bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae74419b16516956c66f7db714a93a6ac"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#ae74419b16516956c66f7db714a93a6ac">files</a> = os.listdir(<a class="el" href="namespacefriendica-to-smarty-tpl.html#a68d15934660cd1f4301ce251b1646f09">path</a>)</td></tr>
+<tr class="separator:ae74419b16516956c66f7db714a93a6ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5dfc21ab8282dda8e3a7dff43cd0e283"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a5dfc21ab8282dda8e3a7dff43cd0e283">php_tpl</a> = True</td></tr>
+<tr class="separator:a5dfc21ab8282dda8e3a7dff43cd0e283"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f9bf7a67d955c0d6be70a82097611c5"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a5f9bf7a67d955c0d6be70a82097611c5">filename</a> = os.path.join(<a class="el" href="namespacefriendica-to-smarty-tpl.html#a68d15934660cd1f4301ce251b1646f09">path</a>,a_file)</td></tr>
+<tr class="separator:a5f9bf7a67d955c0d6be70a82097611c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aecf730e0884bb4ddc6c0deb1ef85f8eb"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#aecf730e0884bb4ddc6c0deb1ef85f8eb">ext</a> = a_file.split('.')</td></tr>
+<tr class="separator:aecf730e0884bb4ddc6c0deb1ef85f8eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a965e1d6d6293654a56e029a7e454dec7"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a965e1d6d6293654a56e029a7e454dec7">f</a> = open(<a class="el" href="namespacefriendica-to-smarty-tpl.html#a5f9bf7a67d955c0d6be70a82097611c5">filename</a>, 'r')</td></tr>
+<tr class="separator:a965e1d6d6293654a56e029a7e454dec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9ef87ccb2c9960501f5e02424a22d80"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#ad9ef87ccb2c9960501f5e02424a22d80">newfilename</a> = os.path.join(<a class="el" href="namespacefriendica-to-smarty-tpl.html#a005c1b7a69cac31fad72a941974ba7bb">outpath</a>,a_file)</td></tr>
+<tr class="separator:ad9ef87ccb2c9960501f5e02424a22d80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87182a9bab47640428bd0b2b9946bef9"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefriendica-to-smarty-tpl.html#a87182a9bab47640428bd0b2b9946bef9">outf</a> = open(<a class="el" href="namespacefriendica-to-smarty-tpl.html#ad9ef87ccb2c9960501f5e02424a22d80">newfilename</a>, 'w')</td></tr>
+<tr class="separator:a87182a9bab47640428bd0b2b9946bef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a38503e37fe68ac27c88cce91a9ac9efa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">def friendica-to-smarty-tpl.convert </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>filename</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>tofilename</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>php_tpl</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3719dd46e286a57d315e6adae1845854"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">def friendica-to-smarty-tpl.fix_element </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>element</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="namespacefriendica-to-smarty-tpl.html#a38503e37fe68ac27c88cce91a9ac9efa">convert()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a89388ea9b2826e8218ed480e917d8105"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">def friendica-to-smarty-tpl.fToSmarty </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>matches</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af6b2c793958aae2aadc294577431f749"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">def friendica-to-smarty-tpl.help </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>pname</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="aecf730e0884bb4ddc6c0deb1ef85f8eb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tuple friendica-to-smarty-tpl.ext = a_file.split('.')</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a965e1d6d6293654a56e029a7e454dec7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tuple friendica-to-smarty-tpl.f = open(<a class="el" href="namespacefriendica-to-smarty-tpl.html#a5f9bf7a67d955c0d6be70a82097611c5">filename</a>, 'r')</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5f9bf7a67d955c0d6be70a82097611c5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tuple friendica-to-smarty-tpl.filename = os.path.join(<a class="el" href="namespacefriendica-to-smarty-tpl.html#a68d15934660cd1f4301ce251b1646f09">path</a>,a_file)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classFriendicaSmarty.html#a6a4d4281d6fa9be1d37a97b188ffe8c9">FriendicaSmarty.parsed()</a>, and <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae74419b16516956c66f7db714a93a6ac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tuple friendica-to-smarty-tpl.files = os.listdir(<a class="el" href="namespacefriendica-to-smarty-tpl.html#a68d15934660cd1f4301ce251b1646f09">path</a>)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0b4cf73d1a8d201a28d269eeb62a5d5c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">string friendica-to-smarty-tpl.ldelim = '{{'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a2eb832a8577dee7d40b93abdf6d1d35a">App.get_template_ldelim()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad9ef87ccb2c9960501f5e02424a22d80"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tuple friendica-to-smarty-tpl.newfilename = os.path.join(<a class="el" href="namespacefriendica-to-smarty-tpl.html#a005c1b7a69cac31fad72a941974ba7bb">outpath</a>,a_file)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a87182a9bab47640428bd0b2b9946bef9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tuple friendica-to-smarty-tpl.outf = open(<a class="el" href="namespacefriendica-to-smarty-tpl.html#ad9ef87ccb2c9960501f5e02424a22d80">newfilename</a>, 'w')</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a005c1b7a69cac31fad72a941974ba7bb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">string friendica-to-smarty-tpl.outpath = <a class="el" href="namespacefriendica-to-smarty-tpl.html#a68d15934660cd1f4301ce251b1646f09">path</a>+'smarty3/'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a68d15934660cd1f4301ce251b1646f09"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">string friendica-to-smarty-tpl.path = ''</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App.__construct()</a>, <a class="el" href="classApp.html#a604d659d6977a99de42a160343e5289a">App.get_baseurl()</a>, <a class="el" href="classApp.html#a78788f6e9d8b713b138f81e457c5cd08">App.set_baseurl()</a>, and <a class="el" href="classApp.html#adb060d5c7f35a521ec7ec0effbe08097">App.set_path()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5dfc21ab8282dda8e3a7dff43cd0e283"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">friendica-to-smarty-tpl.php_tpl = True</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8540514fb7c4aa18ad2dffa2a975036b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">string friendica-to-smarty-tpl.rdelim = '}}'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#aab23c59172310fd30f2d60dc039d3eea">App.get_template_rdelim()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/namespacemembers.html b/doc/html/namespacemembers.html
new file mode 100644
index 000000000..0075b4f63
--- /dev/null
+++ b/doc/html/namespacemembers.html
@@ -0,0 +1,176 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Namespace Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div><ul>
+<li>convert()
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a38503e37fe68ac27c88cce91a9ac9efa">friendica-to-smarty-tpl</a>
+</li>
+<li>excludepaths
+: <a class="el" href="namespaceupdatetpl.html#a988d937ed5d5c2b592b763036af5cf94">updatetpl</a>
+</li>
+<li>ext
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#aecf730e0884bb4ddc6c0deb1ef85f8eb">friendica-to-smarty-tpl</a>
+</li>
+<li>f
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a965e1d6d6293654a56e029a7e454dec7">friendica-to-smarty-tpl</a>
+</li>
+<li>filename
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a5f9bf7a67d955c0d6be70a82097611c5">friendica-to-smarty-tpl</a>
+</li>
+<li>files
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#ae74419b16516956c66f7db714a93a6ac">friendica-to-smarty-tpl</a>
+</li>
+<li>fix_element()
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a3719dd46e286a57d315e6adae1845854">friendica-to-smarty-tpl</a>
+</li>
+<li>fnull
+: <a class="el" href="namespaceupdatetpl.html#a79c20eb62d568c999b56eb08530355d3">updatetpl</a>
+</li>
+<li>fToSmarty()
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a89388ea9b2826e8218ed480e917d8105">friendica-to-smarty-tpl</a>
+</li>
+<li>help()
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#af6b2c793958aae2aadc294577431f749">friendica-to-smarty-tpl</a>
+, <a class="el" href="namespaceupdatetpl.html#ac9d11279fed403a329a719298feafc4f">updatetpl</a>
+</li>
+<li>ldelim
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a0b4cf73d1a8d201a28d269eeb62a5d5c">friendica-to-smarty-tpl</a>
+</li>
+<li>names
+: <a class="el" href="namespaceupdatetpl.html#ab42dd79af65ee82201fd6f04715f62f6">updatetpl</a>
+</li>
+<li>newfilename
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#ad9ef87ccb2c9960501f5e02424a22d80">friendica-to-smarty-tpl</a>
+</li>
+<li>outf
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a87182a9bab47640428bd0b2b9946bef9">friendica-to-smarty-tpl</a>
+</li>
+<li>outpath
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a005c1b7a69cac31fad72a941974ba7bb">friendica-to-smarty-tpl</a>
+</li>
+<li>path
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a68d15934660cd1f4301ce251b1646f09">friendica-to-smarty-tpl</a>
+, <a class="el" href="namespaceupdatetpl.html#ae694f5e1f25f8a92a945eb90c432dfe6">updatetpl</a>
+</li>
+<li>php_tpl
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a5dfc21ab8282dda8e3a7dff43cd0e283">friendica-to-smarty-tpl</a>
+</li>
+<li>rdelim
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a8540514fb7c4aa18ad2dffa2a975036b">friendica-to-smarty-tpl</a>
+</li>
+<li>tplpaths
+: <a class="el" href="namespaceupdatetpl.html#a52a85ffa6b6d63d840b185a133478c12">updatetpl</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/namespacemembers_func.html b/doc/html/namespacemembers_func.html
new file mode 100644
index 000000000..998f6e1c2
--- /dev/null
+++ b/doc/html/namespacemembers_func.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Namespace Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html"><span>All</span></a></li>
+ <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_func.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>convert()
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a38503e37fe68ac27c88cce91a9ac9efa">friendica-to-smarty-tpl</a>
+</li>
+<li>fix_element()
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a3719dd46e286a57d315e6adae1845854">friendica-to-smarty-tpl</a>
+</li>
+<li>fToSmarty()
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a89388ea9b2826e8218ed480e917d8105">friendica-to-smarty-tpl</a>
+</li>
+<li>help()
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#af6b2c793958aae2aadc294577431f749">friendica-to-smarty-tpl</a>
+, <a class="el" href="namespaceupdatetpl.html#ac9d11279fed403a329a719298feafc4f">updatetpl</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/namespacemembers_vars.html b/doc/html/namespacemembers_vars.html
new file mode 100644
index 000000000..6c3eed784
--- /dev/null
+++ b/doc/html/namespacemembers_vars.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Namespace Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="namespacemembers_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_vars.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>excludepaths
+: <a class="el" href="namespaceupdatetpl.html#a988d937ed5d5c2b592b763036af5cf94">updatetpl</a>
+</li>
+<li>ext
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#aecf730e0884bb4ddc6c0deb1ef85f8eb">friendica-to-smarty-tpl</a>
+</li>
+<li>f
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a965e1d6d6293654a56e029a7e454dec7">friendica-to-smarty-tpl</a>
+</li>
+<li>filename
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a5f9bf7a67d955c0d6be70a82097611c5">friendica-to-smarty-tpl</a>
+</li>
+<li>files
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#ae74419b16516956c66f7db714a93a6ac">friendica-to-smarty-tpl</a>
+</li>
+<li>fnull
+: <a class="el" href="namespaceupdatetpl.html#a79c20eb62d568c999b56eb08530355d3">updatetpl</a>
+</li>
+<li>ldelim
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a0b4cf73d1a8d201a28d269eeb62a5d5c">friendica-to-smarty-tpl</a>
+</li>
+<li>names
+: <a class="el" href="namespaceupdatetpl.html#ab42dd79af65ee82201fd6f04715f62f6">updatetpl</a>
+</li>
+<li>newfilename
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#ad9ef87ccb2c9960501f5e02424a22d80">friendica-to-smarty-tpl</a>
+</li>
+<li>outf
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a87182a9bab47640428bd0b2b9946bef9">friendica-to-smarty-tpl</a>
+</li>
+<li>outpath
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a005c1b7a69cac31fad72a941974ba7bb">friendica-to-smarty-tpl</a>
+</li>
+<li>path
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a68d15934660cd1f4301ce251b1646f09">friendica-to-smarty-tpl</a>
+, <a class="el" href="namespaceupdatetpl.html#ae694f5e1f25f8a92a945eb90c432dfe6">updatetpl</a>
+</li>
+<li>php_tpl
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a5dfc21ab8282dda8e3a7dff43cd0e283">friendica-to-smarty-tpl</a>
+</li>
+<li>rdelim
+: <a class="el" href="namespacefriendica-to-smarty-tpl.html#a8540514fb7c4aa18ad2dffa2a975036b">friendica-to-smarty-tpl</a>
+</li>
+<li>tplpaths
+: <a class="el" href="namespaceupdatetpl.html#a52a85ffa6b6d63d840b185a133478c12">updatetpl</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/namespaces.html b/doc/html/namespaces.html
new file mode 100644
index 000000000..c6d8c4715
--- /dev/null
+++ b/doc/html/namespaces.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Namespace List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespaces.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Namespace List</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all namespaces with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceacl__selectors.html" target="_self">acl_selectors</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceFriendica.html" target="_self">Friendica</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespacefriendica-to-smarty-tpl.html" target="_self">friendica-to-smarty-tpl</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceupdatetpl.html" target="_self">updatetpl</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceutil.html" target="_self">util</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/namespaces.js b/doc/html/namespaces.js
new file mode 100644
index 000000000..681592f37
--- /dev/null
+++ b/doc/html/namespaces.js
@@ -0,0 +1,8 @@
+var namespaces =
+[
+ [ "acl_selectors", "namespaceacl__selectors.html", null ],
+ [ "Friendica", "namespaceFriendica.html", null ],
+ [ "friendica-to-smarty-tpl", "namespacefriendica-to-smarty-tpl.html", null ],
+ [ "updatetpl", "namespaceupdatetpl.html", null ],
+ [ "util", "namespaceutil.html", null ]
+]; \ No newline at end of file
diff --git a/doc/html/namespaceupdatetpl.html b/doc/html/namespaceupdatetpl.html
new file mode 100644
index 000000000..c56391257
--- /dev/null
+++ b/doc/html/namespaceupdatetpl.html
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: updatetpl Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespaceupdatetpl.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">updatetpl Namespace Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac9d11279fed403a329a719298feafc4f"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceupdatetpl.html#ac9d11279fed403a329a719298feafc4f">help</a></td></tr>
+<tr class="separator:ac9d11279fed403a329a719298feafc4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:ae694f5e1f25f8a92a945eb90c432dfe6"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceupdatetpl.html#ae694f5e1f25f8a92a945eb90c432dfe6">path</a> = ''</td></tr>
+<tr class="separator:ae694f5e1f25f8a92a945eb90c432dfe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a988d937ed5d5c2b592b763036af5cf94"><td class="memItemLeft" align="right" valign="top">list&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceupdatetpl.html#a988d937ed5d5c2b592b763036af5cf94">excludepaths</a> = ['css', 'img', 'js', 'php', 'theme']</td></tr>
+<tr class="separator:a988d937ed5d5c2b592b763036af5cf94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52a85ffa6b6d63d840b185a133478c12"><td class="memItemLeft" align="right" valign="top">list&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceupdatetpl.html#a52a85ffa6b6d63d840b185a133478c12">tplpaths</a> = []</td></tr>
+<tr class="separator:a52a85ffa6b6d63d840b185a133478c12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab42dd79af65ee82201fd6f04715f62f6"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceupdatetpl.html#ab42dd79af65ee82201fd6f04715f62f6">names</a> = os.listdir(<a class="el" href="namespaceupdatetpl.html#ae694f5e1f25f8a92a945eb90c432dfe6">path</a> + 'view/')</td></tr>
+<tr class="separator:ab42dd79af65ee82201fd6f04715f62f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79c20eb62d568c999b56eb08530355d3"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceupdatetpl.html#a79c20eb62d568c999b56eb08530355d3">fnull</a> = open(os.devnull, &quot;w&quot;)</td></tr>
+<tr class="separator:a79c20eb62d568c999b56eb08530355d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ac9d11279fed403a329a719298feafc4f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">def updatetpl.help </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>pname</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a988d937ed5d5c2b592b763036af5cf94"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">list updatetpl.excludepaths = ['css', 'img', 'js', 'php', 'theme']</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a79c20eb62d568c999b56eb08530355d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tuple updatetpl.fnull = open(os.devnull, &quot;w&quot;)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab42dd79af65ee82201fd6f04715f62f6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tuple updatetpl.names = os.listdir(<a class="el" href="namespaceupdatetpl.html#ae694f5e1f25f8a92a945eb90c432dfe6">path</a> + 'view/')</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae694f5e1f25f8a92a945eb90c432dfe6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">string updatetpl.path = ''</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a52a85ffa6b6d63d840b185a133478c12"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">list updatetpl.tplpaths = []</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/namespaceutil.html b/doc/html/namespaceutil.html
new file mode 100644
index 000000000..c35b5b089
--- /dev/null
+++ b/doc/html/namespaceutil.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespaceutil.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">util Namespace Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>When I installed docblox, I had the experience that it does not generate any output at all. This script may be used to find that kind of problems with the documentation build process. If docblox generates output, use another approach for debugging.</p>
+<p>Basically, docblox takes a list of files to build documentation from. This script assumes there is a file or set of files breaking the build when it is included in that list. It tries to calculate the smallest list containing these files. Unfortunatly, the original problem is NP-complete, so what the script does is a best guess only.</p>
+<p>So it starts with a list of all files in the project. If that list can't be build, it cuts it in two parts and tries both parts independently. If only one of them breaks, it takes that one and tries the same independently. If both break, it assumes this is the smallest set. This assumption is not necessarily true. Maybe the smallest set consists of two files and both of them were in different parts when the list was divided, but by now it is my best guess. To make this assumption better, the list is shuffled after every step.</p>
+<p>After that, the script tries to remove a file from the list. It tests if the list breaks and if so, it assumes that the file it removed belongs to the set of errorneous files. This is done for all files, so, in the end removing one file leads to a working doc build.</p>
+<dl class="section author"><dt>Author</dt><dd>Alexander Kampmann</dd></dl>
+<p>This function generates a comma seperated list of file names.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">array</td><td class="paramname">$fileset</td><td>Set of file names</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string comma-seperated list of the file names</dd></dl>
+<p>This functions runs phpdoc on the provided list of files</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">array</td><td class="paramname">$fileset</td><td>Set of filenames</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>bool true, if that set can be built</dd></dl>
+<p>This functions cuts down a fileset by removing files until it finally works. it was meant to be recursive, but php's maximum stack size is to small. So it just simulates recursion.</p>
+<p>In that version, it does not necessarily generate the smallest set, because it may not alter the elements order enough.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">array</td><td class="paramname">$fileset</td><td>set of filenames </td></tr>
+ <tr><td class="paramtype">int</td><td class="paramname">$ps</td><td>number of files in subsets</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>array a part of $fileset, that crashes </dd></dl>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/nav_8php.html b/doc/html/nav_8php.html
new file mode 100644
index 000000000..a2f9e61b6
--- /dev/null
+++ b/doc/html/nav_8php.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/nav.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('nav_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">nav.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a43be0df73b90647ea70947ce004e231e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav</a> (&amp;$a)</td></tr>
+<tr class="separator:a43be0df73b90647ea70947ce004e231e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac3c920ce3ea5b0d9e0678ee37155f06a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a">nav_set_selected</a> ($item)</td></tr>
+<tr class="separator:ac3c920ce3ea5b0d9e0678ee37155f06a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a43be0df73b90647ea70947ce004e231e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">nav </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Build page header and site navigation bars</p>
+<p>Placeholder div for popup panel</p>
+<p>Our network is distributed, and as you visit friends some of the sites look exactly the same - it isn't always easy to know where you are. Display the current site location as a navigation aid.</p>
+<p>Display login or logout</p>
+<p>"Home" should also take you home from an authenticated remote profile connection</p>
+<p>The following nav links are only show to logged in users</p>
+<p>Admin page</p>
+<p>Provide a banner/logo/whatever</p>
+
+<p>Referenced by <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac3c920ce3ea5b0d9e0678ee37155f06a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">nav_set_selected </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, and <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/nav_8php.js b/doc/html/nav_8php.js
new file mode 100644
index 000000000..09cec55d1
--- /dev/null
+++ b/doc/html/nav_8php.js
@@ -0,0 +1,5 @@
+var nav_8php =
+[
+ [ "nav", "nav_8php.html#a43be0df73b90647ea70947ce004e231e", null ],
+ [ "nav_set_selected", "nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a", null ]
+]; \ No newline at end of file
diff --git a/doc/html/nav_f.png b/doc/html/nav_f.png
new file mode 100644
index 000000000..72a58a529
--- /dev/null
+++ b/doc/html/nav_f.png
Binary files differ
diff --git a/doc/html/nav_g.png b/doc/html/nav_g.png
new file mode 100644
index 000000000..2093a237a
--- /dev/null
+++ b/doc/html/nav_g.png
Binary files differ
diff --git a/doc/html/nav_h.png b/doc/html/nav_h.png
new file mode 100644
index 000000000..33389b101
--- /dev/null
+++ b/doc/html/nav_h.png
Binary files differ
diff --git a/doc/html/navtree.css b/doc/html/navtree.css
new file mode 100644
index 000000000..41a9cb969
--- /dev/null
+++ b/doc/html/navtree.css
@@ -0,0 +1,143 @@
+#nav-tree .children_ul {
+ margin:0;
+ padding:4px;
+}
+
+#nav-tree ul {
+ list-style:none outside none;
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree li {
+ white-space:nowrap;
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree .plus {
+ margin:0px;
+}
+
+#nav-tree .selected {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+#nav-tree img {
+ margin:0px;
+ padding:0px;
+ border:0px;
+ vertical-align: middle;
+}
+
+#nav-tree a {
+ text-decoration:none;
+ padding:0px;
+ margin:0px;
+ outline:none;
+}
+
+#nav-tree .label {
+ margin:0px;
+ padding:0px;
+ font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+#nav-tree .label a {
+ padding:2px;
+}
+
+#nav-tree .selected a {
+ text-decoration:none;
+ color:#fff;
+}
+
+#nav-tree .children_ul {
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree .item {
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree {
+ padding: 0px 0px;
+ background-color: #FAFAFF;
+ font-size:14px;
+ overflow:auto;
+}
+
+#doc-content {
+ overflow:auto;
+ display:block;
+ padding:0px;
+ margin:0px;
+ -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#side-nav {
+ padding:0 6px 0 0;
+ margin: 0px;
+ display:block;
+ position: absolute;
+ left: 0px;
+ width: 250px;
+}
+
+.ui-resizable .ui-resizable-handle {
+ display:block;
+}
+
+.ui-resizable-e {
+ background:url("ftv2splitbar.png") repeat scroll right center transparent;
+ cursor:e-resize;
+ height:100%;
+ right:0;
+ top:0;
+ width:6px;
+}
+
+.ui-resizable-handle {
+ display:none;
+ font-size:0.1px;
+ position:absolute;
+ z-index:1;
+}
+
+#nav-tree-contents {
+ margin: 6px 0px 0px 0px;
+}
+
+#nav-tree {
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#nav-sync {
+ position:absolute;
+ top:5px;
+ right:24px;
+ z-index:0;
+}
+
+#nav-sync img {
+ opacity:0.3;
+}
+
+#nav-sync img:hover {
+ opacity:0.9;
+}
+
+@media print
+{
+ #nav-tree { display: none; }
+ div.ui-resizable-handle { display: none; position: relative; }
+}
+
diff --git a/doc/html/navtree.js b/doc/html/navtree.js
new file mode 100644
index 000000000..5a51d7cea
--- /dev/null
+++ b/doc/html/navtree.js
@@ -0,0 +1,542 @@
+var NAVTREE =
+[
+ [ "The Red Matrix", "index.html", [
+ [ "CLI config utility", "md_config.html", null ],
+ [ "Fresh - The Freaking REd Shell", "md_fresh.html", null ],
+ [ "Redstrap theme", "md_README.html", null ],
+ [ "Namespaces", null, [
+ [ "Namespace List", "namespaces.html", "namespaces" ],
+ [ "Namespace Members", "namespacemembers.html", [
+ [ "All", "namespacemembers.html", null ],
+ [ "Functions", "namespacemembers_func.html", null ],
+ [ "Variables", "namespacemembers_vars.html", null ]
+ ] ]
+ ] ],
+ [ "Classes", null, [
+ [ "Class List", "annotated.html", "annotated" ],
+ [ "Class Index", "classes.html", null ],
+ [ "Class Hierarchy", "hierarchy.html", "hierarchy" ],
+ [ "Class Members", "functions.html", [
+ [ "All", "functions.html", "functions_dup" ],
+ [ "Functions", "functions_func.html", null ],
+ [ "Variables", "functions_vars.html", null ]
+ ] ]
+ ] ],
+ [ "Files", null, [
+ [ "File List", "files.html", "files" ],
+ [ "File Members", "globals.html", [
+ [ "All", "globals.html", "globals_dup" ],
+ [ "Functions", "globals_func.html", "globals_func" ],
+ [ "Variables", "globals_vars.html", "globals_vars" ]
+ ] ]
+ ] ]
+ ] ]
+];
+
+var NAVTREEINDEX =
+[
+"BaseObject_8php.html",
+"boot_8php.html#aa9244fc9cc221980c07a20cc534111be",
+"classItem.html#a9f2d219da712390f59012fc32a342074",
+"dirfind_8php.html",
+"include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a",
+"mod__import_8php.html",
+"session_8php.html#ac4461c1984543d3553e73dba2771568f",
+"zot_8php.html#ac301c67864917c35922257950ae0f95c"
+];
+
+var SYNCONMSG = 'click to disable panel synchronisation';
+var SYNCOFFMSG = 'click to enable panel synchronisation';
+var navTreeSubIndices = new Array();
+
+function getData(varName)
+{
+ var i = varName.lastIndexOf('/');
+ var n = i>=0 ? varName.substring(i+1) : varName;
+ return eval(n.replace(/\-/g,'_'));
+}
+
+function stripPath(uri)
+{
+ return uri.substring(uri.lastIndexOf('/')+1);
+}
+
+function stripPath2(uri)
+{
+ var i = uri.lastIndexOf('/');
+ var s = uri.substring(i+1);
+ var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
+ return m ? uri.substring(i-6) : s;
+}
+
+function localStorageSupported()
+{
+ try {
+ return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
+ }
+ catch(e) {
+ return false;
+ }
+}
+
+
+function storeLink(link)
+{
+ if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
+ window.localStorage.setItem('navpath',link);
+ }
+}
+
+function deleteLink()
+{
+ if (localStorageSupported()) {
+ window.localStorage.setItem('navpath','');
+ }
+}
+
+function cachedLink()
+{
+ if (localStorageSupported()) {
+ return window.localStorage.getItem('navpath');
+ } else {
+ return '';
+ }
+}
+
+function getScript(scriptName,func,show)
+{
+ var head = document.getElementsByTagName("head")[0];
+ var script = document.createElement('script');
+ script.id = scriptName;
+ script.type = 'text/javascript';
+ script.onload = func;
+ script.src = scriptName+'.js';
+ if ($.browser.msie && $.browser.version<=8) {
+ // script.onload does not work with older versions of IE
+ script.onreadystatechange = function() {
+ if (script.readyState=='complete' || script.readyState=='loaded') {
+ func(); if (show) showRoot();
+ }
+ }
+ }
+ head.appendChild(script);
+}
+
+function createIndent(o,domNode,node,level)
+{
+ var level=-1;
+ var n = node;
+ while (n.parentNode) { level++; n=n.parentNode; }
+ var imgNode = document.createElement("img");
+ imgNode.style.paddingLeft=(16*level).toString()+'px';
+ imgNode.width = 16;
+ imgNode.height = 22;
+ imgNode.border = 0;
+ if (node.childrenData) {
+ node.plus_img = imgNode;
+ node.expandToggle = document.createElement("a");
+ node.expandToggle.href = "javascript:void(0)";
+ node.expandToggle.onclick = function() {
+ if (node.expanded) {
+ $(node.getChildrenUL()).slideUp("fast");
+ node.plus_img.src = node.relpath+"ftv2pnode.png";
+ node.expanded = false;
+ } else {
+ expandNode(o, node, false, false);
+ }
+ }
+ node.expandToggle.appendChild(imgNode);
+ domNode.appendChild(node.expandToggle);
+ imgNode.src = node.relpath+"ftv2pnode.png";
+ } else {
+ imgNode.src = node.relpath+"ftv2node.png";
+ domNode.appendChild(imgNode);
+ }
+}
+
+var animationInProgress = false;
+
+function gotoAnchor(anchor,aname,updateLocation)
+{
+ var pos, docContent = $('#doc-content');
+ if (anchor.parent().attr('class')=='memItemLeft' ||
+ anchor.parent().attr('class')=='fieldtype' ||
+ anchor.parent().is(':header'))
+ {
+ pos = anchor.parent().position().top;
+ } else if (anchor.position()) {
+ pos = anchor.position().top;
+ }
+ if (pos) {
+ var dist = Math.abs(Math.min(
+ pos-docContent.offset().top,
+ docContent[0].scrollHeight-
+ docContent.height()-docContent.scrollTop()));
+ animationInProgress=true;
+ docContent.animate({
+ scrollTop: pos + docContent.scrollTop() - docContent.offset().top
+ },Math.max(50,Math.min(500,dist)),function(){
+ if (updateLocation) window.location.href=aname;
+ animationInProgress=false;
+ });
+ }
+}
+
+function newNode(o, po, text, link, childrenData, lastNode)
+{
+ var node = new Object();
+ node.children = Array();
+ node.childrenData = childrenData;
+ node.depth = po.depth + 1;
+ node.relpath = po.relpath;
+ node.isLast = lastNode;
+
+ node.li = document.createElement("li");
+ po.getChildrenUL().appendChild(node.li);
+ node.parentNode = po;
+
+ node.itemDiv = document.createElement("div");
+ node.itemDiv.className = "item";
+
+ node.labelSpan = document.createElement("span");
+ node.labelSpan.className = "label";
+
+ createIndent(o,node.itemDiv,node,0);
+ node.itemDiv.appendChild(node.labelSpan);
+ node.li.appendChild(node.itemDiv);
+
+ var a = document.createElement("a");
+ node.labelSpan.appendChild(a);
+ node.label = document.createTextNode(text);
+ node.expanded = false;
+ a.appendChild(node.label);
+ if (link) {
+ var url;
+ if (link.substring(0,1)=='^') {
+ url = link.substring(1);
+ link = url;
+ } else {
+ url = node.relpath+link;
+ }
+ a.className = stripPath(link.replace('#',':'));
+ if (link.indexOf('#')!=-1) {
+ var aname = '#'+link.split('#')[1];
+ var srcPage = stripPath($(location).attr('pathname'));
+ var targetPage = stripPath(link.split('#')[0]);
+ a.href = srcPage!=targetPage ? url : "javascript:void(0)";
+ a.onclick = function(){
+ storeLink(link);
+ if (!$(a).parent().parent().hasClass('selected'))
+ {
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ $(a).parent().parent().addClass('selected');
+ $(a).parent().parent().attr('id','selected');
+ }
+ var anchor = $(aname);
+ gotoAnchor(anchor,aname,true);
+ };
+ } else {
+ a.href = url;
+ a.onclick = function() { storeLink(link); }
+ }
+ } else {
+ if (childrenData != null)
+ {
+ a.className = "nolink";
+ a.href = "javascript:void(0)";
+ a.onclick = node.expandToggle.onclick;
+ }
+ }
+
+ node.childrenUL = null;
+ node.getChildrenUL = function() {
+ if (!node.childrenUL) {
+ node.childrenUL = document.createElement("ul");
+ node.childrenUL.className = "children_ul";
+ node.childrenUL.style.display = "none";
+ node.li.appendChild(node.childrenUL);
+ }
+ return node.childrenUL;
+ };
+
+ return node;
+}
+
+function showRoot()
+{
+ var headerHeight = $("#top").height();
+ var footerHeight = $("#nav-path").height();
+ var windowHeight = $(window).height() - headerHeight - footerHeight;
+ (function (){ // retry until we can scroll to the selected item
+ try {
+ var navtree=$('#nav-tree');
+ navtree.scrollTo('#selected',0,{offset:-windowHeight/2});
+ } catch (err) {
+ setTimeout(arguments.callee, 0);
+ }
+ })();
+}
+
+function expandNode(o, node, imm, showRoot)
+{
+ if (node.childrenData && !node.expanded) {
+ if (typeof(node.childrenData)==='string') {
+ var varName = node.childrenData;
+ getScript(node.relpath+varName,function(){
+ node.childrenData = getData(varName);
+ expandNode(o, node, imm, showRoot);
+ }, showRoot);
+ } else {
+ if (!node.childrenVisited) {
+ getNode(o, node);
+ } if (imm || ($.browser.msie && $.browser.version>8)) {
+ // somehow slideDown jumps to the start of tree for IE9 :-(
+ $(node.getChildrenUL()).show();
+ } else {
+ $(node.getChildrenUL()).slideDown("fast");
+ }
+ if (node.isLast) {
+ node.plus_img.src = node.relpath+"ftv2mlastnode.png";
+ } else {
+ node.plus_img.src = node.relpath+"ftv2mnode.png";
+ }
+ node.expanded = true;
+ }
+ }
+}
+
+function glowEffect(n,duration)
+{
+ n.addClass('glow').delay(duration).queue(function(next){
+ $(this).removeClass('glow');next();
+ });
+}
+
+function highlightAnchor()
+{
+ var aname = $(location).attr('hash');
+ var anchor = $(aname);
+ if (anchor.parent().attr('class')=='memItemLeft'){
+ var rows = $('.memberdecls tr[class$="'+
+ window.location.hash.substring(1)+'"]');
+ glowEffect(rows.children(),300); // member without details
+ } else if (anchor.parents().slice(2).prop('tagName')=='TR') {
+ glowEffect(anchor.parents('div.memitem'),1000); // enum value
+ } else if (anchor.parent().attr('class')=='fieldtype'){
+ glowEffect(anchor.parent().parent(),1000); // struct field
+ } else if (anchor.parent().is(":header")) {
+ glowEffect(anchor.parent(),1000); // section header
+ } else {
+ glowEffect(anchor.next(),1000); // normal member
+ }
+ gotoAnchor(anchor,aname,false);
+}
+
+function selectAndHighlight(hash,n)
+{
+ var a;
+ if (hash) {
+ var link=stripPath($(location).attr('pathname'))+':'+hash.substring(1);
+ a=$('.item a[class$="'+link+'"]');
+ }
+ if (a && a.length) {
+ a.parent().parent().addClass('selected');
+ a.parent().parent().attr('id','selected');
+ highlightAnchor();
+ } else if (n) {
+ $(n.itemDiv).addClass('selected');
+ $(n.itemDiv).attr('id','selected');
+ }
+ if ($('#nav-tree-contents .item:first').hasClass('selected')) {
+ $('#nav-sync').css('top','30px');
+ } else {
+ $('#nav-sync').css('top','5px');
+ }
+ showRoot();
+}
+
+function showNode(o, node, index, hash)
+{
+ if (node && node.childrenData) {
+ if (typeof(node.childrenData)==='string') {
+ var varName = node.childrenData;
+ getScript(node.relpath+varName,function(){
+ node.childrenData = getData(varName);
+ showNode(o,node,index,hash);
+ },true);
+ } else {
+ if (!node.childrenVisited) {
+ getNode(o, node);
+ }
+ $(node.getChildrenUL()).show();
+ if (node.isLast) {
+ node.plus_img.src = node.relpath+"ftv2mlastnode.png";
+ } else {
+ node.plus_img.src = node.relpath+"ftv2mnode.png";
+ }
+ node.expanded = true;
+ var n = node.children[o.breadcrumbs[index]];
+ if (index+1<o.breadcrumbs.length) {
+ showNode(o,n,index+1,hash);
+ } else {
+ if (typeof(n.childrenData)==='string') {
+ var varName = n.childrenData;
+ getScript(n.relpath+varName,function(){
+ n.childrenData = getData(varName);
+ node.expanded=false;
+ showNode(o,node,index,hash); // retry with child node expanded
+ },true);
+ } else {
+ var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
+ if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
+ expandNode(o, n, true, true);
+ }
+ selectAndHighlight(hash,n);
+ }
+ }
+ }
+ } else {
+ selectAndHighlight(hash);
+ }
+}
+
+function getNode(o, po)
+{
+ po.childrenVisited = true;
+ var l = po.childrenData.length-1;
+ for (var i in po.childrenData) {
+ var nodeData = po.childrenData[i];
+ po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
+ i==l);
+ }
+}
+
+function gotoNode(o,subIndex,root,hash,relpath)
+{
+ var nti = navTreeSubIndices[subIndex][root+hash];
+ o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
+ if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
+ navTo(o,NAVTREE[0][1],"",relpath);
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ if (o.breadcrumbs) {
+ o.breadcrumbs.unshift(0); // add 0 for root node
+ showNode(o, o.node, 0, hash);
+ }
+}
+
+function navTo(o,root,hash,relpath)
+{
+ var link = cachedLink();
+ if (link) {
+ var parts = link.split('#');
+ root = parts[0];
+ if (parts.length>1) hash = '#'+parts[1];
+ else hash='';
+ }
+ if (hash.match(/^#l\d+$/)) {
+ var anchor=$('a[name='+hash.substring(1)+']');
+ glowEffect(anchor.parent(),1000); // line number
+ hash=''; // strip line number anchors
+ //root=root.replace(/_source\./,'.'); // source link to doc link
+ }
+ var url=root+hash;
+ var i=-1;
+ while (NAVTREEINDEX[i+1]<=url) i++;
+ if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath)
+ } else {
+ getScript(relpath+'navtreeindex'+i,function(){
+ navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath);
+ }
+ },true);
+ }
+}
+
+function showSyncOff(n,relpath)
+{
+ n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
+}
+
+function showSyncOn(n,relpath)
+{
+ n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
+}
+
+function toggleSyncButton(relpath)
+{
+ var navSync = $('#nav-sync');
+ if (navSync.hasClass('sync')) {
+ navSync.removeClass('sync');
+ showSyncOff(navSync,relpath);
+ storeLink(stripPath2($(location).attr('pathname'))+$(location).attr('hash'));
+ } else {
+ navSync.addClass('sync');
+ showSyncOn(navSync,relpath);
+ deleteLink();
+ }
+}
+
+function initNavTree(toroot,relpath)
+{
+ var o = new Object();
+ o.toroot = toroot;
+ o.node = new Object();
+ o.node.li = document.getElementById("nav-tree-contents");
+ o.node.childrenData = NAVTREE;
+ o.node.children = new Array();
+ o.node.childrenUL = document.createElement("ul");
+ o.node.getChildrenUL = function() { return o.node.childrenUL; };
+ o.node.li.appendChild(o.node.childrenUL);
+ o.node.depth = 0;
+ o.node.relpath = relpath;
+ o.node.expanded = false;
+ o.node.isLast = true;
+ o.node.plus_img = document.createElement("img");
+ o.node.plus_img.src = relpath+"ftv2pnode.png";
+ o.node.plus_img.width = 16;
+ o.node.plus_img.height = 22;
+
+ if (localStorageSupported()) {
+ var navSync = $('#nav-sync');
+ if (cachedLink()) {
+ showSyncOff(navSync,relpath);
+ navSync.removeClass('sync');
+ } else {
+ showSyncOn(navSync,relpath);
+ }
+ navSync.click(function(){ toggleSyncButton(relpath); });
+ }
+
+ navTo(o,toroot,window.location.hash,relpath);
+
+ $(window).bind('hashchange', function(){
+ if (window.location.hash && window.location.hash.length>1){
+ var a;
+ if ($(location).attr('hash')){
+ var clslink=stripPath($(location).attr('pathname'))+':'+
+ $(location).attr('hash').substring(1);
+ a=$('.item a[class$="'+clslink+'"]');
+ }
+ if (a==null || !$(a).parent().parent().hasClass('selected')){
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ var link=stripPath2($(location).attr('pathname'));
+ navTo(o,link,$(location).attr('hash'),relpath);
+ } else if (!animationInProgress) {
+ $('#doc-content').scrollTop(0);
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ navTo(o,toroot,window.location.hash,relpath);
+ }
+ })
+
+ $(window).load(showRoot);
+}
+
diff --git a/doc/html/navtreeindex0.js b/doc/html/navtreeindex0.js
new file mode 100644
index 000000000..073a92fdf
--- /dev/null
+++ b/doc/html/navtreeindex0.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX0 =
+{
+"BaseObject_8php.html":[5,0,0,8],
+"Contact_8php.html":[5,0,0,14],
+"Contact_8php.html#a024919623a830e8703ac4f23496dd66c":[5,0,0,14,2],
+"Contact_8php.html#a228fc01f90ae9bfdde4c2ad0772bd7dc":[5,0,0,14,8],
+"Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6":[5,0,0,14,7],
+"Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15":[5,0,0,14,12],
+"Contact_8php.html#a38daa1c210b78385307123450ca9a1fc":[5,0,0,14,11],
+"Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc":[5,0,0,14,5],
+"Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258":[5,0,0,14,4],
+"Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960":[5,0,0,14,13],
+"Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e":[5,0,0,14,6],
+"Contact_8php.html#a91281b5d4bbbb2ed468e27ec82ca083c":[5,0,0,14,9],
+"Contact_8php.html#acc12cda999c88c4d6185cca967c15125":[5,0,0,14,10],
+"Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa":[5,0,0,14,3],
+"Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5":[5,0,0,14,1],
+"Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e":[5,0,0,14,0],
+"ConversationObject_8php.html":[5,0,0,18],
+"ITemplateEngine_8php.html":[5,0,0,37],
+"ItemObject_8php.html":[5,0,0,36],
+"ProtoDriver_8php.html":[5,0,0,54],
+"__well__known_8php.html":[5,0,1,0],
+"__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0":[5,0,1,0,0],
+"account_8php.html":[5,0,0,2],
+"account_8php.html#a014de2d5d5c9785de5bf547a485822fa":[5,0,0,2,6],
+"account_8php.html#a141fe579c351c78209d425473f978eb5":[5,0,0,2,5],
+"account_8php.html#a144b4891022567668375b58ea61cfff0":[5,0,0,2,4],
+"account_8php.html#a43e3042b2723d76915a030bac3c668b6":[5,0,0,2,0],
+"account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f":[5,0,0,2,1],
+"account_8php.html#aa9c29c497c17d8f9344dce8631ad8761":[5,0,0,2,7],
+"account_8php.html#aaff7720423417a4333697894ffd9ddeb":[5,0,0,2,3],
+"account_8php.html#ac1653efba62493b9d87513e1b6c04c83":[5,0,0,2,9],
+"account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1":[5,0,0,2,8],
+"account_8php.html#ae052bd5558847bd38e89c213561a9771":[5,0,0,2,2],
+"acl_8php.html":[5,0,1,1],
+"acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f":[5,0,1,1,1],
+"acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a":[5,0,1,1,0],
+"acl__selectors_8php.html":[5,0,0,3],
+"acl__selectors_8php.html#a51f2ec7a143d5a5b38e35efd5f3d6e2c":[5,0,0,3,3],
+"acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91":[5,0,0,3,0],
+"acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0":[5,0,0,3,2],
+"acl__selectors_8php.html#ad6664fb8330308e23f2645cd6624727e":[5,0,0,3,1],
+"activities_8php.html":[5,0,0,4],
+"activities_8php.html#a80134e807719b3c54aba971958d2e132":[5,0,0,4,0],
+"admin_8php.html":[5,0,1,2],
+"admin_8php.html#a1d1362698af14d209aa3a0fb655551dd":[5,0,1,2,2],
+"admin_8php.html#a233b7c8c31776b7020532003c6e44e1c":[5,0,1,2,3],
+"admin_8php.html#a54128076986ba80c4a103de3fc3e19a8":[5,0,1,2,4],
+"admin_8php.html#a5a696706a3869800e65fb365214241b7":[5,0,1,2,10],
+"admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2":[5,0,1,2,9],
+"admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade":[5,0,1,2,1],
+"admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e":[5,0,1,2,5],
+"admin_8php.html#ac6e95b920b5abd030cc522964987087a":[5,0,1,2,7],
+"admin_8php.html#acf51f5837a7427832144c2bf7308ada3":[5,0,1,2,11],
+"admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4":[5,0,1,2,13],
+"admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f":[5,0,1,2,6],
+"admin_8php.html#ae46311a3fefc21abc838a26e91789de6":[5,0,1,2,12],
+"admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb":[5,0,1,2,8],
+"admin_8php.html#af81f081851791cd15e49e8ff6722dc27":[5,0,1,2,14],
+"admin_8php.html#afef415e4011607fbb665610441595015":[5,0,1,2,0],
+"allfriends_8php.html":[5,0,1,3],
+"allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83":[5,0,1,3,0],
+"annotated.html":[4,0],
+"apps_8php.html":[5,0,1,5],
+"apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c":[5,0,1,5,0],
+"auth_8php.html":[5,0,0,7],
+"auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee":[5,0,0,7,0],
+"auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5":[5,0,0,7,2],
+"auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a":[5,0,0,7,1],
+"bb2diaspora_8php.html":[5,0,0,9],
+"bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93":[5,0,0,9,7],
+"bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6":[5,0,0,9,2],
+"bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863":[5,0,0,9,5],
+"bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2":[5,0,0,9,6],
+"bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c":[5,0,0,9,0],
+"bb2diaspora_8php.html#a599428bceb6f6d82a6a78cb66811f747":[5,0,0,9,8],
+"bb2diaspora_8php.html#a8b96bd45884fa1c40b942939354197d4":[5,0,0,9,3],
+"bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba":[5,0,0,9,1],
+"bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc":[5,0,0,9,4],
+"bbcode_8php.html":[5,0,0,10],
+"bbcode_8php.html#a009f61aaf78771737ed0765c8463911b":[5,0,0,10,4],
+"bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d":[5,0,0,10,3],
+"bbcode_8php.html#a2be26414a367118143cc89e2d58e7377":[5,0,0,10,1],
+"bbcode_8php.html#a52c45273fbb7ce5ec27094f7936856e1":[5,0,0,10,0],
+"bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7":[5,0,0,10,5],
+"bbcode_8php.html#a8911e027907820df3db03b4f76724b50":[5,0,0,10,2],
+"boot_8php.html":[5,0,4],
+"boot_8php.html#a009e6a0637cb65804ea8094ecc4450b0":[5,0,4,126],
+"boot_8php.html#a01353c9abebc3544ea080ac161729632":[5,0,4,42],
+"boot_8php.html#a022cea669f9f13ef7c6268b63884c57f":[5,0,4,139],
+"boot_8php.html#a02566ac9d891369a1d3ebb81a15722fc":[5,0,4,224],
+"boot_8php.html#a032bbd6d0321e99e9117332c9ed2b1b8":[5,0,4,57],
+"boot_8php.html#a03d19251c245587de7ed959300b87bdf":[5,0,4,153],
+"boot_8php.html#a0450389f24c632906fbc24347700a543":[5,0,4,53],
+"boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b":[5,0,4,104],
+"boot_8php.html#a081307d681d7d04f17b9ced2076e7c85":[5,0,4,1],
+"boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3":[5,0,4,191],
+"boot_8php.html#a0a98dd0110dc6c8e24cefc8ae74d5562":[5,0,4,69],
+"boot_8php.html#a0b73e2548d6f9beb9c93211f488e336a":[5,0,4,157],
+"boot_8php.html#a0c59dde058efebbc66520d136cbd1631":[5,0,4,240],
+"boot_8php.html#a0cc8dc76bd10ac0ec81bac08a46f82fe":[5,0,4,236],
+"boot_8php.html#a0d877df1e20bae765e1708be50f6b503":[5,0,4,239],
+"boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84":[5,0,4,25],
+"boot_8php.html#a0e57f846e6d47a308feced0f7274f178":[5,0,4,61],
+"boot_8php.html#a0e6db7e365f2b041a828b93786f694bc":[5,0,4,15],
+"boot_8php.html#a0fb63e51c2a9814941842ae8f2f4dff8":[5,0,4,79],
+"boot_8php.html#a12c781cefc20167231e2e3fd5866b1b5":[5,0,4,83],
+"boot_8php.html#a14ba8f9e162f2559831ee3bf98e0c3bd":[5,0,4,80],
+"boot_8php.html#a14d44d4a00223dc3db4ea962325db192":[5,0,4,183],
+"boot_8php.html#a176664e78dcb9132e16be69418223eb2":[5,0,4,64],
+"boot_8php.html#a17b4ea23d9ecf628d9c8f53b7abcb805":[5,0,4,138],
+"boot_8php.html#a17cf72338b040891781a4bcbdd9a8595":[5,0,4,134],
+"boot_8php.html#a181c111f4b6c14d091dfd3bf0d0a22cd":[5,0,4,156],
+"boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2":[5,0,4,243],
+"boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86":[5,0,4,160],
+"boot_8php.html#a1da180f961f49a11573cac4ff6c62c05":[5,0,4,78],
+"boot_8php.html#a1db4f0009c9cb4e107eab0f914a3c8dc":[5,0,4,201],
+"boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273":[5,0,4,38],
+"boot_8php.html#a1f5906598e90b5ea2b4245f682be4348":[5,0,4,106],
+"boot_8php.html#a1fbb93cf030f07391f22cc2948744869":[5,0,4,145],
+"boot_8php.html#a20f0eed431d25870b624b8937a07a59f":[5,0,4,176],
+"boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3":[5,0,4,220],
+"boot_8php.html#a222395aa223cfbff6166fab0b4e2e1d5":[5,0,4,48],
+"boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77":[5,0,4,24],
+"boot_8php.html#a25476eec71fceda237f7dc1d78b0adb8":[5,0,4,102],
+"boot_8php.html#a27299ecfb9e9a99826f17a1c14c6995f":[5,0,4,94],
+"boot_8php.html#a2750985ec445617d7e82ae3098c91e3f":[5,0,4,229],
+"boot_8php.html#a285732e7889fa7f333cbe431111e1029":[5,0,4,179],
+"boot_8php.html#a29528a2544373cc19a378f350040c6a1":[5,0,4,85],
+"boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221":[5,0,4,121],
+"boot_8php.html#a29e921c0c72412cc738e44cca6ca1f62":[5,0,4,199],
+"boot_8php.html#a2af173e4e9836ee7c90757b4793a2be3":[5,0,4,107],
+"boot_8php.html#a2c65e925994566a63e6c03c381f1b4a0":[5,0,4,175],
+"boot_8php.html#a2c8906f1af94a3559a5b4661067bb79d":[5,0,4,119],
+"boot_8php.html#a2e90096fede6acce16abf0da8cb2febe":[5,0,4,70],
+"boot_8php.html#a2f8f25b13480c37a5f22511f53da8bab":[5,0,4,75],
+"boot_8php.html#a32df13fec0e43281da5979e1f5579aa8":[5,0,4,206],
+"boot_8php.html#a3475ff6c2e575f946ea0ee377e944173":[5,0,4,132],
+"boot_8php.html#a34c756469ebed32e2fc987bcde62d382":[5,0,4,50],
+"boot_8php.html#a3515ea6bf77495de89b93e9ccd881c49":[5,0,4,112],
+"boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd":[5,0,4,147],
+"boot_8php.html#a36b31575f992a10b5927b76efba9362e":[5,0,4,245],
+"boot_8php.html#a38f6c7fe33b5434a24b4314567753dfa":[5,0,4,164],
+"boot_8php.html#a3ad9cc5d4354be741fa1de12b96e9955":[5,0,4,108],
+"boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af":[5,0,4,244],
+"boot_8php.html#a3d6d4fc5fafcc9156811669158541caf":[5,0,4,197],
+"boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4":[5,0,4,12],
+"boot_8php.html#a3e2ea123d29a72012db1241f96280b0e":[5,0,4,62],
+"boot_8php.html#a3f40aa5bafff8c4eebdc62e5121daf77":[5,0,4,92],
+"boot_8php.html#a400519fa181591cd6fdbb8f25fbcba0a":[5,0,4,55],
+"boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb":[5,0,4,122],
+"boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b":[5,0,4,193],
+"boot_8php.html#a43296b1b4398aacbf92a4b2d56bab91e":[5,0,4,174],
+"boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731":[5,0,4,91],
+"boot_8php.html#a444ce608ce34efb82ee11852f36e825f":[5,0,4,150],
+"boot_8php.html#a44ae1542a805ffd7f826fb511db07374":[5,0,4,142],
+"boot_8php.html#a44d069c8a1cfcc6d2007c506a17ff28f":[5,0,4,73],
+"boot_8php.html#a45b12aefab9675baffc7a07a09486db8":[5,0,4,237],
+"boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68":[5,0,4,36],
+"boot_8php.html#a490972c02fdb638c52ec0e012a30bfd2":[5,0,4,19],
+"boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47":[5,0,4,162],
+"boot_8php.html#a4a12ce5de39789b0361e308d89925a20":[5,0,4,105],
+"boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4":[5,0,4,214],
+"boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e":[5,0,4,161],
+"boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3":[5,0,4,6],
+"boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6":[5,0,4,192],
+"boot_8php.html#a4fefd7486d3b888a05cfd3dc9575f115":[5,0,4,210],
+"boot_8php.html#a505410c7edc5f5bb5fa227b98359793e":[5,0,4,186],
+"boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa":[5,0,4,146],
+"boot_8php.html#a52b599cd13e152ebc80d7e4413683195":[5,0,4,49],
+"boot_8php.html#a53e4bdb6f225da55115acb9277f75e53":[5,0,4,84],
+"boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209":[5,0,4,39],
+"boot_8php.html#a56fd673eaa7014150297ce1162502db5":[5,0,4,178],
+"boot_8php.html#a57eee7352714c004d36c26dda74af73e":[5,0,4,209],
+"boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1":[5,0,4,23],
+"boot_8php.html#a5ae728ac966ea1d3525a19e7fec59434":[5,0,4,63],
+"boot_8php.html#a5b043b7fdcfd4e8c9c3747574afc6caa":[5,0,4,168],
+"boot_8php.html#a5b45d647da3743a7fc8c6223350b4d67":[5,0,4,35],
+"boot_8php.html#a5b815330f3d177ab383af37a6c12e532":[5,0,4,46],
+"boot_8php.html#a5b8484922918946d041e5e0515dbe718":[5,0,4,189],
+"boot_8php.html#a5c3747e0f505f0d5271dc4c54e3feaf4":[5,0,4,81],
+"boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2":[5,0,4,148],
+"boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640":[5,0,4,190],
+"boot_8php.html#a623e49c79943f3e7bdb770d021683cf7":[5,0,4,21],
+"boot_8php.html#a62c832a95e38b1fa23e6cef39521b7d5":[5,0,4,77],
+"boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b":[5,0,4,37],
+"boot_8php.html#a64617d4655804de2a3c86501ab4fdbfd":[5,0,4,233],
+"boot_8php.html#a6626f383c3d2d459f731ab8b4f237d16":[5,0,4,154],
+"boot_8php.html#a6788e99021ec8ffb0fa94d651f22a322":[5,0,4,130],
+"boot_8php.html#a680fbafc2db023c5b1309e0180e81315":[5,0,4,47],
+"boot_8php.html#a68d1d5bc9c7ccb663dc671b48c66df11":[5,0,4,133],
+"boot_8php.html#a68eebe493e6f729ffd1aeda7a4b11155":[5,0,4,52],
+"boot_8php.html#a6969947145a139ec374ce098224d8e81":[5,0,4,136],
+"boot_8php.html#a69aac276ed82e010dc382b16ab4d59e1":[5,0,4,222],
+"boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2":[5,0,4,213],
+"boot_8php.html#a6b31dd451bc6c37fe7c9c766ff385aaf":[5,0,4,207],
+"boot_8php.html#a6b9909db6a7ec80ec6fdd40ba74014dd":[5,0,4,103],
+"boot_8php.html#a6c5e9e293c8242dcb9bc2c3ea2fee2c9":[5,0,4,95],
+"boot_8php.html#a6df1102664f64b274810db85197c2755":[5,0,4,195],
+"boot_8php.html#a7176c0f9f1c98421b97735d892cf6252":[5,0,4,221],
+"boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6":[5,0,4,30],
+"boot_8php.html#a7236b2cdcf59f02a42302e893a99013b":[5,0,4,169],
+"boot_8php.html#a749144d8dd9c1366596a0213c277d050":[5,0,4,124],
+"boot_8php.html#a74bf27f7564c9a37975e7b37d973dcab":[5,0,4,74],
+"boot_8php.html#a75a90b0eadd0df510f7e63210733634d":[5,0,4,2],
+"boot_8php.html#a75fc600186b13c3b25e661afefb5eac8":[5,0,4,241],
+"boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006":[5,0,4,4],
+"boot_8php.html#a774f0f792ebfec1e774c5a17bb9d5966":[5,0,4,76],
+"boot_8php.html#a781916f83fcc8ff1035649afa45f0292":[5,0,4,89],
+"boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383":[5,0,4,216],
+"boot_8php.html#a7aa57438db03834aaa0b468bdce773a6":[5,0,4,67],
+"boot_8php.html#a7af107fab8d62b9a73801713b774ed30":[5,0,4,123],
+"boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133":[5,0,4,149],
+"boot_8php.html#a7bff2278e68a71e524afd1c7c951e1e3":[5,0,4,71],
+"boot_8php.html#a7ed4581ab66ebcde97f6b3730856b028":[5,0,4,151],
+"boot_8php.html#a7f4264232dbb6c3b41f2617deecb1866":[5,0,4,86],
+"boot_8php.html#a8231d115060d41a9c2a677f2c86f10ed":[5,0,4,187],
+"boot_8php.html#a84057c5bfa1bca5fba8497fe005ee4d8":[5,0,4,56],
+"boot_8php.html#a8663f32171568489dbb2a01dd00371f8":[5,0,4,117],
+"boot_8php.html#a882b666adfe21f035a0f8c02806066d6":[5,0,4,232],
+"boot_8php.html#a8892374789fd261eb32a7969d934a14a":[5,0,4,231],
+"boot_8php.html#a8905fde0a5b7882bdc083b20d9b34701":[5,0,4,167],
+"boot_8php.html#a8a60cc38bb567765fd926fef70205f16":[5,0,4,100],
+"boot_8php.html#a8bb0395933b5e886f086f6a2fb0bfa55":[5,0,4,211],
+"boot_8php.html#a8c9dce0ef27b35397e29298eb966f7f7":[5,0,4,120],
+"boot_8php.html#a8da836617174eed9fc2ac8054125354b":[5,0,4,114],
+"boot_8php.html#a8df201788c9dd0ca91384e3a14c08bce":[5,0,4,218],
+"boot_8php.html#a9255af5ae9c887520091ea04763c1a88":[5,0,4,33],
+"boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3":[5,0,4,11],
+"boot_8php.html#a93823d15ae07548a4c49de88d325cd26":[5,0,4,137],
+"boot_8php.html#a939de9a99278f4fd7dcd0ee67f243f08":[5,0,4,118],
+"boot_8php.html#a949116d9a295b214293006c060ca4848":[5,0,4,116],
+"boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4":[5,0,4,219],
+"boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90":[5,0,4,18],
+"boot_8php.html#a981d46380f9f23c308bac1f9cb00dc5b":[5,0,4,181],
+"boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777":[5,0,4,212],
+"boot_8php.html#a9cbab4ee728e9a8b4ce952bae643044e":[5,0,4,5],
+"boot_8php.html#a9cc986b4f9dd6558cbb2e25aadbfd964":[5,0,4,204],
+"boot_8php.html#a9d01ef178b72b145016cca1393415bc4":[5,0,4,182],
+"boot_8php.html#a9eeb8989272d5ff804a616898bb13659":[5,0,4,234],
+"boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f":[5,0,4,203],
+"boot_8php.html#aa17a4f9c63f5cbc5c06f1066b6aebc42":[5,0,4,170],
+"boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e":[5,0,4,28],
+"boot_8php.html#aa275653b9c87abc7391bb8040c1c2de9":[5,0,4,188],
+"boot_8php.html#aa3425e2de85b08f7041656d3a8502cb6":[5,0,4,51],
+"boot_8php.html#aa3679df31c8dad1b71816b0322d5baff":[5,0,4,144],
+"boot_8php.html#aa4221641e5c21db69fa52c426b9017f5":[5,0,4,9],
+"boot_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec":[5,0,4,20],
+"boot_8php.html#aa544a6c078130d0967a1f4ed8ce0a2d2":[5,0,4,141],
+"boot_8php.html#aa74438cf71e48e37bf7b440b94243985":[5,0,4,88],
+"boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d":[5,0,4,97]
+};
diff --git a/doc/html/navtreeindex1.js b/doc/html/navtreeindex1.js
new file mode 100644
index 000000000..aa7a90400
--- /dev/null
+++ b/doc/html/navtreeindex1.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX1 =
+{
+"boot_8php.html#aa9244fc9cc221980c07a20cc534111be":[5,0,4,208],
+"boot_8php.html#aad33b494084f729b6ee3b0bc457718a1":[5,0,4,128],
+"boot_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3":[5,0,4,22],
+"boot_8php.html#aaf9b76832ee5f85e56466af162ba8a14":[5,0,4,68],
+"boot_8php.html#ab21fb0f3e6b962419955c6fc7f26734f":[5,0,4,173],
+"boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f":[5,0,4,110],
+"boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6":[5,0,4,194],
+"boot_8php.html#ab346a2ece14993861f3e4206befa94f0":[5,0,4,34],
+"boot_8php.html#ab4bc9c50ecc927b92d519e36562b0df0":[5,0,4,215],
+"boot_8php.html#ab4bddb41a0cf407178ec5278b950c393":[5,0,4,166],
+"boot_8php.html#ab51965fabe54dc031e9a0ce1142ee83e":[5,0,4,198],
+"boot_8php.html#ab54b24cc302e1a42a67a49d788b6b764":[5,0,4,109],
+"boot_8php.html#ab55b16ae7fc19fafe5afaedd49163bbf":[5,0,4,129],
+"boot_8php.html#ab55e545b72ec8c097e052ea7d373491f":[5,0,4,43],
+"boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78":[5,0,4,58],
+"boot_8php.html#ab724491497ab2618b23a01d5da60aec0":[5,0,4,184],
+"boot_8php.html#ab79b8b4555cae20d03f8200666d89d63":[5,0,4,7],
+"boot_8php.html#ab7d65a7e7417825a4db62906bb600729":[5,0,4,99],
+"boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda":[5,0,4,44],
+"boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7":[5,0,4,3],
+"boot_8php.html#abd7bb40da9cc073297e49736b338ca07":[5,0,4,238],
+"boot_8php.html#abdcdfc873ace4e0902177bad934de0c0":[5,0,4,66],
+"boot_8php.html#abedd940e664017c61b48c6efa31d0cb8":[5,0,4,98],
+"boot_8php.html#ac01230c7655e0705b2e99c9bc03c4450":[5,0,4,115],
+"boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c":[5,0,4,27],
+"boot_8php.html#ac195fc9003298923ea81f144388e24b1":[5,0,4,152],
+"boot_8php.html#ac43182e0d8bae7576a30b603774974f8":[5,0,4,217],
+"boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03":[5,0,4,96],
+"boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0":[5,0,4,41],
+"boot_8php.html#ac8400313df2c831653f9036f71ebd86d":[5,0,4,59],
+"boot_8php.html#ac86615ddc0763a00f5311c90e991730c":[5,0,4,242],
+"boot_8php.html#ac890557fedc5b5a3b1d996249b1e1a20":[5,0,4,111],
+"boot_8php.html#ac99fc4d040764eac1736bec6973556fe":[5,0,4,113],
+"boot_8php.html#aca08bc4f1554ba877500f6abcc99e1e8":[5,0,4,180],
+"boot_8php.html#aca47505b8732177f52bb2d647eb2741c":[5,0,4,40],
+"boot_8php.html#aca5e42678e178c6b9034610d66666fd7":[5,0,4,13],
+"boot_8php.html#acc4e0c910af066148b810e5fde55fff1":[5,0,4,8],
+"boot_8php.html#acca19aae62e1a6951a856b945de20d67":[5,0,4,155],
+"boot_8php.html#acd877c405b06b348b37b6f7e62a211e9":[5,0,4,205],
+"boot_8php.html#aced60c7285192e80b7c4757e45a7f1e3":[5,0,4,65],
+"boot_8php.html#ad0876e837cf3fad8a26417e315f6e2c8":[5,0,4,140],
+"boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13":[5,0,4,10],
+"boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51":[5,0,4,16],
+"boot_8php.html#ad302cb26b838898d475f57f61b0fcc9f":[5,0,4,72],
+"boot_8php.html#ad34c1547020a305915bcc39707744690":[5,0,4,87],
+"boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44":[5,0,4,31],
+"boot_8php.html#ad789aef3cb95fc1eb36be7c4283d0137":[5,0,4,200],
+"boot_8php.html#ad8887b49bbb02dd30b4eb9f6c7773c63":[5,0,4,223],
+"boot_8php.html#ada72d88ae39a7e3b45baea201cb49a29":[5,0,4,93],
+"boot_8php.html#adaeb4f590c56326b2dca3b19f31b6272":[5,0,4,125],
+"boot_8php.html#adca48aee78465ae3064ca4432c0d87b5":[5,0,4,226],
+"boot_8php.html#add517a0958ac684792c62142a3877f81":[5,0,4,45],
+"boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498":[5,0,4,26],
+"boot_8php.html#ae37444eaa42705185080ccf3e670cbc2":[5,0,4,230],
+"boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312":[5,0,4,17],
+"boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e":[5,0,4,163],
+"boot_8php.html#ae4861de36017fe399c1839f778bad9f5":[5,0,4,143],
+"boot_8php.html#ae94f7c7c0909629a75aed1c41f10bc95":[5,0,4,171],
+"boot_8php.html#aea7fc57a4d8e9dcb42f2601b0b9b761c":[5,0,4,29],
+"boot_8php.html#aead84fa27d7516b855220fe004964a45":[5,0,4,235],
+"boot_8php.html#aec36f8fcd4cb14a52934590b3d6666b4":[5,0,4,202],
+"boot_8php.html#aedfb9501ed408278667995524e0d15cf":[5,0,4,101],
+"boot_8php.html#aee324eca9de4e0fedf01ab5f92e27c67":[5,0,4,158],
+"boot_8php.html#aef4b6c558c68c88c10f13c5a00c20e3d":[5,0,4,172],
+"boot_8php.html#aefba06f1c0842036329033e7567ecf6d":[5,0,4,127],
+"boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4":[5,0,4,32],
+"boot_8php.html#af33d1b2e98a1e21af672005525d46dfe":[5,0,4,227],
+"boot_8php.html#af3905ea8f8568d0236db13fca40514e3":[5,0,4,165],
+"boot_8php.html#af3a4271630aabd8be592213f925d6a36":[5,0,4,60],
+"boot_8php.html#af3bdfc20979c16f15bb9c60446a480f9":[5,0,4,54],
+"boot_8php.html#af489d0c3166551b93e63a79ff2c9be35":[5,0,4,131],
+"boot_8php.html#af6937db5f581d006bf4a5c3d9c7e0461":[5,0,4,185],
+"boot_8php.html#af6f6f6f40139f12fc09ec47373b30919":[5,0,4,90],
+"boot_8php.html#af86c651547aa8f9e549ee40a09455549":[5,0,4,225],
+"boot_8php.html#af8c0cb0744c9a6b5d6d3baafb1f1e71d":[5,0,4,177],
+"boot_8php.html#afaf93b7026f784b113b4f8921745891e":[5,0,4,159],
+"boot_8php.html#afb97615e985a013799839b68b99018d7":[5,0,4,228],
+"boot_8php.html#afe084c30a1810c10442edb4fbcbc0086":[5,0,4,82],
+"boot_8php.html#afe63ae69ba55299f813766e54df06ede":[5,0,4,135],
+"boot_8php.html#afe88b920aa285982edb817a0dd44eb37":[5,0,4,14],
+"boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7":[5,0,4,196],
+"cache_8php.html":[5,0,0,11],
+"channel_8php.html":[5,0,1,7],
+"channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1":[5,0,1,7,1],
+"channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc":[5,0,1,7,2],
+"channel_8php.html#aea8e189f2fbabfda779349dd94082e8e":[5,0,1,7,0],
+"chanview_8php.html":[5,0,1,8],
+"chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b":[5,0,1,8,0],
+"classApp.html":[4,0,5],
+"classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3":[4,0,5,60],
+"classApp.html#a050b0696118da47e8b30859ad1a2c149":[4,0,5,44],
+"classApp.html#a084e03c77686d8c13390fef3f7428a2b":[4,0,5,5],
+"classApp.html#a08bc87aff64f39fbc084e9d6545cee4d":[4,0,5,2],
+"classApp.html#a08c24d6a6fc52fcc784b0f765f13b820":[4,0,5,76],
+"classApp.html#a08f0537964d98958d218066364cff785":[4,0,5,1],
+"classApp.html#a0ce85be198e46570366cb3344f3c55b8":[4,0,5,54],
+"classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d":[4,0,5,63],
+"classApp.html#a123b903dfe5d3488cc68db3471d36fd2":[4,0,5,34],
+"classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11":[4,0,5,80],
+"classApp.html#a14bd4b1c29f3aff371fe5d4cb11aeea3":[4,0,5,36],
+"classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f":[4,0,5,64],
+"classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2":[4,0,5,10],
+"classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7":[4,0,5,33],
+"classApp.html#a230e975296cf164da2fee35ef720964f":[4,0,5,37],
+"classApp.html#a244b2d53b21be269aad2269d23192f95":[4,0,5,78],
+"classApp.html#a256360c9184fed6d7556e0bc0a835d7f":[4,0,5,52],
+"classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f":[4,0,5,77],
+"classApp.html#a2eb832a8577dee7d40b93abdf6d1d35a":[4,0,5,14],
+"classApp.html#a330410a288f3393d53772f5e98f857ea":[4,0,5,55],
+"classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c":[4,0,5,68],
+"classApp.html#a344d2b7dc2f276648d521aee4da1731c":[4,0,5,27],
+"classApp.html#a3694aa1907aa103a2adbc71f926f0fa0":[4,0,5,59],
+"classApp.html#a3d84af5e42082098672531cd1a618853":[4,0,5,26],
+"classApp.html#a4659785d13e4bac0bed50dbb1b0d4299":[4,0,5,8],
+"classApp.html#a4776d9322edea17fae56afa5d01a323e":[4,0,5,28],
+"classApp.html#a4833bee2eae4ad1691a04fa19e11a766":[4,0,5,91],
+"classApp.html#a487332f8de40414ca1a54a4265570b70":[4,0,5,86],
+"classApp.html#a495ec082c2719314e536070ca1ce073d":[4,0,5,46],
+"classApp.html#a4b67935096f66d1f14b657399a8461ac":[4,0,5,70],
+"classApp.html#a4bdd7bfed62f50515fce652127bf481b":[4,0,5,29],
+"classApp.html#a4c7cfc62d39508086cf300dc2e39c4df":[4,0,5,62],
+"classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f":[4,0,5,69],
+"classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be":[4,0,5,11],
+"classApp.html#a557d7b779d8259027f4724ebf7b248dc":[4,0,5,32],
+"classApp.html#a560189f048d3db2f526841963cc43e97":[4,0,5,30],
+"classApp.html#a56b1a432c96aef8b1971f779c9d93c8c":[4,0,5,89],
+"classApp.html#a57d041fcc003d08c127dfa99a02bc192":[4,0,5,75],
+"classApp.html#a59dd4b665c70e7dbd80682c014ff7145":[4,0,5,65],
+"classApp.html#a5c63eabdc7fdd8b6e3348980ec16a3ad":[4,0,5,3],
+"classApp.html#a5cfc098c061b7d765add58fd2ca97445":[4,0,5,43],
+"classApp.html#a5e6a6bd641e4d9909df56f0283c03821":[4,0,5,24],
+"classApp.html#a5f64620473a9727a48ebe9cf6f335a98":[4,0,5,81],
+"classApp.html#a604d659d6977a99de42a160343e5289a":[4,0,5,4],
+"classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2":[4,0,5,49],
+"classApp.html#a622eace13f8fc9f4b5672a68e2bc4396":[4,0,5,9],
+"classApp.html#a6844aedad10e201b8c3d80cfc9e876d3":[4,0,5,82],
+"classApp.html#a6859a4848a5c0049b4134cc4b34228b6":[4,0,5,83],
+"classApp.html#a6bcb19cdc4907077da72864686d5a780":[4,0,5,71],
+"classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165":[4,0,5,67],
+"classApp.html#a6f55d087e1ff4710132c1b0863faa2ee":[4,0,5,51],
+"classApp.html#a764cc6cd7578132c21d2b4545de9301c":[4,0,5,84],
+"classApp.html#a78788f6e9d8b713b138f81e457c5cd08":[4,0,5,22],
+"classApp.html#a7954862f44f606b0ff83d4c74d15e792":[4,0,5,61],
+"classApp.html#a871898becd0697d778f36d9336253ae8":[4,0,5,16],
+"classApp.html#a8863703a0305eaa45eb970dbd2046291":[4,0,5,18],
+"classApp.html#a89e9feb2bfb5253883a9720beaffe876":[4,0,5,23],
+"classApp.html#a91fd3c8b89016113b05f3be24805ccff":[4,0,5,88],
+"classApp.html#a94a1ed2dc493c58612d17035b74ae736":[4,0,5,35],
+"classApp.html#a9632092d9e8fdaa82a9fc4586433fd31":[4,0,5,25],
+"classApp.html#a98ef4cfd36693a3457c879b76bc6d694":[4,0,5,48],
+"classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d":[4,0,5,66],
+"classApp.html#aa5a87c46ab3fee21362c466bf78042ef":[4,0,5,92],
+"classApp.html#aab23c59172310fd30f2d60dc039d3eea":[4,0,5,15],
+"classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e":[4,0,5,42],
+"classApp.html#ab35b01a366a2ea95725e97af278f87ab":[4,0,5,87],
+"classApp.html#ab3da757abe5cb45bf88f07cc51a73b58":[4,0,5,39],
+"classApp.html#ab410451f132910773d0a02e35d0dced9":[4,0,5,6],
+"classApp.html#ab47de68fa39806d1fb0976407e188b77":[4,0,5,73],
+"classApp.html#abaf2173711e861ae4aebf43a7f70157e":[4,0,5,7],
+"classApp.html#abe0e4fa91097f7a6588e1213a834121c":[4,0,5,41],
+"classApp.html#abea5a4f77dcd53c928dc4eed86616637":[4,0,5,21],
+"classApp.html#abf46a653d8499e7c253cc1be894a6d83":[4,0,5,19],
+"classApp.html#ac1a8b2cd40609b231a560201a08852ba":[4,0,5,56],
+"classApp.html#ac1d80a14492acc932715d54567d8a589":[4,0,5,50],
+"classApp.html#ac6e6b1c7d6df408580ff79977fcfa656":[4,0,5,58],
+"classApp.html#ac73dc90e4764497e2f1b7e6612c8fb88":[4,0,5,47],
+"classApp.html#acad5896b7a79ae31433ad8f89606c728":[4,0,5,72],
+"classApp.html#acb27e607fe4c82603444676e25c36b70":[4,0,5,13],
+"classApp.html#ad082d63acc078e5bf23825a03bdd6a76":[4,0,5,79],
+"classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0":[4,0,5,45],
+"classApp.html#ad5175536561021548ae8188e24c7b80c":[4,0,5,40],
+"classApp.html#adb060d5c7f35a521ec7ec0effbe08097":[4,0,5,31],
+"classApp.html#adb5a4bb657881e553978ff390babd01f":[4,0,5,12],
+"classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8":[4,0,5,90],
+"classApp.html#ae3f47830543d0d902f66913def8db66b":[4,0,5,57],
+"classApp.html#ae9f96338f32187d308b67b980eea0008":[4,0,5,74],
+"classApp.html#aeb1fe1c8ad9aa639909bd183ce578536":[4,0,5,20],
+"classApp.html#aeca29fd4f7192ca07369b3c598c36e67":[4,0,5,85],
+"classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166":[4,0,5,17],
+"classApp.html#af5007c42a693afd9c4899c243b2e1363":[4,0,5,53],
+"classApp.html#af58db526040829b1c8bd95561b329262":[4,0,5,38],
+"classApp.html#af6d39f63fb7116bbeb04e51696f99474":[4,0,5,0],
+"classBaseObject.html":[4,0,6],
+"classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2":[4,0,6,0],
+"classCache.html":[4,0,7],
+"classConversation.html":[4,0,8],
+"classConversation.html#a2a96b7a6573ae53db861624659e831cb":[4,0,8,5],
+"classConversation.html#a2f12724ef0244e9049fe1bb9641b516d":[4,0,8,16],
+"classConversation.html#a41f4a549e6a99f98935c4742addd22c8":[4,0,8,17],
+"classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8":[4,0,8,6],
+"classConversation.html#a5879199008b96bee7550b576d614e1c1":[4,0,8,9],
+"classConversation.html#a5effe8ad3007e01333df44b81432b813":[4,0,8,4],
+"classConversation.html#a66f121ca4026246f86a732e5faa0682c":[4,0,8,10],
+"classConversation.html#a6b064d00c56a6b7dec359d4348711c84":[4,0,8,0],
+"classConversation.html#a8335cdd43f1836e3c255638e61a09e16":[4,0,8,1],
+"classConversation.html#a8748445aa26047ebed5141f3c3cbc244":[4,0,8,14],
+"classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd":[4,0,8,2],
+"classConversation.html#a8898bddc1e8990e81dab9a13a532cc93":[4,0,8,11],
+"classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3":[4,0,8,7],
+"classConversation.html#adf25ce023b69a166c63c6e84e02c136a":[4,0,8,8],
+"classConversation.html#ae3d4190142e12b57051f11f2911f77a0":[4,0,8,3],
+"classConversation.html#ae81221251307e315f566a11f921ce0a9":[4,0,8,18],
+"classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae":[4,0,8,15],
+"classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a":[4,0,8,13],
+"classConversation.html#afd4965d22a6e4bfea2f35e931b3273c6":[4,0,8,12],
+"classFKOAuth1.html":[4,0,13],
+"classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f":[4,0,13,1],
+"classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6":[4,0,13,0],
+"classFKOAuthDataStore.html":[4,0,14],
+"classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1":[4,0,14,1],
+"classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050":[4,0,14,5],
+"classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934":[4,0,14,4],
+"classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599":[4,0,14,2],
+"classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab":[4,0,14,3],
+"classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819":[4,0,14,0],
+"classFriendicaSmarty.html":[4,0,15],
+"classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690":[4,0,15,2],
+"classFriendicaSmarty.html#a6a4d4281d6fa9be1d37a97b188ffe8c9":[4,0,15,1],
+"classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6":[4,0,15,0],
+"classFriendicaSmartyEngine.html":[4,0,16],
+"classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118":[4,0,16,1],
+"classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88":[4,0,16,2],
+"classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6":[4,0,16,0],
+"classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2":[4,0,16,3],
+"classItem.html":[4,0,17],
+"classItem.html#a007424e3e3171dcfb4312a02161da6cd":[4,0,17,30],
+"classItem.html#a078f95b4134ce3a1df344cf8d386f986":[4,0,17,33],
+"classItem.html#a0c301aaed2b7d682728d18db3a22afa3":[4,0,17,8],
+"classItem.html#a1a1e42877e6ac7af50286142ceb483d2":[4,0,17,35],
+"classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2":[4,0,17,38],
+"classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2":[4,0,17,0],
+"classItem.html#a2ce70ef63f9f4d86a09c351678806925":[4,0,17,23],
+"classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf":[4,0,17,6],
+"classItem.html#a428f448f89a8629055ea3294eb942aea":[4,0,17,16],
+"classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8":[4,0,17,40],
+"classItem.html#a4b92e3a9d6212c553aa2661489bd95d8":[4,0,17,15],
+"classItem.html#a5b2fafdca55aefeaa08993a5a60529f0":[4,0,17,19],
+"classItem.html#a5b561415861f5b89b0733aacfe0428d1":[4,0,17,36],
+"classItem.html#a5cfa6cf964f433a917a81cab079ff9d8":[4,0,17,39],
+"classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189":[4,0,17,41],
+"classItem.html#a632185dd25c5caf277067c76230a4320":[4,0,17,4],
+"classItem.html#a67892aa23d19f4431bb2e5f43c74000e":[4,0,17,12],
+"classItem.html#a7f7bc059de377319282cb4ef4a828480":[4,0,17,37],
+"classItem.html#a80dcd0fb7673776c0967839d429c2a0f":[4,0,17,28],
+"classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51":[4,0,17,1],
+"classItem.html#a904421c7a427411bb2ab473bca872f63":[4,0,17,7],
+"classItem.html#a90743c8348b13213275c223bb9333aa0":[4,0,17,29],
+"classItem.html#a9594df6014b0b6f45364ea7a34510130":[4,0,17,32],
+"classItem.html#a97c7feeea7f26a73176cb19faa455e12":[4,0,17,21],
+"classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7":[4,0,17,26]
+};
diff --git a/doc/html/navtreeindex2.js b/doc/html/navtreeindex2.js
new file mode 100644
index 000000000..68fab544e
--- /dev/null
+++ b/doc/html/navtreeindex2.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX2 =
+{
+"classItem.html#a9f2d219da712390f59012fc32a342074":[4,0,17,14],
+"classItem.html#aa0ee775ec94abccec6c798428835d001":[4,0,17,5],
+"classItem.html#aa452b5bcd8dea12119b09212c615cb41":[4,0,17,24],
+"classItem.html#aa49e40f961dff66da32c5ae110e32993":[4,0,17,20],
+"classItem.html#aa541bc4290e51bfd688d6921bebabc73":[4,0,17,13],
+"classItem.html#aa8b1bbc4236890694635295e46d7fd72":[4,0,17,25],
+"classItem.html#aabf87ded59c25b5fe2b2296678e70509":[4,0,17,22],
+"classItem.html#aba23a0a9d89e316d2b343cc46d695d91":[4,0,17,17],
+"classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8":[4,0,17,2],
+"classItem.html#ac0f27e58532612f6e7a54c8a621b9b92":[4,0,17,11],
+"classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c":[4,0,17,10],
+"classItem.html#aca1e66988ed00cd627b2a359b72cd0ae":[4,0,17,3],
+"classItem.html#acc32426c0f465391be8a99ad810c7b8e":[4,0,17,27],
+"classItem.html#ad3638f93065693c1f69eb349feb1b7aa":[4,0,17,9],
+"classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8":[4,0,17,18],
+"classItem.html#aec24e233f9098f902b1e57e60dcb2019":[4,0,17,31],
+"classItem.html#afa54851df82962c7c42dea3cc9f5c92c":[4,0,17,34],
+"classProtoDriver.html":[4,0,22],
+"classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a":[4,0,22,0],
+"classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d":[4,0,22,2],
+"classProtoDriver.html#a34b97ca5ef2165f2e16eb2fe59ff6c67":[4,0,22,1],
+"classProtoDriver.html#a64a3868cffe27d601d55f69a2ecc4337":[4,0,22,6],
+"classProtoDriver.html#a85e9063f6d0c304410cd246f7900ea1b":[4,0,22,4],
+"classProtoDriver.html#ae5b44739f84c10d00a9b65adf3785181":[4,0,22,5],
+"classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b":[4,0,22,3],
+"classTemplate.html":[4,0,23],
+"classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b":[4,0,23,13],
+"classTemplate.html#a285b5b2007dbbf733476273df3fed4ef":[4,0,23,12],
+"classTemplate.html#a317d535946dc065c35dd5cd38380e6c6":[4,0,23,22],
+"classTemplate.html#a35d599c9b53a02e2fe2232e5b7ed5da7":[4,0,23,2],
+"classTemplate.html#a37c15f6d1ade500943629f27a62808b7":[4,0,23,3],
+"classTemplate.html#a4b933954086d9e01a1804b0b1c6ee93e":[4,0,23,6],
+"classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10":[4,0,23,21],
+"classTemplate.html#a6f0efc256688c36110180b501067ff11":[4,0,23,23],
+"classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38":[4,0,23,15],
+"classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677":[4,0,23,9],
+"classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1":[4,0,23,19],
+"classTemplate.html#aa6a087e0b7b887dd1c98c9e0ecbd3b29":[4,0,23,4],
+"classTemplate.html#aa6f9bd7a8f7512efcf90e8d376fe05ee":[4,0,23,10],
+"classTemplate.html#aac9a4638f11271e1b1dcc9f247242718":[4,0,23,20],
+"classTemplate.html#aae9c4d761ea1298e745e8052d7910194":[4,0,23,1],
+"classTemplate.html#abbc484016ddf5d818f55b823cae6feb0":[4,0,23,14],
+"classTemplate.html#abda4c8d049f70553338eae7c905e9d5c":[4,0,23,17],
+"classTemplate.html#abf71098c80fd1f218a59452b3408309e":[4,0,23,7],
+"classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4":[4,0,23,0],
+"classTemplate.html#ace26b8a4252fbc1c385d2b5e1e93e5c8":[4,0,23,18],
+"classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228":[4,0,23,8],
+"classTemplate.html#ae791766c3d055f7f1ba5a5e60d647934":[4,0,23,5],
+"classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a":[4,0,23,16],
+"classTemplate.html#afd97b4b1e7754a550e67c0ea79159059":[4,0,23,11],
+"classZotDriver.html":[4,0,24],
+"classZotDriver.html#a2e15ff09772f0608203dad1c98299394":[4,0,24,3],
+"classZotDriver.html#a3cfdf443da4e5326e205855d7c0054f2":[4,0,24,0],
+"classZotDriver.html#a40d328ff9f6b0a238afe286dddee1514":[4,0,24,6],
+"classZotDriver.html#a6776935156accb0f170e2e24577133db":[4,0,24,1],
+"classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f":[4,0,24,4],
+"classZotDriver.html#af65febb26031eb7f39871b9e2a539797":[4,0,24,2],
+"classZotDriver.html#afaaf9941169fc966e43e25b25e6daea6":[4,0,24,5],
+"classdba__driver.html":[4,0,9],
+"classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721":[4,0,9,1],
+"classdba__driver.html#a205f6535e399700b6fca2492f96f2229":[4,0,9,8],
+"classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6":[4,0,9,9],
+"classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746":[4,0,9,6],
+"classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555":[4,0,9,7],
+"classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975":[4,0,9,2],
+"classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c":[4,0,9,11],
+"classdba__driver.html#adcc1f8955120fec0708bce39202d0422":[4,0,9,4],
+"classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc":[4,0,9,3],
+"classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186":[4,0,9,0],
+"classdba__driver.html#af48e2afeded5285766bf92e22123ed03":[4,0,9,10],
+"classdba__driver.html#afc95ffa103a3290581b537670cde5311":[4,0,9,5],
+"classdba__mysql.html":[4,0,10],
+"classdba__mysql.html#a1887338627ce0e28786839363014bd0b":[4,0,10,1],
+"classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e":[4,0,10,0],
+"classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e":[4,0,10,2],
+"classdba__mysql.html#ac3fd60c278f400907322dac578754a99":[4,0,10,3],
+"classdba__mysqli.html":[4,0,11],
+"classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64":[4,0,11,2],
+"classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec":[4,0,11,3],
+"classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55":[4,0,11,0],
+"classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1":[4,0,11,1],
+"classenotify.html":[4,0,12],
+"classes.html":[4,1],
+"classphoto__driver.html":[4,0,19],
+"classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03":[4,0,19,26],
+"classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9":[4,0,19,27],
+"classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712":[4,0,19,13],
+"classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce":[4,0,19,19],
+"classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3":[4,0,19,16],
+"classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832":[4,0,19,5],
+"classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e":[4,0,19,2],
+"classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec":[4,0,19,15],
+"classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1":[4,0,19,28],
+"classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03":[4,0,19,25],
+"classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d":[4,0,19,14],
+"classphoto__driver.html#a56634842b071b96502716e9843ea5361":[4,0,19,18],
+"classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b":[4,0,19,21],
+"classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3":[4,0,19,9],
+"classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da":[4,0,19,22],
+"classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55":[4,0,19,24],
+"classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab":[4,0,19,12],
+"classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba":[4,0,19,6],
+"classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5":[4,0,19,8],
+"classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd":[4,0,19,11],
+"classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae":[4,0,19,0],
+"classphoto__driver.html#acc30486acee9e89e32701f44a1738117":[4,0,19,10],
+"classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f":[4,0,19,4],
+"classphoto__driver.html#ae1a9edaf846983780dc65ea77d99e813":[4,0,19,3],
+"classphoto__driver.html#ae4501abdc9651359f81d036b63625686":[4,0,19,1],
+"classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143":[4,0,19,20],
+"classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80":[4,0,19,23],
+"classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0":[4,0,19,17],
+"classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468":[4,0,19,7],
+"classphoto__gd.html":[4,0,20],
+"classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00":[4,0,20,5],
+"classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd":[4,0,20,9],
+"classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e":[4,0,20,8],
+"classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754":[4,0,20,2],
+"classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9":[4,0,20,6],
+"classphoto__gd.html#a44cedef376044018702d9355ddc813ce":[4,0,20,3],
+"classphoto__gd.html#a724703ecf71b1f1d04a80e86c76db6b1":[4,0,20,1],
+"classphoto__gd.html#a77f87730b11093b76980c541159df37d":[4,0,20,7],
+"classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484":[4,0,20,4],
+"classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c":[4,0,20,0],
+"classphoto__imagick.html":[4,0,21],
+"classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7":[4,0,21,10],
+"classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8":[4,0,21,7],
+"classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4":[4,0,21,0],
+"classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66":[4,0,21,2],
+"classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019":[4,0,21,6],
+"classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f":[4,0,21,8],
+"classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc":[4,0,21,5],
+"classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4":[4,0,21,4],
+"classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb":[4,0,21,9],
+"classphoto__imagick.html#afd49d64751ee3a298eac0c0ce0ba0207":[4,0,21,1],
+"classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393":[4,0,21,3],
+"cli__startup_8php.html":[5,0,0,12],
+"cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b":[5,0,0,12,0],
+"common_8php.html":[5,0,1,9],
+"common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a":[5,0,1,9,0],
+"common_8php.html#ab63408f39abef7a6915186e8dabc5a96":[5,0,1,9,1],
+"common_8php.html#aca62f113655809f41f49042ce9b123c2":[5,0,1,9,2],
+"community_8php.html":[5,0,1,10],
+"community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a":[5,0,1,10,0],
+"community_8php.html#a56c94ec978a38633c5628fa6f8e386d9":[5,0,1,10,1],
+"connections_8php.html":[5,0,1,11],
+"connections_8php.html#a1224058db8e3fb56463eb312f98e561d":[5,0,1,11,4],
+"connections_8php.html#a15af118efee9c948b6f8294e54a73bb2":[5,0,1,11,1],
+"connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558":[5,0,1,11,3],
+"connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c":[5,0,1,11,2],
+"connections_8php.html#af48f7ad20914760ba9874c090384e35a":[5,0,1,11,0],
+"contact__selectors_8php.html":[5,0,0,15],
+"contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75":[5,0,0,15,1],
+"contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f":[5,0,0,15,0],
+"contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be":[5,0,0,15,3],
+"contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53":[5,0,0,15,2],
+"contact__widgets_8php.html":[5,0,0,16],
+"contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353":[5,0,0,16,0],
+"contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b":[5,0,0,16,2],
+"contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65":[5,0,0,16,1],
+"contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6":[5,0,0,16,3],
+"contact__widgets_8php.html#af24e693532a045954caab515942cfc6f":[5,0,0,16,4],
+"contactgroup_8php.html":[5,0,1,12],
+"contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3":[5,0,1,12,0],
+"conversation_8php.html":[5,0,0,17],
+"conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3":[5,0,0,17,7],
+"conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654":[5,0,0,17,9],
+"conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1":[5,0,0,17,3],
+"conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a":[5,0,0,17,20],
+"conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3":[5,0,0,17,6],
+"conversation_8php.html#a40b9b5e7825bc73932a32e667f05e6f2":[5,0,0,17,15],
+"conversation_8php.html#a4b0888b0f26e1c284a4341fe5fd04f0c":[5,0,0,17,14],
+"conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3":[5,0,0,17,21],
+"conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67":[5,0,0,17,8],
+"conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c":[5,0,0,17,13],
+"conversation_8php.html#a9cc2a679606da9e535a06433f9f553a0":[5,0,0,17,19],
+"conversation_8php.html#a9f909b8885259b79c6ac8da93afd8f11":[5,0,0,17,17],
+"conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3":[5,0,0,17,10],
+"conversation_8php.html#ab2383dff4f823e580399ff469d90ab19":[5,0,0,17,4],
+"conversation_8php.html#abed85a41f1160598de880b84021c9cf7":[5,0,0,17,2],
+"conversation_8php.html#ac55e070f65f46fcc8e269f7896be4c7d":[5,0,0,17,18],
+"conversation_8php.html#ad3e1d4b15e7d6d026ee182edd58f692b":[5,0,0,17,0],
+"conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7":[5,0,0,17,1],
+"conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533":[5,0,0,17,11],
+"conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6":[5,0,0,17,5],
+"conversation_8php.html#ae996eb116d397a2c6396c312d7b98664":[5,0,0,17,16],
+"conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0":[5,0,0,17,12],
+"crepair_8php.html":[5,0,1,13],
+"crepair_8php.html#a29464c01838e209c8059cfcd2d195caa":[5,0,1,13,0],
+"crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198":[5,0,1,13,1],
+"crepair_8php.html#acc4493e1ffd1462a605dd9b870034513":[5,0,1,13,2],
+"cronhooks_8php.html":[5,0,0,19],
+"cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca":[5,0,0,19,0],
+"crypto_8php.html":[5,0,0,20],
+"crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286":[5,0,0,20,2],
+"crypto_8php.html#a5c61821d205f95f127114159cbffa764":[5,0,0,20,1],
+"crypto_8php.html#a920e5f222d0020f47556033d8b2b6552":[5,0,0,20,7],
+"crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a":[5,0,0,20,4],
+"crypto_8php.html#ab4f21d8f6b8ece0915e7c8bb73379f96":[5,0,0,20,8],
+"crypto_8php.html#ac852ee41392d1358c3a54d54935e0bf9":[5,0,0,20,0],
+"crypto_8php.html#ac95ac3b1b23b65b04a86613d4206ae85":[5,0,0,20,6],
+"crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914":[5,0,0,20,3],
+"crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec":[5,0,0,20,5],
+"datetime_8php.html":[5,0,0,21],
+"datetime_8php.html#a03900dcf0f9e3c58793a031673a70326":[5,0,0,21,6],
+"datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1":[5,0,0,21,11],
+"datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8":[5,0,0,21,5],
+"datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa":[5,0,0,21,3],
+"datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f":[5,0,0,21,10],
+"datetime_8php.html#a7df24d72ea05922d3127363e2295174c":[5,0,0,21,7],
+"datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82":[5,0,0,21,9],
+"datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865":[5,0,0,21,12],
+"datetime_8php.html#aba971b67f17fecf050813f1eba72367f":[5,0,0,21,8],
+"datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df":[5,0,0,21,0],
+"datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8":[5,0,0,21,2],
+"datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226":[5,0,0,21,4],
+"datetime_8php.html#aea356409ba69f9de412298c998595dd2":[5,0,0,21,1],
+"db__update_8php.html":[5,0,2,1],
+"dba__driver_8php.html":[5,0,0,0,0],
+"dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f":[5,0,0,0,0,8],
+"dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249":[5,0,0,0,0,7],
+"dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4":[5,0,0,0,0,3],
+"dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee":[5,0,0,0,0,6],
+"dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb":[5,0,0,0,0,5],
+"dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e":[5,0,0,0,0,2],
+"dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947":[5,0,0,0,0,1],
+"dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930":[5,0,0,0,0,4],
+"dba__mysql_8php.html":[5,0,0,0,1],
+"dba__mysqli_8php.html":[5,0,0,0,2],
+"delegate_8php.html":[5,0,1,14],
+"delegate_8php.html#a943eea8996ef348eb845c498f9f354dd":[5,0,1,14,0],
+"deliver_8php.html":[5,0,0,22],
+"deliver_8php.html#a397afcb9afecf0c1816b0951189dd346":[5,0,0,22,0],
+"dir_032dd9e2cfe278a2cfa5eb9547448eb9.html":[5,0,3,1,0,0],
+"dir_0eaa4a0adae8ba4811e133c6e594aeee.html":[5,0,2,0],
+"dir_21bc5169ff11430004758be31dcfc6c4.html":[5,0,0,0],
+"dir_23ec12649285f9fabf3a6b7380226c28.html":[5,0,2],
+"dir_55dbaf9b7b53c4fc605c9011743a7353.html":[5,0,3,1,0],
+"dir_6b44a0e797e2f12381093380e3e54763.html":[5,0,3,1,1,0],
+"dir_817f6d302394b98e59575acdb59998bc.html":[5,0,3,0],
+"dir_8543001e5d25368a6edede3e63efb554.html":[5,0,3,1],
+"dir__fns_8php.html":[5,0,0,23],
+"dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a":[5,0,0,23,2],
+"dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d":[5,0,0,23,0],
+"dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6":[5,0,0,23,1],
+"dir_aae29906d7bfc07d076125f669c8352e.html":[5,0,0,1],
+"dir_b2f003339c516cc00c8cadcafbe82f13.html":[5,0,3],
+"dir_d41ce877eb409a4791b288730010abe2.html":[5,0,1],
+"dir_d44c64559bbebec7f509842c48db8b23.html":[5,0,0],
+"dir_d795dfe8933002397556cc7aa16eca15.html":[5,0,3,1,1]
+};
diff --git a/doc/html/navtreeindex3.js b/doc/html/navtreeindex3.js
new file mode 100644
index 000000000..4724c718b
--- /dev/null
+++ b/doc/html/navtreeindex3.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX3 =
+{
+"dirfind_8php.html":[5,0,1,16],
+"dirfind_8php.html#ac689a812c84f161b3a0d42349f83981c":[5,0,1,16,1],
+"dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee":[5,0,1,16,0],
+"dirsearch_8php.html":[5,0,1,17],
+"dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752":[5,0,1,17,1],
+"dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c":[5,0,1,17,0],
+"display_8php.html":[5,0,1,18],
+"display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0":[5,0,1,18,0],
+"docblox__errorchecker_8php.html":[5,0,2,2],
+"docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62":[5,0,2,2,3],
+"docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec":[5,0,2,2,2],
+"docblox__errorchecker_8php.html#a2b767cfc461fdd5061fffc9e4a806d5b":[5,0,2,2,0],
+"docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5":[5,0,2,2,8],
+"docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b":[5,0,2,2,5],
+"docblox__errorchecker_8php.html#a721c6ff80a6d3e4ad4ffa52a04c60085":[5,0,2,2,9],
+"docblox__errorchecker_8php.html#a83018d9153d17d91fbcf3bc10158d34f":[5,0,2,2,6],
+"docblox__errorchecker_8php.html#a852004caba0a34390297a079f4aaac73":[5,0,2,2,7],
+"docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6":[5,0,2,2,4],
+"docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f":[5,0,2,2,1],
+"docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d":[5,0,2,2,10],
+"editpost_8php.html":[5,0,1,19],
+"editpost_8php.html#a34011690864d122680c802e9e748ccfb":[5,0,1,19,0],
+"editwebpage_8php.html":[5,0,1,20],
+"editwebpage_8php.html#a375e945255fad79a71036528f7480650":[5,0,1,20,0],
+"enotify_8php.html":[5,0,0,25],
+"enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc":[5,0,0,25,1],
+"event_8php.html":[5,0,0,26],
+"event_8php.html#a018ea4484910a873a7c1eaa126de9b1a":[5,0,0,26,6],
+"event_8php.html#a180cccd63c2a2f00ff432b03113531f3":[5,0,0,26,0],
+"event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279":[5,0,0,26,1],
+"event_8php.html#a2ac9f1b08de03250ecd794f705781d17":[5,0,0,26,5],
+"event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850":[5,0,0,26,2],
+"event_8php.html#a89ef533faf345db8d64a58d4856bde3a":[5,0,0,26,3],
+"event_8php.html#abb74206cf42d694307c3d7abb7af9869":[5,0,0,26,4],
+"events_8php.html":[5,0,1,21],
+"events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec":[5,0,1,21,0],
+"events_8php.html#ab3e8a8f901175f8e40a8089eea45c075":[5,0,1,21,1],
+"expire_8php.html":[5,0,0,27],
+"expire_8php.html#a444e45c9b67727b27db4c779fd51a298":[5,0,0,27,0],
+"extract_8php.html":[5,0,2,3],
+"extract_8php.html#a0cbe524ffc9a496114fd7ba9f423ef44":[5,0,2,3,3],
+"extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634":[5,0,2,3,2],
+"extract_8php.html#a63bb4c41bc532baacf6a4976cfaa0feb":[5,0,2,3,0],
+"extract_8php.html#a9590b15215a21e9b42eb546aeef79704":[5,0,2,3,1],
+"fbrowser_8php.html":[5,0,1,22],
+"fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4":[5,0,1,22,0],
+"features_8php.html":[5,0,0,28],
+"features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0":[5,0,0,28,0],
+"features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c":[5,0,0,28,1],
+"feed_8php.html":[5,0,1,23],
+"feed_8php.html#af86137700b56f33d1d5f25c8dec22c04":[5,0,1,23,0],
+"filer_8php.html":[5,0,1,24],
+"filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274":[5,0,1,24,0],
+"filerm_8php.html":[5,0,1,25],
+"filerm_8php.html#ae2eb28d2054fa2c37e38689882172208":[5,0,1,25,0],
+"files.html":[5,0],
+"fpostit_8php.html":[5,0,2,0,0],
+"fpostit_8php.html#a3f3ae3ae61578b5671673914fd894443":[5,0,2,0,0,0],
+"fpostit_8php.html#a501b5ca82f287509fc691c88524064c1":[5,0,2,0,0,1],
+"friendica-to-smarty-tpl_8py.html":[5,0,2,4],
+"friendica-to-smarty-tpl_8py.html#a005c1b7a69cac31fad72a941974ba7bb":[5,0,2,4,11],
+"friendica-to-smarty-tpl_8py.html#a0b4cf73d1a8d201a28d269eeb62a5d5c":[5,0,2,4,8],
+"friendica-to-smarty-tpl_8py.html#a3719dd46e286a57d315e6adae1845854":[5,0,2,4,1],
+"friendica-to-smarty-tpl_8py.html#a38503e37fe68ac27c88cce91a9ac9efa":[5,0,2,4,0],
+"friendica-to-smarty-tpl_8py.html#a5dfc21ab8282dda8e3a7dff43cd0e283":[5,0,2,4,13],
+"friendica-to-smarty-tpl_8py.html#a5f9bf7a67d955c0d6be70a82097611c5":[5,0,2,4,6],
+"friendica-to-smarty-tpl_8py.html#a68d15934660cd1f4301ce251b1646f09":[5,0,2,4,12],
+"friendica-to-smarty-tpl_8py.html#a8540514fb7c4aa18ad2dffa2a975036b":[5,0,2,4,14],
+"friendica-to-smarty-tpl_8py.html#a87182a9bab47640428bd0b2b9946bef9":[5,0,2,4,10],
+"friendica-to-smarty-tpl_8py.html#a89388ea9b2826e8218ed480e917d8105":[5,0,2,4,2],
+"friendica-to-smarty-tpl_8py.html#a965e1d6d6293654a56e029a7e454dec7":[5,0,2,4,5],
+"friendica-to-smarty-tpl_8py.html#ad9ef87ccb2c9960501f5e02424a22d80":[5,0,2,4,9],
+"friendica-to-smarty-tpl_8py.html#ae74419b16516956c66f7db714a93a6ac":[5,0,2,4,7],
+"friendica-to-smarty-tpl_8py.html#aecf730e0884bb4ddc6c0deb1ef85f8eb":[5,0,2,4,4],
+"friendica-to-smarty-tpl_8py.html#af6b2c793958aae2aadc294577431f749":[5,0,2,4,3],
+"friendica__smarty_8php.html":[5,0,0,30],
+"fsuggest_8php.html":[5,0,1,27],
+"fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d":[5,0,1,27,1],
+"fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998":[5,0,1,27,0],
+"full_8php.html":[5,0,3,0,1],
+"full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db":[5,0,3,0,1,0],
+"functions.html":[4,3,0,0],
+"functions.html":[4,3,0],
+"functions_0x5f.html":[4,3,0,1],
+"functions_0x61.html":[4,3,0,2],
+"functions_0x62.html":[4,3,0,3],
+"functions_0x63.html":[4,3,0,4],
+"functions_0x64.html":[4,3,0,5],
+"functions_0x65.html":[4,3,0,6],
+"functions_0x66.html":[4,3,0,7],
+"functions_0x67.html":[4,3,0,8],
+"functions_0x68.html":[4,3,0,9],
+"functions_0x69.html":[4,3,0,10],
+"functions_0x6c.html":[4,3,0,11],
+"functions_0x6e.html":[4,3,0,12],
+"functions_0x6f.html":[4,3,0,13],
+"functions_0x70.html":[4,3,0,14],
+"functions_0x71.html":[4,3,0,15],
+"functions_0x72.html":[4,3,0,16],
+"functions_0x73.html":[4,3,0,17],
+"functions_0x74.html":[4,3,0,18],
+"functions_0x76.html":[4,3,0,19],
+"functions_func.html":[4,3,1],
+"functions_vars.html":[4,3,2],
+"globals.html":[5,1,0],
+"globals.html":[5,1,0,0],
+"globals_0x5f.html":[5,1,0,1],
+"globals_0x61.html":[5,1,0,2],
+"globals_0x62.html":[5,1,0,3],
+"globals_0x63.html":[5,1,0,4],
+"globals_0x64.html":[5,1,0,5],
+"globals_0x65.html":[5,1,0,6],
+"globals_0x66.html":[5,1,0,7],
+"globals_0x67.html":[5,1,0,8],
+"globals_0x68.html":[5,1,0,9],
+"globals_0x69.html":[5,1,0,10],
+"globals_0x6a.html":[5,1,0,11],
+"globals_0x6b.html":[5,1,0,12],
+"globals_0x6c.html":[5,1,0,13],
+"globals_0x6d.html":[5,1,0,14],
+"globals_0x6e.html":[5,1,0,15],
+"globals_0x6f.html":[5,1,0,16],
+"globals_0x70.html":[5,1,0,17],
+"globals_0x71.html":[5,1,0,18],
+"globals_0x72.html":[5,1,0,19],
+"globals_0x73.html":[5,1,0,20],
+"globals_0x74.html":[5,1,0,21],
+"globals_0x75.html":[5,1,0,22],
+"globals_0x76.html":[5,1,0,23],
+"globals_0x77.html":[5,1,0,24],
+"globals_0x78.html":[5,1,0,25],
+"globals_0x7a.html":[5,1,0,26],
+"globals_func.html":[5,1,1,0],
+"globals_func.html":[5,1,1],
+"globals_func_0x61.html":[5,1,1,1],
+"globals_func_0x62.html":[5,1,1,2],
+"globals_func_0x63.html":[5,1,1,3],
+"globals_func_0x64.html":[5,1,1,4],
+"globals_func_0x65.html":[5,1,1,5],
+"globals_func_0x66.html":[5,1,1,6],
+"globals_func_0x67.html":[5,1,1,7],
+"globals_func_0x68.html":[5,1,1,8],
+"globals_func_0x69.html":[5,1,1,9],
+"globals_func_0x6a.html":[5,1,1,10],
+"globals_func_0x6b.html":[5,1,1,11],
+"globals_func_0x6c.html":[5,1,1,12],
+"globals_func_0x6d.html":[5,1,1,13],
+"globals_func_0x6e.html":[5,1,1,14],
+"globals_func_0x6f.html":[5,1,1,15],
+"globals_func_0x70.html":[5,1,1,16],
+"globals_func_0x71.html":[5,1,1,17],
+"globals_func_0x72.html":[5,1,1,18],
+"globals_func_0x73.html":[5,1,1,19],
+"globals_func_0x74.html":[5,1,1,20],
+"globals_func_0x75.html":[5,1,1,21],
+"globals_func_0x76.html":[5,1,1,22],
+"globals_func_0x77.html":[5,1,1,23],
+"globals_func_0x78.html":[5,1,1,24],
+"globals_func_0x7a.html":[5,1,1,25],
+"globals_vars.html":[5,1,2],
+"globals_vars.html":[5,1,2,0],
+"globals_vars_0x61.html":[5,1,2,1],
+"globals_vars_0x63.html":[5,1,2,2],
+"globals_vars_0x64.html":[5,1,2,3],
+"globals_vars_0x65.html":[5,1,2,4],
+"globals_vars_0x66.html":[5,1,2,5],
+"globals_vars_0x67.html":[5,1,2,6],
+"globals_vars_0x68.html":[5,1,2,7],
+"globals_vars_0x69.html":[5,1,2,8],
+"globals_vars_0x6a.html":[5,1,2,9],
+"globals_vars_0x6b.html":[5,1,2,10],
+"globals_vars_0x6c.html":[5,1,2,11],
+"globals_vars_0x6d.html":[5,1,2,12],
+"globals_vars_0x6e.html":[5,1,2,13],
+"globals_vars_0x70.html":[5,1,2,14],
+"globals_vars_0x72.html":[5,1,2,15],
+"globals_vars_0x73.html":[5,1,2,16],
+"globals_vars_0x74.html":[5,1,2,17],
+"globals_vars_0x75.html":[5,1,2,18],
+"globals_vars_0x77.html":[5,1,2,19],
+"globals_vars_0x78.html":[5,1,2,20],
+"globals_vars_0x7a.html":[5,1,2,21],
+"gprobe_8php.html":[5,0,0,31],
+"gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1":[5,0,0,31,0],
+"hcard_8php.html":[5,0,1,29],
+"hcard_8php.html#a956c7cae2009652a37900306e5b7b73d":[5,0,1,29,0],
+"hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d":[5,0,1,29,1],
+"help_8php.html":[5,0,1,30],
+"help_8php.html#af055e15f600ffa6fbca9386fdf715224":[5,0,1,30,0],
+"hierarchy.html":[4,2],
+"home_8php.html":[5,0,1,31],
+"hostxrd_8php.html":[5,0,1,32],
+"hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92":[5,0,1,32,0],
+"html2bbcode_8php.html":[5,0,0,33],
+"html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7":[5,0,0,33,3],
+"html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837":[5,0,0,33,1],
+"html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2":[5,0,0,33,0],
+"html2bbcode_8php.html#ad174afe0ccbd8c475e48f8a6ee2f27d8":[5,0,0,33,2],
+"html2plain_8php.html":[5,0,0,34],
+"html2plain_8php.html#a3214912e3d00cf0a948072daccf16740":[5,0,0,34,0],
+"html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0":[5,0,0,34,3],
+"html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04":[5,0,0,34,2],
+"html2plain_8php.html#ae1c203d0f089d5678d73a6c64a395201":[5,0,0,34,1],
+"identity_8php.html":[5,0,0,35],
+"identity_8php.html#a345f4c943d84de502ec6e72d2c813945":[5,0,0,35,2],
+"identity_8php.html#a3570a4eb77332b292d394c4132cb8f03":[5,0,0,35,3],
+"identity_8php.html#a77d2237f1846964634b1c99089c27c7d":[5,0,0,35,0],
+"identity_8php.html#a77ee7d66eb0758f7e7882f70ad0f9485":[5,0,0,35,4],
+"identity_8php.html#a78151baf4407a8482d2681a91a9c486b":[5,0,0,35,6],
+"identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd":[5,0,0,35,1],
+"identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633":[5,0,0,35,5],
+"identity_8php.html#af2802bc13a00a17b867bba7978ba8f58":[5,0,0,35,7],
+"import_8php.html":[5,0,1,33],
+"import_8php.html#af17fef0410518f7eac205d0ea416eaa2":[5,0,1,33,1],
+"import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184":[5,0,1,33,0],
+"include_2api_8php.html":[5,0,0,5],
+"include_2api_8php.html#a0991f72554f821255397d615e76f3203":[5,0,0,5,12],
+"include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5":[5,0,0,5,5],
+"include_2api_8php.html#a18cab7c6391df5c421753463f5d2a879":[5,0,0,5,18],
+"include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f":[5,0,0,5,15],
+"include_2api_8php.html#a2e94eab9d6c164bfef7a1b2ab87b339b":[5,0,0,5,0],
+"include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283":[5,0,0,5,44],
+"include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8":[5,0,0,5,16],
+"include_2api_8php.html#a43c47de8565cc00c3369cb35c19cc75e":[5,0,0,5,49],
+"include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95":[5,0,0,5,38],
+"include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea":[5,0,0,5,19],
+"include_2api_8php.html#a528d8070ee74ea800102936ce73cf366":[5,0,0,5,37],
+"include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74":[5,0,0,5,21],
+"include_2api_8php.html#a58cf4c02ef435996f5c3bc4283d3968d":[5,0,0,5,13],
+"include_2api_8php.html#a5990101034e7abf6404feba3cd273629":[5,0,0,5,4],
+"include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08":[5,0,0,5,45],
+"include_2api_8php.html#a645397787618b5c548a31e8686e8cca4":[5,0,0,5,32],
+"include_2api_8php.html#a6951c690d87775eb37e569c66011988e":[5,0,0,5,35],
+"include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f":[5,0,0,5,31],
+"include_2api_8php.html#a72bfecac1970bc29b853073e816388ff":[5,0,0,5,6],
+"include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5":[5,0,0,5,9],
+"include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad":[5,0,0,5,2],
+"include_2api_8php.html#a8969e8d9c683f12ba17dcd4b059e020d":[5,0,0,5,46],
+"include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e":[5,0,0,5,39],
+"include_2api_8php.html#a9160288b7ac220635942d8dc209b78c3":[5,0,0,5,10],
+"include_2api_8php.html#a970b02c06dea8b229aa3d5fff9cf4705":[5,0,0,5,8],
+"include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410":[5,0,0,5,34],
+"include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3":[5,0,0,5,28],
+"include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa":[5,0,0,5,23],
+"include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1":[5,0,0,5,25],
+"include_2api_8php.html#aa62b15a6bbb280e86b98132eb214013d":[5,0,0,5,51],
+"include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f":[5,0,0,5,29],
+"include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18":[5,0,0,5,3],
+"include_2api_8php.html#ab1ecb58954f722444bfe03233345cb1b":[5,0,0,5,17],
+"include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76":[5,0,0,5,48]
+};
diff --git a/doc/html/navtreeindex4.js b/doc/html/navtreeindex4.js
new file mode 100644
index 000000000..0b6e06ee7
--- /dev/null
+++ b/doc/html/navtreeindex4.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX4 =
+{
+"include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a":[5,0,0,5,30],
+"include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23":[5,0,0,5,24],
+"include_2api_8php.html#acafd2899309a005fcb725289173dc7fe":[5,0,0,5,22],
+"include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22":[5,0,0,5,40],
+"include_2api_8php.html#ad2b0192f3006918bea895de8074bf8d2":[5,0,0,5,11],
+"include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4":[5,0,0,5,33],
+"include_2api_8php.html#ad4d1634df6b35126552324683caaffa2":[5,0,0,5,43],
+"include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e":[5,0,0,5,36],
+"include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53":[5,0,0,5,14],
+"include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8":[5,0,0,5,41],
+"include_2api_8php.html#ae82608c317421f27446465aa6724733d":[5,0,0,5,20],
+"include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5":[5,0,0,5,1],
+"include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25":[5,0,0,5,7],
+"include_2api_8php.html#aeb2e7ad00ea666b4b6dfcf82008194f8":[5,0,0,5,50],
+"include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63":[5,0,0,5,42],
+"include_2api_8php.html#afb99daa6b731bf497b81f2128084852c":[5,0,0,5,47],
+"include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73":[5,0,0,5,26],
+"include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0":[5,0,0,5,27],
+"include_2attach_8php.html":[5,0,0,6],
+"include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36":[5,0,0,6,0],
+"include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d":[5,0,0,6,3],
+"include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a":[5,0,0,6,5],
+"include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f":[5,0,0,6,4],
+"include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3":[5,0,0,6,2],
+"include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932":[5,0,0,6,1],
+"include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909":[5,0,0,6,6],
+"include_2config_8php.html":[5,0,0,13],
+"include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1":[5,0,0,13,7],
+"include_2config_8php.html#a549910227348003efc3c05c9105c42da":[5,0,0,13,0],
+"include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33":[5,0,0,13,9],
+"include_2config_8php.html#a61591371cb18764138655d67dc817ab2":[5,0,0,13,11],
+"include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941":[5,0,0,13,1],
+"include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72":[5,0,0,13,2],
+"include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e":[5,0,0,13,6],
+"include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6":[5,0,0,13,8],
+"include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad":[5,0,0,13,5],
+"include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a":[5,0,0,13,10],
+"include_2config_8php.html#af02c96e6b37335774b548914ede1d22e":[5,0,0,13,3],
+"include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74":[5,0,0,13,4],
+"include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e":[5,0,0,13,12],
+"include_2directory_8php.html":[5,0,0,24],
+"include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0":[5,0,0,24,0],
+"include_2follow_8php.html":[5,0,0,29],
+"include_2follow_8php.html#a6553a7650fae55f95660510d90983144":[5,0,0,29,0],
+"include_2group_8php.html":[5,0,0,32],
+"include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b":[5,0,0,32,2],
+"include_2group_8php.html#a048f6892bfd28852de1b76470df411de":[5,0,0,32,10],
+"include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0":[5,0,0,32,1],
+"include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17":[5,0,0,32,8],
+"include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345":[5,0,0,32,0],
+"include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5":[5,0,0,32,6],
+"include_2group_8php.html#a540e3ef36f47d47532646be4241f6518":[5,0,0,32,7],
+"include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09":[5,0,0,32,4],
+"include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245":[5,0,0,32,5],
+"include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f":[5,0,0,32,11],
+"include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb":[5,0,0,32,3],
+"include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f":[5,0,0,32,9],
+"include_2message_8php.html":[5,0,0,40],
+"include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091":[5,0,0,40,2],
+"include_2message_8php.html#a5f8de9847e203329e317ac38dc646898":[5,0,0,40,1],
+"include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e":[5,0,0,40,3],
+"include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd":[5,0,0,40,4],
+"include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1":[5,0,0,40,0],
+"include_2network_8php.html":[5,0,0,42],
+"include_2network_8php.html#a0bdc4b0bfc54797c249dc4eca25aeda4":[5,0,0,42,0],
+"include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0":[5,0,0,42,6],
+"include_2network_8php.html#a2729d012410e470c527a62a3f777ded8":[5,0,0,42,10],
+"include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6":[5,0,0,42,15],
+"include_2network_8php.html#a37ddeb88a3fd1dee9e8339723f9edf9a":[5,0,0,42,8],
+"include_2network_8php.html#a4c5d50079e089168d9248427018fffd4":[5,0,0,42,13],
+"include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2":[5,0,0,42,12],
+"include_2network_8php.html#a540420ff3675a72cb781ef9a7e8c2cd9":[5,0,0,42,5],
+"include_2network_8php.html#a5caa264fab6d2b2344e6bd5b298b08f2":[5,0,0,42,19],
+"include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7":[5,0,0,42,11],
+"include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5":[5,0,0,42,20],
+"include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d":[5,0,0,42,9],
+"include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02":[5,0,0,42,18],
+"include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0":[5,0,0,42,7],
+"include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc":[5,0,0,42,25],
+"include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff":[5,0,0,42,22],
+"include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6":[5,0,0,42,23],
+"include_2network_8php.html#aa44d9e33a579d930e9e79c4ebb3d6b5e":[5,0,0,42,16],
+"include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37":[5,0,0,42,24],
+"include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7":[5,0,0,42,3],
+"include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694":[5,0,0,42,1],
+"include_2network_8php.html#ad4056d3ce69988f5c1a997a79f503246":[5,0,0,42,4],
+"include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041":[5,0,0,42,14],
+"include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335":[5,0,0,42,21],
+"include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f":[5,0,0,42,17],
+"include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7":[5,0,0,42,2],
+"include_2notify_8php.html":[5,0,0,44],
+"include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3":[5,0,0,44,0],
+"include_2oembed_8php.html":[5,0,0,46],
+"include_2oembed_8php.html#a000a62b97113cf95b0e9e00412168172":[5,0,0,46,5],
+"include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0":[5,0,0,46,7],
+"include_2oembed_8php.html#a03fa3b7832c98a3d0b4630afeb73d487":[5,0,0,46,1],
+"include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3":[5,0,0,46,4],
+"include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2":[5,0,0,46,3],
+"include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a":[5,0,0,46,6],
+"include_2oembed_8php.html#ab953a6e7c11bc6498ce01ed73e2ba319":[5,0,0,46,0],
+"include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2":[5,0,0,46,2],
+"include_2photos_8php.html":[5,0,0,49],
+"include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109":[5,0,0,49,0],
+"include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe":[5,0,0,49,2],
+"include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35":[5,0,0,49,1],
+"include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51":[5,0,0,49,7],
+"include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab":[5,0,0,49,3],
+"include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274":[5,0,0,49,6],
+"include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9":[5,0,0,49,5],
+"include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979":[5,0,0,49,4],
+"index.html":[],
+"interfaceITemplateEngine.html":[4,0,18],
+"interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243":[4,0,18,1],
+"interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442":[4,0,18,0],
+"intro_8php.html":[5,0,1,34],
+"intro_8php.html#a3e2a523697633ddb4517b9266a515f5b":[5,0,1,34,1],
+"intro_8php.html#abc3abf25da64f98f215126eb08c7936b":[5,0,1,34,0],
+"intro_8php.html#af3681062183ccbdf065ae2647b07d6f1":[5,0,1,34,2],
+"invite_8php.html":[5,0,1,35],
+"invite_8php.html#a244385b28cfd021d308715f01158bfd9":[5,0,1,35,0],
+"invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5":[5,0,1,35,1],
+"item_8php.html":[5,0,1,36],
+"item_8php.html#a3daae7944f737bd30412a0d042207c0f":[5,0,1,36,0],
+"item_8php.html#a693cd09805755ab85bbb5ecae69a48c3":[5,0,1,36,4],
+"item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221":[5,0,1,36,3],
+"item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10":[5,0,1,36,1],
+"item_8php.html#abd0e603a6696051af16476eb968d52e7":[5,0,1,36,2],
+"items_8php.html":[5,0,0,38],
+"items_8php.html#a004e89d86b0f29b2c4da20108ecc4091":[5,0,0,38,57],
+"items_8php.html#a016dd86c827d08db89061ea81d15c6cb":[5,0,0,38,2],
+"items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70":[5,0,0,38,5],
+"items_8php.html#a04a35b610acfe54434df08adec39c0c7":[5,0,0,38,27],
+"items_8php.html#a0790a4550b829e85504af548623002ca":[5,0,0,38,6],
+"items_8php.html#a079e099e15d88d47aeb6ca6d60da7107":[5,0,0,38,32],
+"items_8php.html#a09d425596b9f8663472cf7474ad36d96":[5,0,0,38,36],
+"items_8php.html#a0cf98bb619f07dd18f602683a55a5f59":[5,0,0,38,24],
+"items_8php.html#a1e75047cf175aaee8dd16aa761913ff9":[5,0,0,38,4],
+"items_8php.html#a251343637ff40a50cca93452cd530c26":[5,0,0,38,31],
+"items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6":[5,0,0,38,3],
+"items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259":[5,0,0,38,12],
+"items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7":[5,0,0,38,20],
+"items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53":[5,0,0,38,39],
+"items_8php.html#a36e656667193c83aa2cc03a024fc131b":[5,0,0,38,0],
+"items_8php.html#a3a218d5e8ffbe261f773225ecded86a2":[5,0,0,38,44],
+"items_8php.html#a410f9c743877c125ca06312373346903":[5,0,0,38,48],
+"items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b":[5,0,0,38,51],
+"items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361":[5,0,0,38,29],
+"items_8php.html#a53eb3d27e1c55083be93a32f392d54e7":[5,0,0,38,47],
+"items_8php.html#a566c601726697e044e75284af7fb6f17":[5,0,0,38,19],
+"items_8php.html#a56b2a4abcadfac71175cd50555528cc3":[5,0,0,38,11],
+"items_8php.html#a5f690fc2484abec07840b4f9dd525bd9":[5,0,0,38,17],
+"items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7":[5,0,0,38,37],
+"items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55":[5,0,0,38,15],
+"items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc":[5,0,0,38,35],
+"items_8php.html#a756738301f2ed96be50232500677d58a":[5,0,0,38,40],
+"items_8php.html#a77051724d1784074ff187e73a4db93fe":[5,0,0,38,33],
+"items_8php.html#a77da7ce9a117601d49ac4a67c71b514f":[5,0,0,38,45],
+"items_8php.html#a82955cc578f0fa600acec84475026194":[5,0,0,38,16],
+"items_8php.html#a8395d189a36abfa0dfff81a2b0e70669":[5,0,0,38,13],
+"items_8php.html#a8794863cdf8ce1333040933d3a3f66bd":[5,0,0,38,10],
+"items_8php.html#a88c6cf7649ac836fbbed82a7a0315110":[5,0,0,38,55],
+"items_8php.html#a896c1809d58f2d7a42cfe14577958ddf":[5,0,0,38,26],
+"items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049":[5,0,0,38,38],
+"items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8":[5,0,0,38,9],
+"items_8php.html#a94ddb1d6c8fa21dd7433677e85168037":[5,0,0,38,30],
+"items_8php.html#aa371905f0a211b307cb3f7188c6cba04":[5,0,0,38,56],
+"items_8php.html#aa579bc4445d60098b1410961ca8e96b7":[5,0,0,38,8],
+"items_8php.html#aa723c0571e314a1853a24c5854b4f54f":[5,0,0,38,21],
+"items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee":[5,0,0,38,7],
+"items_8php.html#aab9c6bae4c40799867596bdaae9829fd":[5,0,0,38,28],
+"items_8php.html#aab9e0c58247427126de0699c729c3b6c":[5,0,0,38,52],
+"items_8php.html#ab1bce4261bcf75ad62753b498a144d17":[5,0,0,38,53],
+"items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87":[5,0,0,38,25],
+"items_8php.html#abe695dd89e1e10ed042c26b80114f0ed":[5,0,0,38,49],
+"items_8php.html#abf7a1b73eb352d79acd36309b0dababd":[5,0,0,38,1],
+"items_8php.html#ac1fcf621dce7370515b420a7753f4726":[5,0,0,38,46],
+"items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a":[5,0,0,38,18],
+"items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0":[5,0,0,38,50],
+"items_8php.html#ad34827ed330898456783fb14c7b46154":[5,0,0,38,54],
+"items_8php.html#ade53043e7bc5ab9cc9ef1e4fed6569d4":[5,0,0,38,43],
+"items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9":[5,0,0,38,23],
+"items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45":[5,0,0,38,42],
+"items_8php.html#ae73794179b62d39bb597ff670ab1c1e5":[5,0,0,38,34],
+"items_8php.html#af94c281016c6c912d06e064113336c5c":[5,0,0,38,41],
+"items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1":[5,0,0,38,14],
+"items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67":[5,0,0,38,22],
+"language_8php.html":[5,0,0,39],
+"language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0":[5,0,0,39,6],
+"language_8php.html#a632da17c7ac0d2dc1a00a4706870194b":[5,0,0,39,0],
+"language_8php.html#a78bd204955ec4cc3a9ac651285a1689d":[5,0,0,39,4],
+"language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05":[5,0,0,39,3],
+"language_8php.html#a980dee1d8715a98ab02e36b59facf8ed":[5,0,0,39,1],
+"language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04":[5,0,0,39,7],
+"language_8php.html#ac9142ef1d01a235c760deb0f16643f5a":[5,0,0,39,5],
+"language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e":[5,0,0,39,2],
+"language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d":[5,0,0,39,8],
+"like_8php.html":[5,0,1,37],
+"like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538":[5,0,1,37,0],
+"lockview_8php.html":[5,0,1,38],
+"lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44":[5,0,1,38,0],
+"login_8php.html":[5,0,1,39],
+"login_8php.html#a1d69ca88eb9005a7026e128b9a645904":[5,0,1,39,0],
+"lostpass_8php.html":[5,0,1,40],
+"lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3":[5,0,1,40,0],
+"lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc":[5,0,1,40,1],
+"magic_8php.html":[5,0,1,41],
+"magic_8php.html#acea2cc792849ca2d71d4b689f66518bf":[5,0,1,41,0],
+"manage_8php.html":[5,0,1,42],
+"manage_8php.html#a2bca247b5296827638959138367db4f5":[5,0,1,42,0],
+"match_8php.html":[5,0,1,43],
+"match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d":[5,0,1,43,0],
+"md_README.html":[2],
+"md_config.html":[0],
+"md_fresh.html":[1],
+"minimal_8php.html":[5,0,3,0,2],
+"mod_2api_8php.html":[5,0,1,4],
+"mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117":[5,0,1,4,2],
+"mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d":[5,0,1,4,0],
+"mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2":[5,0,1,4,1],
+"mod_2attach_8php.html":[5,0,1,6],
+"mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1":[5,0,1,6,0],
+"mod_2directory_8php.html":[5,0,1,15],
+"mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf":[5,0,1,15,2],
+"mod_2directory_8php.html#aa1d928543212871491706216742dd73c":[5,0,1,15,0],
+"mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44":[5,0,1,15,1],
+"mod_2follow_8php.html":[5,0,1,26],
+"mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a":[5,0,1,26,1],
+"mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592":[5,0,1,26,0],
+"mod_2group_8php.html":[5,0,1,28],
+"mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83":[5,0,1,28,1],
+"mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c":[5,0,1,28,0],
+"mod_2group_8php.html#aed1f009b1221348021bb34761160ef35":[5,0,1,28,2],
+"mod_2message_8php.html":[5,0,1,44],
+"mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718":[5,0,1,44,2],
+"mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79":[5,0,1,44,1],
+"mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7":[5,0,1,44,0],
+"mod_2network_8php.html":[5,0,1,47],
+"mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec":[5,0,1,47,1],
+"mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad":[5,0,1,47,3],
+"mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4":[5,0,1,47,0],
+"mod_2network_8php.html#aeaa518c1a317516a3da337b88d358666":[5,0,1,47,2],
+"mod_2notify_8php.html":[5,0,1,51],
+"mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae":[5,0,1,51,1],
+"mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3":[5,0,1,51,0],
+"mod_2oembed_8php.html":[5,0,1,52],
+"mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014":[5,0,1,52,0],
+"mod_2photos_8php.html":[5,0,1,58],
+"mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080":[5,0,1,58,2],
+"mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812":[5,0,1,58,0],
+"mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014":[5,0,1,58,1]
+};
diff --git a/doc/html/navtreeindex5.js b/doc/html/navtreeindex5.js
new file mode 100644
index 000000000..541f854d8
--- /dev/null
+++ b/doc/html/navtreeindex5.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX5 =
+{
+"mod__import_8php.html":[5,0,3,0,3],
+"mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb":[5,0,3,0,3,0],
+"mod__new__channel_8php.html":[5,0,3,0,4],
+"mod__new__channel_8php.html#a8db1899eeeb44dabd0904065b63627bb":[5,0,3,0,4,0],
+"mod__register_8php.html":[5,0,3,0,5],
+"mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb":[5,0,3,0,5,0],
+"mood_8php.html":[5,0,1,45],
+"mood_8php.html#a721b9b6703b3234a005641c92d409b8f":[5,0,1,45,0],
+"mood_8php.html#a7ae136dd7476865b4828136175db5022":[5,0,1,45,1],
+"msearch_8php.html":[5,0,1,46],
+"msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8":[5,0,1,46,0],
+"namespaceFriendica.html":[3,0,1],
+"namespaceFriendica.html":[4,0,1],
+"namespaceacl__selectors.html":[3,0,0],
+"namespaceacl__selectors.html":[4,0,0],
+"namespacefriendica-to-smarty-tpl.html":[4,0,2],
+"namespacefriendica-to-smarty-tpl.html":[3,0,2],
+"namespacemembers.html":[3,1,0],
+"namespacemembers_func.html":[3,1,1],
+"namespacemembers_vars.html":[3,1,2],
+"namespaces.html":[3,0],
+"namespaceupdatetpl.html":[4,0,3],
+"namespaceupdatetpl.html":[3,0,3],
+"namespaceutil.html":[4,0,4],
+"namespaceutil.html":[3,0,4],
+"nav_8php.html":[5,0,0,41],
+"nav_8php.html#a43be0df73b90647ea70947ce004e231e":[5,0,0,41,0],
+"nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a":[5,0,0,41,1],
+"new__channel_8php.html":[5,0,1,48],
+"new__channel_8php.html#a180b0646957db8290482f02454ad7f23":[5,0,1,48,2],
+"new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164":[5,0,1,48,1],
+"new__channel_8php.html#ae585191610f79da129492482ce8e2fee":[5,0,1,48,0],
+"nogroup_8php.html":[5,0,1,49],
+"nogroup_8php.html#a099cb353bf62e8453069ce107b763212":[5,0,1,49,1],
+"nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30":[5,0,1,49,0],
+"notifications_8php.html":[5,0,1,50],
+"notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33":[5,0,1,50,1],
+"notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62":[5,0,1,50,0],
+"notifier_8php.html":[5,0,0,43],
+"notifier_8php.html#a568c502f626cff95e344c0748938b85d":[5,0,0,43,0],
+"oauth_8php.html":[5,0,0,45],
+"oauth_8php.html#a7a32a5990f113ac9465b03b29175cf16":[5,0,0,45,3],
+"oauth_8php.html#ad343cab37aa860d2d14dc86b7f5ca0c6":[5,0,0,45,2],
+"oexchange_8php.html":[5,0,1,53],
+"oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26":[5,0,1,53,0],
+"oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59":[5,0,1,53,1],
+"onepoll_8php.html":[5,0,0,47],
+"onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d":[5,0,0,47,0],
+"opensearch_8php.html":[5,0,1,54],
+"opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9":[5,0,1,54,0],
+"page_8php.html":[5,0,1,55],
+"page_8php.html#a4d89800c0366a239191b1692c09635cf":[5,0,1,55,1],
+"page_8php.html#a91a5f649f68406149108bded1dc90b22":[5,0,1,55,0],
+"pages.html":[],
+"parse__url_8php.html":[5,0,1,56],
+"parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b":[5,0,1,56,2],
+"parse__url_8php.html#a25635549f2c22955d72465f4d2e58993":[5,0,1,56,3],
+"parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a":[5,0,1,56,1],
+"parse__url_8php.html#aa7dd8f961bea042d62726ed909e4a868":[5,0,1,56,0],
+"permissions_8php.html":[5,0,0,48],
+"permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972":[5,0,0,48,2],
+"permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7":[5,0,0,48,0],
+"permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835":[5,0,0,48,3],
+"permissions_8php.html#aeca9b280f3dc3358c89976d81d690008":[5,0,0,48,1],
+"photo_8php.html":[5,0,1,57],
+"photo_8php.html#a582779d24882b0d31ee909a91d70a448":[5,0,1,57,0],
+"photo__driver_8php.html":[5,0,0,1,0],
+"photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca":[5,0,0,1,0,3],
+"photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a":[5,0,0,1,0,2],
+"photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035":[5,0,0,1,0,4],
+"photo__driver_8php.html#a7273b82b017fd96d29b2c57bab03aea6":[5,0,0,1,0,1],
+"photo__gd_8php.html":[5,0,0,1,1],
+"photo__imagick_8php.html":[5,0,0,1,2],
+"php2po_8php.html":[5,0,2,5],
+"php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b":[5,0,2,5,7],
+"php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1":[5,0,2,5,5],
+"php2po_8php.html#a45b05625748f412ec97afcd61cf7980b":[5,0,2,5,6],
+"php2po_8php.html#a48cb304902320d173a4eaa41543327b9":[5,0,2,5,3],
+"php2po_8php.html#a61f8ddeb5557d46ebc546cc355bda214":[5,0,2,5,0],
+"php2po_8php.html#a6b0b8ebd9ce811d1325ef2c129443bc0":[5,0,2,5,1],
+"php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4":[5,0,2,5,4],
+"php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178":[5,0,2,5,2],
+"php_2default_8php.html":[5,0,3,0,0],
+"php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762":[5,0,3,0,0,0],
+"php_2theme__init_8php.html":[5,0,3,0,6],
+"php_8php.html":[5,0,1,59],
+"php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6":[5,0,1,59,0],
+"ping_8php.html":[5,0,1,60],
+"ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1":[5,0,1,60,0],
+"plugin_8php.html":[5,0,0,50],
+"plugin_8php.html#a030cec6793b909c439c0336ba39b1571":[5,0,0,50,17],
+"plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76":[5,0,0,50,20],
+"plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a":[5,0,0,50,8],
+"plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813":[5,0,0,50,13],
+"plugin_8php.html#a425472c5f3afc137268b2ad45652b209":[5,0,0,50,15],
+"plugin_8php.html#a48047edfbef770125a5508dcc2f9282f":[5,0,0,50,7],
+"plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5":[5,0,0,50,12],
+"plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040":[5,0,0,50,24],
+"plugin_8php.html#a516591850f4fd49fd1425cfa54089db8":[5,0,0,50,9],
+"plugin_8php.html#a56f71fe5adf9586ce950523d8180443e":[5,0,0,50,22],
+"plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1":[5,0,0,50,11],
+"plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2":[5,0,0,50,19],
+"plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d":[5,0,0,50,23],
+"plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4":[5,0,0,50,4],
+"plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c":[5,0,0,50,0],
+"plugin_8php.html#a901657dd078e070516cf97285e0bada7":[5,0,0,50,25],
+"plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6":[5,0,0,50,1],
+"plugin_8php.html#a90538627db68605aeb6db17a8ead6523":[5,0,0,50,21],
+"plugin_8php.html#a905b54e10704b283ac64680a8abc0971":[5,0,0,50,18],
+"plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d":[5,0,0,50,14],
+"plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295":[5,0,0,50,3],
+"plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405":[5,0,0,50,6],
+"plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f":[5,0,0,50,2],
+"plugin_8php.html#af92789f559b89a380e49d303218aeeca":[5,0,0,50,10],
+"plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025":[5,0,0,50,16],
+"plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35":[5,0,0,50,5],
+"po2php_8php.html":[5,0,2,6],
+"po2php_8php.html#a3b75e36f913198299e99559b175cd8b4":[5,0,2,6,0],
+"poco_8php.html":[5,0,1,61],
+"poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498":[5,0,1,61,0],
+"poke_8php.html":[5,0,1,62],
+"poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b":[5,0,1,62,1],
+"poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993":[5,0,1,62,0],
+"poller_8php.html":[5,0,0,51],
+"poller_8php.html#a5f12df3a4738124b6c039971e87e76da":[5,0,0,51,0],
+"post_8php.html":[5,0,1,63],
+"post_8php.html#af4b48181ce773ef0cdfc972441445c34":[5,0,1,63,0],
+"post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75":[5,0,1,63,1],
+"pretheme_8php.html":[5,0,1,64],
+"pretheme_8php.html#af5660943ee99db5fd75182316522eafe":[5,0,1,64,0],
+"probe_8php.html":[5,0,1,65],
+"probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99":[5,0,1,65,0],
+"profile_8php.html":[5,0,1,66],
+"profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e":[5,0,1,66,0],
+"profile_8php.html#a3775cf6eef6587e5143133356a7b76c0":[5,0,1,66,1],
+"profile_8php.html#ab5d0246be0552e2182a585c1206d22a5":[5,0,1,66,2],
+"profile__advanced_8php.html":[5,0,0,52],
+"profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4":[5,0,0,52,0],
+"profile__photo_8php.html":[5,0,1,67],
+"profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02":[5,0,1,67,1],
+"profile__photo_8php.html#a4b80234074bd603221aa5364f330e479":[5,0,1,67,2],
+"profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3":[5,0,1,67,0],
+"profile__selectors_8php.html":[5,0,0,53],
+"profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7":[5,0,0,53,2],
+"profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798":[5,0,0,53,1],
+"profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355":[5,0,0,53,0],
+"profiles_8php.html":[5,0,1,68],
+"profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c":[5,0,1,68,0],
+"profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e":[5,0,1,68,2],
+"profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00":[5,0,1,68,1],
+"profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04":[5,0,1,68,3],
+"profperm_8php.html":[5,0,1,69],
+"profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6":[5,0,1,69,2],
+"profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc":[5,0,1,69,0],
+"profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023":[5,0,1,69,1],
+"qsearch_8php.html":[5,0,1,70],
+"qsearch_8php.html#a0501887b95bd8fa21018b2936a668894":[5,0,1,70,0],
+"queue_8php.html":[5,0,0,55],
+"queue_8php.html#af8c93de86d866c3200174c8450a0f341":[5,0,0,55,0],
+"queue__fn_8php.html":[5,0,0,56],
+"queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1":[5,0,0,56,1],
+"queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24":[5,0,0,56,0],
+"randprof_8php.html":[5,0,1,71],
+"randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090":[5,0,1,71,0],
+"redbasic_2php_2style_8php.html":[5,0,3,1,0,0,1],
+"redbasic_2php_2style_8php.html#a02d39b683a42fffbb27823d3860283bd":[5,0,3,1,0,0,1,14],
+"redbasic_2php_2style_8php.html#a03a72942b7428fd9af1224770d20a8ba":[5,0,3,1,0,0,1,5],
+"redbasic_2php_2style_8php.html#a0b942d36d8862908864e2ffa4521be70":[5,0,3,1,0,0,1,13],
+"redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a":[5,0,3,1,0,0,1,17],
+"redbasic_2php_2style_8php.html#a232513bf4339fe34908c4c63cb93168b":[5,0,3,1,0,0,1,4],
+"redbasic_2php_2style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab":[5,0,3,1,0,0,1,0],
+"redbasic_2php_2style_8php.html#a4131d1765ee4deb28e83fc4527943ee0":[5,0,3,1,0,0,1,2],
+"redbasic_2php_2style_8php.html#a45e6fafa363bc4586fa91dce1786be4f":[5,0,3,1,0,0,1,16],
+"redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351":[5,0,3,1,0,0,1,9],
+"redbasic_2php_2style_8php.html#a6628a80911a6b37b464ef110ac8f6e42":[5,0,3,1,0,0,1,3],
+"redbasic_2php_2style_8php.html#a8749837e08dfb3372662af9c33fa2a2e":[5,0,3,1,0,0,1,15],
+"redbasic_2php_2style_8php.html#a938168352fd3cdaa1c10c16a34f5938a":[5,0,3,1,0,0,1,8],
+"redbasic_2php_2style_8php.html#aa658152b727ea1233f6df6ded6437dad":[5,0,3,1,0,0,1,1],
+"redbasic_2php_2style_8php.html#ac4c6bc3cd9cc92204f04cf6cb34b47dd":[5,0,3,1,0,0,1,19],
+"redbasic_2php_2style_8php.html#acb3046ad9c01b7d60cde20f58d77c548":[5,0,3,1,0,0,1,12],
+"redbasic_2php_2style_8php.html#acc190405dda0a23a80551dee11c74c0c":[5,0,3,1,0,0,1,6],
+"redbasic_2php_2style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc":[5,0,3,1,0,0,1,11],
+"redbasic_2php_2style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda":[5,0,3,1,0,0,1,10],
+"redbasic_2php_2style_8php.html#aef266cfcb27c6ddb3292584c945bab33":[5,0,3,1,0,0,1,7],
+"redbasic_2php_2style_8php.html#af3a16c5f0dd7a74cf9acf6a49fff73a7":[5,0,3,1,0,0,1,18],
+"redbasic_2php_2theme_8php.html":[5,0,3,1,0,0,2],
+"redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b":[5,0,3,1,0,0,2,0],
+"redir_8php.html":[5,0,1,72],
+"redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5":[5,0,1,72,0],
+"redstrap_2php_2style_8php.html":[5,0,3,1,1,0,2],
+"redstrap_2php_2style_8php.html#a02d39b683a42fffbb27823d3860283bd":[5,0,3,1,1,0,2,13],
+"redstrap_2php_2style_8php.html#a03a72942b7428fd9af1224770d20a8ba":[5,0,3,1,1,0,2,5],
+"redstrap_2php_2style_8php.html#a0b942d36d8862908864e2ffa4521be70":[5,0,3,1,1,0,2,12],
+"redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea":[5,0,3,1,1,0,2,16],
+"redstrap_2php_2style_8php.html#a232513bf4339fe34908c4c63cb93168b":[5,0,3,1,1,0,2,4],
+"redstrap_2php_2style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab":[5,0,3,1,1,0,2,0],
+"redstrap_2php_2style_8php.html#a4131d1765ee4deb28e83fc4527943ee0":[5,0,3,1,1,0,2,2],
+"redstrap_2php_2style_8php.html#a45e6fafa363bc4586fa91dce1786be4f":[5,0,3,1,1,0,2,15],
+"redstrap_2php_2style_8php.html#a6628a80911a6b37b464ef110ac8f6e42":[5,0,3,1,1,0,2,3],
+"redstrap_2php_2style_8php.html#a8749837e08dfb3372662af9c33fa2a2e":[5,0,3,1,1,0,2,14],
+"redstrap_2php_2style_8php.html#a938168352fd3cdaa1c10c16a34f5938a":[5,0,3,1,1,0,2,8],
+"redstrap_2php_2style_8php.html#aa658152b727ea1233f6df6ded6437dad":[5,0,3,1,1,0,2,1],
+"redstrap_2php_2style_8php.html#acb3046ad9c01b7d60cde20f58d77c548":[5,0,3,1,1,0,2,11],
+"redstrap_2php_2style_8php.html#acc190405dda0a23a80551dee11c74c0c":[5,0,3,1,1,0,2,6],
+"redstrap_2php_2style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc":[5,0,3,1,1,0,2,10],
+"redstrap_2php_2style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda":[5,0,3,1,1,0,2,9],
+"redstrap_2php_2style_8php.html#aef266cfcb27c6ddb3292584c945bab33":[5,0,3,1,1,0,2,7],
+"redstrap_2php_2theme_8php.html":[5,0,3,1,1,0,3],
+"redstrap_2php_2theme_8php.html#a4dac61d466b4261deca2846f548e484a":[5,0,3,1,1,0,3,0],
+"register_8php.html":[5,0,1,73],
+"register_8php.html#a0e91f57f111407ea8d3223a05022bb2a":[5,0,1,73,0],
+"register_8php.html#a51731dcc1917c58a790eb1c0f6132271":[5,0,1,73,2],
+"register_8php.html#ae20c0cd40f738d6295de58b9202c83d5":[5,0,1,73,1],
+"regmod_8php.html":[5,0,1,74],
+"regmod_8php.html#a7953df4e32e63946565e90cdd5d50409":[5,0,1,74,0],
+"removeme_8php.html":[5,0,1,75],
+"removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c":[5,0,1,75,0],
+"removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88":[5,0,1,75,1],
+"rmagic_8php.html":[5,0,1,76],
+"rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef":[5,0,1,76,0],
+"rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f":[5,0,1,76,2],
+"rmagic_8php.html#a95455edd43f1bff39446a57388cdde16":[5,0,1,76,1],
+"rsd__xml_8php.html":[5,0,1,77],
+"rsd__xml_8php.html#a740cd02fa15e5a53f8547fac73f0ab82":[5,0,1,77,0],
+"search_8php.html":[5,0,1,78],
+"search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7":[5,0,1,78,2],
+"search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6":[5,0,1,78,3],
+"search_8php.html#ab2568591359edde5b483a6cd9a24b2cc":[5,0,1,78,0],
+"search_8php.html#acf19fd30f07f495781ca0d7a0a08b435":[5,0,1,78,1],
+"search__ac_8php.html":[5,0,1,79],
+"search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138":[5,0,1,79,0],
+"security_8php.html":[5,0,0,57],
+"security_8php.html#a20f8b9851f23ee8894b8925584ef6821":[5,0,0,57,2],
+"security_8php.html#a444ac867dfa8c37cf0a7a226412bee28":[5,0,0,57,4],
+"security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433":[5,0,0,57,5],
+"security_8php.html#a8d23d2597aae380a3341872fe9513380":[5,0,0,57,1],
+"security_8php.html#a9355488460ab11d6058656ff919e5cf9":[5,0,0,57,7],
+"security_8php.html#a9c6180e82150a5a9af91a1255d096b5c":[5,0,0,57,3],
+"security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01":[5,0,0,57,9],
+"security_8php.html#acd06ef411116115c2f0a92633700db8a":[5,0,0,57,6],
+"security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733":[5,0,0,57,0],
+"security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809":[5,0,0,57,10],
+"security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f":[5,0,0,57,8],
+"session_8php.html":[5,0,0,58],
+"session_8php.html#a26fa1042356d555023cbf15ddd4f8507":[5,0,0,58,4],
+"session_8php.html#a4c0ead624f95483e386bc80abf570a8f":[5,0,0,58,0],
+"session_8php.html#a5e1c616e02b863d5450317d101366bb7":[5,0,0,58,1],
+"session_8php.html#a62e4a6cb26b4bb1b8ddd8277b26090eb":[5,0,0,58,8],
+"session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e":[5,0,0,58,5],
+"session_8php.html#a96b09cc763572f45280786a7b33feb7e":[5,0,0,58,7]
+};
diff --git a/doc/html/navtreeindex6.js b/doc/html/navtreeindex6.js
new file mode 100644
index 000000000..d2b44a25d
--- /dev/null
+++ b/doc/html/navtreeindex6.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX6 =
+{
+"session_8php.html#ac4461c1984543d3553e73dba2771568f":[5,0,0,58,6],
+"session_8php.html#ac95373f4966862a028033dd2f94d4da1":[5,0,0,58,3],
+"session_8php.html#af0100a2642a5268594bbd5742a03d885":[5,0,0,58,9],
+"session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052":[5,0,0,58,2],
+"settings_8php.html":[5,0,1,80],
+"settings_8php.html#a39abc76ff5459c57e3b957664f273f18":[5,0,1,80,0],
+"settings_8php.html#a3a4cde287482fced008583f54ba2a722":[5,0,1,80,2],
+"settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586":[5,0,1,80,3],
+"settings_8php.html#ae5aebccb006bee1300078576baaf5582":[5,0,1,80,1],
+"setup_8php.html":[5,0,1,81],
+"setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4":[5,0,1,81,2],
+"setup_8php.html#a13cf286774149a0a7bd8adb8179cec75":[5,0,1,81,13],
+"setup_8php.html#a14d208682a88632290c895d20da6e7d6":[5,0,1,81,5],
+"setup_8php.html#a267555abd17290e659b4bf44b885e4e0":[5,0,1,81,12],
+"setup_8php.html#a2b375ddc555140236fc500135de99371":[5,0,1,81,9],
+"setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f":[5,0,1,81,3],
+"setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e":[5,0,1,81,1],
+"setup_8php.html#a8652788e8589778c5f81634a9d5b9429":[5,0,1,81,7],
+"setup_8php.html#a88247384a96e14516f474d7af6a465c1":[5,0,1,81,11],
+"setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76":[5,0,1,81,4],
+"setup_8php.html#abe405d227ba7232971964a706d4f3bce":[5,0,1,81,10],
+"setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a":[5,0,1,81,8],
+"setup_8php.html#addb24714bc2542aa4f4215e98fe48432":[5,0,1,81,15],
+"setup_8php.html#ae8e4d9279a61de74d5f39962cb7b6ca1":[5,0,1,81,0],
+"setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58":[5,0,1,81,14],
+"setup_8php.html#afd8b0b3ade1507c45325caf377bf459d":[5,0,1,81,6],
+"share_8php.html":[5,0,1,82],
+"share_8php.html#afeb26046bdd02567ecd29ab5f188b249":[5,0,1,82,0],
+"siteinfo_8php.html":[5,0,1,83],
+"siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0":[5,0,1,83,1],
+"siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656":[5,0,1,83,0],
+"smilies_8php.html":[5,0,1,84],
+"smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f":[5,0,1,84,0],
+"socgraph_8php.html":[5,0,0,59],
+"socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586":[5,0,0,59,0],
+"socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329":[5,0,0,59,7],
+"socgraph_8php.html#a790690bb1a1d02483fe31632a160144d":[5,0,0,59,8],
+"socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918":[5,0,0,59,1],
+"socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84":[5,0,0,59,4],
+"socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca":[5,0,0,59,6],
+"socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9":[5,0,0,59,2],
+"socgraph_8php.html#af175807406d94407a5e11742a3287746":[5,0,0,59,5],
+"socgraph_8php.html#af29d056beec10b4e38e5209c92452894":[5,0,0,59,3],
+"starred_8php.html":[5,0,1,85],
+"starred_8php.html#a63024fb418c678e49fd535e3752d349a":[5,0,1,85,0],
+"subthread_8php.html":[5,0,1,86],
+"subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3":[5,0,1,86,0],
+"suggest_8php.html":[5,0,1,87],
+"suggest_8php.html#a4df91c84594d51ba56b5918de414230d":[5,0,1,87,0],
+"suggest_8php.html#a58748a8235d4523f8333847f3e42dd91":[5,0,1,87,1],
+"suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c":[5,0,1,87,2],
+"system__unavailable_8php.html":[5,0,0,60],
+"system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa":[5,0,0,60,0],
+"tagger_8php.html":[5,0,1,88],
+"tagger_8php.html#a0e4a3eb177d1684553c547503d67161c":[5,0,1,88,0],
+"tagrm_8php.html":[5,0,1,89],
+"tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78":[5,0,1,89,1],
+"tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a":[5,0,1,89,0],
+"taxonomy_8php.html":[5,0,0,61],
+"taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce":[5,0,0,61,6],
+"taxonomy_8php.html#a061b3db9426d4b074395f5824062cad4":[5,0,0,61,8],
+"taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6":[5,0,0,61,0],
+"taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1":[5,0,0,61,4],
+"taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1":[5,0,0,61,2],
+"taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37":[5,0,0,61,1],
+"taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd":[5,0,0,61,7],
+"taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c":[5,0,0,61,11],
+"taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43":[5,0,0,61,10],
+"taxonomy_8php.html#abdb698bc6921429df6d697f6c5dec96f":[5,0,0,61,9],
+"taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2":[5,0,0,61,5],
+"taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1":[5,0,0,61,3],
+"template__processor_8php.html":[5,0,0,62],
+"template__processor_8php.html#a797745996c7839a93b2ab1af456631ab":[5,0,0,62,3],
+"template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5":[5,0,0,62,1],
+"template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e":[5,0,0,62,2],
+"text_8php.html":[5,0,0,63],
+"text_8php.html#a030fa5ecc64168af0c4f44897a9bce63":[5,0,0,63,39],
+"text_8php.html#a05b7f26dc2df78681f57eeade53040c6":[5,0,0,63,25],
+"text_8php.html#a070384ec000fd65043fce11d5392d241":[5,0,0,63,6],
+"text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c":[5,0,0,63,15],
+"text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3":[5,0,0,63,11],
+"text_8php.html#a11255c8c4e5245b6c24f97684826aa54":[5,0,0,63,38],
+"text_8php.html#a13286f8a95d2de6b102966ecc270c8d6":[5,0,0,63,5],
+"text_8php.html#a1360fed7f918d859daaca1c9f384f9af":[5,0,0,63,68],
+"text_8php.html#a138a3a611fa7f4f3630674145fc826bf":[5,0,0,63,29],
+"text_8php.html#a1557112a774ec00fa06ed6b6f6495506":[5,0,0,63,31],
+"text_8php.html#a1af49756c8c71902a66c7e329c462beb":[5,0,0,63,45],
+"text_8php.html#a1e510c53624933ce9b7d6715784894db":[5,0,0,63,40],
+"text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6":[5,0,0,63,41],
+"text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728":[5,0,0,63,36],
+"text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca":[5,0,0,63,4],
+"text_8php.html#a29988052f3944111def3b6aaf2c7a8f6":[5,0,0,63,75],
+"text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7":[5,0,0,63,66],
+"text_8php.html#a2a902f5fdba8646333e997898ac45ea3":[5,0,0,63,42],
+"text_8php.html#a2e8d6c402603be3a1256a16605e09c2a":[5,0,0,63,10],
+"text_8php.html#a2ffd79c60cc87cec24ef76447b905187":[5,0,0,63,77],
+"text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f":[5,0,0,63,71],
+"text_8php.html#a3972701c5c83624ec4e2d06242f614e7":[5,0,0,63,27],
+"text_8php.html#a3d225b253bb9e0f2498c11647d927b0b":[5,0,0,63,64],
+"text_8php.html#a3d2793d66db3345fd290b71e2eadf98e":[5,0,0,63,7],
+"text_8php.html#a405afe814a23f3bd94d826101aa168ab":[5,0,0,63,73],
+"text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a":[5,0,0,63,30],
+"text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6":[5,0,0,63,63],
+"text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623":[5,0,0,63,28],
+"text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285":[5,0,0,63,37],
+"text_8php.html#a4841df5beabdd1bdd1ed56781a915d61":[5,0,0,63,54],
+"text_8php.html#a4bbb7d00c05cd20b4e043424f322388f":[5,0,0,63,43],
+"text_8php.html#a4e7698aca48982512594b274543c3b9b":[5,0,0,63,53],
+"text_8php.html#a543447c5ed766535221e2d9636b379ee":[5,0,0,63,70],
+"text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0":[5,0,0,63,9],
+"text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63":[5,0,0,63,14],
+"text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb":[5,0,0,63,69],
+"text_8php.html#a71f6952243d3fe1c5a8154f78027e29c":[5,0,0,63,35],
+"text_8php.html#a736db13a966b8abaf8c9198faa35911a":[5,0,0,63,24],
+"text_8php.html#a740ad03e00459039a2c0992246c4e727":[5,0,0,63,67],
+"text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85":[5,0,0,63,1],
+"text_8php.html#a76d1b3435c067978d7b484c45f56472b":[5,0,0,63,23],
+"text_8php.html#a85e3a4851c16674834010d8419a5d7ca":[5,0,0,63,8],
+"text_8php.html#a876e94892867019935b348b573299352":[5,0,0,63,61],
+"text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13":[5,0,0,63,65],
+"text_8php.html#a89929fa6f70a8ba54d5273fcf622b665":[5,0,0,63,19],
+"text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6":[5,0,0,63,52],
+"text_8php.html#a8d8c4a11e53461caca21181ebd72daca":[5,0,0,63,18],
+"text_8php.html#a95fd2f8f23a1948414a03ebc963bac57":[5,0,0,63,3],
+"text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee":[5,0,0,63,47],
+"text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09":[5,0,0,63,58],
+"text_8php.html#a9d6a5ee1290de7a8b483fe78585daade":[5,0,0,63,56],
+"text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c":[5,0,0,63,60],
+"text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66":[5,0,0,63,26],
+"text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64":[5,0,0,63,16],
+"text_8php.html#aa5528f41533927e1bd2da3618a74a6d7":[5,0,0,63,48],
+"text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e":[5,0,0,63,32],
+"text_8php.html#aad557c054cf2ed915633701018fc7e3f":[5,0,0,63,76],
+"text_8php.html#aaed4413ed8918838b517e3b2fafaea0d":[5,0,0,63,72],
+"text_8php.html#ab4a4c3d4700bc219bb84f33b499314f4":[5,0,0,63,74],
+"text_8php.html#ac19d2b33a58372a357a43d51eed19162":[5,0,0,63,49],
+"text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e":[5,0,0,63,33],
+"text_8php.html#aca0f589be74fab1a460c57e88dad9779":[5,0,0,63,62],
+"text_8php.html#ace3c98538c63e09b70a363210b414112":[5,0,0,63,20],
+"text_8php.html#acedb584f65114a33f389efb796172a91":[5,0,0,63,2],
+"text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784":[5,0,0,63,13],
+"text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2":[5,0,0,63,57],
+"text_8php.html#adba17ec946f4285285dc100f7860bf51":[5,0,0,63,44],
+"text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8":[5,0,0,63,34],
+"text_8php.html#ae2126da85966da0e79c6bcbac63b0bda":[5,0,0,63,59],
+"text_8php.html#ae4282a39492caa23ccbc2ce98e54f110":[5,0,0,63,17],
+"text_8php.html#ae4df74296fbe55051ed3c035e55205e5":[5,0,0,63,50],
+"text_8php.html#ae4f6881d7e13623f8eded6277595112a":[5,0,0,63,22],
+"text_8php.html#af8a3e3a66a7b862d4510f145d2e13186":[5,0,0,63,0],
+"text_8php.html#afc998d2796a6b2a08e96f7cc061e7221":[5,0,0,63,55],
+"text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28":[5,0,0,63,21],
+"text_8php.html#afe18627c4983ee5f7c940a0992818cd5":[5,0,0,63,12],
+"text_8php.html#afe54312607d92f7ce9593f5760831f80":[5,0,0,63,51],
+"text_8php.html#afe9f178d264d44a94dc1292aaf0fd585":[5,0,0,63,46],
+"theme_2redstrap_2php_2default_8php.html":[5,0,3,1,1,0,1],
+"theme_2redstrap_2php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762":[5,0,3,1,1,0,1,0],
+"theme_2redstrap_2php_2theme__init_8php.html":[5,0,3,1,1,0,4],
+"thing_8php.html":[5,0,1,90],
+"thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b":[5,0,1,90,0],
+"thing_8php.html#a8be23b1d475ec3d9291999221c674c80":[5,0,1,90,1],
+"toggle__mobile_8php.html":[5,0,1,91],
+"toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254":[5,0,1,91,0],
+"tpldebug_8php.html":[5,0,2,7],
+"tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3":[5,0,2,7,0],
+"tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149":[5,0,2,7,1],
+"tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c":[5,0,2,7,2],
+"typo_8php.html":[5,0,2,8],
+"typo_8php.html#a1b709c1d79631ebc8320b41bda028b54":[5,0,2,8,1],
+"typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5":[5,0,2,8,4],
+"typo_8php.html#a3ecd17ac846be1b35f3662f5c12ab6bd":[5,0,2,8,3],
+"typo_8php.html#a9590b15215a21e9b42eb546aeef79704":[5,0,2,8,2],
+"typo_8php.html#acebf83966ef6d7e5645a6b62ba368f9f":[5,0,2,8,0],
+"typohelper_8php.html":[5,0,2,9],
+"typohelper_8php.html#a7542d95618011800c61773127fa625cf":[5,0,2,9,0],
+"typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805":[5,0,2,9,1],
+"uexport_8php.html":[5,0,1,92],
+"uexport_8php.html#a118920137dedebe0581623a2e57e7b0d":[5,0,1,92,0],
+"update__channel_8php.html":[5,0,1,93],
+"update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba":[5,0,1,93,0],
+"update__community_8php.html":[5,0,1,94],
+"update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1":[5,0,1,94,0],
+"update__display_8php.html":[5,0,1,95],
+"update__display_8php.html#aa36ac524059e209d5d75a03c16206246":[5,0,1,95,0],
+"update__network_8php.html":[5,0,1,96],
+"update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41":[5,0,1,96,0],
+"update__search_8php.html":[5,0,1,97],
+"update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52":[5,0,1,97,0],
+"updatetpl_8py.html":[5,0,2,10],
+"updatetpl_8py.html#a52a85ffa6b6d63d840b185a133478c12":[5,0,2,10,5],
+"updatetpl_8py.html#a79c20eb62d568c999b56eb08530355d3":[5,0,2,10,2],
+"updatetpl_8py.html#a988d937ed5d5c2b592b763036af5cf94":[5,0,2,10,1],
+"updatetpl_8py.html#ab42dd79af65ee82201fd6f04715f62f6":[5,0,2,10,3],
+"updatetpl_8py.html#ac9d11279fed403a329a719298feafc4f":[5,0,2,10,0],
+"updatetpl_8py.html#ae694f5e1f25f8a92a945eb90c432dfe6":[5,0,2,10,4],
+"view_2theme_2redbasic_2php_2config_8php.html":[5,0,3,1,0,0,0],
+"view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2":[5,0,3,1,0,0,0,0],
+"view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[5,0,3,1,0,0,0,1],
+"view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[5,0,3,1,0,0,0,2],
+"view_2theme_2redstrap_2php_2config_8php.html":[5,0,3,1,1,0,0],
+"view_2theme_2redstrap_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[5,0,3,1,1,0,0,1],
+"view_2theme_2redstrap_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[5,0,3,1,1,0,0,2],
+"view_2theme_2redstrap_2php_2config_8php.html#af58e97b437c1e98a5e434886494cc70e":[5,0,3,1,1,0,0,0],
+"view_8php.html":[5,0,1,98],
+"view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e":[5,0,1,98,0],
+"viewconnections_8php.html":[5,0,1,99],
+"viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330":[5,0,1,99,2],
+"viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776":[5,0,1,99,1],
+"viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6":[5,0,1,99,0],
+"viewsrc_8php.html":[5,0,1,100],
+"viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4":[5,0,1,100,0],
+"wall__attach_8php.html":[5,0,1,101],
+"wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653":[5,0,1,101,0],
+"wall__upload_8php.html":[5,0,1,102],
+"wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f":[5,0,1,102,0],
+"webfinger_8php.html":[5,0,1,103],
+"webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3":[5,0,1,103,0],
+"webpages_8php.html":[5,0,1,104],
+"webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d":[5,0,1,104,0],
+"webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7":[5,0,1,104,1],
+"wfinger_8php.html":[5,0,1,105],
+"wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3":[5,0,1,105,0],
+"xchan_8php.html":[5,0,1,106],
+"xchan_8php.html#a9853348bf1a35c644460221ba75edc2d":[5,0,1,106,0],
+"xrd_8php.html":[5,0,1,107],
+"xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270":[5,0,1,107,0],
+"zfinger_8php.html":[5,0,1,108],
+"zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0":[5,0,1,108,0],
+"zot_8php.html":[5,0,0,64],
+"zot_8php.html#a083aec6c900d244e1bfc1406f9461465":[5,0,0,64,11],
+"zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c":[5,0,0,64,20],
+"zot_8php.html#a2657e141d62d5f67ad3c87651b585299":[5,0,0,64,5],
+"zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df":[5,0,0,64,13],
+"zot_8php.html#a37ec13b18057634eadb071f05297f5e1":[5,0,0,64,8],
+"zot_8php.html#a3862b3161b2c8557dc1a95020179bd81":[5,0,0,64,15],
+"zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a":[5,0,0,64,3],
+"zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32":[5,0,0,64,4],
+"zot_8php.html#a55056e863a7860bc0cf922e78fcce073":[5,0,0,64,19],
+"zot_8php.html#a5bcdfef419b16075a0eca990956223dc":[5,0,0,64,24],
+"zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea":[5,0,0,64,16],
+"zot_8php.html#a666d3efcac00ec1b4a4537a60655f2ab":[5,0,0,64,14],
+"zot_8php.html#a703f528ade8382cf374e4119bd6f7859":[5,0,0,64,0],
+"zot_8php.html#a77720d6b59894e9b609af89c310c8a4d":[5,0,0,64,17],
+"zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d":[5,0,0,64,23],
+"zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03":[5,0,0,64,22],
+"zot_8php.html#a9a57b40669351c9791126b925cb7ef3b":[5,0,0,64,10],
+"zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc":[5,0,0,64,9],
+"zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10":[5,0,0,64,12],
+"zot_8php.html#ab0227978011d8601494a7651fa26acf0":[5,0,0,64,6],
+"zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7":[5,0,0,64,21],
+"zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142":[5,0,0,64,25]
+};
diff --git a/doc/html/navtreeindex7.js b/doc/html/navtreeindex7.js
new file mode 100644
index 000000000..de0624b11
--- /dev/null
+++ b/doc/html/navtreeindex7.js
@@ -0,0 +1,9 @@
+var NAVTREEINDEX7 =
+{
+"zot_8php.html#ac301c67864917c35922257950ae0f95c":[5,0,0,64,7],
+"zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7":[5,0,0,64,1],
+"zot_8php.html#acdea9362d78a63dce948fdf0ea73ef0e":[5,0,0,64,18],
+"zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72":[5,0,0,64,2],
+"zotfeed_8php.html":[5,0,1,109],
+"zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac":[5,0,1,109,0]
+};
diff --git a/doc/html/new__channel_8php.html b/doc/html/new__channel_8php.html
new file mode 100644
index 000000000..08bbf1f72
--- /dev/null
+++ b/doc/html/new__channel_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/new_channel.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('new__channel_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">new_channel.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a1ad7f99e4366a32942c6b954aba3a164"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a1ad7f99e4366a32942c6b954aba3a164"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a180b0646957db8290482f02454ad7f23"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a180b0646957db8290482f02454ad7f23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae585191610f79da129492482ce8e2fee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content</a> (&amp;$a)</td></tr>
+<tr class="separator:ae585191610f79da129492482ce8e2fee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ae585191610f79da129492482ce8e2fee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">new_channel_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1ad7f99e4366a32942c6b954aba3a164"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">new_channel_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a180b0646957db8290482f02454ad7f23"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">new_channel_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/new__channel_8php.js b/doc/html/new__channel_8php.js
new file mode 100644
index 000000000..b087d0df8
--- /dev/null
+++ b/doc/html/new__channel_8php.js
@@ -0,0 +1,6 @@
+var new__channel_8php =
+[
+ [ "new_channel_content", "new__channel_8php.html#ae585191610f79da129492482ce8e2fee", null ],
+ [ "new_channel_init", "new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164", null ],
+ [ "new_channel_post", "new__channel_8php.html#a180b0646957db8290482f02454ad7f23", null ]
+]; \ No newline at end of file
diff --git a/doc/html/nogroup_8php.html b/doc/html/nogroup_8php.html
new file mode 100644
index 000000000..963628cb8
--- /dev/null
+++ b/doc/html/nogroup_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/nogroup.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('nogroup_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">nogroup.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a099cb353bf62e8453069ce107b763212"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nogroup_8php.html#a099cb353bf62e8453069ce107b763212">nogroup_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a099cb353bf62e8453069ce107b763212"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52085b183f97c552f1db5c4926e8ec30"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30">nogroup_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a52085b183f97c552f1db5c4926e8ec30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a52085b183f97c552f1db5c4926e8ec30"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">nogroup_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a099cb353bf62e8453069ce107b763212"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">nogroup_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/nogroup_8php.js b/doc/html/nogroup_8php.js
new file mode 100644
index 000000000..73cbeccad
--- /dev/null
+++ b/doc/html/nogroup_8php.js
@@ -0,0 +1,5 @@
+var nogroup_8php =
+[
+ [ "nogroup_content", "nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30", null ],
+ [ "nogroup_init", "nogroup_8php.html#a099cb353bf62e8453069ce107b763212", null ]
+]; \ No newline at end of file
diff --git a/doc/html/notifications_8php.html b/doc/html/notifications_8php.html
new file mode 100644
index 000000000..685798ac3
--- /dev/null
+++ b/doc/html/notifications_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/notifications.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('notifications_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">notifications.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a5baffec7b2e625c9f9cefbc097550d33"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a5baffec7b2e625c9f9cefbc097550d33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aadd0b5525bd8c283a5d8a37982bbfe62"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aadd0b5525bd8c283a5d8a37982bbfe62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aadd0b5525bd8c283a5d8a37982bbfe62"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">notifications_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5baffec7b2e625c9f9cefbc097550d33"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">notifications_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/notifications_8php.js b/doc/html/notifications_8php.js
new file mode 100644
index 000000000..f4360984e
--- /dev/null
+++ b/doc/html/notifications_8php.js
@@ -0,0 +1,5 @@
+var notifications_8php =
+[
+ [ "notifications_content", "notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62", null ],
+ [ "notifications_post", "notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33", null ]
+]; \ No newline at end of file
diff --git a/doc/html/notifier_8php.html b/doc/html/notifier_8php.html
new file mode 100644
index 000000000..bb0eadec9
--- /dev/null
+++ b/doc/html/notifier_8php.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/notifier.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('notifier_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">notifier.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a568c502f626cff95e344c0748938b85d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run</a> ($<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>, $<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a>)</td></tr>
+<tr class="separator:a568c502f626cff95e344c0748938b85d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a568c502f626cff95e344c0748938b85d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">notifier_run </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argv</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argc</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/notifier_8php.js b/doc/html/notifier_8php.js
new file mode 100644
index 000000000..a06169542
--- /dev/null
+++ b/doc/html/notifier_8php.js
@@ -0,0 +1,4 @@
+var notifier_8php =
+[
+ [ "notifier_run", "notifier_8php.html#a568c502f626cff95e344c0748938b85d", null ]
+]; \ No newline at end of file
diff --git a/doc/html/oauth_8php.html b/doc/html/oauth_8php.html
new file mode 100644
index 000000000..03718f507
--- /dev/null
+++ b/doc/html/oauth_8php.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/oauth.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('oauth_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">oauth.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFKOAuthDataStore.html">FKOAuthDataStore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFKOAuth1.html">FKOAuth1</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a7a32a5990f113ac9465b03b29175cf16"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="oauth_8php.html#a7a32a5990f113ac9465b03b29175cf16">REQUEST_TOKEN_DURATION</a> 300</td></tr>
+<tr class="separator:a7a32a5990f113ac9465b03b29175cf16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad343cab37aa860d2d14dc86b7f5ca0c6"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="oauth_8php.html#ad343cab37aa860d2d14dc86b7f5ca0c6">ACCESS_TOKEN_DURATION</a> 31536000</td></tr>
+<tr class="separator:ad343cab37aa860d2d14dc86b7f5ca0c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="ad343cab37aa860d2d14dc86b7f5ca0c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACCESS_TOKEN_DURATION 31536000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7a32a5990f113ac9465b03b29175cf16"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const REQUEST_TOKEN_DURATION 300</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>OAuth server Based on oauth2-php <a href="http://code.google.com/p/oauth2-php/">http://code.google.com/p/oauth2-php/</a> </p>
+
+<p>Referenced by <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore\new_request_token()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/oauth_8php.js b/doc/html/oauth_8php.js
new file mode 100644
index 000000000..da8061a29
--- /dev/null
+++ b/doc/html/oauth_8php.js
@@ -0,0 +1,7 @@
+var oauth_8php =
+[
+ [ "FKOAuthDataStore", "classFKOAuthDataStore.html", "classFKOAuthDataStore" ],
+ [ "FKOAuth1", "classFKOAuth1.html", "classFKOAuth1" ],
+ [ "ACCESS_TOKEN_DURATION", "oauth_8php.html#ad343cab37aa860d2d14dc86b7f5ca0c6", null ],
+ [ "REQUEST_TOKEN_DURATION", "oauth_8php.html#a7a32a5990f113ac9465b03b29175cf16", null ]
+]; \ No newline at end of file
diff --git a/doc/html/oexchange_8php.html b/doc/html/oexchange_8php.html
new file mode 100644
index 000000000..10ade1462
--- /dev/null
+++ b/doc/html/oexchange_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/oexchange.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('oexchange_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">oexchange.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac8e2e469ddc3db984b0c1b44558aca59"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ac8e2e469ddc3db984b0c1b44558aca59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d8b785cd7d041a4e6274f5af370cf26"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a2d8b785cd7d041a4e6274f5af370cf26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a2d8b785cd7d041a4e6274f5af370cf26"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">oexchange_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac8e2e469ddc3db984b0c1b44558aca59"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">oexchange_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/oexchange_8php.js b/doc/html/oexchange_8php.js
new file mode 100644
index 000000000..1bf271058
--- /dev/null
+++ b/doc/html/oexchange_8php.js
@@ -0,0 +1,5 @@
+var oexchange_8php =
+[
+ [ "oexchange_content", "oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26", null ],
+ [ "oexchange_init", "oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59", null ]
+]; \ No newline at end of file
diff --git a/doc/html/onepoll_8php.html b/doc/html/onepoll_8php.html
new file mode 100644
index 000000000..f65bd5004
--- /dev/null
+++ b/doc/html/onepoll_8php.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/onepoll.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('onepoll_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">onepoll.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a72753b2fdec79b37c7f432035c91fb6d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run</a> ($<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>, $<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a>)</td></tr>
+<tr class="separator:a72753b2fdec79b37c7f432035c91fb6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a72753b2fdec79b37c7f432035c91fb6d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">onepoll_run </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argv</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argc</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/onepoll_8php.js b/doc/html/onepoll_8php.js
new file mode 100644
index 000000000..7624f85df
--- /dev/null
+++ b/doc/html/onepoll_8php.js
@@ -0,0 +1,4 @@
+var onepoll_8php =
+[
+ [ "onepoll_run", "onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d", null ]
+]; \ No newline at end of file
diff --git a/doc/html/open.png b/doc/html/open.png
new file mode 100644
index 000000000..30f75c7ef
--- /dev/null
+++ b/doc/html/open.png
Binary files differ
diff --git a/doc/html/opensearch_8php.html b/doc/html/opensearch_8php.html
new file mode 100644
index 000000000..6c7bd1a74
--- /dev/null
+++ b/doc/html/opensearch_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/opensearch.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('opensearch_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">opensearch.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ad13034877a496565ac7d99e9fc6f55e9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ad13034877a496565ac7d99e9fc6f55e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ad13034877a496565ac7d99e9fc6f55e9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">opensearch_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/opensearch_8php.js b/doc/html/opensearch_8php.js
new file mode 100644
index 000000000..e9492cfcb
--- /dev/null
+++ b/doc/html/opensearch_8php.js
@@ -0,0 +1,4 @@
+var opensearch_8php =
+[
+ [ "opensearch_init", "opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9", null ]
+]; \ No newline at end of file
diff --git a/doc/html/page_8php.html b/doc/html/page_8php.html
new file mode 100644
index 000000000..c1fbcc5c8
--- /dev/null
+++ b/doc/html/page_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/page.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('page_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">page.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a4d89800c0366a239191b1692c09635cf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a4d89800c0366a239191b1692c09635cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a91a5f649f68406149108bded1dc90b22"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a91a5f649f68406149108bded1dc90b22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a91a5f649f68406149108bded1dc90b22"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">page_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4d89800c0366a239191b1692c09635cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">page_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/page_8php.js b/doc/html/page_8php.js
new file mode 100644
index 000000000..de145d448
--- /dev/null
+++ b/doc/html/page_8php.js
@@ -0,0 +1,5 @@
+var page_8php =
+[
+ [ "page_content", "page_8php.html#a91a5f649f68406149108bded1dc90b22", null ],
+ [ "page_init", "page_8php.html#a4d89800c0366a239191b1692c09635cf", null ]
+]; \ No newline at end of file
diff --git a/doc/html/pages.html b/doc/html/pages.html
new file mode 100644
index 000000000..30327391d
--- /dev/null
+++ b/doc/html/pages.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Related Pages</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pages.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Related Pages</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="md_config.html" target="_self">CLI config utility</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="md_fresh.html" target="_self">Fresh - The Freaking REd Shell</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="md_README.html" target="_self">Redstrap theme</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/parse__url_8php.html b/doc/html/parse__url_8php.html
new file mode 100644
index 000000000..a0b49e894
--- /dev/null
+++ b/doc/html/parse__url_8php.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/parse_url.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('parse__url_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">parse_url.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a496f4e3836154f6f32b8e805a7160d3a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(!function_exists('<a class="el" href="html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2">deletenode</a>'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a">completeurl</a> ($url, $scheme)</td></tr>
+<tr class="separator:a496f4e3836154f6f32b8e805a7160d3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25635549f2c22955d72465f4d2e58993"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parse__url_8php.html#a25635549f2c22955d72465f4d2e58993">parseurl_getsiteinfo</a> ($url)</td></tr>
+<tr class="separator:a25635549f2c22955d72465f4d2e58993"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa7dd8f961bea042d62726ed909e4a868"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parse__url_8php.html#aa7dd8f961bea042d62726ed909e4a868">arr_add_hashes</a> (&amp;$item, $k)</td></tr>
+<tr class="separator:aa7dd8f961bea042d62726ed909e4a868"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05a9e8944380ba3cf6bbf5893dd4b74b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a05a9e8944380ba3cf6bbf5893dd4b74b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa7dd8f961bea042d62726ed909e4a868"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">arr_add_hashes </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$k</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a496f4e3836154f6f32b8e805a7160d3a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (!function_exists('<a class="el" href="html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2">deletenode</a>')) completeurl </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$scheme</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="parse__url_8php.html#a25635549f2c22955d72465f4d2e58993">parseurl_getsiteinfo()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a05a9e8944380ba3cf6bbf5893dd4b74b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">parse_url_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a25635549f2c22955d72465f4d2e58993"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">parseurl_getsiteinfo </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/parse__url_8php.js b/doc/html/parse__url_8php.js
new file mode 100644
index 000000000..a30c00e5b
--- /dev/null
+++ b/doc/html/parse__url_8php.js
@@ -0,0 +1,7 @@
+var parse__url_8php =
+[
+ [ "arr_add_hashes", "parse__url_8php.html#aa7dd8f961bea042d62726ed909e4a868", null ],
+ [ "completeurl", "parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a", null ],
+ [ "parse_url_content", "parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b", null ],
+ [ "parseurl_getsiteinfo", "parse__url_8php.html#a25635549f2c22955d72465f4d2e58993", null ]
+]; \ No newline at end of file
diff --git a/doc/html/permissions_8php.html b/doc/html/permissions_8php.html
new file mode 100644
index 000000000..17a87ab5a
--- /dev/null
+++ b/doc/html/permissions_8php.html
@@ -0,0 +1,255 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/permissions.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('permissions_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">permissions.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a040fd3d3b8517658b1668ae0cd093972"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms</a> ()</td></tr>
+<tr class="separator:a040fd3d3b8517658b1668ae0cd093972"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeca9b280f3dc3358c89976d81d690008"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms</a> ($uid, $observer_xchan, $internal_use=true)</td></tr>
+<tr class="separator:aeca9b280f3dc3358c89976d81d690008"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a67ada9ed51e77885b6b0f6a28cee1835"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed</a> ($uid, $observer_xchan, $permission)</td></tr>
+<tr class="separator:a67ada9ed51e77885b6b0f6a28cee1835"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions</a> ($uid, $arr, $perm)</td></tr>
+<tr class="separator:a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_list_permissions </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$perm</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aeca9b280f3dc3358c89976d81d690008"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_all_perms </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer_xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$internal_use</em> = <code>true</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>get_all_perms($uid,$observer_xchan)</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$uid</td><td>: The channel_id associated with the resource owner </td></tr>
+ <tr><td class="paramname">$observer_xchan,:</td><td>The xchan_hash representing the observer</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>: array of all permissions, key is permission name, value is true or false </dd></dl>
+
+<p>Referenced by <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a040fd3d3b8517658b1668ae0cd093972"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_perms </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a67ada9ed51e77885b6b0f6a28cee1835"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">perm_is_allowed </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer_xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$permission</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/permissions_8php.js b/doc/html/permissions_8php.js
new file mode 100644
index 000000000..a05203458
--- /dev/null
+++ b/doc/html/permissions_8php.js
@@ -0,0 +1,7 @@
+var permissions_8php =
+[
+ [ "check_list_permissions", "permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7", null ],
+ [ "get_all_perms", "permissions_8php.html#aeca9b280f3dc3358c89976d81d690008", null ],
+ [ "get_perms", "permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972", null ],
+ [ "perm_is_allowed", "permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835", null ]
+]; \ No newline at end of file
diff --git a/doc/html/photo_8php.html b/doc/html/photo_8php.html
new file mode 100644
index 000000000..45b803f6a
--- /dev/null
+++ b/doc/html/photo_8php.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/photo.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('photo_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">photo.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a582779d24882b0d31ee909a91d70a448"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a582779d24882b0d31ee909a91d70a448"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a582779d24882b0d31ee909a91d70a448"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Profile photos - Access controls on default profile photos are not honoured since they need to be exchanged with remote sites.</p>
+<p>Other photos</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/photo_8php.js b/doc/html/photo_8php.js
new file mode 100644
index 000000000..1c070c3bc
--- /dev/null
+++ b/doc/html/photo_8php.js
@@ -0,0 +1,4 @@
+var photo_8php =
+[
+ [ "photo_init", "photo_8php.html#a582779d24882b0d31ee909a91d70a448", null ]
+]; \ No newline at end of file
diff --git a/doc/html/photo__driver_8php.html b/doc/html/photo__driver_8php.html
new file mode 100644
index 000000000..6069d2302
--- /dev/null
+++ b/doc/html/photo__driver_8php.html
@@ -0,0 +1,263 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/photo/photo_driver.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('photo__driver_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">photo_driver.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html">photo_driver</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a32e2817faa25d7f11f60a8abff565035"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035">photo_factory</a> ($data, $type=null)</td></tr>
+<tr class="separator:a32e2817faa25d7f11f60a8abff565035"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7273b82b017fd96d29b2c57bab03aea6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="photo__driver_8php.html#a7273b82b017fd96d29b2c57bab03aea6">guess_image_type</a> ($filename, $fromcurl=false)</td></tr>
+<tr class="separator:a7273b82b017fd96d29b2c57bab03aea6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a102f3f26f67e0e38f4322a771951c1ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo</a> ($photo, $xchan)</td></tr>
+<tr class="separator:a102f3f26f67e0e38f4322a771951c1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d0bc7161dec0d177b7d3bbe4421af9a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo</a> ($photo, $type, $aid, $uid)</td></tr>
+<tr class="separator:a1d0bc7161dec0d177b7d3bbe4421af9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a7273b82b017fd96d29b2c57bab03aea6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">guess_image_type </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$filename</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$fromcurl</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Guess image mimetype from filename or from Content-Type header</p>
+<ul>
+<li>$filename string Image filename </li>
+<li>$fromcurl boolean Check Content-Type header from curl request </li>
+</ul>
+<p>Well, this not much better, but at least it comes from the data inside the image, we won't be tricked by a manipulated extension</p>
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, and <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1d0bc7161dec0d177b7d3bbe4421af9a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">import_channel_photo </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$photo</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$aid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a102f3f26f67e0e38f4322a771951c1ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">import_profile_photo </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$photo</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, and <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a32e2817faa25d7f11f60a8abff565035"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_factory </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="photo__driver_8php.html#a7273b82b017fd96d29b2c57bab03aea6">guess_image_type()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, and <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/photo__driver_8php.js b/doc/html/photo__driver_8php.js
new file mode 100644
index 000000000..b32bfb2be
--- /dev/null
+++ b/doc/html/photo__driver_8php.js
@@ -0,0 +1,8 @@
+var photo__driver_8php =
+[
+ [ "photo_driver", "classphoto__driver.html", "classphoto__driver" ],
+ [ "guess_image_type", "photo__driver_8php.html#a7273b82b017fd96d29b2c57bab03aea6", null ],
+ [ "import_channel_photo", "photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a", null ],
+ [ "import_profile_photo", "photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca", null ],
+ [ "photo_factory", "photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035", null ]
+]; \ No newline at end of file
diff --git a/doc/html/photo__gd_8php.html b/doc/html/photo__gd_8php.html
new file mode 100644
index 000000000..9e9ea72b9
--- /dev/null
+++ b/doc/html/photo__gd_8php.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/photo/photo_gd.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('photo__gd_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">photo_gd.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html">photo_gd</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/photo__imagick_8php.html b/doc/html/photo__imagick_8php.html
new file mode 100644
index 000000000..ce8965204
--- /dev/null
+++ b/doc/html/photo__imagick_8php.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/photo/photo_imagick.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('photo__imagick_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">photo_imagick.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html">photo_imagick</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/php2po_8php.html b/doc/html/php2po_8php.html
new file mode 100644
index 000000000..bb3d9b4d9
--- /dev/null
+++ b/doc/html/php2po_8php.html
@@ -0,0 +1,245 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/php2po.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('php2po_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">php2po.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:abbb0e5fd8fbc1f13a9bf68f86eb3d2a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(!class_exists('<a class="el" href="classApp.html">App</a>')) <a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>($argc!=2)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4">$phpfile</a> = $<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>[1]</td></tr>
+<tr class="separator:abbb0e5fd8fbc1f13a9bf68f86eb3d2a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a401d84ce156e49e8168bd0c4781e1be1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1">$pofile</a> = dirname($phpfile).&quot;/messages.po&quot;</td></tr>
+<tr class="separator:a401d84ce156e49e8168bd0c4781e1be1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45b05625748f412ec97afcd61cf7980b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php2po_8php.html#a45b05625748f412ec97afcd61cf7980b">if</a> (!file_exists($phpfile))</td></tr>
+<tr class="separator:a45b05625748f412ec97afcd61cf7980b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1594a11499d06cc8a789ee7ca0c7a12b"><td class="memItemLeft" align="right" valign="top">print Out to&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b">n</a></td></tr>
+<tr class="separator:a1594a11499d06cc8a789ee7ca0c7a12b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a48cb304902320d173a4eaa41543327b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php2po_8php.html#a48cb304902320d173a4eaa41543327b9">$out</a> = &quot;&quot;</td></tr>
+<tr class="separator:a48cb304902320d173a4eaa41543327b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61f8ddeb5557d46ebc546cc355bda214"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php2po_8php.html#a61f8ddeb5557d46ebc546cc355bda214">$infile</a> = file($pofile)</td></tr>
+<tr class="separator:a61f8ddeb5557d46ebc546cc355bda214"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6726cfaa85d4b8299d2b0f034cbf178"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178">$k</a> =&quot;&quot;</td></tr>
+<tr class="separator:ad6726cfaa85d4b8299d2b0f034cbf178"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b0b8ebd9ce811d1325ef2c129443bc0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php2po_8php.html#a6b0b8ebd9ce811d1325ef2c129443bc0">$ink</a> = False</td></tr>
+<tr class="separator:a6b0b8ebd9ce811d1325ef2c129443bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a61f8ddeb5557d46ebc546cc355bda214"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$infile = file($pofile)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6b0b8ebd9ce811d1325ef2c129443bc0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$ink = False</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad6726cfaa85d4b8299d2b0f034cbf178"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$k =&quot;&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>, <a class="el" href="classTemplate.html#aae9c4d761ea1298e745e8052d7910194">Template\_get_var()</a>, <a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">Template\_replcb_for()</a>, <a class="el" href="items_8php.html#a36e656667193c83aa2cc03a024fc131b">activity_sanitise()</a>, <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">aes_unencapsulate()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f">contact_poll_interval()</a>, <a class="el" href="contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53">contact_reputation()</a>, <a class="el" href="plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35">get_plugin_info()</a>, <a class="el" href="plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405">get_theme_info()</a>, <a class="el" href="photo__driver_8php.html#a7273b82b017fd96d29b2c57bab03aea6">guess_image_type()</a>, <a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">import_directory_profile()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config()</a>, <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig()</a>, <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore\new_request_token()</a>, <a class="el" href="taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2">obj_verb_selector()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php_run()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="include_2api_8php.html#a43c47de8565cc00c3369cb35c19cc75e">requestdata()</a>, <a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">App\set_widget()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="boot_8php.html#aca47505b8732177f52bb2d647eb2741c">startup()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt()</a>, <a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a48cb304902320d173a4eaa41543327b9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$out = &quot;&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abbb0e5fd8fbc1f13a9bf68f86eb3d2a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (!class_exists('<a class="el" href="classApp.html">App</a>')) <a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> ($argc!=2) $phpfile = $<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>[1]</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a401d84ce156e49e8168bd0c4781e1be1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$pofile = dirname($phpfile).&quot;/messages.po&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a45b05625748f412ec97afcd61cf7980b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">if</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Initial value:</b><div class="fragment"><div class="line">{</div>
+<div class="line"> <a class="code" href="fpostit_8php.html#a3f3ae3ae61578b5671673914fd894443">showForm</a>(null, $content)</div>
+</div><!-- fragment -->
+<p>Referenced by <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1594a11499d06cc8a789ee7ca0c7a12b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">print Out to n</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/php2po_8php.js b/doc/html/php2po_8php.js
new file mode 100644
index 000000000..679a631af
--- /dev/null
+++ b/doc/html/php2po_8php.js
@@ -0,0 +1,11 @@
+var php2po_8php =
+[
+ [ "$infile", "php2po_8php.html#a61f8ddeb5557d46ebc546cc355bda214", null ],
+ [ "$ink", "php2po_8php.html#a6b0b8ebd9ce811d1325ef2c129443bc0", null ],
+ [ "$k", "php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178", null ],
+ [ "$out", "php2po_8php.html#a48cb304902320d173a4eaa41543327b9", null ],
+ [ "$phpfile", "php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4", null ],
+ [ "$pofile", "php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1", null ],
+ [ "if", "php2po_8php.html#a45b05625748f412ec97afcd61cf7980b", null ],
+ [ "n", "php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b", null ]
+]; \ No newline at end of file
diff --git a/doc/html/php_2default_8php.html b/doc/html/php_2default_8php.html
new file mode 100644
index 000000000..d76f7eb14
--- /dev/null
+++ b/doc/html/php_2default_8php.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/php/default.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('php_2default_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">default.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a23bc1996b18e69c1a3ab44536613a762"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762">if</a> (<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td></tr>
+<tr class="separator:a23bc1996b18e69c1a3ab44536613a762"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a23bc1996b18e69c1a3ab44536613a762"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/php_2default_8php.js b/doc/html/php_2default_8php.js
new file mode 100644
index 000000000..2504be66e
--- /dev/null
+++ b/doc/html/php_2default_8php.js
@@ -0,0 +1,4 @@
+var php_2default_8php =
+[
+ [ "if", "php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762", null ]
+]; \ No newline at end of file
diff --git a/doc/html/php_2theme__init_8php.html b/doc/html/php_2theme__init_8php.html
new file mode 100644
index 000000000..a96e2385a
--- /dev/null
+++ b/doc/html/php_2theme__init_8php.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/php/theme_init.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('php_2theme__init_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">theme_init.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/php_8php.html b/doc/html/php_8php.html
new file mode 100644
index 000000000..fcc7e84e4
--- /dev/null
+++ b/doc/html/php_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/php.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('php_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">php.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:adb7164dfed9a4ecbe2e168e1e78f12f6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6">php_init</a> (&amp;$a)</td></tr>
+<tr class="separator:adb7164dfed9a4ecbe2e168e1e78f12f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="adb7164dfed9a4ecbe2e168e1e78f12f6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">php_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/php_8php.js b/doc/html/php_8php.js
new file mode 100644
index 000000000..77a9c0ac8
--- /dev/null
+++ b/doc/html/php_8php.js
@@ -0,0 +1,4 @@
+var php_8php =
+[
+ [ "php_init", "php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6", null ]
+]; \ No newline at end of file
diff --git a/doc/html/ping_8php.html b/doc/html/ping_8php.html
new file mode 100644
index 000000000..165fa7295
--- /dev/null
+++ b/doc/html/ping_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/ping.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ping_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">ping.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a77217b1b190b4c5d8770867b45f0c0a1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a77217b1b190b4c5d8770867b45f0c0a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a77217b1b190b4c5d8770867b45f0c0a1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ping_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/ping_8php.js b/doc/html/ping_8php.js
new file mode 100644
index 000000000..4fe2dcc0c
--- /dev/null
+++ b/doc/html/ping_8php.js
@@ -0,0 +1,4 @@
+var ping_8php =
+[
+ [ "ping_init", "ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1", null ]
+]; \ No newline at end of file
diff --git a/doc/html/plugin_8php.html b/doc/html/plugin_8php.html
new file mode 100644
index 000000000..2b13545cc
--- /dev/null
+++ b/doc/html/plugin_8php.html
@@ -0,0 +1,743 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/plugin.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('plugin_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">plugin.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a90538627db68605aeb6db17a8ead6523"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a90538627db68605aeb6db17a8ead6523">unload_plugin</a> ($plugin)</td></tr>
+<tr class="separator:a90538627db68605aeb6db17a8ead6523"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a093a9cb98f51e3643634bd8bc6ed6e76"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin</a> ($plugin)</td></tr>
+<tr class="separator:a093a9cb98f51e3643634bd8bc6ed6e76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a482131013272a1d5d5c1b1469c6c55d5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">install_plugin</a> ($plugin)</td></tr>
+<tr class="separator:a482131013272a1d5d5c1b1469c6c55d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ca9632b7309a65b05c03a3e2f473a3d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">load_plugin</a> ($plugin)</td></tr>
+<tr class="separator:a9ca9632b7309a65b05c03a3e2f473a3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9ac19004dca49adae1ac7a0d9f3b025"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">reload_plugins</a> ()</td></tr>
+<tr class="separator:af9ac19004dca49adae1ac7a0d9f3b025"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a425472c5f3afc137268b2ad45652b209"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a425472c5f3afc137268b2ad45652b209">register_hook</a> ($hook, $file, $function, $priority=0)</td></tr>
+<tr class="separator:a425472c5f3afc137268b2ad45652b209"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56f71fe5adf9586ce950523d8180443e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">unregister_hook</a> ($hook, $file, $function)</td></tr>
+<tr class="separator:a56f71fe5adf9586ce950523d8180443e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a326365e48ef94f0b9a0a771b8d75e813"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">load_hooks</a> ()</td></tr>
+<tr class="separator:a326365e48ef94f0b9a0a771b8d75e813"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f05de16c0a32602853b09b99dd85e7c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks</a> ($name, &amp;$data=null)</td></tr>
+<tr class="separator:a7f05de16c0a32602853b09b99dd85e7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff0178bd8d0b34a94d5efddc883edd35"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35">get_plugin_info</a> ($plugin)</td></tr>
+<tr class="separator:aff0178bd8d0b34a94d5efddc883edd35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad48de9c0fb7f19413a2aa49250d00405"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405">get_theme_info</a> ($theme)</td></tr>
+<tr class="separator:ad48de9c0fb7f19413a2aa49250d00405"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a48047edfbef770125a5508dcc2f9282f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a48047edfbef770125a5508dcc2f9282f">get_theme_screenshot</a> ($theme)</td></tr>
+<tr class="separator:a48047edfbef770125a5508dcc2f9282f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a030cec6793b909c439c0336ba39b1571"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows</a> ($uid, $property, $usage=false)</td></tr>
+<tr class="separator:a030cec6793b909c439c0336ba39b1571"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a905b54e10704b283ac64680a8abc0971"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch</a> ($uid, $property)</td></tr>
+<tr class="separator:a905b54e10704b283ac64680a8abc0971"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fc13e528367f510fcb6d8bbfc559040"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040">upgrade_link</a> ($<a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode</a>=false)</td></tr>
+<tr class="separator:a4fc13e528367f510fcb6d8bbfc559040"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a901657dd078e070516cf97285e0bada7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a901657dd078e070516cf97285e0bada7">upgrade_message</a> ($<a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode</a>=false)</td></tr>
+<tr class="separator:a901657dd078e070516cf97285e0bada7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a754d7f53b3abc557b753c057dc4e021d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d">upgrade_bool_message</a> ($<a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode</a>=false)</td></tr>
+<tr class="separator:a754d7f53b3abc557b753c057dc4e021d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23c4fccf1eb5fcd63b24783ba1f05f7a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a">head_add_css</a> ($src, $media= 'screen')</td></tr>
+<tr class="separator:a23c4fccf1eb5fcd63b24783ba1f05f7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af92789f559b89a380e49d303218aeeca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#af92789f559b89a380e49d303218aeeca">head_get_css</a> ()</td></tr>
+<tr class="separator:af92789f559b89a380e49d303218aeeca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9039e15aae27676af7777dcbee5a11d6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6">format_css_if_exists</a> ($source)</td></tr>
+<tr class="separator:a9039e15aae27676af7777dcbee5a11d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a516591850f4fd49fd1425cfa54089db8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a516591850f4fd49fd1425cfa54089db8">head_add_js</a> ($src)</td></tr>
+<tr class="separator:a516591850f4fd49fd1425cfa54089db8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65ab52cb1a7030d5190e247211bef2a1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1">head_get_js</a> ()</td></tr>
+<tr class="separator:a65ab52cb1a7030d5190e247211bef2a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9ff8ba554576383c5911a4bce068c1f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f">format_js_if_exists</a> ($source)</td></tr>
+<tr class="separator:ad9ff8ba554576383c5911a4bce068c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65fedcffbe03562ef844cabee37d34e2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">theme_include</a> ($file, $root= '')</td></tr>
+<tr class="separator:a65fedcffbe03562ef844cabee37d34e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb63c27d07f6d7dffe95f98a6cef1295"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295">get_intltext_template</a> ($s, $root= '')</td></tr>
+<tr class="separator:acb63c27d07f6d7dffe95f98a6cef1295"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75f7dfed291fd7add7fc85b5c022a1f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4">get_markup_template</a> ($s, $root= '')</td></tr>
+<tr class="separator:a75f7dfed291fd7add7fc85b5c022a1f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a7f05de16c0a32602853b09b99dd85e7c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">call_hooks </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$data</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="items_8php.html#a016dd86c827d08db89061ea81d15c6cb">atom_author()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa">channel_remove()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="account_8php.html#a144b4891022567668375b58ea61cfff0">check_account_password()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks_run()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355">gender_selector()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">get_features()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="text_8php.html#a736db13a966b8abaf8c9198faa35911a">get_mood_verbs()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66">get_poke_verbs()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">App\get_widgets()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837">html2bbcode()</a>, <a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">import_directory_profile()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798">marital_selector()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">profile_tabs()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7">sexpref_selector()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="boot_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>, and <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9039e15aae27676af7777dcbee5a11d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">format_css_if_exists </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$source</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="plugin_8php.html#af92789f559b89a380e49d303218aeeca">head_get_css()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad9ff8ba554576383c5911a4bce068c1f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">format_js_if_exists </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$source</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1">head_get_js()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acb63c27d07f6d7dffe95f98a6cef1295"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_intltext_template </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$root</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, and <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a75f7dfed291fd7add7fc85b5c022a1f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_markup_template </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$root</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="datetime_8php.html#a03900dcf0f9e3c58793a031673a70326">field_timezone()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget()</a>, <a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message_aside()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">micropro()</a>, <a class="el" href="include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f">mini_group_select()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30">nogroup_content()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch_init()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="acl__selectors_8php.html#a51f2ec7a143d5a5b38e35efd5f3d6e2c">populate_acl()</a>, <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">profile_tabs()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef">rmagic_content()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, and <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aff0178bd8d0b34a94d5efddc883edd35"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_plugin_info </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$plugin</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad48de9c0fb7f19413a2aa49250d00405"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_theme_info </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$theme</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, and <a class="el" href="pretheme_8php.html#af5660943ee99db5fd75182316522eafe">pretheme_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a48047edfbef770125a5508dcc2f9282f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_theme_screenshot </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$theme</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, and <a class="el" href="pretheme_8php.html#af5660943ee99db5fd75182316522eafe">pretheme_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a23c4fccf1eb5fcd63b24783ba1f05f7a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">head_add_css </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$src</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$media</em> = <code>'screen'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, and <a class="el" href="redstrap_2php_2theme_8php.html#a4dac61d466b4261deca2846f548e484a">redstrap_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a516591850f4fd49fd1425cfa54089db8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">head_add_js </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$src</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, and <a class="el" href="redstrap_2php_2theme_8php.html#a4dac61d466b4261deca2846f548e484a">redstrap_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af92789f559b89a380e49d303218aeeca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">head_get_css </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a65ab52cb1a7030d5190e247211bef2a1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">head_get_js </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a482131013272a1d5d5c1b1469c6c55d5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">install_plugin </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$plugin</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a326365e48ef94f0b9a0a771b8d75e813"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">load_hooks </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, and <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9ca9632b7309a65b05c03a3e2f473a3d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">load_plugin </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$plugin</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, and <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">install_plugin()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a425472c5f3afc137268b2ad45652b209"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">register_hook </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hook</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$file</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$function</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$priority</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af9ac19004dca49adae1ac7a0d9f3b025"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">reload_plugins </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a030cec6793b909c439c0336ba39b1571"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">service_class_allows </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$property</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$usage</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, and <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a905b54e10704b283ac64680a8abc0971"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">service_class_fetch </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$property</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, and <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a65fedcffbe03562ef844cabee37d34e2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">theme_include </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$file</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$root</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6">format_css_if_exists()</a>, <a class="el" href="plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f">format_js_if_exists()</a>, <a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">FriendicaSmartyEngine\get_intltext_template()</a>, <a class="el" href="classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88">FriendicaSmartyEngine\get_markup_template()</a>, <a class="el" href="classTemplate.html#afd97b4b1e7754a550e67c0ea79159059">Template\get_markup_template()</a>, and <a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">App\set_widget()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a093a9cb98f51e3643634bd8bc6ed6e76"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uninstall_plugin </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$plugin</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a90538627db68605aeb6db17a8ead6523"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unload_plugin </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$plugin</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, and <a class="el" href="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a56f71fe5adf9586ce950523d8180443e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unregister_hook </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hook</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$file</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$function</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a754d7f53b3abc557b753c057dc4e021d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">upgrade_bool_message </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$bbcode</em> = <code>false</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4fc13e528367f510fcb6d8bbfc559040"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">upgrade_link </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$bbcode</em> = <code>false</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d">upgrade_bool_message()</a>, and <a class="el" href="plugin_8php.html#a901657dd078e070516cf97285e0bada7">upgrade_message()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a901657dd078e070516cf97285e0bada7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">upgrade_message </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$bbcode</em> = <code>false</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, and <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/plugin_8php.js b/doc/html/plugin_8php.js
new file mode 100644
index 000000000..4d2d79f2d
--- /dev/null
+++ b/doc/html/plugin_8php.js
@@ -0,0 +1,29 @@
+var plugin_8php =
+[
+ [ "call_hooks", "plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c", null ],
+ [ "format_css_if_exists", "plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6", null ],
+ [ "format_js_if_exists", "plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f", null ],
+ [ "get_intltext_template", "plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295", null ],
+ [ "get_markup_template", "plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4", null ],
+ [ "get_plugin_info", "plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35", null ],
+ [ "get_theme_info", "plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405", null ],
+ [ "get_theme_screenshot", "plugin_8php.html#a48047edfbef770125a5508dcc2f9282f", null ],
+ [ "head_add_css", "plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a", null ],
+ [ "head_add_js", "plugin_8php.html#a516591850f4fd49fd1425cfa54089db8", null ],
+ [ "head_get_css", "plugin_8php.html#af92789f559b89a380e49d303218aeeca", null ],
+ [ "head_get_js", "plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1", null ],
+ [ "install_plugin", "plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5", null ],
+ [ "load_hooks", "plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813", null ],
+ [ "load_plugin", "plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d", null ],
+ [ "register_hook", "plugin_8php.html#a425472c5f3afc137268b2ad45652b209", null ],
+ [ "reload_plugins", "plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025", null ],
+ [ "service_class_allows", "plugin_8php.html#a030cec6793b909c439c0336ba39b1571", null ],
+ [ "service_class_fetch", "plugin_8php.html#a905b54e10704b283ac64680a8abc0971", null ],
+ [ "theme_include", "plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2", null ],
+ [ "uninstall_plugin", "plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76", null ],
+ [ "unload_plugin", "plugin_8php.html#a90538627db68605aeb6db17a8ead6523", null ],
+ [ "unregister_hook", "plugin_8php.html#a56f71fe5adf9586ce950523d8180443e", null ],
+ [ "upgrade_bool_message", "plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d", null ],
+ [ "upgrade_link", "plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040", null ],
+ [ "upgrade_message", "plugin_8php.html#a901657dd078e070516cf97285e0bada7", null ]
+]; \ No newline at end of file
diff --git a/doc/html/po2php_8php.html b/doc/html/po2php_8php.html
new file mode 100644
index 000000000..cb9d2e389
--- /dev/null
+++ b/doc/html/po2php_8php.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/po2php.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('po2php_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">po2php.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a3b75e36f913198299e99559b175cd8b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php_run</a> ($<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>, $<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a>)</td></tr>
+<tr class="separator:a3b75e36f913198299e99559b175cd8b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a3b75e36f913198299e99559b175cd8b4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">po2php_run </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argv</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argc</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/po2php_8php.js b/doc/html/po2php_8php.js
new file mode 100644
index 000000000..e8f3c4f39
--- /dev/null
+++ b/doc/html/po2php_8php.js
@@ -0,0 +1,4 @@
+var po2php_8php =
+[
+ [ "po2php_run", "po2php_8php.html#a3b75e36f913198299e99559b175cd8b4", null ]
+]; \ No newline at end of file
diff --git a/doc/html/poco_8php.html b/doc/html/poco_8php.html
new file mode 100644
index 000000000..900678fc0
--- /dev/null
+++ b/doc/html/poco_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/poco.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('poco_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">poco.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a53def16f75e3d41f1d2bb7cfa4905498"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a53def16f75e3d41f1d2bb7cfa4905498"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a53def16f75e3d41f1d2bb7cfa4905498"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">poco_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/poco_8php.js b/doc/html/poco_8php.js
new file mode 100644
index 000000000..48ccaafb9
--- /dev/null
+++ b/doc/html/poco_8php.js
@@ -0,0 +1,4 @@
+var poco_8php =
+[
+ [ "poco_init", "poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498", null ]
+]; \ No newline at end of file
diff --git a/doc/html/poke_8php.html b/doc/html/poke_8php.html
new file mode 100644
index 000000000..f761dfe08
--- /dev/null
+++ b/doc/html/poke_8php.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/poke.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('poke_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">poke.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a9725aab97b3983e6a98bd81c4efe7d3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a9725aab97b3983e6a98bd81c4efe7d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9190563a8da9c07a16f9dcd71cf6993"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content</a> (&amp;$a)</td></tr>
+<tr class="separator:ac9190563a8da9c07a16f9dcd71cf6993"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ac9190563a8da9c07a16f9dcd71cf6993"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">poke_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9725aab97b3983e6a98bd81c4efe7d3b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">poke_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Poke, prod, finger, or otherwise do unspeakable things to somebody - who must be a connection in your address book This function can be invoked with the required arguments (verb and cid and private and possibly parent) silently via ajax or other web request. You must be logged in and connected to a channel. If the required arguments aren't present, we'll display a simple form to choose a recipient and a verb. parent is a special argument which let's you attach this activity as a comment to an existing conversation, which may have started with somebody else poking (etc.) somebody, but this isn't necessary. This can be used in the adult plugin version to have entire conversations where Alice poked Bob, Bob fingered Alice, Alice hugged Bob, etc.</p>
+<p>private creates a private conversation with the recipient. Otherwise your channel's default post privacy is used. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/poke_8php.js b/doc/html/poke_8php.js
new file mode 100644
index 000000000..3acebd0ae
--- /dev/null
+++ b/doc/html/poke_8php.js
@@ -0,0 +1,5 @@
+var poke_8php =
+[
+ [ "poke_content", "poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993", null ],
+ [ "poke_init", "poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b", null ]
+]; \ No newline at end of file
diff --git a/doc/html/poller_8php.html b/doc/html/poller_8php.html
new file mode 100644
index 000000000..89d5875a4
--- /dev/null
+++ b/doc/html/poller_8php.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/poller.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('poller_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">poller.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a5f12df3a4738124b6c039971e87e76da"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run</a> ($<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>, $<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a>)</td></tr>
+<tr class="separator:a5f12df3a4738124b6c039971e87e76da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a5f12df3a4738124b6c039971e87e76da"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">poller_run </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argv</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argc</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/poller_8php.js b/doc/html/poller_8php.js
new file mode 100644
index 000000000..94d6e67a4
--- /dev/null
+++ b/doc/html/poller_8php.js
@@ -0,0 +1,4 @@
+var poller_8php =
+[
+ [ "poller_run", "poller_8php.html#a5f12df3a4738124b6c039971e87e76da", null ]
+]; \ No newline at end of file
diff --git a/doc/html/post_8php.html b/doc/html/post_8php.html
new file mode 100644
index 000000000..d20efd0e8
--- /dev/null
+++ b/doc/html/post_8php.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/post.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('post_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">post.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af4b48181ce773ef0cdfc972441445c34"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init</a> (&amp;$a)</td></tr>
+<tr class="separator:af4b48181ce773ef0cdfc972441445c34"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af59e6a1dc22d19d9257b01cd7ccedb75"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post</a> (&amp;$a)</td></tr>
+<tr class="separator:af59e6a1dc22d19d9257b01cd7ccedb75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af4b48181ce773ef0cdfc972441445c34"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">post_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Zot endpoint </p>
+
+</div>
+</div>
+<a class="anchor" id="af59e6a1dc22d19d9257b01cd7ccedb75"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">post_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Many message packets will arrive encrypted. The existence of an 'iv' element tells us we need to unencapsulate the AES-256-CBC content using the site private key</p>
+<p>The 'pickup' message arrives with a tracking ID which is associated with a particular outq_hash First verify that that the returned signatures verify, then check that we have an outbound queue item with the correct hash. If everything verifies, find any/all outbound messages in the queue for this hubloc and send them back</p>
+<p>If we made it to here, the signatures verify, but we still don't know if the tracking ID is valid. It wouldn't be an error if the tracking ID isn't found, because we may have sent this particular queue item with another pickup (after the tracking ID for the other pickup was verified).</p>
+<p>Everything is good if we made it here, so find all messages that are going to this location and send them all.</p>
+<p>pickup: end</p>
+<p>All other message types require us to verify the sender. This is a generic check, so we will do it once here and bail if anything goes wrong.</p>
+<p>Check if the sender is already verified here</p>
+<p>Have never seen this guid or this guid coming from this location. Check it and register it. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/post_8php.js b/doc/html/post_8php.js
new file mode 100644
index 000000000..9a5f6bcdb
--- /dev/null
+++ b/doc/html/post_8php.js
@@ -0,0 +1,5 @@
+var post_8php =
+[
+ [ "post_init", "post_8php.html#af4b48181ce773ef0cdfc972441445c34", null ],
+ [ "post_post", "post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75", null ]
+]; \ No newline at end of file
diff --git a/doc/html/pretheme_8php.html b/doc/html/pretheme_8php.html
new file mode 100644
index 000000000..2ac289362
--- /dev/null
+++ b/doc/html/pretheme_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/pretheme.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pretheme_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">pretheme.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af5660943ee99db5fd75182316522eafe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pretheme_8php.html#af5660943ee99db5fd75182316522eafe">pretheme_init</a> (&amp;$a)</td></tr>
+<tr class="separator:af5660943ee99db5fd75182316522eafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af5660943ee99db5fd75182316522eafe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">pretheme_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/pretheme_8php.js b/doc/html/pretheme_8php.js
new file mode 100644
index 000000000..850e68070
--- /dev/null
+++ b/doc/html/pretheme_8php.js
@@ -0,0 +1,4 @@
+var pretheme_8php =
+[
+ [ "pretheme_init", "pretheme_8php.html#af5660943ee99db5fd75182316522eafe", null ]
+]; \ No newline at end of file
diff --git a/doc/html/probe_8php.html b/doc/html/probe_8php.html
new file mode 100644
index 000000000..7db24ab66
--- /dev/null
+++ b/doc/html/probe_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/probe.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('probe_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">probe.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a1f1db3fa6038e451e737964c94bf5e99"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a1f1db3fa6038e451e737964c94bf5e99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a1f1db3fa6038e451e737964c94bf5e99"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">probe_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/probe_8php.js b/doc/html/probe_8php.js
new file mode 100644
index 000000000..5c5c60b45
--- /dev/null
+++ b/doc/html/probe_8php.js
@@ -0,0 +1,4 @@
+var probe_8php =
+[
+ [ "probe_content", "probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99", null ]
+]; \ No newline at end of file
diff --git a/doc/html/profile_8php.html b/doc/html/profile_8php.html
new file mode 100644
index 000000000..eb5e74417
--- /dev/null
+++ b/doc/html/profile_8php.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/profile.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('profile_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">profile.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab5d0246be0552e2182a585c1206d22a5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ab5d0246be0552e2182a585c1206d22a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a2482b775476f2f64ea5e8f4fc3fd1e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e">profile_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:a1a2482b775476f2f64ea5e8f4fc3fd1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3775cf6eef6587e5143133356a7b76c0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content</a> (&amp;$a, $update=0)</td></tr>
+<tr class="separator:a3775cf6eef6587e5143133356a7b76c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a1a2482b775476f2f64ea5e8f4fc3fd1e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profile_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3775cf6eef6587e5143133356a7b76c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profile_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$update</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab5d0246be0552e2182a585c1206d22a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profile_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/profile_8php.js b/doc/html/profile_8php.js
new file mode 100644
index 000000000..942cf9b3d
--- /dev/null
+++ b/doc/html/profile_8php.js
@@ -0,0 +1,6 @@
+var profile_8php =
+[
+ [ "profile_aside", "profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e", null ],
+ [ "profile_content", "profile_8php.html#a3775cf6eef6587e5143133356a7b76c0", null ],
+ [ "profile_init", "profile_8php.html#ab5d0246be0552e2182a585c1206d22a5", null ]
+]; \ No newline at end of file
diff --git a/doc/html/profile__advanced_8php.html b/doc/html/profile__advanced_8php.html
new file mode 100644
index 000000000..592a567cb
--- /dev/null
+++ b/doc/html/profile__advanced_8php.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/profile_advanced.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('profile__advanced_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">profile_advanced.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aa870d2c1f558cfd52bef05bc124e8fa4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile</a> (&amp;$a)</td></tr>
+<tr class="separator:aa870d2c1f558cfd52bef05bc124e8fa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa870d2c1f558cfd52bef05bc124e8fa4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">advanced_profile </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/profile__advanced_8php.js b/doc/html/profile__advanced_8php.js
new file mode 100644
index 000000000..505cbe36f
--- /dev/null
+++ b/doc/html/profile__advanced_8php.js
@@ -0,0 +1,4 @@
+var profile__advanced_8php =
+[
+ [ "advanced_profile", "profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4", null ]
+]; \ No newline at end of file
diff --git a/doc/html/profile__photo_8php.html b/doc/html/profile__photo_8php.html
new file mode 100644
index 000000000..f47e1be9f
--- /dev/null
+++ b/doc/html/profile__photo_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/profile_photo.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('profile__photo_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">profile_photo.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a140631c56438fbfacb61a1eb43067d02"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a140631c56438fbfacb61a1eb43067d02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9cd968a767e2ae1b88383b6cdd6dbe3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3">profile_photo_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:ac9cd968a767e2ae1b88383b6cdd6dbe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b80234074bd603221aa5364f330e479"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a4b80234074bd603221aa5364f330e479"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ac9cd968a767e2ae1b88383b6cdd6dbe3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profile_photo_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a140631c56438fbfacb61a1eb43067d02"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profile_photo_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4b80234074bd603221aa5364f330e479"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profile_photo_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/profile__photo_8php.js b/doc/html/profile__photo_8php.js
new file mode 100644
index 000000000..c9a379a2e
--- /dev/null
+++ b/doc/html/profile__photo_8php.js
@@ -0,0 +1,6 @@
+var profile__photo_8php =
+[
+ [ "profile_photo_aside", "profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3", null ],
+ [ "profile_photo_init", "profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02", null ],
+ [ "profile_photo_post", "profile__photo_8php.html#a4b80234074bd603221aa5364f330e479", null ]
+]; \ No newline at end of file
diff --git a/doc/html/profile__selectors_8php.html b/doc/html/profile__selectors_8php.html
new file mode 100644
index 000000000..4c010f5f1
--- /dev/null
+++ b/doc/html/profile__selectors_8php.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/profile_selectors.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('profile__selectors_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">profile_selectors.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae2b2c087e6530c61c0b256fd26d52355"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355">gender_selector</a> ($current=&quot;&quot;, $suffix=&quot;&quot;)</td></tr>
+<tr class="separator:ae2b2c087e6530c61c0b256fd26d52355"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b50b3ea4ea4bdbebebfffc5d1b157c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7">sexpref_selector</a> ($current=&quot;&quot;, $suffix=&quot;&quot;)</td></tr>
+<tr class="separator:a3b50b3ea4ea4bdbebebfffc5d1b157c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7473dd095987e1cdcc79d4f0bb5e6798"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798">marital_selector</a> ($current=&quot;&quot;, $suffix=&quot;&quot;)</td></tr>
+<tr class="separator:a7473dd095987e1cdcc79d4f0bb5e6798"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ae2b2c087e6530c61c0b256fd26d52355"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">gender_selector </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$current</em> = <code>&quot;&quot;</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$suffix</em> = <code>&quot;&quot;</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7473dd095987e1cdcc79d4f0bb5e6798"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">marital_selector </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$current</em> = <code>&quot;&quot;</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$suffix</em> = <code>&quot;&quot;</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3b50b3ea4ea4bdbebebfffc5d1b157c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">sexpref_selector </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$current</em> = <code>&quot;&quot;</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$suffix</em> = <code>&quot;&quot;</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/profile__selectors_8php.js b/doc/html/profile__selectors_8php.js
new file mode 100644
index 000000000..608e0e77e
--- /dev/null
+++ b/doc/html/profile__selectors_8php.js
@@ -0,0 +1,6 @@
+var profile__selectors_8php =
+[
+ [ "gender_selector", "profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355", null ],
+ [ "marital_selector", "profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798", null ],
+ [ "sexpref_selector", "profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7", null ]
+]; \ No newline at end of file
diff --git a/doc/html/profiles_8php.html b/doc/html/profiles_8php.html
new file mode 100644
index 000000000..f8af843af
--- /dev/null
+++ b/doc/html/profiles_8php.html
@@ -0,0 +1,191 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/profiles.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('profiles_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">profiles.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a36f71405ad536228f8bb84a551b23f7e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a36f71405ad536228f8bb84a551b23f7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a3ac90f51941ff78b85e9389304969c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:a2a3ac90f51941ff78b85e9389304969c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0362c81b1d3b0b12a772b9fac446e04"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post</a> (&amp;$a)</td></tr>
+<tr class="separator:ab0362c81b1d3b0b12a772b9fac446e04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a46975783b8b8d70402d51487eb1f0b00"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a46975783b8b8d70402d51487eb1f0b00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a2a3ac90f51941ff78b85e9389304969c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profiles_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a46975783b8b8d70402d51487eb1f0b00"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profiles_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a36f71405ad536228f8bb84a551b23f7e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profiles_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab0362c81b1d3b0b12a772b9fac446e04"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profiles_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/profiles_8php.js b/doc/html/profiles_8php.js
new file mode 100644
index 000000000..6bc83ad62
--- /dev/null
+++ b/doc/html/profiles_8php.js
@@ -0,0 +1,7 @@
+var profiles_8php =
+[
+ [ "profiles_aside", "profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c", null ],
+ [ "profiles_content", "profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00", null ],
+ [ "profiles_init", "profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e", null ],
+ [ "profiles_post", "profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04", null ]
+]; \ No newline at end of file
diff --git a/doc/html/profperm_8php.html b/doc/html/profperm_8php.html
new file mode 100644
index 000000000..ffb8dd4d5
--- /dev/null
+++ b/doc/html/profperm_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/profperm.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('profperm_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">profperm.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a17fb64ec05edee1dc94d95438807d6c6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a17fb64ec05edee1dc94d95438807d6c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77fd398ae7c25142e1d9ad724ec347cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc">profperm_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:a77fd398ae7c25142e1d9ad724ec347cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef015787de2373d9fb3fe3f814fb5023"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aef015787de2373d9fb3fe3f814fb5023"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a77fd398ae7c25142e1d9ad724ec347cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profperm_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aef015787de2373d9fb3fe3f814fb5023"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profperm_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a17fb64ec05edee1dc94d95438807d6c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profperm_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/profperm_8php.js b/doc/html/profperm_8php.js
new file mode 100644
index 000000000..978df3252
--- /dev/null
+++ b/doc/html/profperm_8php.js
@@ -0,0 +1,6 @@
+var profperm_8php =
+[
+ [ "profperm_aside", "profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc", null ],
+ [ "profperm_content", "profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023", null ],
+ [ "profperm_init", "profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6", null ]
+]; \ No newline at end of file
diff --git a/doc/html/qsearch_8php.html b/doc/html/qsearch_8php.html
new file mode 100644
index 000000000..85db51091
--- /dev/null
+++ b/doc/html/qsearch_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/qsearch.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('qsearch_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">qsearch.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a0501887b95bd8fa21018b2936a668894"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a0501887b95bd8fa21018b2936a668894"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a0501887b95bd8fa21018b2936a668894"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">qsearch_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/qsearch_8php.js b/doc/html/qsearch_8php.js
new file mode 100644
index 000000000..a21b280be
--- /dev/null
+++ b/doc/html/qsearch_8php.js
@@ -0,0 +1,4 @@
+var qsearch_8php =
+[
+ [ "qsearch_init", "qsearch_8php.html#a0501887b95bd8fa21018b2936a668894", null ]
+]; \ No newline at end of file
diff --git a/doc/html/queue_8php.html b/doc/html/queue_8php.html
new file mode 100644
index 000000000..fe235bc6c
--- /dev/null
+++ b/doc/html/queue_8php.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/queue.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('queue_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">queue.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af8c93de86d866c3200174c8450a0f341"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run</a> ($<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>, $<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a>)</td></tr>
+<tr class="separator:af8c93de86d866c3200174c8450a0f341"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af8c93de86d866c3200174c8450a0f341"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">queue_run </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argv</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$argc</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/queue_8php.js b/doc/html/queue_8php.js
new file mode 100644
index 000000000..e5a7830db
--- /dev/null
+++ b/doc/html/queue_8php.js
@@ -0,0 +1,4 @@
+var queue_8php =
+[
+ [ "queue_run", "queue_8php.html#af8c93de86d866c3200174c8450a0f341", null ]
+]; \ No newline at end of file
diff --git a/doc/html/queue__fn_8php.html b/doc/html/queue__fn_8php.html
new file mode 100644
index 000000000..cff4b21cd
--- /dev/null
+++ b/doc/html/queue__fn_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/queue_fn.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('queue__fn_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">queue_fn.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a4c2876181f75a4a61e85b7f00dfdbba1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">update_queue_time</a> ($id)</td></tr>
+<tr class="separator:a4c2876181f75a4a61e85b7f00dfdbba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8fe71e981399bbf5d000a6ca42f57b24"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">remove_queue_item</a> ($id)</td></tr>
+<tr class="separator:a8fe71e981399bbf5d000a6ca42f57b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a8fe71e981399bbf5d000a6ca42f57b24"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">remove_queue_item </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4c2876181f75a4a61e85b7f00dfdbba1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_queue_time </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/queue__fn_8php.js b/doc/html/queue__fn_8php.js
new file mode 100644
index 000000000..2a3776960
--- /dev/null
+++ b/doc/html/queue__fn_8php.js
@@ -0,0 +1,5 @@
+var queue__fn_8php =
+[
+ [ "remove_queue_item", "queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24", null ],
+ [ "update_queue_time", "queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1", null ]
+]; \ No newline at end of file
diff --git a/doc/html/r!-64.png b/doc/html/r!-64.png
new file mode 100644
index 000000000..1fd1bc80c
--- /dev/null
+++ b/doc/html/r!-64.png
Binary files differ
diff --git a/doc/html/randprof_8php.html b/doc/html/randprof_8php.html
new file mode 100644
index 000000000..7913f0525
--- /dev/null
+++ b/doc/html/randprof_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/randprof.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('randprof_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">randprof.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:abf5dba3c608b9304cbf68327cd31b090"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init</a> (&amp;$a)</td></tr>
+<tr class="separator:abf5dba3c608b9304cbf68327cd31b090"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="abf5dba3c608b9304cbf68327cd31b090"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">randprof_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/randprof_8php.js b/doc/html/randprof_8php.js
new file mode 100644
index 000000000..8cc765498
--- /dev/null
+++ b/doc/html/randprof_8php.js
@@ -0,0 +1,4 @@
+var randprof_8php =
+[
+ [ "randprof_init", "randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090", null ]
+]; \ No newline at end of file
diff --git a/doc/html/redbasic_2php_2style_8php.html b/doc/html/redbasic_2php_2style_8php.html
new file mode 100644
index 000000000..efd233f77
--- /dev/null
+++ b/doc/html/redbasic_2php_2style_8php.html
@@ -0,0 +1,421 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redbasic/php/style.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('redbasic_2php_2style_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">style.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a109bbd7f4add27541707b191b73ef84a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a">$uid</a> = <a class="el" href="boot_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid</a>()</td></tr>
+<tr class="separator:a109bbd7f4add27541707b191b73ef84a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac4c6bc3cd9cc92204f04cf6cb34b47dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#ac4c6bc3cd9cc92204f04cf6cb34b47dd">if</a> ($uid) <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig</a>($uid</td></tr>
+<tr class="separator:ac4c6bc3cd9cc92204f04cf6cb34b47dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4131d1765ee4deb28e83fc4527943ee0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a4131d1765ee4deb28e83fc4527943ee0">$line_height</a> = false</td></tr>
+<tr class="separator:a4131d1765ee4deb28e83fc4527943ee0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:addf42c3d02e53f8e4153f3bb9dabfcda"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda">$redbasic_font_size</a> = false</td></tr>
+<tr class="separator:addf42c3d02e53f8e4153f3bb9dabfcda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcfa918e05b5a98cbddc84bc3f1c15cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc">$resolution</a> = false</td></tr>
+<tr class="separator:adcfa918e05b5a98cbddc84bc3f1c15cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4086b1a341b7c8462a47fb1b25fd49ab"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab">$colour</a> = false</td></tr>
+<tr class="separator:a4086b1a341b7c8462a47fb1b25fd49ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb3046ad9c01b7d60cde20f58d77c548"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#acb3046ad9c01b7d60cde20f58d77c548">$shadows</a> = false</td></tr>
+<tr class="separator:acb3046ad9c01b7d60cde20f58d77c548"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a938168352fd3cdaa1c10c16a34f5938a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a938168352fd3cdaa1c10c16a34f5938a">$navcolour</a> = false</td></tr>
+<tr class="separator:a938168352fd3cdaa1c10c16a34f5938a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a232513bf4339fe34908c4c63cb93168b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a232513bf4339fe34908c4c63cb93168b">$nav_bg_1</a> = &quot;f88&quot;</td></tr>
+<tr class="separator:a232513bf4339fe34908c4c63cb93168b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03a72942b7428fd9af1224770d20a8ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a03a72942b7428fd9af1224770d20a8ba">$nav_bg_2</a> = &quot;b00&quot;</td></tr>
+<tr class="separator:a03a72942b7428fd9af1224770d20a8ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc190405dda0a23a80551dee11c74c0c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#acc190405dda0a23a80551dee11c74c0c">$nav_bg_3</a> = &quot;f00&quot;</td></tr>
+<tr class="separator:acc190405dda0a23a80551dee11c74c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef266cfcb27c6ddb3292584c945bab33"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#aef266cfcb27c6ddb3292584c945bab33">$nav_bg_4</a> = &quot;b00&quot;</td></tr>
+<tr class="separator:aef266cfcb27c6ddb3292584c945bab33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa658152b727ea1233f6df6ded6437dad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#aa658152b727ea1233f6df6ded6437dad">$displaystyle</a> = false</td></tr>
+<tr class="separator:aa658152b727ea1233f6df6ded6437dad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6628a80911a6b37b464ef110ac8f6e42"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a6628a80911a6b37b464ef110ac8f6e42">$linkcolour</a> = false</td></tr>
+<tr class="separator:a6628a80911a6b37b464ef110ac8f6e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b942d36d8862908864e2ffa4521be70"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a0b942d36d8862908864e2ffa4521be70">$shiny</a> = false</td></tr>
+<tr class="separator:a0b942d36d8862908864e2ffa4521be70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6502bedd57105ad1fb2dee2be9cf6351"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351">$radius</a> = 5</td></tr>
+<tr class="separator:a6502bedd57105ad1fb2dee2be9cf6351"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8749837e08dfb3372662af9c33fa2a2e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a8749837e08dfb3372662af9c33fa2a2e">$site_line_height</a> = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>(&quot;redbasic&quot;,&quot;line_height&quot;)</td></tr>
+<tr class="separator:a8749837e08dfb3372662af9c33fa2a2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45e6fafa363bc4586fa91dce1786be4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a45e6fafa363bc4586fa91dce1786be4f">$site_redbasic_font_size</a> = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>(&quot;redbasic&quot;, &quot;font_size&quot; )</td></tr>
+<tr class="separator:a45e6fafa363bc4586fa91dce1786be4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02d39b683a42fffbb27823d3860283bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a02d39b683a42fffbb27823d3860283bd">$site_colour</a> = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>(&quot;redbasic&quot;, &quot;colour&quot; )</td></tr>
+<tr class="separator:a02d39b683a42fffbb27823d3860283bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3a16c5f0dd7a74cf9acf6a49fff73a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#af3a16c5f0dd7a74cf9acf6a49fff73a7">$x</a> = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>('redbasic','radius')</td></tr>
+<tr class="separator:af3a16c5f0dd7a74cf9acf6a49fff73a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a4086b1a341b7c8462a47fb1b25fd49ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$colour = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa658152b727ea1233f6df6ded6437dad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$displaystyle = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4131d1765ee4deb28e83fc4527943ee0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$line_height = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6628a80911a6b37b464ef110ac8f6e42"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$linkcolour = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a232513bf4339fe34908c4c63cb93168b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$nav_bg_1 = &quot;f88&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a03a72942b7428fd9af1224770d20a8ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$nav_bg_2 = &quot;b00&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acc190405dda0a23a80551dee11c74c0c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$nav_bg_3 = &quot;f00&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aef266cfcb27c6ddb3292584c945bab33"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$nav_bg_4 = &quot;b00&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a938168352fd3cdaa1c10c16a34f5938a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$navcolour = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6502bedd57105ad1fb2dee2be9cf6351"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$radius = 5</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="addf42c3d02e53f8e4153f3bb9dabfcda"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$redbasic_font_size = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adcfa918e05b5a98cbddc84bc3f1c15cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$resolution = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acb3046ad9c01b7d60cde20f58d77c548"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$shadows = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0b942d36d8862908864e2ffa4521be70"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$shiny = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a02d39b683a42fffbb27823d3860283bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$site_colour = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>(&quot;redbasic&quot;, &quot;colour&quot; )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8749837e08dfb3372662af9c33fa2a2e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$site_line_height = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>(&quot;redbasic&quot;,&quot;line_height&quot;)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a45e6fafa363bc4586fa91dce1786be4f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$site_redbasic_font_size = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>(&quot;redbasic&quot;, &quot;font_size&quot; )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a109bbd7f4add27541707b191b73ef84a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$uid = <a class="el" href="boot_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid</a>()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586">all_friends()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions()</a>, <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">common_friends()</a>, <a class="el" href="socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9">common_friends_zcid()</a>, <a class="el" href="Contact_8php.html#a228fc01f90ae9bfdde4c2ad0772bd7dc">contacts_not_grouped()</a>, <a class="el" href="socgraph_8php.html#af29d056beec10b4e38e5209c92452894">count_all_friends()</a>, <a class="el" href="socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84">count_common_friends()</a>, <a class="el" href="socgraph_8php.html#af175807406d94407a5e11742a3287746">count_common_friends_zcid()</a>, <a class="el" href="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">current_theme_url()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig()</a>, <a class="el" href="boot_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid()</a>, <a class="el" href="include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0">group_add()</a>, <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group_add_member()</a>, <a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group_byname()</a>, <a class="el" href="include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245">group_rec_byhash()</a>, <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group_rmv()</a>, <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group_rmv_member()</a>, <a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">groups_containing()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f">mini_group_select()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget()</a>, <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">send_message()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="classConversation.html#a8898bddc1e8990e81dab9a13a532cc93">Conversation\set_profile_owner()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">suggestion_query()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="taxonomy_8php.html#a061b3db9426d4b074395f5824062cad4">tagadelic()</a>, <a class="el" href="taxonomy_8php.html#abdb698bc6921429df6d697f6c5dec96f">tagblock()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af3a16c5f0dd7a74cf9acf6a49fff73a7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a> = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>('redbasic','radius')</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">Template\_replcb_for()</a>, <a class="el" href="classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228">Template\_replcb_if()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="items_8php.html#a36e656667193c83aa2cc03a024fc131b">activity_sanitise()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv()</a>, <a class="el" href="items_8php.html#abf7a1b73eb352d79acd36309b0dababd">array_sanitise()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca">autoname()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="security_8php.html#a9c6180e82150a5a9af91a1255d096b5c">check_form_security_token()</a>, <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">photo_gd\cropImage()</a>, <a class="el" href="classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4">photo_imagick\cropImage()</a>, <a class="el" href="datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8">datesel()</a>, <a class="el" href="datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa">datesel_format()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="include_2network_8php.html#a540420ff3675a72cb781ef9a7e8c2cd9">email_header_encode()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="text_8php.html#ace3c98538c63e09b70a363210b414112">find_xchan_in_array()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="classphoto__gd.html#a44cedef376044018702d9355ddc813ce">photo_gd\flip()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="text_8php.html#ae4f6881d7e13623f8eded6277595112a">generate_user_guid()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="text_8php.html#a76d1b3435c067978d7b484c45f56472b">get_mentions()</a>, <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements()</a>, <a class="el" href="taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1">get_terms_oftype()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a">ids_to_querystr()</a>, <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</a>, <a class="el" href="zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a">import_directory_keywords()</a>, <a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="include_2network_8php.html#a4c5d50079e089168d9248427018fffd4">json_return_and_die()</a>, <a class="el" href="text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728">legal_webbie()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">parse_xml_string()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="text_8php.html#ac19d2b33a58372a357a43d51eed19162">preg_heart()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3">print_template()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql\q()</a>, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli\q()</a>, <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>, <a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">App\set_widget()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">stringify_array_elms()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="taxonomy_8php.html#a061b3db9426d4b074395f5824062cad4">tagadelic()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4">theme_status()</a>, <a class="el" href="datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1">timesel()</a>, <a class="el" href="admin_8php.html#af81f081851791cd15e49e8ff6722dc27">toggle_theme()</a>, <a class="el" href="plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d">upgrade_bool_message()</a>, <a class="el" href="plugin_8php.html#a901657dd078e070516cf97285e0bada7">upgrade_message()</a>, <a class="el" href="text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb">valid_email()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="text_8php.html#aaed4413ed8918838b517e3b2fafaea0d">xmlify()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac4c6bc3cd9cc92204f04cf6cb34b47dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">if ($colour===&quot;dark&quot;) if (($redbasic_font_size &gt;=8.0)&amp;&amp;($redbasic_font_size&lt;=20.0)) if (($line_height &gt;=1.0)&amp;&amp;($line_height&lt;=2.0)) if($shadows===&quot;true&quot;)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/redbasic_2php_2style_8php.js b/doc/html/redbasic_2php_2style_8php.js
new file mode 100644
index 000000000..d91c436d5
--- /dev/null
+++ b/doc/html/redbasic_2php_2style_8php.js
@@ -0,0 +1,23 @@
+var redbasic_2php_2style_8php =
+[
+ [ "$colour", "redbasic_2php_2style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab", null ],
+ [ "$displaystyle", "redbasic_2php_2style_8php.html#aa658152b727ea1233f6df6ded6437dad", null ],
+ [ "$line_height", "redbasic_2php_2style_8php.html#a4131d1765ee4deb28e83fc4527943ee0", null ],
+ [ "$linkcolour", "redbasic_2php_2style_8php.html#a6628a80911a6b37b464ef110ac8f6e42", null ],
+ [ "$nav_bg_1", "redbasic_2php_2style_8php.html#a232513bf4339fe34908c4c63cb93168b", null ],
+ [ "$nav_bg_2", "redbasic_2php_2style_8php.html#a03a72942b7428fd9af1224770d20a8ba", null ],
+ [ "$nav_bg_3", "redbasic_2php_2style_8php.html#acc190405dda0a23a80551dee11c74c0c", null ],
+ [ "$nav_bg_4", "redbasic_2php_2style_8php.html#aef266cfcb27c6ddb3292584c945bab33", null ],
+ [ "$navcolour", "redbasic_2php_2style_8php.html#a938168352fd3cdaa1c10c16a34f5938a", null ],
+ [ "$radius", "redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351", null ],
+ [ "$redbasic_font_size", "redbasic_2php_2style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda", null ],
+ [ "$resolution", "redbasic_2php_2style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc", null ],
+ [ "$shadows", "redbasic_2php_2style_8php.html#acb3046ad9c01b7d60cde20f58d77c548", null ],
+ [ "$shiny", "redbasic_2php_2style_8php.html#a0b942d36d8862908864e2ffa4521be70", null ],
+ [ "$site_colour", "redbasic_2php_2style_8php.html#a02d39b683a42fffbb27823d3860283bd", null ],
+ [ "$site_line_height", "redbasic_2php_2style_8php.html#a8749837e08dfb3372662af9c33fa2a2e", null ],
+ [ "$site_redbasic_font_size", "redbasic_2php_2style_8php.html#a45e6fafa363bc4586fa91dce1786be4f", null ],
+ [ "$uid", "redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a", null ],
+ [ "$x", "redbasic_2php_2style_8php.html#af3a16c5f0dd7a74cf9acf6a49fff73a7", null ],
+ [ "if", "redbasic_2php_2style_8php.html#ac4c6bc3cd9cc92204f04cf6cb34b47dd", null ]
+]; \ No newline at end of file
diff --git a/doc/html/redbasic_2php_2theme_8php.html b/doc/html/redbasic_2php_2theme_8php.html
new file mode 100644
index 000000000..dbbbd82df
--- /dev/null
+++ b/doc/html/redbasic_2php_2theme_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redbasic/php/theme.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('redbasic_2php_2theme_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">theme.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af6eb813e9fc7e2d76ac1b82bc5c0ed9b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b">redbasic_init</a> (&amp;$a)</td></tr>
+<tr class="separator:af6eb813e9fc7e2d76ac1b82bc5c0ed9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af6eb813e9fc7e2d76ac1b82bc5c0ed9b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">redbasic_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/redbasic_2php_2theme_8php.js b/doc/html/redbasic_2php_2theme_8php.js
new file mode 100644
index 000000000..ad2af9268
--- /dev/null
+++ b/doc/html/redbasic_2php_2theme_8php.js
@@ -0,0 +1,4 @@
+var redbasic_2php_2theme_8php =
+[
+ [ "redbasic_init", "redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b", null ]
+]; \ No newline at end of file
diff --git a/doc/html/redir_8php.html b/doc/html/redir_8php.html
new file mode 100644
index 000000000..a77e53757
--- /dev/null
+++ b/doc/html/redir_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/redir.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('redir_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">redir.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a9ac266c3f5cf0d94ef63e6d0f2edf1f5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a9ac266c3f5cf0d94ef63e6d0f2edf1f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a9ac266c3f5cf0d94ef63e6d0f2edf1f5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">redir_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/redir_8php.js b/doc/html/redir_8php.js
new file mode 100644
index 000000000..8fb935d75
--- /dev/null
+++ b/doc/html/redir_8php.js
@@ -0,0 +1,4 @@
+var redir_8php =
+[
+ [ "redir_init", "redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5", null ]
+]; \ No newline at end of file
diff --git a/doc/html/redstrap_2php_2style_8php.html b/doc/html/redstrap_2php_2style_8php.html
new file mode 100644
index 000000000..e4501c0c5
--- /dev/null
+++ b/doc/html/redstrap_2php_2style_8php.html
@@ -0,0 +1,361 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redstrap/php/style.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('redstrap_2php_2style_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">style.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a4131d1765ee4deb28e83fc4527943ee0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#a4131d1765ee4deb28e83fc4527943ee0">$line_height</a> = false</td></tr>
+<tr class="separator:a4131d1765ee4deb28e83fc4527943ee0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:addf42c3d02e53f8e4153f3bb9dabfcda"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda">$redbasic_font_size</a> = false</td></tr>
+<tr class="separator:addf42c3d02e53f8e4153f3bb9dabfcda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcfa918e05b5a98cbddc84bc3f1c15cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc">$resolution</a> = false</td></tr>
+<tr class="separator:adcfa918e05b5a98cbddc84bc3f1c15cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4086b1a341b7c8462a47fb1b25fd49ab"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab">$colour</a> = false</td></tr>
+<tr class="separator:a4086b1a341b7c8462a47fb1b25fd49ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb3046ad9c01b7d60cde20f58d77c548"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#acb3046ad9c01b7d60cde20f58d77c548">$shadows</a> = false</td></tr>
+<tr class="separator:acb3046ad9c01b7d60cde20f58d77c548"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a938168352fd3cdaa1c10c16a34f5938a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#a938168352fd3cdaa1c10c16a34f5938a">$navcolour</a> = false</td></tr>
+<tr class="separator:a938168352fd3cdaa1c10c16a34f5938a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a232513bf4339fe34908c4c63cb93168b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#a232513bf4339fe34908c4c63cb93168b">$nav_bg_1</a> = &quot;f88&quot;</td></tr>
+<tr class="separator:a232513bf4339fe34908c4c63cb93168b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03a72942b7428fd9af1224770d20a8ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#a03a72942b7428fd9af1224770d20a8ba">$nav_bg_2</a> = &quot;b00&quot;</td></tr>
+<tr class="separator:a03a72942b7428fd9af1224770d20a8ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc190405dda0a23a80551dee11c74c0c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#acc190405dda0a23a80551dee11c74c0c">$nav_bg_3</a> = &quot;f00&quot;</td></tr>
+<tr class="separator:acc190405dda0a23a80551dee11c74c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef266cfcb27c6ddb3292584c945bab33"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#aef266cfcb27c6ddb3292584c945bab33">$nav_bg_4</a> = &quot;b00&quot;</td></tr>
+<tr class="separator:aef266cfcb27c6ddb3292584c945bab33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa658152b727ea1233f6df6ded6437dad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#aa658152b727ea1233f6df6ded6437dad">$displaystyle</a> = false</td></tr>
+<tr class="separator:aa658152b727ea1233f6df6ded6437dad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6628a80911a6b37b464ef110ac8f6e42"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#a6628a80911a6b37b464ef110ac8f6e42">$linkcolour</a> = false</td></tr>
+<tr class="separator:a6628a80911a6b37b464ef110ac8f6e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b942d36d8862908864e2ffa4521be70"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#a0b942d36d8862908864e2ffa4521be70">$shiny</a> = false</td></tr>
+<tr class="separator:a0b942d36d8862908864e2ffa4521be70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8749837e08dfb3372662af9c33fa2a2e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#a8749837e08dfb3372662af9c33fa2a2e">$site_line_height</a> = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>(&quot;redbasic&quot;,&quot;line_height&quot;)</td></tr>
+<tr class="separator:a8749837e08dfb3372662af9c33fa2a2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45e6fafa363bc4586fa91dce1786be4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#a45e6fafa363bc4586fa91dce1786be4f">$site_redbasic_font_size</a> = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>(&quot;redbasic&quot;, &quot;font_size&quot; )</td></tr>
+<tr class="separator:a45e6fafa363bc4586fa91dce1786be4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02d39b683a42fffbb27823d3860283bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#a02d39b683a42fffbb27823d3860283bd">$site_colour</a> = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>(&quot;redbasic&quot;, &quot;colour&quot; )</td></tr>
+<tr class="separator:a02d39b683a42fffbb27823d3860283bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c4684da834439885ae2285649d1aaea"><td class="memItemLeft" align="right" valign="top">if(<a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">local_user</a>()) if($line_height===false) <br class="typebreak"/>
+if($line_height===false) if($redbasic_font_size===false) <br class="typebreak"/>
+if($redbasic_font_size===false) <br class="typebreak"/>
+if($colour===false) if($colour===false) <br class="typebreak"/>
+if($navcolour===&quot;black&quot;)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (file_exists('view/theme/'.<a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme</a>(). '/css/style.css'))</td></tr>
+<tr class="separator:a0c4684da834439885ae2285649d1aaea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a4086b1a341b7c8462a47fb1b25fd49ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$colour = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa658152b727ea1233f6df6ded6437dad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$displaystyle = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4131d1765ee4deb28e83fc4527943ee0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$line_height = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6628a80911a6b37b464ef110ac8f6e42"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$linkcolour = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a232513bf4339fe34908c4c63cb93168b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$nav_bg_1 = &quot;f88&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a03a72942b7428fd9af1224770d20a8ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$nav_bg_2 = &quot;b00&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acc190405dda0a23a80551dee11c74c0c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$nav_bg_3 = &quot;f00&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aef266cfcb27c6ddb3292584c945bab33"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$nav_bg_4 = &quot;b00&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a938168352fd3cdaa1c10c16a34f5938a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$navcolour = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="addf42c3d02e53f8e4153f3bb9dabfcda"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$redbasic_font_size = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adcfa918e05b5a98cbddc84bc3f1c15cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$resolution = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acb3046ad9c01b7d60cde20f58d77c548"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$shadows = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0b942d36d8862908864e2ffa4521be70"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$shiny = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a02d39b683a42fffbb27823d3860283bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$site_colour = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>(&quot;redbasic&quot;, &quot;colour&quot; )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8749837e08dfb3372662af9c33fa2a2e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$site_line_height = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>(&quot;redbasic&quot;,&quot;line_height&quot;)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a45e6fafa363bc4586fa91dce1786be4f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$site_redbasic_font_size = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>(&quot;redbasic&quot;, &quot;font_size&quot; )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0c4684da834439885ae2285649d1aaea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">if (<a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">local_user</a>()) if ($line_height===false) if ($line_height===false) if ($redbasic_font_size===false) if ($redbasic_font_size===false) if ($colour===false) if ($colour===false) if ($navcolour===&quot;black&quot;) if(file_exists('view/theme/'.<a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme</a>(). '/css/style.css'))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/redstrap_2php_2style_8php.js b/doc/html/redstrap_2php_2style_8php.js
new file mode 100644
index 000000000..b8f1b41e9
--- /dev/null
+++ b/doc/html/redstrap_2php_2style_8php.js
@@ -0,0 +1,20 @@
+var redstrap_2php_2style_8php =
+[
+ [ "$colour", "redstrap_2php_2style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab", null ],
+ [ "$displaystyle", "redstrap_2php_2style_8php.html#aa658152b727ea1233f6df6ded6437dad", null ],
+ [ "$line_height", "redstrap_2php_2style_8php.html#a4131d1765ee4deb28e83fc4527943ee0", null ],
+ [ "$linkcolour", "redstrap_2php_2style_8php.html#a6628a80911a6b37b464ef110ac8f6e42", null ],
+ [ "$nav_bg_1", "redstrap_2php_2style_8php.html#a232513bf4339fe34908c4c63cb93168b", null ],
+ [ "$nav_bg_2", "redstrap_2php_2style_8php.html#a03a72942b7428fd9af1224770d20a8ba", null ],
+ [ "$nav_bg_3", "redstrap_2php_2style_8php.html#acc190405dda0a23a80551dee11c74c0c", null ],
+ [ "$nav_bg_4", "redstrap_2php_2style_8php.html#aef266cfcb27c6ddb3292584c945bab33", null ],
+ [ "$navcolour", "redstrap_2php_2style_8php.html#a938168352fd3cdaa1c10c16a34f5938a", null ],
+ [ "$redbasic_font_size", "redstrap_2php_2style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda", null ],
+ [ "$resolution", "redstrap_2php_2style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc", null ],
+ [ "$shadows", "redstrap_2php_2style_8php.html#acb3046ad9c01b7d60cde20f58d77c548", null ],
+ [ "$shiny", "redstrap_2php_2style_8php.html#a0b942d36d8862908864e2ffa4521be70", null ],
+ [ "$site_colour", "redstrap_2php_2style_8php.html#a02d39b683a42fffbb27823d3860283bd", null ],
+ [ "$site_line_height", "redstrap_2php_2style_8php.html#a8749837e08dfb3372662af9c33fa2a2e", null ],
+ [ "$site_redbasic_font_size", "redstrap_2php_2style_8php.html#a45e6fafa363bc4586fa91dce1786be4f", null ],
+ [ "if", "redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea", null ]
+]; \ No newline at end of file
diff --git a/doc/html/redstrap_2php_2theme_8php.html b/doc/html/redstrap_2php_2theme_8php.html
new file mode 100644
index 000000000..7b6f14cd5
--- /dev/null
+++ b/doc/html/redstrap_2php_2theme_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redstrap/php/theme.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('redstrap_2php_2theme_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">theme.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a4dac61d466b4261deca2846f548e484a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redstrap_2php_2theme_8php.html#a4dac61d466b4261deca2846f548e484a">redstrap_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a4dac61d466b4261deca2846f548e484a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a4dac61d466b4261deca2846f548e484a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">redstrap_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/redstrap_2php_2theme_8php.js b/doc/html/redstrap_2php_2theme_8php.js
new file mode 100644
index 000000000..7a42ce992
--- /dev/null
+++ b/doc/html/redstrap_2php_2theme_8php.js
@@ -0,0 +1,4 @@
+var redstrap_2php_2theme_8php =
+[
+ [ "redstrap_init", "redstrap_2php_2theme_8php.html#a4dac61d466b4261deca2846f548e484a", null ]
+]; \ No newline at end of file
diff --git a/doc/html/register_8php.html b/doc/html/register_8php.html
new file mode 100644
index 000000000..792200577
--- /dev/null
+++ b/doc/html/register_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/register.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('register_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">register.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae20c0cd40f738d6295de58b9202c83d5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ae20c0cd40f738d6295de58b9202c83d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51731dcc1917c58a790eb1c0f6132271"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a51731dcc1917c58a790eb1c0f6132271"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e91f57f111407ea8d3223a05022bb2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a0e91f57f111407ea8d3223a05022bb2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a0e91f57f111407ea8d3223a05022bb2a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">register_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae20c0cd40f738d6295de58b9202c83d5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">register_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a51731dcc1917c58a790eb1c0f6132271"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">register_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/register_8php.js b/doc/html/register_8php.js
new file mode 100644
index 000000000..7028ce8cc
--- /dev/null
+++ b/doc/html/register_8php.js
@@ -0,0 +1,6 @@
+var register_8php =
+[
+ [ "register_content", "register_8php.html#a0e91f57f111407ea8d3223a05022bb2a", null ],
+ [ "register_init", "register_8php.html#ae20c0cd40f738d6295de58b9202c83d5", null ],
+ [ "register_post", "register_8php.html#a51731dcc1917c58a790eb1c0f6132271", null ]
+]; \ No newline at end of file
diff --git a/doc/html/regmod_8php.html b/doc/html/regmod_8php.html
new file mode 100644
index 000000000..b001c82e8
--- /dev/null
+++ b/doc/html/regmod_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/regmod.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('regmod_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">regmod.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7953df4e32e63946565e90cdd5d50409"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a7953df4e32e63946565e90cdd5d50409"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a7953df4e32e63946565e90cdd5d50409"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">regmod_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/regmod_8php.js b/doc/html/regmod_8php.js
new file mode 100644
index 000000000..d19c87424
--- /dev/null
+++ b/doc/html/regmod_8php.js
@@ -0,0 +1,4 @@
+var regmod_8php =
+[
+ [ "regmod_content", "regmod_8php.html#a7953df4e32e63946565e90cdd5d50409", null ]
+]; \ No newline at end of file
diff --git a/doc/html/removeme_8php.html b/doc/html/removeme_8php.html
new file mode 100644
index 000000000..9223fcebb
--- /dev/null
+++ b/doc/html/removeme_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/removeme.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('removeme_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">removeme.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7be08738beca44bb98a79e01cdb2ee88"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a7be08738beca44bb98a79e01cdb2ee88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a065a589caa2aa84c60f7073a28f0ad9c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a065a589caa2aa84c60f7073a28f0ad9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a065a589caa2aa84c60f7073a28f0ad9c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">removeme_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7be08738beca44bb98a79e01cdb2ee88"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">removeme_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/removeme_8php.js b/doc/html/removeme_8php.js
new file mode 100644
index 000000000..ee5cd84d0
--- /dev/null
+++ b/doc/html/removeme_8php.js
@@ -0,0 +1,5 @@
+var removeme_8php =
+[
+ [ "removeme_content", "removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c", null ],
+ [ "removeme_post", "removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88", null ]
+]; \ No newline at end of file
diff --git a/doc/html/resize.js b/doc/html/resize.js
new file mode 100644
index 000000000..8365b253c
--- /dev/null
+++ b/doc/html/resize.js
@@ -0,0 +1,93 @@
+var cookie_namespace = 'doxygen';
+var sidenav,navtree,content,header;
+
+function readCookie(cookie)
+{
+ var myCookie = cookie_namespace+"_"+cookie+"=";
+ if (document.cookie)
+ {
+ var index = document.cookie.indexOf(myCookie);
+ if (index != -1)
+ {
+ var valStart = index + myCookie.length;
+ var valEnd = document.cookie.indexOf(";", valStart);
+ if (valEnd == -1)
+ {
+ valEnd = document.cookie.length;
+ }
+ var val = document.cookie.substring(valStart, valEnd);
+ return val;
+ }
+ }
+ return 0;
+}
+
+function writeCookie(cookie, val, expiration)
+{
+ if (val==undefined) return;
+ if (expiration == null)
+ {
+ var date = new Date();
+ date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
+ expiration = date.toGMTString();
+ }
+ document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
+}
+
+function resizeWidth()
+{
+ var windowWidth = $(window).width() + "px";
+ var sidenavWidth = $(sidenav).outerWidth();
+ content.css({marginLeft:parseInt(sidenavWidth)+6+"px"}); //account for 6px-wide handle-bar
+ writeCookie('width',sidenavWidth, null);
+}
+
+function restoreWidth(navWidth)
+{
+ var windowWidth = $(window).width() + "px";
+ content.css({marginLeft:parseInt(navWidth)+6+"px"});
+ sidenav.css({width:navWidth + "px"});
+}
+
+function resizeHeight()
+{
+ var headerHeight = header.outerHeight();
+ var footerHeight = footer.outerHeight();
+ var windowHeight = $(window).height() - headerHeight - footerHeight;
+ content.css({height:windowHeight + "px"});
+ navtree.css({height:windowHeight + "px"});
+ sidenav.css({height:windowHeight + "px",top: headerHeight+"px"});
+}
+
+function initResizable()
+{
+ header = $("#top");
+ sidenav = $("#side-nav");
+ content = $("#doc-content");
+ navtree = $("#nav-tree");
+ footer = $("#nav-path");
+ $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
+ $(window).resize(function() { resizeHeight(); });
+ var width = readCookie('width');
+ if (width) { restoreWidth(width); } else { resizeWidth(); }
+ resizeHeight();
+ var url = location.href;
+ var i=url.indexOf("#");
+ if (i>=0) window.location.hash=url.substr(i);
+ var _preventDefault = function(evt) { evt.preventDefault(); };
+ $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
+ $(document).bind('touchmove',function(e){
+ try {
+ var target = e.target;
+ while (target) {
+ if ($(target).css('-webkit-overflow-scrolling')=='touch') return;
+ target = target.parentNode;
+ }
+ e.preventDefault();
+ } catch(err) {
+ e.preventDefault();
+ }
+ });
+}
+
+
diff --git a/doc/html/rhash-64.png b/doc/html/rhash-64.png
new file mode 100644
index 000000000..2e8396760
--- /dev/null
+++ b/doc/html/rhash-64.png
Binary files differ
diff --git a/doc/html/rmagic_8php.html b/doc/html/rmagic_8php.html
new file mode 100644
index 000000000..55723768d
--- /dev/null
+++ b/doc/html/rmagic_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/rmagic.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('rmagic_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">rmagic.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a95455edd43f1bff39446a57388cdde16"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a95455edd43f1bff39446a57388cdde16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a869de069d081b3c4e98b957d06bbf08f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a869de069d081b3c4e98b957d06bbf08f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e28db1e5cfa7e5c2617f90222c1caef"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef">rmagic_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a3e28db1e5cfa7e5c2617f90222c1caef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a3e28db1e5cfa7e5c2617f90222c1caef"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">rmagic_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a95455edd43f1bff39446a57388cdde16"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">rmagic_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a869de069d081b3c4e98b957d06bbf08f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">rmagic_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/rmagic_8php.js b/doc/html/rmagic_8php.js
new file mode 100644
index 000000000..ca44412be
--- /dev/null
+++ b/doc/html/rmagic_8php.js
@@ -0,0 +1,6 @@
+var rmagic_8php =
+[
+ [ "rmagic_content", "rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef", null ],
+ [ "rmagic_init", "rmagic_8php.html#a95455edd43f1bff39446a57388cdde16", null ],
+ [ "rmagic_post", "rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f", null ]
+]; \ No newline at end of file
diff --git a/doc/html/rsd__xml_8php.html b/doc/html/rsd__xml_8php.html
new file mode 100644
index 000000000..5012184b6
--- /dev/null
+++ b/doc/html/rsd__xml_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/rsd_xml.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('rsd__xml_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">rsd_xml.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a740cd02fa15e5a53f8547fac73f0ab82"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rsd__xml_8php.html#a740cd02fa15e5a53f8547fac73f0ab82">rsd_xml_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a740cd02fa15e5a53f8547fac73f0ab82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a740cd02fa15e5a53f8547fac73f0ab82"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">rsd_xml_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/rsd__xml_8php.js b/doc/html/rsd__xml_8php.js
new file mode 100644
index 000000000..36c85f86a
--- /dev/null
+++ b/doc/html/rsd__xml_8php.js
@@ -0,0 +1,4 @@
+var rsd__xml_8php =
+[
+ [ "rsd_xml_content", "rsd__xml_8php.html#a740cd02fa15e5a53f8547fac73f0ab82", null ]
+]; \ No newline at end of file
diff --git a/doc/html/search/all_24.html b/doc/html/search/all_24.html
new file mode 100644
index 000000000..46ab96a5b
--- /dev/null
+++ b/doc/html/search/all_24.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_24.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_24.js b/doc/html/search/all_24.js
new file mode 100644
index 000000000..023be319b
--- /dev/null
+++ b/doc/html/search/all_24.js
@@ -0,0 +1,143 @@
+var searchData=
+[
+ ['_24a',['$a',['../typo_8php.html#acebf83966ef6d7e5645a6b62ba368f9f',1,'typo.php']]],
+ ['_24account',['$account',['../classApp.html#a14bd4b1c29f3aff371fe5d4cb11aeea3',1,'App']]],
+ ['_24api',['$API',['../include_2api_8php.html#aeb2e7ad00ea666b4b6dfcf82008194f8',1,'api.php']]],
+ ['_24app',['$app',['../classBaseObject.html#a02cc4cd8fa26b6fc76d92fde54b4e4b1',1,'BaseObject']]],
+ ['_24apps',['$apps',['../classApp.html#a230e975296cf164da2fee35ef720964f',1,'App']]],
+ ['_24argc',['$argc',['../classApp.html#af58db526040829b1c8bd95561b329262',1,'App']]],
+ ['_24argv',['$argv',['../classApp.html#ab3da757abe5cb45bf88f07cc51a73b58',1,'App']]],
+ ['_24arr',['$arr',['../extract_8php.html#a63bb4c41bc532baacf6a4976cfaa0feb',1,'extract.php']]],
+ ['_24baseurl',['$baseurl',['../classApp.html#ad5175536561021548ae8188e24c7b80c',1,'App']]],
+ ['_24cached_5fprofile_5fimage',['$cached_profile_image',['../classApp.html#abe0e4fa91097f7a6588e1213a834121c',1,'App']]],
+ ['_24cached_5fprofile_5fpicdate',['$cached_profile_picdate',['../classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e',1,'App']]],
+ ['_24called_5fapi',['$called_api',['../include_2api_8php.html#aa62b15a6bbb280e86b98132eb214013d',1,'api.php']]],
+ ['_24category',['$category',['../classApp.html#a5cfc098c061b7d765add58fd2ca97445',1,'App']]],
+ ['_24channel',['$channel',['../classApp.html#a050b0696118da47e8b30859ad1a2c149',1,'App\$channel()'],['../classItem.html#acc32426c0f465391be8a99ad810c7b8e',1,'Item\$channel()']]],
+ ['_24children',['$children',['../classItem.html#a80dcd0fb7673776c0967839d429c2a0f',1,'Item']]],
+ ['_24cid',['$cid',['../classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0',1,'App']]],
+ ['_24cmd',['$cmd',['../classApp.html#a495ec082c2719314e536070ca1ce073d',1,'App']]],
+ ['_24colour',['$colour',['../redbasic_2php_2style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab',1,'$colour():&#160;style.php'],['../redstrap_2php_2style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab',1,'$colour():&#160;style.php']]],
+ ['_24comment_5fbox_5ftemplate',['$comment_box_template',['../classItem.html#a90743c8348b13213275c223bb9333aa0',1,'Item']]],
+ ['_24commentable',['$commentable',['../classConversation.html#afd4965d22a6e4bfea2f35e931b3273c6',1,'Conversation']]],
+ ['_24config',['$config',['../classApp.html#ac73dc90e4764497e2f1b7e6612c8fb88',1,'App']]],
+ ['_24connected',['$connected',['../classdba__driver.html#a205f6535e399700b6fca2492f96f2229',1,'dba_driver']]],
+ ['_24contact',['$contact',['../classApp.html#a98ef4cfd36693a3457c879b76bc6d694',1,'App']]],
+ ['_24contacts',['$contacts',['../classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2',1,'App']]],
+ ['_24content',['$content',['../classApp.html#ac1d80a14492acc932715d54567d8a589',1,'App']]],
+ ['_24conversation',['$conversation',['../classItem.html#a007424e3e3171dcfb4312a02161da6cd',1,'Item']]],
+ ['_24css_5fsources',['$css_sources',['../classApp.html#a6f55d087e1ff4710132c1b0863faa2ee',1,'App']]],
+ ['_24curl_5fcode',['$curl_code',['../classApp.html#a256360c9184fed6d7556e0bc0a835d7f',1,'App']]],
+ ['_24curl_5fheaders',['$curl_headers',['../classApp.html#af5007c42a693afd9c4899c243b2e1363',1,'App']]],
+ ['_24d',['$d',['../classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38',1,'Template']]],
+ ['_24data',['$data',['../classApp.html#a0ce85be198e46570366cb3344f3c55b8',1,'App\$data()'],['../classItem.html#aec24e233f9098f902b1e57e60dcb2019',1,'Item\$data()']]],
+ ['_24db',['$db',['../classApp.html#a330410a288f3393d53772f5e98f857ea',1,'App\$db()'],['../classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6',1,'dba_driver\$db()']]],
+ ['_24debug',['$debug',['../classdba__driver.html#af48e2afeded5285766bf92e22123ed03',1,'dba_driver\$debug()'],['../classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a',1,'Template\$debug()']]],
+ ['_24dir',['$dir',['../docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62',1,'docblox_errorchecker.php']]],
+ ['_24dirs',['$dirs',['../typo_8php.html#a1b709c1d79631ebc8320b41bda028b54',1,'typo.php']]],
+ ['_24dirstack',['$dirstack',['../docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6',1,'docblox_errorchecker.php']]],
+ ['_24displaystyle',['$displaystyle',['../redbasic_2php_2style_8php.html#aa658152b727ea1233f6df6ded6437dad',1,'$displaystyle():&#160;style.php'],['../redstrap_2php_2style_8php.html#aa658152b727ea1233f6df6ded6437dad',1,'$displaystyle():&#160;style.php']]],
+ ['_24done',['$done',['../classTemplate.html#abda4c8d049f70553338eae7c905e9d5c',1,'Template']]],
+ ['_24error',['$error',['../classApp.html#ac1a8b2cd40609b231a560201a08852ba',1,'App\$error()'],['../classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c',1,'dba_driver\$error()']]],
+ ['_24filelist',['$filelist',['../docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b',1,'docblox_errorchecker.php']]],
+ ['_24filename',['$filename',['../classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690',1,'FriendicaSmarty']]],
+ ['_24files',['$files',['../extract_8php.html#a9590b15215a21e9b42eb546aeef79704',1,'$files():&#160;extract.php'],['../tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149',1,'$files():&#160;tpldebug.php'],['../typo_8php.html#a9590b15215a21e9b42eb546aeef79704',1,'$files():&#160;typo.php']]],
+ ['_24force_5fmax_5fitems',['$force_max_items',['../classApp.html#ae3f47830543d0d902f66913def8db66b',1,'App']]],
+ ['_24gc_5fprobability',['$gc_probability',['../session_8php.html#a96b09cc763572f45280786a7b33feb7e',1,'session.php']]],
+ ['_24groups',['$groups',['../classApp.html#ac6e6b1c7d6df408580ff79977fcfa656',1,'App']]],
+ ['_24height',['$height',['../classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80',1,'photo_driver']]],
+ ['_24hooks',['$hooks',['../classApp.html#a3694aa1907aa103a2adbc71f926f0fa0',1,'App']]],
+ ['_24hostname',['$hostname',['../classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3',1,'App']]],
+ ['_24i',['$i',['../docblox__errorchecker_8php.html#a83018d9153d17d91fbcf3bc10158d34f',1,'docblox_errorchecker.php']]],
+ ['_24identities',['$identities',['../classApp.html#a7954862f44f606b0ff83d4c74d15e792',1,'App']]],
+ ['_24image',['$image',['../classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55',1,'photo_driver']]],
+ ['_24infile',['$infile',['../php2po_8php.html#a61f8ddeb5557d46ebc546cc355bda214',1,'php2po.php']]],
+ ['_24ink',['$ink',['../php2po_8php.html#a6b0b8ebd9ce811d1325ef2c129443bc0',1,'php2po.php']]],
+ ['_24install_5fwizard_5fpass',['$install_wizard_pass',['../setup_8php.html#addb24714bc2542aa4f4215e98fe48432',1,'setup.php']]],
+ ['_24interactive',['$interactive',['../classApp.html#a4c7cfc62d39508086cf300dc2e39c4df',1,'App']]],
+ ['_24js_5fsources',['$js_sources',['../classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d',1,'App']]],
+ ['_24k',['$k',['../php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178',1,'php2po.php']]],
+ ['_24lang',['$lang',['../classTemplate.html#ace26b8a4252fbc1c385d2b5e1e93e5c8',1,'Template']]],
+ ['_24language',['$language',['../classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f',1,'App']]],
+ ['_24ldelim',['$ldelim',['../classApp.html#a59dd4b665c70e7dbd80682c014ff7145',1,'App']]],
+ ['_24line_5fheight',['$line_height',['../redbasic_2php_2style_8php.html#a4131d1765ee4deb28e83fc4527943ee0',1,'$line_height():&#160;style.php'],['../redstrap_2php_2style_8php.html#a4131d1765ee4deb28e83fc4527943ee0',1,'$line_height():&#160;style.php']]],
+ ['_24linkcolour',['$linkcolour',['../redbasic_2php_2style_8php.html#a6628a80911a6b37b464ef110ac8f6e42',1,'$linkcolour():&#160;style.php'],['../redstrap_2php_2style_8php.html#a6628a80911a6b37b464ef110ac8f6e42',1,'$linkcolour():&#160;style.php']]],
+ ['_24mode',['$mode',['../classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a',1,'Conversation']]],
+ ['_24module',['$module',['../classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d',1,'App']]],
+ ['_24module_5floaded',['$module_loaded',['../classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165',1,'App']]],
+ ['_24name',['$name',['../classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02',1,'FriendicaSmartyEngine\$name()'],['../classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae',1,'Template\$name()']]],
+ ['_24nav_5fbg_5f1',['$nav_bg_1',['../redbasic_2php_2style_8php.html#a232513bf4339fe34908c4c63cb93168b',1,'$nav_bg_1():&#160;style.php'],['../redstrap_2php_2style_8php.html#a232513bf4339fe34908c4c63cb93168b',1,'$nav_bg_1():&#160;style.php']]],
+ ['_24nav_5fbg_5f2',['$nav_bg_2',['../redbasic_2php_2style_8php.html#a03a72942b7428fd9af1224770d20a8ba',1,'$nav_bg_2():&#160;style.php'],['../redstrap_2php_2style_8php.html#a03a72942b7428fd9af1224770d20a8ba',1,'$nav_bg_2():&#160;style.php']]],
+ ['_24nav_5fbg_5f3',['$nav_bg_3',['../redbasic_2php_2style_8php.html#acc190405dda0a23a80551dee11c74c0c',1,'$nav_bg_3():&#160;style.php'],['../redstrap_2php_2style_8php.html#acc190405dda0a23a80551dee11c74c0c',1,'$nav_bg_3():&#160;style.php']]],
+ ['_24nav_5fbg_5f4',['$nav_bg_4',['../redbasic_2php_2style_8php.html#aef266cfcb27c6ddb3292584c945bab33',1,'$nav_bg_4():&#160;style.php'],['../redstrap_2php_2style_8php.html#aef266cfcb27c6ddb3292584c945bab33',1,'$nav_bg_4():&#160;style.php']]],
+ ['_24nav_5fsel',['$nav_sel',['../classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c',1,'App']]],
+ ['_24navcolour',['$navcolour',['../redbasic_2php_2style_8php.html#a938168352fd3cdaa1c10c16a34f5938a',1,'$navcolour():&#160;style.php'],['../redstrap_2php_2style_8php.html#a938168352fd3cdaa1c10c16a34f5938a',1,'$navcolour():&#160;style.php']]],
+ ['_24needed',['$needed',['../docblox__errorchecker_8php.html#a852004caba0a34390297a079f4aaac73',1,'docblox_errorchecker.php']]],
+ ['_24nodes',['$nodes',['../classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1',1,'Template']]],
+ ['_24observer',['$observer',['../classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f',1,'App\$observer()'],['../classConversation.html#a8748445aa26047ebed5141f3c3cbc244',1,'Conversation\$observer()']]],
+ ['_24out',['$out',['../php2po_8php.html#a48cb304902320d173a4eaa41543327b9',1,'php2po.php']]],
+ ['_24owner_5fname',['$owner_name',['../classItem.html#a9594df6014b0b6f45364ea7a34510130',1,'Item']]],
+ ['_24owner_5fphoto',['$owner_photo',['../classItem.html#a078f95b4134ce3a1df344cf8d386f986',1,'Item']]],
+ ['_24owner_5furl',['$owner_url',['../classItem.html#afa54851df82962c7c42dea3cc9f5c92c',1,'Item']]],
+ ['_24page',['$page',['../classApp.html#a4b67935096f66d1f14b657399a8461ac',1,'App']]],
+ ['_24pager',['$pager',['../classApp.html#a6bcb19cdc4907077da72864686d5a780',1,'App']]],
+ ['_24parent',['$parent',['../classItem.html#a1a1e42877e6ac7af50286142ceb483d2',1,'Item']]],
+ ['_24path',['$path',['../classApp.html#acad5896b7a79ae31433ad8f89606c728',1,'App']]],
+ ['_24perms',['$perms',['../classApp.html#ab47de68fa39806d1fb0976407e188b77',1,'App']]],
+ ['_24phpath',['$phpath',['../typo_8php.html#a3ecd17ac846be1b35f3662f5c12ab6bd',1,'typo.php']]],
+ ['_24phpfile',['$phpfile',['../php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4',1,'php2po.php']]],
+ ['_24plugins',['$plugins',['../classApp.html#ae9f96338f32187d308b67b980eea0008',1,'App']]],
+ ['_24pofile',['$pofile',['../php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1',1,'php2po.php']]],
+ ['_24preview',['$preview',['../classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae',1,'Conversation']]],
+ ['_24profile',['$profile',['../classApp.html#a57d041fcc003d08c127dfa99a02bc192',1,'App']]],
+ ['_24profile_5fowner',['$profile_owner',['../classConversation.html#a2f12724ef0244e9049fe1bb9641b516d',1,'Conversation']]],
+ ['_24profile_5fuid',['$profile_uid',['../classApp.html#a08c24d6a6fc52fcc784b0f765f13b820',1,'App']]],
+ ['_24query_5fstring',['$query_string',['../classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f',1,'App']]],
+ ['_24r',['$r',['../classTemplate.html#aac9a4638f11271e1b1dcc9f247242718',1,'Template']]],
+ ['_24radius',['$radius',['../redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351',1,'style.php']]],
+ ['_24rdelim',['$rdelim',['../classApp.html#a244b2d53b21be269aad2269d23192f95',1,'App']]],
+ ['_24redbasic_5ffont_5fsize',['$redbasic_font_size',['../redbasic_2php_2style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda',1,'$redbasic_font_size():&#160;style.php'],['../redstrap_2php_2style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda',1,'$redbasic_font_size():&#160;style.php']]],
+ ['_24redirect_5furl',['$redirect_url',['../classItem.html#a5b561415861f5b89b0733aacfe0428d1',1,'Item']]],
+ ['_24replace',['$replace',['../classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10',1,'Template']]],
+ ['_24res',['$res',['../docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5',1,'docblox_errorchecker.php']]],
+ ['_24resolution',['$resolution',['../redbasic_2php_2style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc',1,'$resolution():&#160;style.php'],['../redstrap_2php_2style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc',1,'$resolution():&#160;style.php']]],
+ ['_24s',['$s',['../extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634',1,'extract.php']]],
+ ['_24scheme',['$scheme',['../classApp.html#ad082d63acc078e5bf23825a03bdd6a76',1,'App']]],
+ ['_24search',['$search',['../classTemplate.html#a317d535946dc065c35dd5cd38380e6c6',1,'Template']]],
+ ['_24session_5fexists',['$session_exists',['../session_8php.html#a62e4a6cb26b4bb1b8ddd8277b26090eb',1,'session.php']]],
+ ['_24session_5fexpire',['$session_expire',['../session_8php.html#af0100a2642a5268594bbd5742a03d885',1,'session.php']]],
+ ['_24shadows',['$shadows',['../redbasic_2php_2style_8php.html#acb3046ad9c01b7d60cde20f58d77c548',1,'$shadows():&#160;style.php'],['../redstrap_2php_2style_8php.html#acb3046ad9c01b7d60cde20f58d77c548',1,'$shadows():&#160;style.php']]],
+ ['_24shiny',['$shiny',['../redbasic_2php_2style_8php.html#a0b942d36d8862908864e2ffa4521be70',1,'$shiny():&#160;style.php'],['../redstrap_2php_2style_8php.html#a0b942d36d8862908864e2ffa4521be70',1,'$shiny():&#160;style.php']]],
+ ['_24site_5fcolour',['$site_colour',['../redbasic_2php_2style_8php.html#a02d39b683a42fffbb27823d3860283bd',1,'$site_colour():&#160;style.php'],['../redstrap_2php_2style_8php.html#a02d39b683a42fffbb27823d3860283bd',1,'$site_colour():&#160;style.php']]],
+ ['_24site_5fline_5fheight',['$site_line_height',['../redbasic_2php_2style_8php.html#a8749837e08dfb3372662af9c33fa2a2e',1,'$site_line_height():&#160;style.php'],['../redstrap_2php_2style_8php.html#a8749837e08dfb3372662af9c33fa2a2e',1,'$site_line_height():&#160;style.php']]],
+ ['_24site_5fredbasic_5ffont_5fsize',['$site_redbasic_font_size',['../redbasic_2php_2style_8php.html#a45e6fafa363bc4586fa91dce1786be4f',1,'$site_redbasic_font_size():&#160;style.php'],['../redstrap_2php_2style_8php.html#a45e6fafa363bc4586fa91dce1786be4f',1,'$site_redbasic_font_size():&#160;style.php']]],
+ ['_24sourcename',['$sourcename',['../classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11',1,'App']]],
+ ['_24stack',['$stack',['../classTemplate.html#a6f0efc256688c36110180b501067ff11',1,'Template']]],
+ ['_24str',['$str',['../typohelper_8php.html#a7542d95618011800c61773127fa625cf',1,'typohelper.php']]],
+ ['_24strings',['$strings',['../classApp.html#a5f64620473a9727a48ebe9cf6f335a98',1,'App']]],
+ ['_24template',['$template',['../classItem.html#a7f7bc059de377319282cb4ef4a828480',1,'Item']]],
+ ['_24template_5fengine_5finstance',['$template_engine_instance',['../classApp.html#a6844aedad10e201b8c3d80cfc9e876d3',1,'App']]],
+ ['_24template_5fengines',['$template_engines',['../classApp.html#a6859a4848a5c0049b4134cc4b34228b6',1,'App']]],
+ ['_24theme',['$theme',['../classApp.html#a764cc6cd7578132c21d2b4545de9301c',1,'App']]],
+ ['_24theme_5finfo',['$theme_info',['../classApp.html#aeca29fd4f7192ca07369b3c598c36e67',1,'App']]],
+ ['_24theme_5fthread_5fallow',['$theme_thread_allow',['../classApp.html#a487332f8de40414ca1a54a4265570b70',1,'App']]],
+ ['_24threaded',['$threaded',['../classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2',1,'Item']]],
+ ['_24threads',['$threads',['../classConversation.html#a41f4a549e6a99f98935c4742addd22c8',1,'Conversation']]],
+ ['_24timezone',['$timezone',['../classApp.html#ab35b01a366a2ea95725e97af278f87ab',1,'App']]],
+ ['_24toplevel',['$toplevel',['../classItem.html#a5cfa6cf964f433a917a81cab079ff9d8',1,'Item']]],
+ ['_24type',['$type',['../classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03',1,'photo_driver']]],
+ ['_24types',['$types',['../classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03',1,'photo_driver']]],
+ ['_24uid',['$uid',['../redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a',1,'style.php']]],
+ ['_24user',['$user',['../classApp.html#a91fd3c8b89016113b05f3be24805ccff',1,'App']]],
+ ['_24valid',['$valid',['../classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9',1,'photo_driver']]],
+ ['_24videoheight',['$videoheight',['../classApp.html#a56b1a432c96aef8b1971f779c9d93c8c',1,'App']]],
+ ['_24videowidth',['$videowidth',['../classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8',1,'App']]],
+ ['_24visiting',['$visiting',['../classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8',1,'Item']]],
+ ['_24wall_5fto_5fwall',['$wall_to_wall',['../classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189',1,'Item']]],
+ ['_24widgetlist',['$widgetlist',['../classApp.html#a4833bee2eae4ad1691a04fa19e11a766',1,'App']]],
+ ['_24widgets',['$widgets',['../classApp.html#aa5a87c46ab3fee21362c466bf78042ef',1,'App']]],
+ ['_24width',['$width',['../classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1',1,'photo_driver']]],
+ ['_24writable',['$writable',['../classConversation.html#ae81221251307e315f566a11f921ce0a9',1,'Conversation']]],
+ ['_24x',['$x',['../redbasic_2php_2style_8php.html#af3a16c5f0dd7a74cf9acf6a49fff73a7',1,'style.php']]],
+ ['_24zones',['$zones',['../extract_8php.html#a0cbe524ffc9a496114fd7ba9f423ef44',1,'extract.php']]]
+];
diff --git a/doc/html/search/all_5f.html b/doc/html/search/all_5f.html
new file mode 100644
index 000000000..879d79268
--- /dev/null
+++ b/doc/html/search/all_5f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_5f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_5f.js b/doc/html/search/all_5f.js
new file mode 100644
index 000000000..3095618eb
--- /dev/null
+++ b/doc/html/search/all_5f.js
@@ -0,0 +1,18 @@
+var searchData=
+[
+ ['_5f_5fconstruct',['__construct',['../classApp.html#af6d39f63fb7116bbeb04e51696f99474',1,'App\__construct()'],['../classConversation.html#a6b064d00c56a6b7dec359d4348711c84',1,'Conversation\__construct()'],['../classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186',1,'dba_driver\__construct()'],['../classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6',1,'FriendicaSmarty\__construct()'],['../classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6',1,'FriendicaSmartyEngine\__construct()'],['../classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2',1,'Item\__construct()'],['../classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6',1,'FKOAuth1\__construct()'],['../classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae',1,'photo_driver\__construct()']]],
+ ['_5f_5fdestruct',['__destruct',['../classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721',1,'dba_driver\__destruct()'],['../classphoto__driver.html#ae4501abdc9651359f81d036b63625686',1,'photo_driver\__destruct()']]],
+ ['_5fbuild_5fnodes',['_build_nodes',['../classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4',1,'Template']]],
+ ['_5fget_5fvar',['_get_var',['../classTemplate.html#aae9c4d761ea1298e745e8052d7910194',1,'Template']]],
+ ['_5fpop_5fstack',['_pop_stack',['../classTemplate.html#a35d599c9b53a02e2fe2232e5b7ed5da7',1,'Template']]],
+ ['_5fpreg_5ferror',['_preg_error',['../classTemplate.html#a37c15f6d1ade500943629f27a62808b7',1,'Template']]],
+ ['_5fpush_5fstack',['_push_stack',['../classTemplate.html#aa6a087e0b7b887dd1c98c9e0ecbd3b29',1,'Template']]],
+ ['_5freplcb',['_replcb',['../classTemplate.html#ae791766c3d055f7f1ba5a5e60d647934',1,'Template']]],
+ ['_5freplcb_5fdebug',['_replcb_debug',['../classTemplate.html#a4b933954086d9e01a1804b0b1c6ee93e',1,'Template']]],
+ ['_5freplcb_5ffor',['_replcb_for',['../classTemplate.html#abf71098c80fd1f218a59452b3408309e',1,'Template']]],
+ ['_5freplcb_5fif',['_replcb_if',['../classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228',1,'Template']]],
+ ['_5freplcb_5finc',['_replcb_inc',['../classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677',1,'Template']]],
+ ['_5freplcb_5fnode',['_replcb_node',['../classTemplate.html#aa6f9bd7a8f7512efcf90e8d376fe05ee',1,'Template']]],
+ ['_5fwell_5fknown_2ephp',['_well_known.php',['../__well__known_8php.html',1,'']]],
+ ['_5fwell_5fknown_5finit',['_well_known_init',['../__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0',1,'_well_known.php']]]
+];
diff --git a/doc/html/search/all_61.html b/doc/html/search/all_61.html
new file mode 100644
index 000000000..f85089b55
--- /dev/null
+++ b/doc/html/search/all_61.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_61.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_61.js b/doc/html/search/all_61.js
new file mode 100644
index 000000000..6c4bd6b16
--- /dev/null
+++ b/doc/html/search/all_61.js
@@ -0,0 +1,168 @@
+var searchData=
+[
+ ['abook_5fconnections',['abook_connections',['../Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e',1,'Contact.php']]],
+ ['abook_5fflag_5farchived',['ABOOK_FLAG_ARCHIVED',['../boot_8php.html#a222395aa223cfbff6166fab0b4e2e1d5',1,'boot.php']]],
+ ['abook_5fflag_5fblocked',['ABOOK_FLAG_BLOCKED',['../boot_8php.html#a52b599cd13e152ebc80d7e4413683195',1,'boot.php']]],
+ ['abook_5fflag_5fhidden',['ABOOK_FLAG_HIDDEN',['../boot_8php.html#a34c756469ebed32e2fc987bcde62d382',1,'boot.php']]],
+ ['abook_5fflag_5fignored',['ABOOK_FLAG_IGNORED',['../boot_8php.html#aa3425e2de85b08f7041656d3a8502cb6',1,'boot.php']]],
+ ['abook_5fflag_5fpending',['ABOOK_FLAG_PENDING',['../boot_8php.html#a68eebe493e6f729ffd1aeda7a4b11155',1,'boot.php']]],
+ ['abook_5fflag_5fself',['ABOOK_FLAG_SELF',['../boot_8php.html#a0450389f24c632906fbc24347700a543',1,'boot.php']]],
+ ['abook_5fself',['abook_self',['../Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5',1,'Contact.php']]],
+ ['abook_5ftoggle_5fflag',['abook_toggle_flag',['../Contact_8php.html#a024919623a830e8703ac4f23496dd66c',1,'Contact.php']]],
+ ['absurl',['absurl',['../boot_8php.html#a081307d681d7d04f17b9ced2076e7c85',1,'boot.php']]],
+ ['access_5ftoken_5fduration',['ACCESS_TOKEN_DURATION',['../oauth_8php.html#ad343cab37aa860d2d14dc86b7f5ca0c6',1,'oauth.php']]],
+ ['account_2ephp',['account.php',['../account_8php.html',1,'']]],
+ ['account_5fblocked',['ACCOUNT_BLOCKED',['../boot_8php.html#af3bdfc20979c16f15bb9c60446a480f9',1,'boot.php']]],
+ ['account_5fexpired',['ACCOUNT_EXPIRED',['../boot_8php.html#a400519fa181591cd6fdbb8f25fbcba0a',1,'boot.php']]],
+ ['account_5fok',['ACCOUNT_OK',['../boot_8php.html#a84057c5bfa1bca5fba8497fe005ee4d8',1,'boot.php']]],
+ ['account_5fpending',['ACCOUNT_PENDING',['../boot_8php.html#a032bbd6d0321e99e9117332c9ed2b1b8',1,'boot.php']]],
+ ['account_5fremoved',['ACCOUNT_REMOVED',['../boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78',1,'boot.php']]],
+ ['account_5frole_5fadmin',['ACCOUNT_ROLE_ADMIN',['../boot_8php.html#ac8400313df2c831653f9036f71ebd86d',1,'boot.php']]],
+ ['account_5ftotal',['account_total',['../account_8php.html#a43e3042b2723d76915a030bac3c668b6',1,'account.php']]],
+ ['account_5funverified',['ACCOUNT_UNVERIFIED',['../boot_8php.html#af3a4271630aabd8be592213f925d6a36',1,'boot.php']]],
+ ['account_5fverify_5fpassword',['account_verify_password',['../auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee',1,'auth.php']]],
+ ['acknowledge_5fpermissions',['acknowledge_permissions',['../classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a',1,'ProtoDriver\acknowledge_permissions()'],['../classZotDriver.html#a3cfdf443da4e5326e205855d7c0054f2',1,'ZotDriver\acknowledge_permissions()']]],
+ ['acl_2ephp',['acl.php',['../acl_8php.html',1,'']]],
+ ['acl_5finit',['acl_init',['../acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a',1,'acl.php']]],
+ ['acl_5fselectors',['acl_selectors',['../namespaceacl__selectors.html',1,'']]],
+ ['acl_5fselectors_2ephp',['acl_selectors.php',['../acl__selectors_8php.html',1,'']]],
+ ['activities_2ephp',['activities.php',['../activities_8php.html',1,'']]],
+ ['activity_5fdislike',['ACTIVITY_DISLIKE',['../boot_8php.html#a0e57f846e6d47a308feced0f7274f178',1,'boot.php']]],
+ ['activity_5ffavorite',['ACTIVITY_FAVORITE',['../boot_8php.html#a3e2ea123d29a72012db1241f96280b0e',1,'boot.php']]],
+ ['activity_5ffollow',['ACTIVITY_FOLLOW',['../boot_8php.html#a5ae728ac966ea1d3525a19e7fec59434',1,'boot.php']]],
+ ['activity_5ffriend',['ACTIVITY_FRIEND',['../boot_8php.html#a176664e78dcb9132e16be69418223eb2',1,'boot.php']]],
+ ['activity_5fjoin',['ACTIVITY_JOIN',['../boot_8php.html#aced60c7285192e80b7c4757e45a7f1e3',1,'boot.php']]],
+ ['activity_5flike',['ACTIVITY_LIKE',['../boot_8php.html#abdcdfc873ace4e0902177bad934de0c0',1,'boot.php']]],
+ ['activity_5fmatch',['activity_match',['../text_8php.html#af8a3e3a66a7b862d4510f145d2e13186',1,'text.php']]],
+ ['activity_5fmood',['ACTIVITY_MOOD',['../boot_8php.html#a7aa57438db03834aaa0b468bdce773a6',1,'boot.php']]],
+ ['activity_5fobj_5falbum',['ACTIVITY_OBJ_ALBUM',['../boot_8php.html#aaf9b76832ee5f85e56466af162ba8a14',1,'boot.php']]],
+ ['activity_5fobj_5fcomment',['ACTIVITY_OBJ_COMMENT',['../boot_8php.html#a0a98dd0110dc6c8e24cefc8ae74d5562',1,'boot.php']]],
+ ['activity_5fobj_5fevent',['ACTIVITY_OBJ_EVENT',['../boot_8php.html#a2e90096fede6acce16abf0da8cb2febe',1,'boot.php']]],
+ ['activity_5fobj_5fgroup',['ACTIVITY_OBJ_GROUP',['../boot_8php.html#a7bff2278e68a71e524afd1c7c951e1e3',1,'boot.php']]],
+ ['activity_5fobj_5fheart',['ACTIVITY_OBJ_HEART',['../boot_8php.html#ad302cb26b838898d475f57f61b0fcc9f',1,'boot.php']]],
+ ['activity_5fobj_5fnote',['ACTIVITY_OBJ_NOTE',['../boot_8php.html#a44d069c8a1cfcc6d2007c506a17ff28f',1,'boot.php']]],
+ ['activity_5fobj_5fp_5fphoto',['ACTIVITY_OBJ_P_PHOTO',['../boot_8php.html#a74bf27f7564c9a37975e7b37d973dcab',1,'boot.php']]],
+ ['activity_5fobj_5fperson',['ACTIVITY_OBJ_PERSON',['../boot_8php.html#a2f8f25b13480c37a5f22511f53da8bab',1,'boot.php']]],
+ ['activity_5fobj_5fphoto',['ACTIVITY_OBJ_PHOTO',['../boot_8php.html#a774f0f792ebfec1e774c5a17bb9d5966',1,'boot.php']]],
+ ['activity_5fobj_5fprofile',['ACTIVITY_OBJ_PROFILE',['../boot_8php.html#a62c832a95e38b1fa23e6cef39521b7d5',1,'boot.php']]],
+ ['activity_5fobj_5ftagterm',['ACTIVITY_OBJ_TAGTERM',['../boot_8php.html#a1da180f961f49a11573cac4ff6c62c05',1,'boot.php']]],
+ ['activity_5fobj_5fthing',['ACTIVITY_OBJ_THING',['../boot_8php.html#a0fb63e51c2a9814941842ae8f2f4dff8',1,'boot.php']]],
+ ['activity_5fpoke',['ACTIVITY_POKE',['../boot_8php.html#a14ba8f9e162f2559831ee3bf98e0c3bd',1,'boot.php']]],
+ ['activity_5fpost',['ACTIVITY_POST',['../boot_8php.html#a5c3747e0f505f0d5271dc4c54e3feaf4',1,'boot.php']]],
+ ['activity_5freq_5ffriend',['ACTIVITY_REQ_FRIEND',['../boot_8php.html#afe084c30a1810c10442edb4fbcbc0086',1,'boot.php']]],
+ ['activity_5fsanitise',['activity_sanitise',['../items_8php.html#a36e656667193c83aa2cc03a024fc131b',1,'items.php']]],
+ ['activity_5ftag',['ACTIVITY_TAG',['../boot_8php.html#a12c781cefc20167231e2e3fd5866b1b5',1,'boot.php']]],
+ ['activity_5funfollow',['ACTIVITY_UNFOLLOW',['../boot_8php.html#a53e4bdb6f225da55115acb9277f75e53',1,'boot.php']]],
+ ['activity_5funfriend',['ACTIVITY_UNFRIEND',['../boot_8php.html#a29528a2544373cc19a378f350040c6a1',1,'boot.php']]],
+ ['activity_5fupdate',['ACTIVITY_UPDATE',['../boot_8php.html#a7f4264232dbb6c3b41f2617deecb1866',1,'boot.php']]],
+ ['add_5fchild',['add_child',['../classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51',1,'Item']]],
+ ['add_5fchildren_5fto_5flist',['add_children_to_list',['../conversation_8php.html#ad3e1d4b15e7d6d026ee182edd58f692b',1,'conversation.php']]],
+ ['add_5ffcontact',['add_fcontact',['../include_2network_8php.html#a0bdc4b0bfc54797c249dc4eca25aeda4',1,'network.php']]],
+ ['add_5fthread',['add_thread',['../classConversation.html#a8335cdd43f1836e3c255638e61a09e16',1,'Conversation']]],
+ ['admin_2ephp',['admin.php',['../admin_8php.html',1,'']]],
+ ['admin_5fcontent',['admin_content',['../admin_8php.html#afef415e4011607fbb665610441595015',1,'admin.php']]],
+ ['admin_5fpage_5fdbsync',['admin_page_dbsync',['../admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade',1,'admin.php']]],
+ ['admin_5fpage_5flogs',['admin_page_logs',['../admin_8php.html#a1d1362698af14d209aa3a0fb655551dd',1,'admin.php']]],
+ ['admin_5fpage_5flogs_5fpost',['admin_page_logs_post',['../admin_8php.html#a233b7c8c31776b7020532003c6e44e1c',1,'admin.php']]],
+ ['admin_5fpage_5fplugins',['admin_page_plugins',['../admin_8php.html#a54128076986ba80c4a103de3fc3e19a8',1,'admin.php']]],
+ ['admin_5fpage_5fsite',['admin_page_site',['../admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e',1,'admin.php']]],
+ ['admin_5fpage_5fsite_5fpost',['admin_page_site_post',['../admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f',1,'admin.php']]],
+ ['admin_5fpage_5fsummary',['admin_page_summary',['../admin_8php.html#ac6e95b920b5abd030cc522964987087a',1,'admin.php']]],
+ ['admin_5fpage_5fthemes',['admin_page_themes',['../admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb',1,'admin.php']]],
+ ['admin_5fpage_5fusers',['admin_page_users',['../admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2',1,'admin.php']]],
+ ['admin_5fpage_5fusers_5fpost',['admin_page_users_post',['../admin_8php.html#a5a696706a3869800e65fb365214241b7',1,'admin.php']]],
+ ['admin_5fpost',['admin_post',['../admin_8php.html#acf51f5837a7427832144c2bf7308ada3',1,'admin.php']]],
+ ['advanced_5fprofile',['advanced_profile',['../profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4',1,'profile_advanced.php']]],
+ ['aes256cbc_5fdecrypt',['AES256CBC_decrypt',['../crypto_8php.html#ac852ee41392d1358c3a54d54935e0bf9',1,'crypto.php']]],
+ ['aes256cbc_5fencrypt',['AES256CBC_encrypt',['../crypto_8php.html#a5c61821d205f95f127114159cbffa764',1,'crypto.php']]],
+ ['aes_5fencapsulate',['aes_encapsulate',['../crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286',1,'crypto.php']]],
+ ['aes_5funencapsulate',['aes_unencapsulate',['../crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914',1,'crypto.php']]],
+ ['age',['age',['../datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df',1,'datetime.php']]],
+ ['all_5ffriends',['all_friends',['../socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586',1,'socgraph.php']]],
+ ['allfriends_2ephp',['allfriends.php',['../allfriends_8php.html',1,'']]],
+ ['allfriends_5fcontent',['allfriends_content',['../allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83',1,'allfriends.php']]],
+ ['allowed_5femail',['allowed_email',['../include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694',1,'network.php']]],
+ ['allowed_5fpublic_5frecips',['allowed_public_recips',['../zot_8php.html#a703f528ade8382cf374e4119bd6f7859',1,'zot.php']]],
+ ['allowed_5furl',['allowed_url',['../include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7',1,'network.php']]],
+ ['alt_5fpager',['alt_pager',['../text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85',1,'text.php']]],
+ ['api_2ephp',['api.php',['../mod_2api_8php.html',1,'']]],
+ ['api_2ephp',['api.php',['../include_2api_8php.html',1,'']]],
+ ['api_5faccount_5flogout',['api_account_logout',['../include_2api_8php.html#a2e94eab9d6c164bfef7a1b2ab87b339b',1,'api.php']]],
+ ['api_5faccount_5frate_5flimit_5fstatus',['api_account_rate_limit_status',['../include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5',1,'api.php']]],
+ ['api_5faccount_5fverify_5fcredentials',['api_account_verify_credentials',['../include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad',1,'api.php']]],
+ ['api_5falbums',['api_albums',['../include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18',1,'api.php']]],
+ ['api_5fapply_5ftemplate',['api_apply_template',['../include_2api_8php.html#a5990101034e7abf6404feba3cd273629',1,'api.php']]],
+ ['api_5fcall',['api_call',['../include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5',1,'api.php']]],
+ ['api_5fchannel_5fstream',['api_channel_stream',['../include_2api_8php.html#a72bfecac1970bc29b853073e816388ff',1,'api.php']]],
+ ['api_5fcontent',['api_content',['../mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d',1,'api.php']]],
+ ['api_5fdate',['api_date',['../include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25',1,'api.php']]],
+ ['api_5fdirect_5fmessages_5fall',['api_direct_messages_all',['../include_2api_8php.html#a970b02c06dea8b229aa3d5fff9cf4705',1,'api.php']]],
+ ['api_5fdirect_5fmessages_5fbox',['api_direct_messages_box',['../include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5',1,'api.php']]],
+ ['api_5fdirect_5fmessages_5fconversation',['api_direct_messages_conversation',['../include_2api_8php.html#a9160288b7ac220635942d8dc209b78c3',1,'api.php']]],
+ ['api_5fdirect_5fmessages_5finbox',['api_direct_messages_inbox',['../include_2api_8php.html#ad2b0192f3006918bea895de8074bf8d2',1,'api.php']]],
+ ['api_5fdirect_5fmessages_5fnew',['api_direct_messages_new',['../include_2api_8php.html#a0991f72554f821255397d615e76f3203',1,'api.php']]],
+ ['api_5fdirect_5fmessages_5fsentbox',['api_direct_messages_sentbox',['../include_2api_8php.html#a58cf4c02ef435996f5c3bc4283d3968d',1,'api.php']]],
+ ['api_5fexport_5fbasic',['api_export_basic',['../include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53',1,'api.php']]],
+ ['api_5ffavorites',['api_favorites',['../include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f',1,'api.php']]],
+ ['api_5fff_5fids',['api_ff_ids',['../include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8',1,'api.php']]],
+ ['api_5ffollowers_5fids',['api_followers_ids',['../include_2api_8php.html#ab1ecb58954f722444bfe03233345cb1b',1,'api.php']]],
+ ['api_5fformat_5fas',['api_format_as',['../include_2api_8php.html#a18cab7c6391df5c421753463f5d2a879',1,'api.php']]],
+ ['api_5fformat_5fitems',['api_format_items',['../include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea',1,'api.php']]],
+ ['api_5fformat_5fmessages',['api_format_messages',['../include_2api_8php.html#ae82608c317421f27446465aa6724733d',1,'api.php']]],
+ ['api_5ffriendica_5fversion',['api_friendica_version',['../include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74',1,'api.php']]],
+ ['api_5ffriends_5fids',['api_friends_ids',['../include_2api_8php.html#acafd2899309a005fcb725289173dc7fe',1,'api.php']]],
+ ['api_5fget_5fuser',['api_get_user',['../include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa',1,'api.php']]],
+ ['api_5fhelp_5ftest',['api_help_test',['../include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23',1,'api.php']]],
+ ['api_5fitem_5fget_5fuser',['api_item_get_user',['../include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1',1,'api.php']]],
+ ['api_5flogin',['api_login',['../include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73',1,'api.php']]],
+ ['api_5foauth_5faccess_5ftoken',['api_oauth_access_token',['../include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0',1,'api.php']]],
+ ['api_5foauth_5frequest_5ftoken',['api_oauth_request_token',['../include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3',1,'api.php']]],
+ ['api_5fphotos',['api_photos',['../include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f',1,'api.php']]],
+ ['api_5fpost',['api_post',['../mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2',1,'api.php']]],
+ ['api_5fregister_5ffunc',['api_register_func',['../include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a',1,'api.php']]],
+ ['api_5frss_5fextra',['api_rss_extra',['../include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f',1,'api.php']]],
+ ['api_5fstatus_5fshow',['api_status_show',['../include_2api_8php.html#a645397787618b5c548a31e8686e8cca4',1,'api.php']]],
+ ['api_5fstatuses_5fdestroy',['api_statuses_destroy',['../include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4',1,'api.php']]],
+ ['api_5fstatuses_5ff',['api_statuses_f',['../include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410',1,'api.php']]],
+ ['api_5fstatuses_5ffollowers',['api_statuses_followers',['../include_2api_8php.html#a6951c690d87775eb37e569c66011988e',1,'api.php']]],
+ ['api_5fstatuses_5ffriends',['api_statuses_friends',['../include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e',1,'api.php']]],
+ ['api_5fstatuses_5fhome_5ftimeline',['api_statuses_home_timeline',['../include_2api_8php.html#a528d8070ee74ea800102936ce73cf366',1,'api.php']]],
+ ['api_5fstatuses_5fmediap',['api_statuses_mediap',['../include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95',1,'api.php']]],
+ ['api_5fstatuses_5fmentions',['api_statuses_mentions',['../include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e',1,'api.php']]],
+ ['api_5fstatuses_5fpublic_5ftimeline',['api_statuses_public_timeline',['../include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22',1,'api.php']]],
+ ['api_5fstatuses_5frepeat',['api_statuses_repeat',['../include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8',1,'api.php']]],
+ ['api_5fstatuses_5fshow',['api_statuses_show',['../include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63',1,'api.php']]],
+ ['api_5fstatuses_5fupdate',['api_statuses_update',['../include_2api_8php.html#ad4d1634df6b35126552324683caaffa2',1,'api.php']]],
+ ['api_5fstatuses_5fuser_5ftimeline',['api_statuses_user_timeline',['../include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283',1,'api.php']]],
+ ['api_5fstatusnet_5fconfig',['api_statusnet_config',['../include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08',1,'api.php']]],
+ ['api_5fstatusnet_5fversion',['api_statusnet_version',['../include_2api_8php.html#a8969e8d9c683f12ba17dcd4b059e020d',1,'api.php']]],
+ ['api_5fuser',['api_user',['../include_2api_8php.html#afb99daa6b731bf497b81f2128084852c',1,'api.php']]],
+ ['api_5fusers_5fshow',['api_users_show',['../include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76',1,'api.php']]],
+ ['app',['App',['../classApp.html',1,'']]],
+ ['appdirpath',['appdirpath',['../boot_8php.html#a75a90b0eadd0df510f7e63210733634d',1,'boot.php']]],
+ ['apps_2ephp',['apps.php',['../apps_8php.html',1,'']]],
+ ['apps_5fcontent',['apps_content',['../apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c',1,'apps.php']]],
+ ['argc',['argc',['../boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7',1,'boot.php']]],
+ ['argv',['argv',['../boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006',1,'boot.php']]],
+ ['arr_5fadd_5fhashes',['arr_add_hashes',['../parse__url_8php.html#aa7dd8f961bea042d62726ed909e4a868',1,'parse_url.php']]],
+ ['array_5fsanitise',['array_sanitise',['../items_8php.html#abf7a1b73eb352d79acd36309b0dababd',1,'items.php']]],
+ ['array_5fxmlify',['array_xmlify',['../text_8php.html#acedb584f65114a33f389efb796172a91',1,'text.php']]],
+ ['atom_5fauthor',['atom_author',['../items_8php.html#a016dd86c827d08db89061ea81d15c6cb',1,'items.php']]],
+ ['atom_5fentry',['atom_entry',['../items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6',1,'items.php']]],
+ ['atom_5ftime',['ATOM_TIME',['../boot_8php.html#ad34c1547020a305915bcc39707744690',1,'boot.php']]],
+ ['attach_2ephp',['attach.php',['../mod_2attach_8php.html',1,'']]],
+ ['attach_2ephp',['attach.php',['../include_2attach_8php.html',1,'']]],
+ ['attach_5fby_5fhash',['attach_by_hash',['../include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36',1,'attach.php']]],
+ ['attach_5fby_5fhash_5fnodata',['attach_by_hash_nodata',['../include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932',1,'attach.php']]],
+ ['attach_5fcount_5ffiles',['attach_count_files',['../include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3',1,'attach.php']]],
+ ['attach_5fflag_5fdir',['ATTACH_FLAG_DIR',['../boot_8php.html#aa74438cf71e48e37bf7b440b94243985',1,'boot.php']]],
+ ['attach_5fflag_5fos',['ATTACH_FLAG_OS',['../boot_8php.html#a781916f83fcc8ff1035649afa45f0292',1,'boot.php']]],
+ ['attach_5finit',['attach_init',['../mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1',1,'attach.php']]],
+ ['attach_5flist_5ffiles',['attach_list_files',['../include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d',1,'attach.php']]],
+ ['attach_5fstore',['attach_store',['../include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f',1,'attach.php']]],
+ ['attribute_5fcontains',['attribute_contains',['../text_8php.html#a95fd2f8f23a1948414a03ebc963bac57',1,'text.php']]],
+ ['auth_2ephp',['auth.php',['../auth_8php.html',1,'']]],
+ ['authenticate_5fsuccess',['authenticate_success',['../security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733',1,'security.php']]],
+ ['autoname',['autoname',['../text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca',1,'text.php']]],
+ ['avatar_5fimg',['avatar_img',['../include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7',1,'network.php']]]
+];
diff --git a/doc/html/search/all_62.html b/doc/html/search/all_62.html
new file mode 100644
index 000000000..f25fa2c88
--- /dev/null
+++ b/doc/html/search/all_62.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_62.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_62.js b/doc/html/search/all_62.js
new file mode 100644
index 000000000..5436f11a4
--- /dev/null
+++ b/doc/html/search/all_62.js
@@ -0,0 +1,25 @@
+var searchData=
+[
+ ['base64url_5fdecode',['base64url_decode',['../text_8php.html#a13286f8a95d2de6b102966ecc270c8d6',1,'text.php']]],
+ ['base64url_5fencode',['base64url_encode',['../text_8php.html#a070384ec000fd65043fce11d5392d241',1,'text.php']]],
+ ['baseobject',['BaseObject',['../classBaseObject.html',1,'']]],
+ ['baseobject_2ephp',['BaseObject.php',['../BaseObject_8php.html',1,'']]],
+ ['bb2diaspora',['bb2diaspora',['../bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c',1,'bb2diaspora.php']]],
+ ['bb2diaspora_2ephp',['bb2diaspora.php',['../bb2diaspora_8php.html',1,'']]],
+ ['bb_5fshareattributes',['bb_ShareAttributes',['../bbcode_8php.html#a52c45273fbb7ce5ec27094f7936856e1',1,'bbcode.php']]],
+ ['bb_5fshareattributessimple',['bb_ShareAttributesSimple',['../bbcode_8php.html#a2be26414a367118143cc89e2d58e7377',1,'bbcode.php']]],
+ ['bb_5fspacefy',['bb_spacefy',['../bbcode_8php.html#a8911e027907820df3db03b4f76724b50',1,'bbcode.php']]],
+ ['bb_5ftag_5fpreg_5freplace',['bb_tag_preg_replace',['../bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba',1,'bb2diaspora.php']]],
+ ['bb_5ftranslate_5fvideo',['bb_translate_video',['../text_8php.html#a3d2793d66db3345fd290b71e2eadf98e',1,'text.php']]],
+ ['bb_5funspacefy_5fand_5ftrim',['bb_unspacefy_and_trim',['../bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d',1,'bbcode.php']]],
+ ['bbcode',['bbcode',['../bbcode_8php.html#a009f61aaf78771737ed0765c8463911b',1,'bbcode.php']]],
+ ['bbcode_2ephp',['bbcode.php',['../bbcode_8php.html',1,'']]],
+ ['bbtoevent',['bbtoevent',['../event_8php.html#a180cccd63c2a2f00ff432b03113531f3',1,'event.php']]],
+ ['bbtovcal',['bbtovcal',['../event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279',1,'event.php']]],
+ ['best_5flink_5furl',['best_link_url',['../conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7',1,'conversation.php']]],
+ ['boot_2ephp',['boot.php',['../boot_8php.html',1,'']]],
+ ['breaklines',['breaklines',['../html2plain_8php.html#a3214912e3d00cf0a948072daccf16740',1,'html2plain.php']]],
+ ['build_5fpagehead',['build_pagehead',['../classApp.html#a08f0537964d98958d218066364cff785',1,'App']]],
+ ['build_5fquerystring',['build_querystring',['../boot_8php.html#a9cbab4ee728e9a8b4ce952bae643044e',1,'boot.php']]],
+ ['build_5fsync_5fpacket',['build_sync_packet',['../zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7',1,'zot.php']]]
+];
diff --git a/doc/html/search/all_63.html b/doc/html/search/all_63.html
new file mode 100644
index 000000000..e7f34db58
--- /dev/null
+++ b/doc/html/search/all_63.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_63.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_63.js b/doc/html/search/all_63.js
new file mode 100644
index 000000000..346f7b051
--- /dev/null
+++ b/doc/html/search/all_63.js
@@ -0,0 +1,125 @@
+var searchData=
+[
+ ['cache',['Cache',['../classCache.html',1,'']]],
+ ['cache_2ephp',['cache.php',['../cache_8php.html',1,'']]],
+ ['cal',['cal',['../datetime_8php.html#aea356409ba69f9de412298c998595dd2',1,'datetime.php']]],
+ ['call_5fhooks',['call_hooks',['../plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c',1,'plugin.php']]],
+ ['can_5fcomment_5fon_5fpost',['can_comment_on_post',['../items_8php.html#a1e75047cf175aaee8dd16aa761913ff9',1,'items.php']]],
+ ['categories_5fwidget',['categories_widget',['../contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353',1,'contact_widgets.php']]],
+ ['change_5fchannel',['change_channel',['../security_8php.html#a8d23d2597aae380a3341872fe9513380',1,'security.php']]],
+ ['change_5fpermissions',['change_permissions',['../classProtoDriver.html#a34b97ca5ef2165f2e16eb2fe59ff6c67',1,'ProtoDriver\change_permissions()'],['../classZotDriver.html#a6776935156accb0f170e2e24577133db',1,'ZotDriver\change_permissions()']]],
+ ['chanlink_5fcid',['chanlink_cid',['../text_8php.html#a85e3a4851c16674834010d8419a5d7ca',1,'text.php']]],
+ ['chanlink_5fhash',['chanlink_hash',['../text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0',1,'text.php']]],
+ ['chanlink_5furl',['chanlink_url',['../text_8php.html#a2e8d6c402603be3a1256a16605e09c2a',1,'text.php']]],
+ ['channel_2ephp',['channel.php',['../channel_8php.html',1,'']]],
+ ['channel_5faside',['channel_aside',['../channel_8php.html#aea8e189f2fbabfda779349dd94082e8e',1,'channel.php']]],
+ ['channel_5fcontent',['channel_content',['../channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1',1,'channel.php']]],
+ ['channel_5finit',['channel_init',['../channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc',1,'channel.php']]],
+ ['channel_5fremove',['channel_remove',['../Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa',1,'Contact.php']]],
+ ['channel_5ftotal',['channel_total',['../identity_8php.html#a77d2237f1846964634b1c99089c27c7d',1,'identity.php']]],
+ ['channelx_5fby_5fhash',['channelx_by_hash',['../Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258',1,'Contact.php']]],
+ ['channelx_5fby_5fn',['channelx_by_n',['../Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc',1,'Contact.php']]],
+ ['channelx_5fby_5fnick',['channelx_by_nick',['../Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e',1,'Contact.php']]],
+ ['chanview_2ephp',['chanview.php',['../chanview_8php.html',1,'']]],
+ ['chanview_5fcontent',['chanview_content',['../chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b',1,'chanview.php']]],
+ ['check_5faccount_5fadmin',['check_account_admin',['../account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f',1,'account.php']]],
+ ['check_5faccount_5femail',['check_account_email',['../account_8php.html#ae052bd5558847bd38e89c213561a9771',1,'account.php']]],
+ ['check_5faccount_5finvite',['check_account_invite',['../account_8php.html#aaff7720423417a4333697894ffd9ddeb',1,'account.php']]],
+ ['check_5faccount_5fpassword',['check_account_password',['../account_8php.html#a144b4891022567668375b58ea61cfff0',1,'account.php']]],
+ ['check_5fadd',['check_add',['../setup_8php.html#ae8e4d9279a61de74d5f39962cb7b6ca1',1,'setup.php']]],
+ ['check_5fconfig',['check_config',['../boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3',1,'boot.php']]],
+ ['check_5fform_5fsecurity_5fstd_5ferr_5fmsg',['check_form_security_std_err_msg',['../security_8php.html#a20f8b9851f23ee8894b8925584ef6821',1,'security.php']]],
+ ['check_5fform_5fsecurity_5ftoken',['check_form_security_token',['../security_8php.html#a9c6180e82150a5a9af91a1255d096b5c',1,'security.php']]],
+ ['check_5fform_5fsecurity_5ftoken_5fforbiddenonerr',['check_form_security_token_ForbiddenOnErr',['../security_8php.html#a444ac867dfa8c37cf0a7a226412bee28',1,'security.php']]],
+ ['check_5fform_5fsecurity_5ftoken_5fredirectonerr',['check_form_security_token_redirectOnErr',['../security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433',1,'security.php']]],
+ ['check_5ffuncs',['check_funcs',['../setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e',1,'setup.php']]],
+ ['check_5fhtaccess',['check_htaccess',['../setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4',1,'setup.php']]],
+ ['check_5fhtconfig',['check_htconfig',['../setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f',1,'setup.php']]],
+ ['check_5fkeys',['check_keys',['../setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76',1,'setup.php']]],
+ ['check_5flist_5fpermissions',['check_list_permissions',['../permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7',1,'permissions.php']]],
+ ['check_5fphp',['check_php',['../setup_8php.html#a14d208682a88632290c895d20da6e7d6',1,'setup.php']]],
+ ['check_5fsmarty3',['check_smarty3',['../setup_8php.html#afd8b0b3ade1507c45325caf377bf459d',1,'setup.php']]],
+ ['check_5fwall_5fto_5fwall',['check_wall_to_wall',['../classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8',1,'Item']]],
+ ['check_5fwebbie',['check_webbie',['../text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3',1,'text.php']]],
+ ['clean_5furls',['clean_urls',['../boot_8php.html#ab79b8b4555cae20d03f8200666d89d63',1,'boot.php']]],
+ ['clear',['clear',['../classCache.html#ab14d0f4bdf7116a94d545c574b38f568',1,'Cache']]],
+ ['cleardiv',['cleardiv',['../text_8php.html#afe18627c4983ee5f7c940a0992818cd5',1,'text.php']]],
+ ['cli_5fstartup',['cli_startup',['../cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b',1,'cli_startup.php']]],
+ ['cli_5fstartup_2ephp',['cli_startup.php',['../cli__startup_8php.html',1,'']]],
+ ['client_5fmode_5fload',['CLIENT_MODE_LOAD',['../boot_8php.html#af6f6f6f40139f12fc09ec47373b30919',1,'boot.php']]],
+ ['client_5fmode_5fnormal',['CLIENT_MODE_NORMAL',['../boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731',1,'boot.php']]],
+ ['client_5fmode_5fupdate',['CLIENT_MODE_UPDATE',['../boot_8php.html#a3f40aa5bafff8c4eebdc62e5121daf77',1,'boot.php']]],
+ ['close',['close',['../classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975',1,'dba_driver\close()'],['../classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e',1,'dba_mysql\close()'],['../classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55',1,'dba_mysqli\close()']]],
+ ['collect',['collect',['../classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d',1,'ProtoDriver\collect()'],['../classZotDriver.html#af65febb26031eb7f39871b9e2a539797',1,'ZotDriver\collect()']]],
+ ['collect_5fprivate',['collect_private',['../classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b',1,'ProtoDriver\collect_private()'],['../classZotDriver.html#a2e15ff09772f0608203dad1c98299394',1,'ZotDriver\collect_private()']]],
+ ['collect_5frecipients',['collect_recipients',['../items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70',1,'items.php']]],
+ ['collecturls',['collecturls',['../html2plain_8php.html#ae1c203d0f089d5678d73a6c64a395201',1,'html2plain.php']]],
+ ['common_2ephp',['common.php',['../common_8php.html',1,'']]],
+ ['common_5faside',['common_aside',['../common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a',1,'common.php']]],
+ ['common_5fcontent',['common_content',['../common_8php.html#ab63408f39abef7a6915186e8dabc5a96',1,'common.php']]],
+ ['common_5ffriends',['common_friends',['../socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918',1,'socgraph.php']]],
+ ['common_5ffriends_5fvisitor_5fwidget',['common_friends_visitor_widget',['../contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65',1,'contact_widgets.php']]],
+ ['common_5ffriends_5fzcid',['common_friends_zcid',['../socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9',1,'socgraph.php']]],
+ ['common_5finit',['common_init',['../common_8php.html#aca62f113655809f41f49042ce9b123c2',1,'common.php']]],
+ ['community_2ephp',['community.php',['../community_8php.html',1,'']]],
+ ['community_5fcontent',['community_content',['../community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a',1,'community.php']]],
+ ['community_5finit',['community_init',['../community_8php.html#a56c94ec978a38633c5628fa6f8e386d9',1,'community.php']]],
+ ['compare_5fpermissions',['compare_permissions',['../items_8php.html#a0790a4550b829e85504af548623002ca',1,'items.php']]],
+ ['completeurl',['completeurl',['../parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a',1,'parse_url.php']]],
+ ['config_2emd',['config.md',['../config_8md.html',1,'']]],
+ ['config_2ephp',['config.php',['../include_2config_8php.html',1,'']]],
+ ['config_2ephp',['config.php',['../view_2theme_2redbasic_2php_2config_8php.html',1,'']]],
+ ['config_2ephp',['config.php',['../view_2theme_2redstrap_2php_2config_8php.html',1,'']]],
+ ['connect',['connect',['../classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc',1,'dba_driver\connect()'],['../classdba__mysql.html#a1887338627ce0e28786839363014bd0b',1,'dba_mysql\connect()'],['../classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1',1,'dba_mysqli\connect()']]],
+ ['connections_2ephp',['connections.php',['../connections_8php.html',1,'']]],
+ ['connections_5faside',['connections_aside',['../connections_8php.html#af48f7ad20914760ba9874c090384e35a',1,'connections.php']]],
+ ['connections_5fclone',['connections_clone',['../connections_8php.html#a15af118efee9c948b6f8294e54a73bb2',1,'connections.php']]],
+ ['connections_5fcontent',['connections_content',['../connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c',1,'connections.php']]],
+ ['connections_5finit',['connections_init',['../connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558',1,'connections.php']]],
+ ['connections_5fpost',['connections_post',['../connections_8php.html#a1224058db8e3fb56463eb312f98e561d',1,'connections.php']]],
+ ['construct_5factivity_5fobject',['construct_activity_object',['../items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee',1,'items.php']]],
+ ['construct_5factivity_5ftarget',['construct_activity_target',['../items_8php.html#aa579bc4445d60098b1410961ca8e96b7',1,'items.php']]],
+ ['construct_5fpage',['construct_page',['../boot_8php.html#acc4e0c910af066148b810e5fde55fff1',1,'boot.php']]],
+ ['construct_5fverb',['construct_verb',['../items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8',1,'items.php']]],
+ ['consume_5ffeed',['consume_feed',['../items_8php.html#a8794863cdf8ce1333040933d3a3f66bd',1,'items.php']]],
+ ['contact_2ephp',['Contact.php',['../Contact_8php.html',1,'']]],
+ ['contact_5fblock',['contact_block',['../text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784',1,'text.php']]],
+ ['contact_5fis_5ffollower',['CONTACT_IS_FOLLOWER',['../boot_8php.html#ada72d88ae39a7e3b45baea201cb49a29',1,'boot.php']]],
+ ['contact_5fis_5ffriend',['CONTACT_IS_FRIEND',['../boot_8php.html#a27299ecfb9e9a99826f17a1c14c6995f',1,'boot.php']]],
+ ['contact_5fis_5fsharing',['CONTACT_IS_SHARING',['../boot_8php.html#a6c5e9e293c8242dcb9bc2c3ea2fee2c9',1,'boot.php']]],
+ ['contact_5fpoll_5finterval',['contact_poll_interval',['../contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f',1,'contact_selectors.php']]],
+ ['contact_5fprofile_5fassign',['contact_profile_assign',['../contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75',1,'contact_selectors.php']]],
+ ['contact_5fremove',['contact_remove',['../Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6',1,'Contact.php']]],
+ ['contact_5freputation',['contact_reputation',['../contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53',1,'contact_selectors.php']]],
+ ['contact_5fselect',['contact_select',['../acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91',1,'acl_selectors.php']]],
+ ['contact_5fselectors_2ephp',['contact_selectors.php',['../contact__selectors_8php.html',1,'']]],
+ ['contact_5fwidgets_2ephp',['contact_widgets.php',['../contact__widgets_8php.html',1,'']]],
+ ['contactgroup_2ephp',['contactgroup.php',['../contactgroup_8php.html',1,'']]],
+ ['contactgroup_5fcontent',['contactgroup_content',['../contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3',1,'contactgroup.php']]],
+ ['contacts_5fnot_5fgrouped',['contacts_not_grouped',['../Contact_8php.html#a228fc01f90ae9bfdde4c2ad0772bd7dc',1,'Contact.php']]],
+ ['conv_5fsort',['conv_sort',['../conversation_8php.html#abed85a41f1160598de880b84021c9cf7',1,'conversation.php']]],
+ ['conversation',['Conversation',['../classConversation.html',1,'Conversation'],['../conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1',1,'conversation(&amp;$a, $items, $mode, $update, $page_mode= &apos;traditional&apos;):&#160;conversation.php']]],
+ ['conversation_2ephp',['conversation.php',['../conversation_8php.html',1,'']]],
+ ['conversationobject_2ephp',['ConversationObject.php',['../ConversationObject_8php.html',1,'']]],
+ ['convert',['convert',['../namespacefriendica-to-smarty-tpl.html#a38503e37fe68ac27c88cce91a9ac9efa',1,'friendica-to-smarty-tpl']]],
+ ['convert_5fxml_5felement_5fto_5farray',['convert_xml_element_to_array',['../include_2network_8php.html#ad4056d3ce69988f5c1a997a79f503246',1,'network.php']]],
+ ['count_5fall_5ffriends',['count_all_friends',['../socgraph_8php.html#af29d056beec10b4e38e5209c92452894',1,'socgraph.php']]],
+ ['count_5fcommon_5ffriends',['count_common_friends',['../socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84',1,'socgraph.php']]],
+ ['count_5fcommon_5ffriends_5fzcid',['count_common_friends_zcid',['../socgraph_8php.html#af175807406d94407a5e11742a3287746',1,'socgraph.php']]],
+ ['count_5fdescendants',['count_descendants',['../classItem.html#aca1e66988ed00cd627b2a359b72cd0ae',1,'Item\count_descendants()'],['../conversation_8php.html#ab2383dff4f823e580399ff469d90ab19',1,'count_descendants():&#160;conversation.php']]],
+ ['create_5faccount',['create_account',['../account_8php.html#a141fe579c351c78209d425473f978eb5',1,'account.php']]],
+ ['create_5fdir_5faccount',['create_dir_account',['../identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd',1,'identity.php']]],
+ ['create_5fidentity',['create_identity',['../identity_8php.html#a345f4c943d84de502ec6e72d2c813945',1,'identity.php']]],
+ ['crepair_2ephp',['crepair.php',['../crepair_8php.html',1,'']]],
+ ['crepair_5fcontent',['crepair_content',['../crepair_8php.html#a29464c01838e209c8059cfcd2d195caa',1,'crepair.php']]],
+ ['crepair_5finit',['crepair_init',['../crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198',1,'crepair.php']]],
+ ['crepair_5fpost',['crepair_post',['../crepair_8php.html#acc4493e1ffd1462a605dd9b870034513',1,'crepair.php']]],
+ ['cronhooks_2ephp',['cronhooks.php',['../cronhooks_8php.html',1,'']]],
+ ['cronhooks_5frun',['cronhooks_run',['../cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca',1,'cronhooks.php']]],
+ ['cropimage',['cropImage',['../classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e',1,'photo_driver\cropImage()'],['../classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c',1,'photo_gd\cropImage()'],['../classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4',1,'photo_imagick\cropImage()']]],
+ ['crypto_2ephp',['crypto.php',['../crypto_8php.html',1,'']]],
+ ['curpageurl',['curPageURL',['../boot_8php.html#aa4221641e5c21db69fa52c426b9017f5',1,'boot.php']]],
+ ['current_5ftheme',['current_theme',['../boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13',1,'boot.php']]],
+ ['current_5ftheme_5furl',['current_theme_url',['../boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3',1,'boot.php']]],
+ ['cli_20config_20utility',['CLI config utility',['../md_config.html',1,'']]]
+];
diff --git a/doc/html/search/all_64.html b/doc/html/search/all_64.html
new file mode 100644
index 000000000..360601fa7
--- /dev/null
+++ b/doc/html/search/all_64.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_64.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_64.js b/doc/html/search/all_64.js
new file mode 100644
index 000000000..6dc2004fd
--- /dev/null
+++ b/doc/html/search/all_64.js
@@ -0,0 +1,74 @@
+var searchData=
+[
+ ['datesel',['datesel',['../datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8',1,'datetime.php']]],
+ ['datesel_5fformat',['datesel_format',['../datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa',1,'datetime.php']]],
+ ['datetime_2ephp',['datetime.php',['../datetime_8php.html',1,'']]],
+ ['datetime_5fconvert',['datetime_convert',['../datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226',1,'datetime.php']]],
+ ['day_5ftranslate',['day_translate',['../text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63',1,'text.php']]],
+ ['db_5fupdate_2ephp',['db_update.php',['../db__update_8php.html',1,'']]],
+ ['db_5fupdate_5fversion',['DB_UPDATE_VERSION',['../boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03',1,'boot.php']]],
+ ['dba_5fdriver',['dba_driver',['../classdba__driver.html',1,'']]],
+ ['dba_5fdriver_2ephp',['dba_driver.php',['../dba__driver_8php.html',1,'']]],
+ ['dba_5ffactory',['dba_factory',['../dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947',1,'dba_driver.php']]],
+ ['dba_5fmysql',['dba_mysql',['../classdba__mysql.html',1,'']]],
+ ['dba_5fmysql_2ephp',['dba_mysql.php',['../dba__mysql_8php.html',1,'']]],
+ ['dba_5fmysqli',['dba_mysqli',['../classdba__mysqli.html',1,'']]],
+ ['dba_5fmysqli_2ephp',['dba_mysqli.php',['../dba__mysqli_8php.html',1,'']]],
+ ['dba_5ftimer',['dba_timer',['../boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4',1,'boot.php']]],
+ ['dbesc',['dbesc',['../dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e',1,'dba_driver.php']]],
+ ['dbesc_5farray',['dbesc_array',['../dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4',1,'dba_driver.php']]],
+ ['dbesc_5farray_5fcb',['dbesc_array_cb',['../dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930',1,'dba_driver.php']]],
+ ['dbg',['dbg',['../classdba__driver.html#adcc1f8955120fec0708bce39202d0422',1,'dba_driver\dbg()'],['../dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb',1,'dbg():&#160;dba_driver.php']]],
+ ['dbq',['dbq',['../dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee',1,'dba_driver.php']]],
+ ['decode_5ftags',['decode_tags',['../items_8php.html#a56b2a4abcadfac71175cd50555528cc3',1,'items.php']]],
+ ['default_2ephp',['default.php',['../php_2default_8php.html',1,'']]],
+ ['default_2ephp',['default.php',['../theme_2redstrap_2php_2default_8php.html',1,'']]],
+ ['default_5fdb_5fengine',['DEFAULT_DB_ENGINE',['../boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d',1,'boot.php']]],
+ ['del_5fconfig',['del_config',['../include_2config_8php.html#a549910227348003efc3c05c9105c42da',1,'config.php']]],
+ ['del_5fpconfig',['del_pconfig',['../include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941',1,'config.php']]],
+ ['del_5fxconfig',['del_xconfig',['../include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72',1,'config.php']]],
+ ['delegate_2ephp',['delegate.php',['../delegate_8php.html',1,'']]],
+ ['delegate_5fcontent',['delegate_content',['../delegate_8php.html#a943eea8996ef348eb845c498f9f354dd',1,'delegate.php']]],
+ ['delete_5fimported_5fitem',['delete_imported_item',['../zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72',1,'zot.php']]],
+ ['delete_5fitem_5flowlevel',['delete_item_lowlevel',['../items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259',1,'items.php']]],
+ ['deletenode',['deletenode',['../html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2',1,'html2bbcode.php']]],
+ ['deliver',['deliver',['../classProtoDriver.html#a85e9063f6d0c304410cd246f7900ea1b',1,'ProtoDriver\deliver()'],['../classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f',1,'ZotDriver\deliver()']]],
+ ['deliver_2ephp',['deliver.php',['../deliver_8php.html',1,'']]],
+ ['deliver_5fprivate',['deliver_private',['../classProtoDriver.html#ae5b44739f84c10d00a9b65adf3785181',1,'ProtoDriver\deliver_private()'],['../classZotDriver.html#afaaf9941169fc966e43e25b25e6daea6',1,'ZotDriver\deliver_private()']]],
+ ['deliver_5frun',['deliver_run',['../deliver_8php.html#a397afcb9afecf0c1816b0951189dd346',1,'deliver.php']]],
+ ['destroy',['destroy',['../classphoto__driver.html#ae1a9edaf846983780dc65ea77d99e813',1,'photo_driver\destroy()'],['../classphoto__gd.html#a724703ecf71b1f1d04a80e86c76db6b1',1,'photo_gd\destroy()'],['../classphoto__imagick.html#afd49d64751ee3a298eac0c0ce0ba0207',1,'photo_imagick\destroy()']]],
+ ['detect_5flanguage',['detect_language',['../language_8php.html#a632da17c7ac0d2dc1a00a4706870194b',1,'language.php']]],
+ ['dfrn_5fdeliver',['dfrn_deliver',['../items_8php.html#a8395d189a36abfa0dfff81a2b0e70669',1,'items.php']]],
+ ['diaspora2bb',['diaspora2bb',['../bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6',1,'bb2diaspora.php']]],
+ ['diaspora_5fol',['diaspora_ol',['../bb2diaspora_8php.html#a8b96bd45884fa1c40b942939354197d4',1,'bb2diaspora.php']]],
+ ['diaspora_5ful',['diaspora_ul',['../bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc',1,'bb2diaspora.php']]],
+ ['dir_5ffns_2ephp',['dir_fns.php',['../dir__fns_8php.html',1,'']]],
+ ['directory_2ephp',['directory.php',['../mod_2directory_8php.html',1,'']]],
+ ['directory_2ephp',['directory.php',['../include_2directory_8php.html',1,'']]],
+ ['directory_5faside',['directory_aside',['../mod_2directory_8php.html#aa1d928543212871491706216742dd73c',1,'directory.php']]],
+ ['directory_5fcontent',['directory_content',['../mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44',1,'directory.php']]],
+ ['directory_5ffallback_5fmaster',['DIRECTORY_FALLBACK_MASTER',['../boot_8php.html#abedd940e664017c61b48c6efa31d0cb8',1,'boot.php']]],
+ ['directory_5finit',['directory_init',['../mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf',1,'directory.php']]],
+ ['directory_5fmode_5fnormal',['DIRECTORY_MODE_NORMAL',['../boot_8php.html#ab7d65a7e7417825a4db62906bb600729',1,'boot.php']]],
+ ['directory_5fmode_5fprimary',['DIRECTORY_MODE_PRIMARY',['../boot_8php.html#a8a60cc38bb567765fd926fef70205f16',1,'boot.php']]],
+ ['directory_5fmode_5fsecondary',['DIRECTORY_MODE_SECONDARY',['../boot_8php.html#aedfb9501ed408278667995524e0d15cf',1,'boot.php']]],
+ ['directory_5fmode_5fstandalone',['DIRECTORY_MODE_STANDALONE',['../boot_8php.html#a25476eec71fceda237f7dc1d78b0adb8',1,'boot.php']]],
+ ['directory_5frealm',['DIRECTORY_REALM',['../boot_8php.html#a6b9909db6a7ec80ec6fdd40ba74014dd',1,'boot.php']]],
+ ['directory_5frun',['directory_run',['../include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0',1,'directory.php']]],
+ ['dirfind_2ephp',['dirfind.php',['../dirfind_8php.html',1,'']]],
+ ['dirfind_5fcontent',['dirfind_content',['../dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee',1,'dirfind.php']]],
+ ['dirfind_5finit',['dirfind_init',['../dirfind_8php.html#ac689a812c84f161b3a0d42349f83981c',1,'dirfind.php']]],
+ ['dirsearch_2ephp',['dirsearch.php',['../dirsearch_8php.html',1,'']]],
+ ['dirsearch_5fcontent',['dirsearch_content',['../dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c',1,'dirsearch.php']]],
+ ['dirsearch_5finit',['dirsearch_init',['../dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752',1,'dirsearch.php']]],
+ ['discover',['discover',['../classProtoDriver.html#a64a3868cffe27d601d55f69a2ecc4337',1,'ProtoDriver\discover()'],['../classZotDriver.html#a40d328ff9f6b0a238afe286dddee1514',1,'ZotDriver\discover()']]],
+ ['display_2ephp',['display.php',['../display_8php.html',1,'']]],
+ ['display_5fcontent',['display_content',['../display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0',1,'display.php']]],
+ ['dlogger',['dlogger',['../text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c',1,'text.php']]],
+ ['do',['do',['../docblox__errorchecker_8php.html#a721c6ff80a6d3e4ad4ffa52a04c60085',1,'docblox_errorchecker.php']]],
+ ['dob',['dob',['../datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8',1,'datetime.php']]],
+ ['docblox_5ferrorchecker_2ephp',['docblox_errorchecker.php',['../docblox__errorchecker_8php.html',1,'']]],
+ ['doscaleimage',['doScaleImage',['../classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f',1,'photo_driver\doScaleImage()'],['../classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754',1,'photo_gd\doScaleImage()'],['../classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66',1,'photo_imagick\doScaleImage()']]],
+ ['drop_5fitem',['drop_item',['../items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1',1,'items.php']]],
+ ['drop_5fitems',['drop_items',['../items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55',1,'items.php']]]
+];
diff --git a/doc/html/search/all_65.html b/doc/html/search/all_65.html
new file mode 100644
index 000000000..c2f4fcd94
--- /dev/null
+++ b/doc/html/search/all_65.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_65.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_65.js b/doc/html/search/all_65.js
new file mode 100644
index 000000000..c19627cf7
--- /dev/null
+++ b/doc/html/search/all_65.js
@@ -0,0 +1,36 @@
+var searchData=
+[
+ ['editpost_2ephp',['editpost.php',['../editpost_8php.html',1,'']]],
+ ['editpost_5fcontent',['editpost_content',['../editpost_8php.html#a34011690864d122680c802e9e748ccfb',1,'editpost.php']]],
+ ['editwebpage_2ephp',['editwebpage.php',['../editwebpage_8php.html',1,'']]],
+ ['editwebpage_5fcontent',['editwebpage_content',['../editwebpage_8php.html#a375e945255fad79a71036528f7480650',1,'editwebpage.php']]],
+ ['else',['else',['../auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5',1,'else():&#160;auth.php'],['../fpostit_8php.html#a501b5ca82f287509fc691c88524064c1',1,'else():&#160;fpostit.php'],['../tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c',1,'else():&#160;tpldebug.php']]],
+ ['email_5fheader_5fencode',['email_header_encode',['../include_2network_8php.html#a540420ff3675a72cb781ef9a7e8c2cd9',1,'network.php']]],
+ ['email_5fsend',['email_send',['../include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0',1,'network.php']]],
+ ['encode_5fitem',['encode_item',['../items_8php.html#a82955cc578f0fa600acec84475026194',1,'items.php']]],
+ ['encode_5fitem_5fflags',['encode_item_flags',['../items_8php.html#a5f690fc2484abec07840b4f9dd525bd9',1,'items.php']]],
+ ['encode_5fitem_5fterms',['encode_item_terms',['../items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a',1,'items.php']]],
+ ['encode_5fitem_5fxchan',['encode_item_xchan',['../items_8php.html#a566c601726697e044e75284af7fb6f17',1,'items.php']]],
+ ['encode_5fmail',['encode_mail',['../items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7',1,'items.php']]],
+ ['encode_5frel_5flinks',['encode_rel_links',['../items_8php.html#aa723c0571e314a1853a24c5854b4f54f',1,'items.php']]],
+ ['enotify',['enotify',['../classenotify.html',1,'']]],
+ ['enotify_2ephp',['enotify.php',['../enotify_8php.html',1,'']]],
+ ['enumerate_5fpermissions',['enumerate_permissions',['../items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67',1,'items.php']]],
+ ['eol',['EOL',['../boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b',1,'boot.php']]],
+ ['eot',['EOT',['../typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805',1,'typohelper.php']]],
+ ['escape',['escape',['../classdba__driver.html#afc95ffa103a3290581b537670cde5311',1,'dba_driver\escape()'],['../classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e',1,'dba_mysql\escape()'],['../classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64',1,'dba_mysqli\escape()']]],
+ ['escape_5ftags',['escape_tags',['../text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64',1,'text.php']]],
+ ['ev_5fcompare',['ev_compare',['../event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850',1,'event.php']]],
+ ['event_2ephp',['event.php',['../event_8php.html',1,'']]],
+ ['event_5fstore',['event_store',['../event_8php.html#a89ef533faf345db8d64a58d4856bde3a',1,'event.php']]],
+ ['events_2ephp',['events.php',['../events_8php.html',1,'']]],
+ ['events_5fcontent',['events_content',['../events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec',1,'events.php']]],
+ ['events_5fpost',['events_post',['../events_8php.html#ab3e8a8f901175f8e40a8089eea45c075',1,'events.php']]],
+ ['excludepaths',['excludepaths',['../namespaceupdatetpl.html#a988d937ed5d5c2b592b763036af5cf94',1,'updatetpl']]],
+ ['expand_5facl',['expand_acl',['../text_8php.html#ae4282a39492caa23ccbc2ce98e54f110',1,'text.php']]],
+ ['expand_5fgroups',['expand_groups',['../include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345',1,'group.php']]],
+ ['expire_2ephp',['expire.php',['../expire_8php.html',1,'']]],
+ ['expire_5frun',['expire_run',['../expire_8php.html#a444e45c9b67727b27db4c779fd51a298',1,'expire.php']]],
+ ['ext',['ext',['../namespacefriendica-to-smarty-tpl.html#aecf730e0884bb4ddc6c0deb1ef85f8eb',1,'friendica-to-smarty-tpl']]],
+ ['extract_2ephp',['extract.php',['../extract_8php.html',1,'']]]
+];
diff --git a/doc/html/search/all_66.html b/doc/html/search/all_66.html
new file mode 100644
index 000000000..a9ac881c0
--- /dev/null
+++ b/doc/html/search/all_66.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_66.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_66.js b/doc/html/search/all_66.js
new file mode 100644
index 000000000..f1cd4b7f2
--- /dev/null
+++ b/doc/html/search/all_66.js
@@ -0,0 +1,73 @@
+var searchData=
+[
+ ['f',['f',['../namespacefriendica-to-smarty-tpl.html#a965e1d6d6293654a56e029a7e454dec7',1,'friendica-to-smarty-tpl']]],
+ ['fbrowser_2ephp',['fbrowser.php',['../fbrowser_8php.html',1,'']]],
+ ['fbrowser_5fcontent',['fbrowser_content',['../fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4',1,'fbrowser.php']]],
+ ['feature_5fenabled',['feature_enabled',['../features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0',1,'features.php']]],
+ ['features_2ephp',['features.php',['../features_8php.html',1,'']]],
+ ['feed_2ephp',['feed.php',['../feed_8php.html',1,'']]],
+ ['feed_5fhublinks',['feed_hublinks',['../text_8php.html#a8d8c4a11e53461caca21181ebd72daca',1,'text.php']]],
+ ['feed_5finit',['feed_init',['../feed_8php.html#af86137700b56f33d1d5f25c8dec22c04',1,'feed.php']]],
+ ['feed_5fsalmonlinks',['feed_salmonlinks',['../text_8php.html#a89929fa6f70a8ba54d5273fcf622b665',1,'text.php']]],
+ ['fetch_5flrdd_5ftemplate',['fetch_lrdd_template',['../include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0',1,'network.php']]],
+ ['fetch_5fpost_5ftags',['fetch_post_tags',['../items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9',1,'items.php']]],
+ ['fetch_5furl',['fetch_url',['../include_2network_8php.html#a37ddeb88a3fd1dee9e8339723f9edf9a',1,'network.php']]],
+ ['fetch_5fxrd_5flinks',['fetch_xrd_links',['../include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d',1,'network.php']]],
+ ['field_5ftimezone',['field_timezone',['../datetime_8php.html#a03900dcf0f9e3c58793a031673a70326',1,'datetime.php']]],
+ ['file_5ftag_5fdecode',['file_tag_decode',['../taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6',1,'taxonomy.php']]],
+ ['file_5ftag_5fencode',['file_tag_encode',['../taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37',1,'taxonomy.php']]],
+ ['file_5ftag_5ffile_5fquery',['file_tag_file_query',['../taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1',1,'taxonomy.php']]],
+ ['fileas_5fwidget',['fileas_widget',['../contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b',1,'contact_widgets.php']]],
+ ['filename',['filename',['../namespacefriendica-to-smarty-tpl.html#a5f9bf7a67d955c0d6be70a82097611c5',1,'friendica-to-smarty-tpl']]],
+ ['filer_2ephp',['filer.php',['../filer_8php.html',1,'']]],
+ ['filer_5fcontent',['filer_content',['../filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274',1,'filer.php']]],
+ ['filerm_2ephp',['filerm.php',['../filerm_8php.html',1,'']]],
+ ['filerm_5fcontent',['filerm_content',['../filerm_8php.html#ae2eb28d2054fa2c37e38689882172208',1,'filerm.php']]],
+ ['files',['files',['../namespacefriendica-to-smarty-tpl.html#ae74419b16516956c66f7db714a93a6ac',1,'friendica-to-smarty-tpl']]],
+ ['find_5fthread_5fparent_5findex',['find_thread_parent_index',['../conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6',1,'conversation.php']]],
+ ['find_5fupstream_5fdirectory',['find_upstream_directory',['../dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d',1,'dir_fns.php']]],
+ ['find_5fxchan_5fin_5farray',['find_xchan_in_array',['../text_8php.html#ace3c98538c63e09b70a363210b414112',1,'text.php']]],
+ ['findpeople_5fwidget',['findpeople_widget',['../contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6',1,'contact_widgets.php']]],
+ ['first_5fpost_5fdate',['first_post_date',['../items_8php.html#a0cf98bb619f07dd18f602683a55a5f59',1,'items.php']]],
+ ['fix_5fattached_5ffile_5fpermissions',['fix_attached_file_permissions',['../item_8php.html#a3daae7944f737bd30412a0d042207c0f',1,'item.php']]],
+ ['fix_5fattached_5fphoto_5fpermissions',['fix_attached_photo_permissions',['../item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10',1,'item.php']]],
+ ['fix_5fcontact_5fssl_5fpolicy',['fix_contact_ssl_policy',['../include_2network_8php.html#a2729d012410e470c527a62a3f777ded8',1,'network.php']]],
+ ['fix_5felement',['fix_element',['../namespacefriendica-to-smarty-tpl.html#a3719dd46e286a57d315e6adae1845854',1,'friendica-to-smarty-tpl']]],
+ ['fix_5fmce_5flf',['fix_mce_lf',['../text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28',1,'text.php']]],
+ ['fix_5fprivate_5fphotos',['fix_private_photos',['../items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87',1,'items.php']]],
+ ['fix_5fsystem_5furls',['fix_system_urls',['../boot_8php.html#aca5e42678e178c6b9034610d66666fd7',1,'boot.php']]],
+ ['fixacl',['fixacl',['../acl__selectors_8php.html#ad6664fb8330308e23f2645cd6624727e',1,'acl_selectors.php']]],
+ ['fkoauth1',['FKOAuth1',['../classFKOAuth1.html',1,'']]],
+ ['fkoauthdatastore',['FKOAuthDataStore',['../classFKOAuthDataStore.html',1,'']]],
+ ['flip',['flip',['../classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832',1,'photo_driver\flip()'],['../classphoto__gd.html#a44cedef376044018702d9355ddc813ce',1,'photo_gd\flip()'],['../classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393',1,'photo_imagick\flip()']]],
+ ['fnull',['fnull',['../namespaceupdatetpl.html#a79c20eb62d568c999b56eb08530355d3',1,'updatetpl']]],
+ ['follow_2ephp',['follow.php',['../mod_2follow_8php.html',1,'']]],
+ ['follow_2ephp',['follow.php',['../include_2follow_8php.html',1,'']]],
+ ['follow_5fcontent',['follow_content',['../mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592',1,'follow.php']]],
+ ['follow_5finit',['follow_init',['../mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a',1,'follow.php']]],
+ ['follow_5fwidget',['follow_widget',['../contact__widgets_8php.html#af24e693532a045954caab515942cfc6f',1,'contact_widgets.php']]],
+ ['foreach',['foreach',['../typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5',1,'typo.php']]],
+ ['format_5fcss_5fif_5fexists',['format_css_if_exists',['../plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6',1,'plugin.php']]],
+ ['format_5fevent_5fbbcode',['format_event_bbcode',['../event_8php.html#abb74206cf42d694307c3d7abb7af9869',1,'event.php']]],
+ ['format_5fevent_5fdiaspora',['format_event_diaspora',['../bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863',1,'bb2diaspora.php']]],
+ ['format_5fevent_5fhtml',['format_event_html',['../event_8php.html#a2ac9f1b08de03250ecd794f705781d17',1,'event.php']]],
+ ['format_5fjs_5fif_5fexists',['format_js_if_exists',['../plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f',1,'plugin.php']]],
+ ['format_5flike',['format_like',['../conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3',1,'conversation.php']]],
+ ['format_5flocation',['format_location',['../conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3',1,'conversation.php']]],
+ ['format_5fnotification',['format_notification',['../include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3',1,'notify.php']]],
+ ['format_5fterm_5ffor_5fdisplay',['format_term_for_display',['../taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1',1,'taxonomy.php']]],
+ ['fpostit_2ephp',['fpostit.php',['../fpostit_8php.html',1,'']]],
+ ['fresh_2emd',['fresh.md',['../fresh_8md.html',1,'']]],
+ ['friendica',['Friendica',['../namespaceFriendica.html',1,'']]],
+ ['friendica_2dto_2dsmarty_2dtpl',['friendica-to-smarty-tpl',['../namespacefriendica-to-smarty-tpl.html',1,'']]],
+ ['friendica_2dto_2dsmarty_2dtpl_2epy',['friendica-to-smarty-tpl.py',['../friendica-to-smarty-tpl_8py.html',1,'']]],
+ ['friendica_5fsmarty_2ephp',['friendica_smarty.php',['../friendica__smarty_8php.html',1,'']]],
+ ['friendicasmarty',['FriendicaSmarty',['../classFriendicaSmarty.html',1,'']]],
+ ['friendicasmartyengine',['FriendicaSmartyEngine',['../classFriendicaSmartyEngine.html',1,'']]],
+ ['fsuggest_2ephp',['fsuggest.php',['../fsuggest_8php.html',1,'']]],
+ ['fsuggest_5fcontent',['fsuggest_content',['../fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998',1,'fsuggest.php']]],
+ ['fsuggest_5fpost',['fsuggest_post',['../fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d',1,'fsuggest.php']]],
+ ['ftosmarty',['fToSmarty',['../namespacefriendica-to-smarty-tpl.html#a89388ea9b2826e8218ed480e917d8105',1,'friendica-to-smarty-tpl']]],
+ ['full_2ephp',['full.php',['../full_8php.html',1,'']]],
+ ['fresh_20_2d_20the_20freaking_20red_20shell',['Fresh - The Freaking REd Shell',['../md_fresh.html',1,'']]]
+];
diff --git a/doc/html/search/all_67.html b/doc/html/search/all_67.html
new file mode 100644
index 000000000..747fb512c
--- /dev/null
+++ b/doc/html/search/all_67.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_67.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_67.js b/doc/html/search/all_67.js
new file mode 100644
index 000000000..7222dd01f
--- /dev/null
+++ b/doc/html/search/all_67.js
@@ -0,0 +1,112 @@
+var searchData=
+[
+ ['gen_5ftoken',['gen_token',['../classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819',1,'FKOAuthDataStore']]],
+ ['gender_5fselector',['gender_selector',['../profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355',1,'profile_selectors.php']]],
+ ['generate_5fuser_5fguid',['generate_user_guid',['../text_8php.html#ae4f6881d7e13623f8eded6277595112a',1,'text.php']]],
+ ['get',['get',['../classCache.html#a70392b109331897bf9fdd7f1960e21de',1,'Cache']]],
+ ['get_5faccount',['get_account',['../classApp.html#a08bc87aff64f39fbc084e9d6545cee4d',1,'App']]],
+ ['get_5faccount_5fid',['get_account_id',['../boot_8php.html#afe88b920aa285982edb817a0dd44eb37',1,'boot.php']]],
+ ['get_5fall_5fperms',['get_all_perms',['../permissions_8php.html#aeca9b280f3dc3358c89976d81d690008',1,'permissions.php']]],
+ ['get_5fapp',['get_app',['../classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2',1,'BaseObject\get_app()'],['../boot_8php.html#a0e6db7e365f2b041a828b93786f694bc',1,'get_app():&#160;boot.php']]],
+ ['get_5fapps',['get_apps',['../classApp.html#a5c63eabdc7fdd8b6e3348980ec16a3ad',1,'App']]],
+ ['get_5fatom_5felements',['get_atom_elements',['../items_8php.html#a896c1809d58f2d7a42cfe14577958ddf',1,'items.php']]],
+ ['get_5fbaseurl',['get_baseurl',['../classApp.html#a604d659d6977a99de42a160343e5289a',1,'App']]],
+ ['get_5fbb_5ftag_5fpos',['get_bb_tag_pos',['../bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2',1,'bb2diaspora.php']]],
+ ['get_5fbest_5flanguage',['get_best_language',['../language_8php.html#a980dee1d8715a98ab02e36b59facf8ed',1,'language.php']]],
+ ['get_5fbirthdays',['get_birthdays',['../boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51',1,'boot.php']]],
+ ['get_5fbrowser_5flanguage',['get_browser_language',['../language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e',1,'language.php']]],
+ ['get_5fcapath',['get_capath',['../include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7',1,'network.php']]],
+ ['get_5fchannel',['get_channel',['../classApp.html#a084e03c77686d8c13390fef3f7428a2b',1,'App']]],
+ ['get_5fchild',['get_child',['../classItem.html#a632185dd25c5caf277067c76230a4320',1,'Item']]],
+ ['get_5fchildren',['get_children',['../classItem.html#aa0ee775ec94abccec6c798428835d001',1,'Item']]],
+ ['get_5fcomment_5fbox',['get_comment_box',['../classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf',1,'Item']]],
+ ['get_5fcomment_5fbox_5ftemplate',['get_comment_box_template',['../classItem.html#a904421c7a427411bb2ab473bca872f63',1,'Item']]],
+ ['get_5fconfig',['get_config',['../include_2config_8php.html#af02c96e6b37335774b548914ede1d22e',1,'config.php']]],
+ ['get_5fconfig_5ffrom_5fstorage',['get_config_from_storage',['../include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74',1,'config.php']]],
+ ['get_5fconversation',['get_conversation',['../classItem.html#a0c301aaed2b7d682728d18db3a22afa3',1,'Item']]],
+ ['get_5fcurl_5fcode',['get_curl_code',['../classApp.html#ab410451f132910773d0a02e35d0dced9',1,'App']]],
+ ['get_5fcurl_5fheaders',['get_curl_headers',['../classApp.html#abaf2173711e861ae4aebf43a7f70157e',1,'App']]],
+ ['get_5fdata',['get_data',['../classItem.html#ad3638f93065693c1f69eb349feb1b7aa',1,'Item']]],
+ ['get_5fdata_5fvalue',['get_data_value',['../classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c',1,'Item']]],
+ ['get_5fdb_5ferrno',['get_db_errno',['../setup_8php.html#a8652788e8589778c5f81634a9d5b9429',1,'setup.php']]],
+ ['get_5fdim',['get_dim',['../datetime_8php.html#a7df24d72ea05922d3127363e2295174c',1,'datetime.php']]],
+ ['get_5fevents',['get_events',['../boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312',1,'boot.php']]],
+ ['get_5ffeatures',['get_features',['../features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c',1,'features.php']]],
+ ['get_5ffeed_5ffor',['get_feed_for',['../items_8php.html#a04a35b610acfe54434df08adec39c0c7',1,'items.php']]],
+ ['get_5ffirst_5fdim',['get_first_dim',['../datetime_8php.html#aba971b67f17fecf050813f1eba72367f',1,'datetime.php']]],
+ ['get_5fform_5fsecurity_5ftoken',['get_form_security_token',['../security_8php.html#acd06ef411116115c2f0a92633700db8a',1,'security.php']]],
+ ['get_5fformatsmap',['get_FormatsMap',['../classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4',1,'photo_imagick']]],
+ ['get_5fgroups',['get_groups',['../classApp.html#a4659785d13e4bac0bed50dbb1b0d4299',1,'App']]],
+ ['get_5fhostname',['get_hostname',['../classApp.html#a622eace13f8fc9f4b5672a68e2bc4396',1,'App']]],
+ ['get_5fid',['get_id',['../classItem.html#ac0f27e58532612f6e7a54c8a621b9b92',1,'Item']]],
+ ['get_5fintltext_5ftemplate',['get_intltext_template',['../classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118',1,'FriendicaSmartyEngine\get_intltext_template()'],['../plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295',1,'get_intltext_template():&#160;plugin.php']]],
+ ['get_5fitem_5fchildren',['get_item_children',['../conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67',1,'conversation.php']]],
+ ['get_5fitem_5fcontact',['get_item_contact',['../items_8php.html#aab9c6bae4c40799867596bdaae9829fd',1,'items.php']]],
+ ['get_5fitem_5felements',['get_item_elements',['../items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361',1,'items.php']]],
+ ['get_5fmail_5felements',['get_mail_elements',['../items_8php.html#a94ddb1d6c8fa21dd7433677e85168037',1,'items.php']]],
+ ['get_5fmarkup_5ftemplate',['get_markup_template',['../classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88',1,'FriendicaSmartyEngine\get_markup_template()'],['../interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442',1,'ITemplateEngine\get_markup_template()'],['../classTemplate.html#afd97b4b1e7754a550e67c0ea79159059',1,'Template\get_markup_template()'],['../plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4',1,'get_markup_template():&#160;plugin.php']]],
+ ['get_5fmax_5fimport_5fsize',['get_max_import_size',['../boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90',1,'boot.php']]],
+ ['get_5fmentions',['get_mentions',['../text_8php.html#a76d1b3435c067978d7b484c45f56472b',1,'text.php']]],
+ ['get_5fmode',['get_mode',['../classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd',1,'Conversation']]],
+ ['get_5fmood_5fverbs',['get_mood_verbs',['../text_8php.html#a736db13a966b8abaf8c9198faa35911a',1,'text.php']]],
+ ['get_5fmy_5faddress',['get_my_address',['../boot_8php.html#a490972c02fdb638c52ec0e012a30bfd2',1,'boot.php']]],
+ ['get_5fmy_5furl',['get_my_url',['../boot_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec',1,'boot.php']]],
+ ['get_5fobserver',['get_observer',['../classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2',1,'App\get_observer()'],['../classConversation.html#ae3d4190142e12b57051f11f2911f77a0',1,'Conversation\get_observer()']]],
+ ['get_5fobserver_5fhash',['get_observer_hash',['../boot_8php.html#a623e49c79943f3e7bdb770d021683cf7',1,'boot.php']]],
+ ['get_5fowner_5fname',['get_owner_name',['../classItem.html#a67892aa23d19f4431bb2e5f43c74000e',1,'Item']]],
+ ['get_5fowner_5fphoto',['get_owner_photo',['../classItem.html#aa541bc4290e51bfd688d6921bebabc73',1,'Item']]],
+ ['get_5fowner_5furl',['get_owner_url',['../classItem.html#a9f2d219da712390f59012fc32a342074',1,'Item']]],
+ ['get_5fparent',['get_parent',['../classItem.html#a4b92e3a9d6212c553aa2661489bd95d8',1,'Item']]],
+ ['get_5fpath',['get_path',['../classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be',1,'App']]],
+ ['get_5fpconfig',['get_pconfig',['../include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad',1,'config.php']]],
+ ['get_5fperms',['get_perms',['../classApp.html#adb5a4bb657881e553978ff390babd01f',1,'App\get_perms()'],['../permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972',1,'get_perms():&#160;permissions.php']]],
+ ['get_5fplink',['get_plink',['../text_8php.html#a05b7f26dc2df78681f57eeade53040c6',1,'text.php']]],
+ ['get_5fplugin_5finfo',['get_plugin_info',['../plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35',1,'plugin.php']]],
+ ['get_5fpoke_5fverbs',['get_poke_verbs',['../text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66',1,'text.php']]],
+ ['get_5fprofile_5felements',['get_profile_elements',['../items_8php.html#a251343637ff40a50cca93452cd530c26',1,'items.php']]],
+ ['get_5fprofile_5fowner',['get_profile_owner',['../classConversation.html#a5effe8ad3007e01333df44b81432b813',1,'Conversation']]],
+ ['get_5fpublic_5ffeed',['get_public_feed',['../items_8php.html#a079e099e15d88d47aeb6ca6d60da7107',1,'items.php']]],
+ ['get_5fredirect_5furl',['get_redirect_url',['../classItem.html#a428f448f89a8629055ea3294eb942aea',1,'Item']]],
+ ['get_5frel_5flink',['get_rel_link',['../text_8php.html#a3972701c5c83624ec4e2d06242f614e7',1,'text.php']]],
+ ['get_5ftags',['get_tags',['../text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623',1,'text.php']]],
+ ['get_5ftemplate',['get_template',['../classItem.html#aba23a0a9d89e316d2b343cc46d695d91',1,'Item']]],
+ ['get_5ftemplate_5fdata',['get_template_data',['../classConversation.html#a2a96b7a6573ae53db861624659e831cb',1,'Conversation\get_template_data()'],['../classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8',1,'Item\get_template_data()']]],
+ ['get_5ftemplate_5fengine',['get_template_engine',['../classApp.html#acb27e607fe4c82603444676e25c36b70',1,'App']]],
+ ['get_5ftemplate_5fldelim',['get_template_ldelim',['../classApp.html#a2eb832a8577dee7d40b93abdf6d1d35a',1,'App']]],
+ ['get_5ftemplate_5frdelim',['get_template_rdelim',['../classApp.html#aab23c59172310fd30f2d60dc039d3eea',1,'App']]],
+ ['get_5fterms_5foftype',['get_terms_oftype',['../taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1',1,'taxonomy.php']]],
+ ['get_5ftheme_5fconfig_5ffile',['get_theme_config_file',['../settings_8php.html#a39abc76ff5459c57e3b957664f273f18',1,'settings.php']]],
+ ['get_5ftheme_5finfo',['get_theme_info',['../plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405',1,'plugin.php']]],
+ ['get_5ftheme_5fscreenshot',['get_theme_screenshot',['../plugin_8php.html#a48047edfbef770125a5508dcc2f9282f',1,'plugin.php']]],
+ ['get_5ftheme_5fuid',['get_theme_uid',['../boot_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3',1,'boot.php']]],
+ ['get_5fthread',['get_thread',['../classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8',1,'Conversation']]],
+ ['get_5fwidgets',['get_widgets',['../classApp.html#a871898becd0697d778f36d9336253ae8',1,'App']]],
+ ['get_5fxconfig',['get_xconfig',['../include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e',1,'config.php']]],
+ ['getext',['getExt',['../classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba',1,'photo_driver']]],
+ ['getheight',['getHeight',['../classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468',1,'photo_driver']]],
+ ['getimage',['getImage',['../classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5',1,'photo_driver\getImage()'],['../classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484',1,'photo_gd\getImage()'],['../classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc',1,'photo_imagick\getImage()']]],
+ ['gettype',['getType',['../classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3',1,'photo_driver']]],
+ ['getwidth',['getWidth',['../classphoto__driver.html#acc30486acee9e89e32701f44a1738117',1,'photo_driver']]],
+ ['goaway',['goaway',['../boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1',1,'boot.php']]],
+ ['gprobe_2ephp',['gprobe.php',['../gprobe_8php.html',1,'']]],
+ ['gprobe_5frun',['gprobe_run',['../gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1',1,'gprobe.php']]],
+ ['gravity_5fcomment',['GRAVITY_COMMENT',['../boot_8php.html#a4a12ce5de39789b0361e308d89925a20',1,'boot.php']]],
+ ['gravity_5flike',['GRAVITY_LIKE',['../boot_8php.html#a1f5906598e90b5ea2b4245f682be4348',1,'boot.php']]],
+ ['gravity_5fparent',['GRAVITY_PARENT',['../boot_8php.html#a2af173e4e9836ee7c90757b4793a2be3',1,'boot.php']]],
+ ['group_2ephp',['group.php',['../mod_2group_8php.html',1,'']]],
+ ['group_2ephp',['group.php',['../include_2group_8php.html',1,'']]],
+ ['group_5fadd',['group_add',['../include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0',1,'group.php']]],
+ ['group_5fadd_5fmember',['group_add_member',['../include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b',1,'group.php']]],
+ ['group_5faside',['group_aside',['../mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c',1,'group.php']]],
+ ['group_5fbyname',['group_byname',['../include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb',1,'group.php']]],
+ ['group_5fcontent',['group_content',['../mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83',1,'group.php']]],
+ ['group_5fget_5fmembers',['group_get_members',['../include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09',1,'group.php']]],
+ ['group_5fpost',['group_post',['../mod_2group_8php.html#aed1f009b1221348021bb34761160ef35',1,'group.php']]],
+ ['group_5frec_5fbyhash',['group_rec_byhash',['../include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245',1,'group.php']]],
+ ['group_5frmv',['group_rmv',['../include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5',1,'group.php']]],
+ ['group_5frmv_5fmember',['group_rmv_member',['../include_2group_8php.html#a540e3ef36f47d47532646be4241f6518',1,'group.php']]],
+ ['group_5fselect',['group_select',['../acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0',1,'acl_selectors.php']]],
+ ['group_5fside',['group_side',['../include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17',1,'group.php']]],
+ ['groups_5fcontaining',['groups_containing',['../include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f',1,'group.php']]],
+ ['guess_5fimage_5ftype',['guess_image_type',['../photo__driver_8php.html#a7273b82b017fd96d29b2c57bab03aea6',1,'photo_driver.php']]]
+];
diff --git a/doc/html/search/all_68.html b/doc/html/search/all_68.html
new file mode 100644
index 000000000..dec41d62e
--- /dev/null
+++ b/doc/html/search/all_68.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_68.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_68.js b/doc/html/search/all_68.js
new file mode 100644
index 000000000..c8c136ff9
--- /dev/null
+++ b/doc/html/search/all_68.js
@@ -0,0 +1,28 @@
+var searchData=
+[
+ ['handle_5ftag',['handle_tag',['../item_8php.html#abd0e603a6696051af16476eb968d52e7',1,'item.php']]],
+ ['has_5fpermissions',['has_permissions',['../items_8php.html#a77051724d1784074ff187e73a4db93fe',1,'items.php']]],
+ ['hcard_2ephp',['hcard.php',['../hcard_8php.html',1,'']]],
+ ['hcard_5faside',['hcard_aside',['../hcard_8php.html#a956c7cae2009652a37900306e5b7b73d',1,'hcard.php']]],
+ ['hcard_5finit',['hcard_init',['../hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d',1,'hcard.php']]],
+ ['head_5fadd_5fcss',['head_add_css',['../plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a',1,'plugin.php']]],
+ ['head_5fadd_5fjs',['head_add_js',['../plugin_8php.html#a516591850f4fd49fd1425cfa54089db8',1,'plugin.php']]],
+ ['head_5fget_5fcss',['head_get_css',['../plugin_8php.html#af92789f559b89a380e49d303218aeeca',1,'plugin.php']]],
+ ['head_5fget_5ficon',['head_get_icon',['../classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166',1,'App\head_get_icon()'],['../boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77',1,'head_get_icon():&#160;boot.php']]],
+ ['head_5fget_5fjs',['head_get_js',['../plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1',1,'plugin.php']]],
+ ['head_5fset_5ficon',['head_set_icon',['../classApp.html#a8863703a0305eaa45eb970dbd2046291',1,'App\head_set_icon()'],['../boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84',1,'head_set_icon():&#160;boot.php']]],
+ ['help',['help',['../namespacefriendica-to-smarty-tpl.html#af6b2c793958aae2aadc294577431f749',1,'friendica-to-smarty-tpl.help()'],['../namespaceupdatetpl.html#ac9d11279fed403a329a719298feafc4f',1,'updatetpl.help()']]],
+ ['help_2ephp',['help.php',['../help_8php.html',1,'']]],
+ ['help_5fcontent',['help_content',['../help_8php.html#af055e15f600ffa6fbca9386fdf715224',1,'help.php']]],
+ ['home_2ephp',['home.php',['../home_8php.html',1,'']]],
+ ['hostxrd_2ephp',['hostxrd.php',['../hostxrd_8php.html',1,'']]],
+ ['hostxrd_5finit',['hostxrd_init',['../hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92',1,'hostxrd.php']]],
+ ['html2bb_5fvideo',['html2bb_video',['../text_8php.html#a138a3a611fa7f4f3630674145fc826bf',1,'text.php']]],
+ ['html2bbcode',['html2bbcode',['../html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837',1,'html2bbcode.php']]],
+ ['html2bbcode_2ephp',['html2bbcode.php',['../html2bbcode_8php.html',1,'']]],
+ ['html2plain',['html2plain',['../html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04',1,'html2plain.php']]],
+ ['html2plain_2ephp',['html2plain.php',['../html2plain_8php.html',1,'']]],
+ ['http_5fstatus_5fexit',['http_status_exit',['../include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2',1,'network.php']]],
+ ['hubloc_5fflags_5fprimary',['HUBLOC_FLAGS_PRIMARY',['../boot_8php.html#a3ad9cc5d4354be741fa1de12b96e9955',1,'boot.php']]],
+ ['hubloc_5fflags_5funverified',['HUBLOC_FLAGS_UNVERIFIED',['../boot_8php.html#ab54b24cc302e1a42a67a49d788b6b764',1,'boot.php']]]
+];
diff --git a/doc/html/search/all_69.html b/doc/html/search/all_69.html
new file mode 100644
index 000000000..192e4bab2
--- /dev/null
+++ b/doc/html/search/all_69.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_69.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_69.js b/doc/html/search/all_69.js
new file mode 100644
index 000000000..bee3f5e56
--- /dev/null
+++ b/doc/html/search/all_69.js
@@ -0,0 +1,83 @@
+var searchData=
+[
+ ['identity_2ephp',['identity.php',['../identity_8php.html',1,'']]],
+ ['identity_5fbasic_5fexport',['identity_basic_export',['../identity_8php.html#a3570a4eb77332b292d394c4132cb8f03',1,'identity.php']]],
+ ['identity_5fbasic_5fimport',['identity_basic_import',['../identity_8php.html#a77ee7d66eb0758f7e7882f70ad0f9485',1,'identity.php']]],
+ ['identity_5fcheck_5fservice_5fclass',['identity_check_service_class',['../identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633',1,'identity.php']]],
+ ['ids_5fto_5fquerystr',['ids_to_querystr',['../text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a',1,'text.php']]],
+ ['if',['if',['../php2po_8php.html#a45b05625748f412ec97afcd61cf7980b',1,'if():&#160;php2po.php'],['../php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762',1,'if():&#160;default.php'],['../full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db',1,'if():&#160;full.php'],['../redbasic_2php_2style_8php.html#ac4c6bc3cd9cc92204f04cf6cb34b47dd',1,'if():&#160;style.php'],['../theme_2redstrap_2php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762',1,'if():&#160;default.php'],['../redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea',1,'if():&#160;style.php']]],
+ ['imagestring',['imageString',['../classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd',1,'photo_driver\imageString()'],['../classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00',1,'photo_gd\imageString()'],['../classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019',1,'photo_imagick\imageString()']]],
+ ['import_2ephp',['import.php',['../import_8php.html',1,'']]],
+ ['import_5fauthor_5fxchan',['import_author_xchan',['../items_8php.html#ae73794179b62d39bb597ff670ab1c1e5',1,'items.php']]],
+ ['import_5fchannel_5fphoto',['import_channel_photo',['../photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a',1,'photo_driver.php']]],
+ ['import_5fcontent',['import_content',['../import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184',1,'import.php']]],
+ ['import_5fdirectory_5fkeywords',['import_directory_keywords',['../zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a',1,'zot.php']]],
+ ['import_5fdirectory_5fprofile',['import_directory_profile',['../zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32',1,'zot.php']]],
+ ['import_5fpost',['import_post',['../import_8php.html#af17fef0410518f7eac205d0ea416eaa2',1,'import.php']]],
+ ['import_5fprofile_5fphoto',['import_profile_photo',['../photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca',1,'photo_driver.php']]],
+ ['import_5fsite',['import_site',['../zot_8php.html#a2657e141d62d5f67ad3c87651b585299',1,'zot.php']]],
+ ['import_5fxchan',['import_xchan',['../zot_8php.html#ab0227978011d8601494a7651fa26acf0',1,'zot.php']]],
+ ['info',['info',['../boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498',1,'boot.php']]],
+ ['install',['install',['../classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746',1,'dba_driver']]],
+ ['install_5fplugin',['install_plugin',['../plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5',1,'plugin.php']]],
+ ['intro_2ephp',['intro.php',['../intro_8php.html',1,'']]],
+ ['intro_5faside',['intro_aside',['../intro_8php.html#abc3abf25da64f98f215126eb08c7936b',1,'intro.php']]],
+ ['intro_5fcontent',['intro_content',['../intro_8php.html#a3e2a523697633ddb4517b9266a515f5b',1,'intro.php']]],
+ ['intro_5fpost',['intro_post',['../intro_8php.html#af3681062183ccbdf065ae2647b07d6f1',1,'intro.php']]],
+ ['invite_2ephp',['invite.php',['../invite_8php.html',1,'']]],
+ ['invite_5fcontent',['invite_content',['../invite_8php.html#a244385b28cfd021d308715f01158bfd9',1,'invite.php']]],
+ ['invite_5fpost',['invite_post',['../invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5',1,'invite.php']]],
+ ['is_5fa_5fdate_5farg',['is_a_date_arg',['../text_8php.html#a1557112a774ec00fa06ed6b6f6495506',1,'text.php']]],
+ ['is_5fajax',['is_ajax',['../boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c',1,'boot.php']]],
+ ['is_5fcommentable',['is_commentable',['../classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3',1,'Conversation']]],
+ ['is_5fpreview',['is_preview',['../classConversation.html#adf25ce023b69a166c63c6e84e02c136a',1,'Conversation']]],
+ ['is_5fsite_5fadmin',['is_site_admin',['../boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e',1,'boot.php']]],
+ ['is_5fthreaded',['is_threaded',['../classItem.html#a5b2fafdca55aefeaa08993a5a60529f0',1,'Item']]],
+ ['is_5ftoplevel',['is_toplevel',['../classItem.html#aa49e40f961dff66da32c5ae110e32993',1,'Item']]],
+ ['is_5fvalid',['is_valid',['../classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab',1,'photo_driver']]],
+ ['is_5fvisiting',['is_visiting',['../classItem.html#a97c7feeea7f26a73176cb19faa455e12',1,'Item']]],
+ ['is_5fwall_5fto_5fwall',['is_wall_to_wall',['../classItem.html#aabf87ded59c25b5fe2b2296678e70509',1,'Item']]],
+ ['is_5fwritable',['is_writable',['../classConversation.html#a5879199008b96bee7550b576d614e1c1',1,'Conversation']]],
+ ['item',['Item',['../classItem.html',1,'']]],
+ ['item_2ephp',['item.php',['../item_8php.html',1,'']]],
+ ['item_5fblocked',['ITEM_BLOCKED',['../boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f',1,'boot.php']]],
+ ['item_5fcontent',['item_content',['../item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221',1,'item.php']]],
+ ['item_5fdelayed_5fpublish',['ITEM_DELAYED_PUBLISH',['../boot_8php.html#ac890557fedc5b5a3b1d996249b1e1a20',1,'boot.php']]],
+ ['item_5fdeleted',['ITEM_DELETED',['../boot_8php.html#a3515ea6bf77495de89b93e9ccd881c49',1,'boot.php']]],
+ ['item_5fexpire',['item_expire',['../items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc',1,'items.php']]],
+ ['item_5fextract_5fimages',['item_extract_images',['../conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654',1,'conversation.php']]],
+ ['item_5fgetfeedattach',['item_getfeedattach',['../items_8php.html#a09d425596b9f8663472cf7474ad36d96',1,'items.php']]],
+ ['item_5fgetfeedtags',['item_getfeedtags',['../items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7',1,'items.php']]],
+ ['item_5fhidden',['ITEM_HIDDEN',['../boot_8php.html#ac99fc4d040764eac1736bec6973556fe',1,'boot.php']]],
+ ['item_5fmentionsme',['ITEM_MENTIONSME',['../boot_8php.html#a8da836617174eed9fc2ac8054125354b',1,'boot.php']]],
+ ['item_5fmessage_5fid',['item_message_id',['../text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e',1,'text.php']]],
+ ['item_5fmoderated',['ITEM_MODERATED',['../boot_8php.html#ac01230c7655e0705b2e99c9bc03c4450',1,'boot.php']]],
+ ['item_5fnocomment',['ITEM_NOCOMMENT',['../boot_8php.html#a949116d9a295b214293006c060ca4848',1,'boot.php']]],
+ ['item_5fnotshown',['ITEM_NOTSHOWN',['../boot_8php.html#a8663f32171568489dbb2a01dd00371f8',1,'boot.php']]],
+ ['item_5fnsfw',['ITEM_NSFW',['../boot_8php.html#a939de9a99278f4fd7dcd0ee67f243f08',1,'boot.php']]],
+ ['item_5fobscured',['ITEM_OBSCURED',['../boot_8php.html#a2c8906f1af94a3559a5b4661067bb79d',1,'boot.php']]],
+ ['item_5forigin',['ITEM_ORIGIN',['../boot_8php.html#a8c9dce0ef27b35397e29298eb966f7f7',1,'boot.php']]],
+ ['item_5fpermissions_5fsql',['item_permissions_sql',['../security_8php.html#a9355488460ab11d6058656ff919e5cf9',1,'security.php']]],
+ ['item_5fphoto_5fmenu',['item_photo_menu',['../conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3',1,'conversation.php']]],
+ ['item_5fpost',['item_post',['../item_8php.html#a693cd09805755ab85bbb5ecae69a48c3',1,'item.php']]],
+ ['item_5fpost_5ftype',['item_post_type',['../text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e',1,'text.php']]],
+ ['item_5fredir_5fand_5freplace_5fimages',['item_redir_and_replace_images',['../conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533',1,'conversation.php']]],
+ ['item_5frelay',['ITEM_RELAY',['../boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221',1,'boot.php']]],
+ ['item_5fspam',['ITEM_SPAM',['../boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb',1,'boot.php']]],
+ ['item_5fstarred',['ITEM_STARRED',['../boot_8php.html#a7af107fab8d62b9a73801713b774ed30',1,'boot.php']]],
+ ['item_5fstore',['item_store',['../items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049',1,'items.php']]],
+ ['item_5fstore_5fupdate',['item_store_update',['../items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53',1,'items.php']]],
+ ['item_5fthread_5ftop',['ITEM_THREAD_TOP',['../boot_8php.html#a749144d8dd9c1366596a0213c277d050',1,'boot.php']]],
+ ['item_5funpublished',['ITEM_UNPUBLISHED',['../boot_8php.html#adaeb4f590c56326b2dca3b19f31b6272',1,'boot.php']]],
+ ['item_5funseen',['ITEM_UNSEEN',['../boot_8php.html#a009e6a0637cb65804ea8094ecc4450b0',1,'boot.php']]],
+ ['item_5fuplink',['ITEM_UPLINK',['../boot_8php.html#aefba06f1c0842036329033e7567ecf6d',1,'boot.php']]],
+ ['item_5fuplink_5fprv',['ITEM_UPLINK_PRV',['../boot_8php.html#aad33b494084f729b6ee3b0bc457718a1',1,'boot.php']]],
+ ['item_5fvisible',['ITEM_VISIBLE',['../boot_8php.html#ab55b16ae7fc19fafe5afaedd49163bbf',1,'boot.php']]],
+ ['item_5fwall',['ITEM_WALL',['../boot_8php.html#a6788e99021ec8ffb0fa94d651f22a322',1,'boot.php']]],
+ ['item_5fwebpage',['ITEM_WEBPAGE',['../boot_8php.html#af489d0c3166551b93e63a79ff2c9be35',1,'boot.php']]],
+ ['itemobject_2ephp',['ItemObject.php',['../ItemObject_8php.html',1,'']]],
+ ['itemplateengine',['ITemplateEngine',['../interfaceITemplateEngine.html',1,'']]],
+ ['itemplateengine_2ephp',['ITemplateEngine.php',['../ITemplateEngine_8php.html',1,'']]],
+ ['items_2ephp',['items.php',['../items_8php.html',1,'']]],
+ ['items_5ffetch',['items_fetch',['../items_8php.html#a756738301f2ed96be50232500677d58a',1,'items.php']]]
+];
diff --git a/doc/html/search/all_6a.html b/doc/html/search/all_6a.html
new file mode 100644
index 000000000..6d8c91cd3
--- /dev/null
+++ b/doc/html/search/all_6a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_6a.js b/doc/html/search/all_6a.js
new file mode 100644
index 000000000..08d26535c
--- /dev/null
+++ b/doc/html/search/all_6a.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['jindent',['jindent',['../text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8',1,'text.php']]],
+ ['jpeg_5fquality',['JPEG_QUALITY',['../boot_8php.html#a3475ff6c2e575f946ea0ee377e944173',1,'boot.php']]],
+ ['json_5freturn_5fand_5fdie',['json_return_and_die',['../include_2network_8php.html#a4c5d50079e089168d9248427018fffd4',1,'network.php']]]
+];
diff --git a/doc/html/search/all_6b.html b/doc/html/search/all_6b.html
new file mode 100644
index 000000000..d70dca016
--- /dev/null
+++ b/doc/html/search/all_6b.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_6b.js b/doc/html/search/all_6b.js
new file mode 100644
index 000000000..cb620eeee
--- /dev/null
+++ b/doc/html/search/all_6b.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['key_5fnot_5fexists',['KEY_NOT_EXISTS',['../template__processor_8php.html#a797745996c7839a93b2ab1af456631ab',1,'template_processor.php']]],
+ ['killme',['killme',['../boot_8php.html#aea7fc57a4d8e9dcb42f2601b0b9b761c',1,'boot.php']]]
+];
diff --git a/doc/html/search/all_6c.html b/doc/html/search/all_6c.html
new file mode 100644
index 000000000..ae8bc48da
--- /dev/null
+++ b/doc/html/search/all_6c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_6c.js b/doc/html/search/all_6c.js
new file mode 100644
index 000000000..4e54ba411
--- /dev/null
+++ b/doc/html/search/all_6c.js
@@ -0,0 +1,49 @@
+var searchData=
+[
+ ['lang_5fselector',['lang_selector',['../text_8php.html#a71f6952243d3fe1c5a8154f78027e29c',1,'text.php']]],
+ ['language_2ephp',['language.php',['../language_8php.html',1,'']]],
+ ['language_5fdetect_5fmin_5fconfidence',['LANGUAGE_DETECT_MIN_CONFIDENCE',['../boot_8php.html#a68d1d5bc9c7ccb663dc671b48c66df11',1,'boot.php']]],
+ ['language_5fdetect_5fmin_5flength',['LANGUAGE_DETECT_MIN_LENGTH',['../boot_8php.html#a17cf72338b040891781a4bcbdd9a8595',1,'boot.php']]],
+ ['ldelim',['ldelim',['../namespacefriendica-to-smarty-tpl.html#a0b4cf73d1a8d201a28d269eeb62a5d5c',1,'friendica-to-smarty-tpl']]],
+ ['legal_5fwebbie',['legal_webbie',['../text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728',1,'text.php']]],
+ ['like_2ephp',['like.php',['../like_8php.html',1,'']]],
+ ['like_5fcontent',['like_content',['../like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538',1,'like.php']]],
+ ['like_5fpuller',['like_puller',['../conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0',1,'conversation.php']]],
+ ['limit_5fbody_5fsize',['limit_body_size',['../items_8php.html#af94c281016c6c912d06e064113336c5c',1,'items.php']]],
+ ['link_5fcompare',['link_compare',['../text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285',1,'text.php']]],
+ ['linkify',['linkify',['../text_8php.html#a11255c8c4e5245b6c24f97684826aa54',1,'text.php']]],
+ ['load',['load',['../classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712',1,'photo_driver\load()'],['../classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9',1,'photo_gd\load()'],['../classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8',1,'photo_imagick\load()']]],
+ ['load_5fconfig',['load_config',['../include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1',1,'config.php']]],
+ ['load_5fcontact_5flinks',['load_contact_links',['../boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6',1,'boot.php']]],
+ ['load_5fdatabase',['load_database',['../setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a',1,'setup.php']]],
+ ['load_5fdatabase_5frem',['load_database_rem',['../setup_8php.html#a2b375ddc555140236fc500135de99371',1,'setup.php']]],
+ ['load_5fhooks',['load_hooks',['../plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813',1,'plugin.php']]],
+ ['load_5fpconfig',['load_pconfig',['../include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6',1,'config.php']]],
+ ['load_5fplugin',['load_plugin',['../plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d',1,'plugin.php']]],
+ ['load_5ftranslation_5ftable',['load_translation_table',['../language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05',1,'language.php']]],
+ ['load_5fxconfig',['load_xconfig',['../include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33',1,'config.php']]],
+ ['local_5fdelivery',['local_delivery',['../items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45',1,'items.php']]],
+ ['local_5fuser',['local_user',['../boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44',1,'boot.php']]],
+ ['localize_5fitem',['localize_item',['../conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c',1,'conversation.php']]],
+ ['lockview_2ephp',['lockview.php',['../lockview_8php.html',1,'']]],
+ ['lockview_5fcontent',['lockview_content',['../lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44',1,'lockview.php']]],
+ ['logger',['logger',['../text_8php.html#a030fa5ecc64168af0c4f44897a9bce63',1,'text.php']]],
+ ['logger_5fall',['LOGGER_ALL',['../boot_8php.html#afe63ae69ba55299f813766e54df06ede',1,'boot.php']]],
+ ['logger_5fdata',['LOGGER_DATA',['../boot_8php.html#a6969947145a139ec374ce098224d8e81',1,'boot.php']]],
+ ['logger_5fdebug',['LOGGER_DEBUG',['../boot_8php.html#a93823d15ae07548a4c49de88d325cd26',1,'boot.php']]],
+ ['logger_5fnormal',['LOGGER_NORMAL',['../boot_8php.html#a17b4ea23d9ecf628d9c8f53b7abcb805',1,'boot.php']]],
+ ['logger_5ftrace',['LOGGER_TRACE',['../boot_8php.html#a022cea669f9f13ef7c6268b63884c57f',1,'boot.php']]],
+ ['login',['login',['../boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4',1,'boot.php']]],
+ ['login_2ephp',['login.php',['../login_8php.html',1,'']]],
+ ['login_5fcontent',['login_content',['../login_8php.html#a1d69ca88eb9005a7026e128b9a645904',1,'login.php']]],
+ ['loginuser',['loginUser',['../classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f',1,'FKOAuth1']]],
+ ['lookup_5fconsumer',['lookup_consumer',['../classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1',1,'FKOAuthDataStore']]],
+ ['lookup_5fnonce',['lookup_nonce',['../classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599',1,'FKOAuthDataStore']]],
+ ['lookup_5ftoken',['lookup_token',['../classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab',1,'FKOAuthDataStore']]],
+ ['lose_5ffollower',['lose_follower',['../items_8php.html#ade53043e7bc5ab9cc9ef1e4fed6569d4',1,'items.php']]],
+ ['lose_5fsharer',['lose_sharer',['../items_8php.html#a3a218d5e8ffbe261f773225ecded86a2',1,'items.php']]],
+ ['lostpass_2ephp',['lostpass.php',['../lostpass_8php.html',1,'']]],
+ ['lostpass_5fcontent',['lostpass_content',['../lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3',1,'lostpass.php']]],
+ ['lostpass_5fpost',['lostpass_post',['../lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc',1,'lostpass.php']]],
+ ['lrdd',['lrdd',['../include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041',1,'network.php']]]
+];
diff --git a/doc/html/search/all_6d.html b/doc/html/search/all_6d.html
new file mode 100644
index 000000000..ee90718ff
--- /dev/null
+++ b/doc/html/search/all_6d.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_6d.js b/doc/html/search/all_6d.js
new file mode 100644
index 000000000..6f2314df0
--- /dev/null
+++ b/doc/html/search/all_6d.js
@@ -0,0 +1,40 @@
+var searchData=
+[
+ ['magic_2ephp',['magic.php',['../magic_8php.html',1,'']]],
+ ['magic_5finit',['magic_init',['../magic_8php.html#acea2cc792849ca2d71d4b689f66518bf',1,'magic.php']]],
+ ['magic_5flink',['magic_link',['../text_8php.html#a1e510c53624933ce9b7d6715784894db',1,'text.php']]],
+ ['magiclink_5furl',['magiclink_url',['../text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6',1,'text.php']]],
+ ['mail_5fdeleted',['MAIL_DELETED',['../boot_8php.html#ad0876e837cf3fad8a26417e315f6e2c8',1,'boot.php']]],
+ ['mail_5fisreply',['MAIL_ISREPLY',['../boot_8php.html#aa544a6c078130d0967a1f4ed8ce0a2d2',1,'boot.php']]],
+ ['mail_5fobscured',['MAIL_OBSCURED',['../boot_8php.html#a44ae1542a805ffd7f826fb511db07374',1,'boot.php']]],
+ ['mail_5frecalled',['MAIL_RECALLED',['../boot_8php.html#ae4861de36017fe399c1839f778bad9f5',1,'boot.php']]],
+ ['mail_5freplied',['MAIL_REPLIED',['../boot_8php.html#aa3679df31c8dad1b71816b0322d5baff',1,'boot.php']]],
+ ['mail_5fseen',['MAIL_SEEN',['../boot_8php.html#a1fbb93cf030f07391f22cc2948744869',1,'boot.php']]],
+ ['mail_5fstore',['mail_store',['../items_8php.html#a77da7ce9a117601d49ac4a67c71b514f',1,'items.php']]],
+ ['manage_2ephp',['manage.php',['../manage_8php.html',1,'']]],
+ ['manage_5fcontent',['manage_content',['../manage_8php.html#a2bca247b5296827638959138367db4f5',1,'manage.php']]],
+ ['manual_5fconfig',['manual_config',['../setup_8php.html#abe405d227ba7232971964a706d4f3bce',1,'setup.php']]],
+ ['map_5fscope',['map_scope',['../items_8php.html#ac1fcf621dce7370515b420a7753f4726',1,'items.php']]],
+ ['marital_5fselector',['marital_selector',['../profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798',1,'profile_selectors.php']]],
+ ['match_2ephp',['match.php',['../match_8php.html',1,'']]],
+ ['match_5fcontent',['match_content',['../match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d',1,'match.php']]],
+ ['max_5fimage_5flength',['MAX_IMAGE_LENGTH',['../boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa',1,'boot.php']]],
+ ['max_5flikers',['MAX_LIKERS',['../boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd',1,'boot.php']]],
+ ['member_5fof',['member_of',['../include_2group_8php.html#a048f6892bfd28852de1b76470df411de',1,'group.php']]],
+ ['message_2ephp',['message.php',['../mod_2message_8php.html',1,'']]],
+ ['message_2ephp',['message.php',['../include_2message_8php.html',1,'']]],
+ ['message_5faside',['message_aside',['../mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7',1,'message.php']]],
+ ['message_5fcontent',['message_content',['../mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79',1,'message.php']]],
+ ['message_5fpost',['message_post',['../mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718',1,'message.php']]],
+ ['micropro',['micropro',['../text_8php.html#a2a902f5fdba8646333e997898ac45ea3',1,'text.php']]],
+ ['mini_5fgroup_5fselect',['mini_group_select',['../include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f',1,'group.php']]],
+ ['minimal_2ephp',['minimal.php',['../minimal_8php.html',1,'']]],
+ ['mod_5fimport_2ephp',['mod_import.php',['../mod__import_8php.html',1,'']]],
+ ['mod_5fnew_5fchannel_2ephp',['mod_new_channel.php',['../mod__new__channel_8php.html',1,'']]],
+ ['mod_5fregister_2ephp',['mod_register.php',['../mod__register_8php.html',1,'']]],
+ ['mood_2ephp',['mood.php',['../mood_8php.html',1,'']]],
+ ['mood_5fcontent',['mood_content',['../mood_8php.html#a721b9b6703b3234a005641c92d409b8f',1,'mood.php']]],
+ ['mood_5finit',['mood_init',['../mood_8php.html#a7ae136dd7476865b4828136175db5022',1,'mood.php']]],
+ ['msearch_2ephp',['msearch.php',['../msearch_8php.html',1,'']]],
+ ['msearch_5fpost',['msearch_post',['../msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8',1,'msearch.php']]]
+];
diff --git a/doc/html/search/all_6e.html b/doc/html/search/all_6e.html
new file mode 100644
index 000000000..e0fd7653a
--- /dev/null
+++ b/doc/html/search/all_6e.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_6e.js b/doc/html/search/all_6e.js
new file mode 100644
index 000000000..1d3991a45
--- /dev/null
+++ b/doc/html/search/all_6e.js
@@ -0,0 +1,86 @@
+var searchData=
+[
+ ['n',['n',['../php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b',1,'php2po.php']]],
+ ['names',['names',['../namespaceupdatetpl.html#ab42dd79af65ee82201fd6f04715f62f6',1,'updatetpl']]],
+ ['nameslist',['namesList',['../docblox__errorchecker_8php.html#a2b767cfc461fdd5061fffc9e4a806d5b',1,'docblox_errorchecker.php']]],
+ ['namespace_5factivity',['NAMESPACE_ACTIVITY',['../boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2',1,'boot.php']]],
+ ['namespace_5factivity_5fschema',['NAMESPACE_ACTIVITY_SCHEMA',['../boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133',1,'boot.php']]],
+ ['namespace_5fatom1',['NAMESPACE_ATOM1',['../boot_8php.html#a444ce608ce34efb82ee11852f36e825f',1,'boot.php']]],
+ ['namespace_5fdfrn',['NAMESPACE_DFRN',['../boot_8php.html#a7ed4581ab66ebcde97f6b3730856b028',1,'boot.php']]],
+ ['namespace_5ffeed',['NAMESPACE_FEED',['../boot_8php.html#ac195fc9003298923ea81f144388e24b1',1,'boot.php']]],
+ ['namespace_5fgeorss',['NAMESPACE_GEORSS',['../boot_8php.html#a03d19251c245587de7ed959300b87bdf',1,'boot.php']]],
+ ['namespace_5fmedia',['NAMESPACE_MEDIA',['../boot_8php.html#a6626f383c3d2d459f731ab8b4f237d16',1,'boot.php']]],
+ ['namespace_5fostatus',['NAMESPACE_OSTATUS',['../boot_8php.html#acca19aae62e1a6951a856b945de20d67',1,'boot.php']]],
+ ['namespace_5fostatussub',['NAMESPACE_OSTATUSSUB',['../boot_8php.html#a181c111f4b6c14d091dfd3bf0d0a22cd',1,'boot.php']]],
+ ['namespace_5fpoco',['NAMESPACE_POCO',['../boot_8php.html#a0b73e2548d6f9beb9c93211f488e336a',1,'boot.php']]],
+ ['namespace_5fsalmon_5fme',['NAMESPACE_SALMON_ME',['../boot_8php.html#aee324eca9de4e0fedf01ab5f92e27c67',1,'boot.php']]],
+ ['namespace_5fstatusnet',['NAMESPACE_STATUSNET',['../boot_8php.html#afaf93b7026f784b113b4f8921745891e',1,'boot.php']]],
+ ['namespace_5fthread',['NAMESPACE_THREAD',['../boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86',1,'boot.php']]],
+ ['namespace_5ftomb',['NAMESPACE_TOMB',['../boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e',1,'boot.php']]],
+ ['namespace_5fzot',['NAMESPACE_ZOT',['../boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47',1,'boot.php']]],
+ ['nav',['nav',['../nav_8php.html#a43be0df73b90647ea70947ce004e231e',1,'nav.php']]],
+ ['nav_2ephp',['nav.php',['../nav_8php.html',1,'']]],
+ ['nav_5fset_5fselected',['nav_set_selected',['../nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a',1,'nav.php']]],
+ ['navbar_5fcomplete',['navbar_complete',['../acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f',1,'acl.php']]],
+ ['network_2ephp',['network.php',['../include_2network_8php.html',1,'']]],
+ ['network_2ephp',['network.php',['../mod_2network_8php.html',1,'']]],
+ ['network_5fcontent',['network_content',['../mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4',1,'network.php']]],
+ ['network_5fdfrn',['NETWORK_DFRN',['../boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e',1,'boot.php']]],
+ ['network_5fdiaspora',['NETWORK_DIASPORA',['../boot_8php.html#a38f6c7fe33b5434a24b4314567753dfa',1,'boot.php']]],
+ ['network_5ffacebook',['NETWORK_FACEBOOK',['../boot_8php.html#af3905ea8f8568d0236db13fca40514e3',1,'boot.php']]],
+ ['network_5ffeed',['NETWORK_FEED',['../boot_8php.html#ab4bddb41a0cf407178ec5278b950c393',1,'boot.php']]],
+ ['network_5fgplus',['NETWORK_GPLUS',['../boot_8php.html#a8905fde0a5b7882bdc083b20d9b34701',1,'boot.php']]],
+ ['network_5finit',['network_init',['../mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec',1,'network.php']]],
+ ['network_5flinkedin',['NETWORK_LINKEDIN',['../boot_8php.html#a5b043b7fdcfd4e8c9c3747574afc6caa',1,'boot.php']]],
+ ['network_5fmail',['NETWORK_MAIL',['../boot_8php.html#a7236b2cdcf59f02a42302e893a99013b',1,'boot.php']]],
+ ['network_5fmail2',['NETWORK_MAIL2',['../boot_8php.html#aa17a4f9c63f5cbc5c06f1066b6aebc42',1,'boot.php']]],
+ ['network_5fmyspace',['NETWORK_MYSPACE',['../boot_8php.html#ae94f7c7c0909629a75aed1c41f10bc95',1,'boot.php']]],
+ ['network_5fostatus',['NETWORK_OSTATUS',['../boot_8php.html#aef4b6c558c68c88c10f13c5a00c20e3d',1,'boot.php']]],
+ ['network_5fphantom',['NETWORK_PHANTOM',['../boot_8php.html#ab21fb0f3e6b962419955c6fc7f26734f',1,'boot.php']]],
+ ['network_5fquery_5fget_5fsel_5ftab',['network_query_get_sel_tab',['../mod_2network_8php.html#aeaa518c1a317516a3da337b88d358666',1,'network.php']]],
+ ['network_5fto_5fname',['network_to_name',['../contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be',1,'contact_selectors.php']]],
+ ['network_5fxmpp',['NETWORK_XMPP',['../boot_8php.html#a43296b1b4398aacbf92a4b2d56bab91e',1,'boot.php']]],
+ ['network_5fzot',['NETWORK_ZOT',['../boot_8php.html#a2c65e925994566a63e6c03c381f1b4a0',1,'boot.php']]],
+ ['new_5faccess_5ftoken',['new_access_token',['../classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934',1,'FKOAuthDataStore']]],
+ ['new_5fchannel_2ephp',['new_channel.php',['../new__channel_8php.html',1,'']]],
+ ['new_5fchannel_5fcontent',['new_channel_content',['../new__channel_8php.html#ae585191610f79da129492482ce8e2fee',1,'new_channel.php']]],
+ ['new_5fchannel_5finit',['new_channel_init',['../new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164',1,'new_channel.php']]],
+ ['new_5fchannel_5fpost',['new_channel_post',['../new__channel_8php.html#a180b0646957db8290482f02454ad7f23',1,'new_channel.php']]],
+ ['new_5fcontact',['new_contact',['../include_2follow_8php.html#a6553a7650fae55f95660510d90983144',1,'follow.php']]],
+ ['new_5fcookie',['new_cookie',['../session_8php.html#a4c0ead624f95483e386bc80abf570a8f',1,'session.php']]],
+ ['new_5ffollower',['new_follower',['../items_8php.html#a53eb3d27e1c55083be93a32f392d54e7',1,'items.php']]],
+ ['new_5fkeypair',['new_keypair',['../crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a',1,'crypto.php']]],
+ ['new_5frequest_5ftoken',['new_request_token',['../classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050',1,'FKOAuthDataStore']]],
+ ['newfilename',['newfilename',['../namespacefriendica-to-smarty-tpl.html#ad9ef87ccb2c9960501f5e02424a22d80',1,'friendica-to-smarty-tpl']]],
+ ['node2bbcode',['node2bbcode',['../html2bbcode_8php.html#ad174afe0ccbd8c475e48f8a6ee2f27d8',1,'html2bbcode.php']]],
+ ['node2bbcodesub',['node2bbcodesub',['../html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7',1,'html2bbcode.php']]],
+ ['nogroup_2ephp',['nogroup.php',['../nogroup_8php.html',1,'']]],
+ ['nogroup_5fcontent',['nogroup_content',['../nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30',1,'nogroup.php']]],
+ ['nogroup_5finit',['nogroup_init',['../nogroup_8php.html#a099cb353bf62e8453069ce107b763212',1,'nogroup.php']]],
+ ['normalise_5flink',['normalise_link',['../text_8php.html#a4bbb7d00c05cd20b4e043424f322388f',1,'text.php']]],
+ ['normalise_5fopenid',['normalise_openid',['../text_8php.html#adba17ec946f4285285dc100f7860bf51',1,'text.php']]],
+ ['notags',['notags',['../text_8php.html#a1af49756c8c71902a66c7e329c462beb',1,'text.php']]],
+ ['notice',['notice',['../boot_8php.html#a9255af5ae9c887520091ea04763c1a88',1,'boot.php']]],
+ ['notification',['notification',['../enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc',1,'enotify.php']]],
+ ['notifications_2ephp',['notifications.php',['../notifications_8php.html',1,'']]],
+ ['notifications_5fcontent',['notifications_content',['../notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62',1,'notifications.php']]],
+ ['notifications_5fpost',['notifications_post',['../notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33',1,'notifications.php']]],
+ ['notifier_2ephp',['notifier.php',['../notifier_8php.html',1,'']]],
+ ['notifier_5frun',['notifier_run',['../notifier_8php.html#a568c502f626cff95e344c0748938b85d',1,'notifier.php']]],
+ ['notify_2ephp',['notify.php',['../include_2notify_8php.html',1,'']]],
+ ['notify_2ephp',['notify.php',['../mod_2notify_8php.html',1,'']]],
+ ['notify_5fcomment',['NOTIFY_COMMENT',['../boot_8php.html#a20f0eed431d25870b624b8937a07a59f',1,'boot.php']]],
+ ['notify_5fconfirm',['NOTIFY_CONFIRM',['../boot_8php.html#af8c0cb0744c9a6b5d6d3baafb1f1e71d',1,'boot.php']]],
+ ['notify_5fcontent',['notify_content',['../mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3',1,'notify.php']]],
+ ['notify_5finit',['notify_init',['../mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae',1,'notify.php']]],
+ ['notify_5fintro',['NOTIFY_INTRO',['../boot_8php.html#a56fd673eaa7014150297ce1162502db5',1,'boot.php']]],
+ ['notify_5fmail',['NOTIFY_MAIL',['../boot_8php.html#a285732e7889fa7f333cbe431111e1029',1,'boot.php']]],
+ ['notify_5fpoke',['NOTIFY_POKE',['../boot_8php.html#aca08bc4f1554ba877500f6abcc99e1e8',1,'boot.php']]],
+ ['notify_5fprofile',['NOTIFY_PROFILE',['../boot_8php.html#a981d46380f9f23c308bac1f9cb00dc5b',1,'boot.php']]],
+ ['notify_5fsuggest',['NOTIFY_SUGGEST',['../boot_8php.html#a9d01ef178b72b145016cca1393415bc4',1,'boot.php']]],
+ ['notify_5fsystem',['NOTIFY_SYSTEM',['../boot_8php.html#a14d44d4a00223dc3db4ea962325db192',1,'boot.php']]],
+ ['notify_5ftagself',['NOTIFY_TAGSELF',['../boot_8php.html#ab724491497ab2618b23a01d5da60aec0',1,'boot.php']]],
+ ['notify_5ftagshare',['NOTIFY_TAGSHARE',['../boot_8php.html#af6937db5f581d006bf4a5c3d9c7e0461',1,'boot.php']]],
+ ['notify_5fwall',['NOTIFY_WALL',['../boot_8php.html#a505410c7edc5f5bb5fa227b98359793e',1,'boot.php']]],
+ ['nuke_5fsession',['nuke_session',['../auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a',1,'auth.php']]]
+];
diff --git a/doc/html/search/all_6f.html b/doc/html/search/all_6f.html
new file mode 100644
index 000000000..5e86b030d
--- /dev/null
+++ b/doc/html/search/all_6f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_6f.js b/doc/html/search/all_6f.js
new file mode 100644
index 000000000..095330fe4
--- /dev/null
+++ b/doc/html/search/all_6f.js
@@ -0,0 +1,28 @@
+var searchData=
+[
+ ['oauth_2ephp',['oauth.php',['../oauth_8php.html',1,'']]],
+ ['oauth_5fget_5fclient',['oauth_get_client',['../mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117',1,'api.php']]],
+ ['obj_5fverb_5fselector',['obj_verb_selector',['../taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2',1,'taxonomy.php']]],
+ ['obj_5fverbs',['obj_verbs',['../taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce',1,'taxonomy.php']]],
+ ['oe_5fbuild_5fxpath',['oe_build_xpath',['../include_2oembed_8php.html#ab953a6e7c11bc6498ce01ed73e2ba319',1,'oembed.php']]],
+ ['oe_5fget_5finner_5fhtml',['oe_get_inner_html',['../include_2oembed_8php.html#a03fa3b7832c98a3d0b4630afeb73d487',1,'oembed.php']]],
+ ['oembed_2ephp',['oembed.php',['../include_2oembed_8php.html',1,'']]],
+ ['oembed_2ephp',['oembed.php',['../mod_2oembed_8php.html',1,'']]],
+ ['oembed_5fbbcode2html',['oembed_bbcode2html',['../include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2',1,'oembed.php']]],
+ ['oembed_5ffetch_5furl',['oembed_fetch_url',['../include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2',1,'oembed.php']]],
+ ['oembed_5fformat_5fobject',['oembed_format_object',['../include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3',1,'oembed.php']]],
+ ['oembed_5fhtml2bbcode',['oembed_html2bbcode',['../include_2oembed_8php.html#a000a62b97113cf95b0e9e00412168172',1,'oembed.php']]],
+ ['oembed_5fiframe',['oembed_iframe',['../include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a',1,'oembed.php']]],
+ ['oembed_5finit',['oembed_init',['../mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014',1,'oembed.php']]],
+ ['oembed_5freplacecb',['oembed_replacecb',['../include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0',1,'oembed.php']]],
+ ['oexchange_2ephp',['oexchange.php',['../oexchange_8php.html',1,'']]],
+ ['oexchange_5fcontent',['oexchange_content',['../oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26',1,'oexchange.php']]],
+ ['oexchange_5finit',['oexchange_init',['../oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59',1,'oexchange.php']]],
+ ['onepoll_2ephp',['onepoll.php',['../onepoll_8php.html',1,'']]],
+ ['onepoll_5frun',['onepoll_run',['../onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d',1,'onepoll.php']]],
+ ['opensearch_2ephp',['opensearch.php',['../opensearch_8php.html',1,'']]],
+ ['opensearch_5finit',['opensearch_init',['../opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9',1,'opensearch.php']]],
+ ['orient',['orient',['../classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d',1,'photo_driver']]],
+ ['outf',['outf',['../namespacefriendica-to-smarty-tpl.html#a87182a9bab47640428bd0b2b9946bef9',1,'friendica-to-smarty-tpl']]],
+ ['outpath',['outpath',['../namespacefriendica-to-smarty-tpl.html#a005c1b7a69cac31fad72a941974ba7bb',1,'friendica-to-smarty-tpl']]]
+];
diff --git a/doc/html/search/all_70.html b/doc/html/search/all_70.html
new file mode 100644
index 000000000..799c1a277
--- /dev/null
+++ b/doc/html/search/all_70.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_70.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_70.js b/doc/html/search/all_70.js
new file mode 100644
index 000000000..d362b680b
--- /dev/null
+++ b/doc/html/search/all_70.js
@@ -0,0 +1,152 @@
+var searchData=
+[
+ ['page',['page',['../mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'page():&#160;mod_import.php'],['../mod__new__channel_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'page():&#160;mod_new_channel.php'],['../mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'page():&#160;mod_register.php']]],
+ ['page_2ephp',['page.php',['../page_8php.html',1,'']]],
+ ['page_5fapplication',['PAGE_APPLICATION',['../boot_8php.html#a8231d115060d41a9c2a677f2c86f10ed',1,'boot.php']]],
+ ['page_5fautoconnect',['PAGE_AUTOCONNECT',['../boot_8php.html#aa275653b9c87abc7391bb8040c1c2de9',1,'boot.php']]],
+ ['page_5fcontent',['page_content',['../page_8php.html#a91a5f649f68406149108bded1dc90b22',1,'page.php']]],
+ ['page_5fdirectory_5fchannel',['PAGE_DIRECTORY_CHANNEL',['../boot_8php.html#a5b8484922918946d041e5e0515dbe718',1,'boot.php']]],
+ ['page_5fhidden',['PAGE_HIDDEN',['../boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640',1,'boot.php']]],
+ ['page_5finit',['page_init',['../page_8php.html#a4d89800c0366a239191b1692c09635cf',1,'page.php']]],
+ ['page_5fnormal',['PAGE_NORMAL',['../boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3',1,'boot.php']]],
+ ['page_5fremoved',['PAGE_REMOVED',['../boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6',1,'boot.php']]],
+ ['paginate',['paginate',['../text_8php.html#afe9f178d264d44a94dc1292aaf0fd585',1,'text.php']]],
+ ['parse_5furl_2ephp',['parse_url.php',['../parse__url_8php.html',1,'']]],
+ ['parse_5furl_5fcontent',['parse_url_content',['../parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b',1,'parse_url.php']]],
+ ['parse_5fxml_5fstring',['parse_xml_string',['../include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6',1,'network.php']]],
+ ['parsed',['parsed',['../classFriendicaSmarty.html#a6a4d4281d6fa9be1d37a97b188ffe8c9',1,'FriendicaSmarty']]],
+ ['parseurl_5fgetsiteinfo',['parseurl_getsiteinfo',['../parse__url_8php.html#a25635549f2c22955d72465f4d2e58993',1,'parse_url.php']]],
+ ['path',['path',['../namespacefriendica-to-smarty-tpl.html#a68d15934660cd1f4301ce251b1646f09',1,'friendica-to-smarty-tpl.path()'],['../namespaceupdatetpl.html#ae694f5e1f25f8a92a945eb90c432dfe6',1,'updatetpl.path()']]],
+ ['perm_5fis_5fallowed',['perm_is_allowed',['../permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835',1,'permissions.php']]],
+ ['permissions_2ephp',['permissions.php',['../permissions_8php.html',1,'']]],
+ ['permissions_5fsql',['permissions_sql',['../security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f',1,'security.php']]],
+ ['perms2str',['perms2str',['../text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee',1,'text.php']]],
+ ['perms_5fa_5fdelegate',['PERMS_A_DELEGATE',['../boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b',1,'boot.php']]],
+ ['perms_5fcontacts',['PERMS_CONTACTS',['../boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6',1,'boot.php']]],
+ ['perms_5fnetwork',['PERMS_NETWORK',['../boot_8php.html#a6df1102664f64b274810db85197c2755',1,'boot.php']]],
+ ['perms_5fpublic',['PERMS_PUBLIC',['../boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7',1,'boot.php']]],
+ ['perms_5fr_5fabook',['PERMS_R_ABOOK',['../boot_8php.html#a3d6d4fc5fafcc9156811669158541caf',1,'boot.php']]],
+ ['perms_5fr_5fpages',['PERMS_R_PAGES',['../boot_8php.html#ab51965fabe54dc031e9a0ce1142ee83e',1,'boot.php']]],
+ ['perms_5fr_5fphotos',['PERMS_R_PHOTOS',['../boot_8php.html#a29e921c0c72412cc738e44cca6ca1f62',1,'boot.php']]],
+ ['perms_5fr_5fprofile',['PERMS_R_PROFILE',['../boot_8php.html#ad789aef3cb95fc1eb36be7c4283d0137',1,'boot.php']]],
+ ['perms_5fr_5fstorage',['PERMS_R_STORAGE',['../boot_8php.html#a1db4f0009c9cb4e107eab0f914a3c8dc',1,'boot.php']]],
+ ['perms_5fr_5fstream',['PERMS_R_STREAM',['../boot_8php.html#aec36f8fcd4cb14a52934590b3d6666b4',1,'boot.php']]],
+ ['perms_5fsite',['PERMS_SITE',['../boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f',1,'boot.php']]],
+ ['perms_5fspecific',['PERMS_SPECIFIC',['../boot_8php.html#a9cc986b4f9dd6558cbb2e25aadbfd964',1,'boot.php']]],
+ ['perms_5fw_5fchat',['PERMS_W_CHAT',['../boot_8php.html#acd877c405b06b348b37b6f7e62a211e9',1,'boot.php']]],
+ ['perms_5fw_5fcomment',['PERMS_W_COMMENT',['../boot_8php.html#a32df13fec0e43281da5979e1f5579aa8',1,'boot.php']]],
+ ['perms_5fw_5fmail',['PERMS_W_MAIL',['../boot_8php.html#a6b31dd451bc6c37fe7c9c766ff385aaf',1,'boot.php']]],
+ ['perms_5fw_5fpages',['PERMS_W_PAGES',['../boot_8php.html#aa9244fc9cc221980c07a20cc534111be',1,'boot.php']]],
+ ['perms_5fw_5fphotos',['PERMS_W_PHOTOS',['../boot_8php.html#a57eee7352714c004d36c26dda74af73e',1,'boot.php']]],
+ ['perms_5fw_5fstorage',['PERMS_W_STORAGE',['../boot_8php.html#a4fefd7486d3b888a05cfd3dc9575f115',1,'boot.php']]],
+ ['perms_5fw_5fstream',['PERMS_W_STREAM',['../boot_8php.html#a8bb0395933b5e886f086f6a2fb0bfa55',1,'boot.php']]],
+ ['perms_5fw_5ftagwall',['PERMS_W_TAGWALL',['../boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777',1,'boot.php']]],
+ ['perms_5fw_5fwall',['PERMS_W_WALL',['../boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2',1,'boot.php']]],
+ ['photo_2ephp',['photo.php',['../photo_8php.html',1,'']]],
+ ['photo_5fdriver',['photo_driver',['../classphoto__driver.html',1,'']]],
+ ['photo_5fdriver_2ephp',['photo_driver.php',['../photo__driver_8php.html',1,'']]],
+ ['photo_5ffactory',['photo_factory',['../photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035',1,'photo_driver.php']]],
+ ['photo_5fgd',['photo_gd',['../classphoto__gd.html',1,'']]],
+ ['photo_5fgd_2ephp',['photo_gd.php',['../photo__gd_8php.html',1,'']]],
+ ['photo_5fimagick',['photo_imagick',['../classphoto__imagick.html',1,'']]],
+ ['photo_5fimagick_2ephp',['photo_imagick.php',['../photo__imagick_8php.html',1,'']]],
+ ['photo_5finit',['photo_init',['../photo_8php.html#a582779d24882b0d31ee909a91d70a448',1,'photo.php']]],
+ ['photo_5fnew_5fresource',['photo_new_resource',['../text_8php.html#aa5528f41533927e1bd2da3618a74a6d7',1,'text.php']]],
+ ['photo_5fnormal',['PHOTO_NORMAL',['../boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4',1,'boot.php']]],
+ ['photo_5fprofile',['PHOTO_PROFILE',['../boot_8php.html#ab4bc9c50ecc927b92d519e36562b0df0',1,'boot.php']]],
+ ['photo_5fthing',['PHOTO_THING',['../boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383',1,'boot.php']]],
+ ['photo_5fupload',['photo_upload',['../include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109',1,'photos.php']]],
+ ['photo_5fxchan',['PHOTO_XCHAN',['../boot_8php.html#ac43182e0d8bae7576a30b603774974f8',1,'boot.php']]],
+ ['photos_2ephp',['photos.php',['../mod_2photos_8php.html',1,'']]],
+ ['photos_2ephp',['photos.php',['../include_2photos_8php.html',1,'']]],
+ ['photos_5falbum_5fexists',['photos_album_exists',['../include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35',1,'photos.php']]],
+ ['photos_5falbum_5fget_5fdb_5fidstr',['photos_album_get_db_idstr',['../include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe',1,'photos.php']]],
+ ['photos_5falbum_5frename',['photos_album_rename',['../include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab',1,'photos.php']]],
+ ['photos_5falbum_5fwidget',['photos_album_widget',['../include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979',1,'photos.php']]],
+ ['photos_5falbums_5flist',['photos_albums_list',['../include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9',1,'photos.php']]],
+ ['photos_5fcontent',['photos_content',['../mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812',1,'photos.php']]],
+ ['photos_5fcreate_5fitem',['photos_create_item',['../include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274',1,'photos.php']]],
+ ['photos_5finit',['photos_init',['../mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014',1,'photos.php']]],
+ ['photos_5flist_5fphotos',['photos_list_photos',['../include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51',1,'photos.php']]],
+ ['photos_5fpost',['photos_post',['../mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080',1,'photos.php']]],
+ ['php_2ephp',['php.php',['../php_8php.html',1,'']]],
+ ['php2po_2ephp',['php2po.php',['../php2po_8php.html',1,'']]],
+ ['php_5finit',['php_init',['../php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6',1,'php.php']]],
+ ['php_5ftpl',['php_tpl',['../namespacefriendica-to-smarty-tpl.html#a5dfc21ab8282dda8e3a7dff43cd0e283',1,'friendica-to-smarty-tpl']]],
+ ['ping_2ephp',['ping.php',['../ping_8php.html',1,'']]],
+ ['ping_5finit',['ping_init',['../ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1',1,'ping.php']]],
+ ['pkcs5_5fpad',['pkcs5_pad',['../crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec',1,'crypto.php']]],
+ ['pkcs5_5funpad',['pkcs5_unpad',['../crypto_8php.html#ac95ac3b1b23b65b04a86613d4206ae85',1,'crypto.php']]],
+ ['plugin_2ephp',['plugin.php',['../plugin_8php.html',1,'']]],
+ ['png_5fquality',['PNG_QUALITY',['../boot_8php.html#a8df201788c9dd0ca91384e3a14c08bce',1,'boot.php']]],
+ ['po2php_2ephp',['po2php.php',['../po2php_8php.html',1,'']]],
+ ['po2php_5frun',['po2php_run',['../po2php_8php.html#a3b75e36f913198299e99559b175cd8b4',1,'po2php.php']]],
+ ['poco_2ephp',['poco.php',['../poco_8php.html',1,'']]],
+ ['poco_5finit',['poco_init',['../poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498',1,'poco.php']]],
+ ['poco_5fload',['poco_load',['../socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca',1,'socgraph.php']]],
+ ['poke_2ephp',['poke.php',['../poke_8php.html',1,'']]],
+ ['poke_5fcontent',['poke_content',['../poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993',1,'poke.php']]],
+ ['poke_5finit',['poke_init',['../poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b',1,'poke.php']]],
+ ['poller_2ephp',['poller.php',['../poller_8php.html',1,'']]],
+ ['poller_5frun',['poller_run',['../poller_8php.html#a5f12df3a4738124b6c039971e87e76da',1,'poller.php']]],
+ ['pop_5flang',['pop_lang',['../language_8php.html#a78bd204955ec4cc3a9ac651285a1689d',1,'language.php']]],
+ ['populate_5facl',['populate_acl',['../acl__selectors_8php.html#a51f2ec7a143d5a5b38e35efd5f3d6e2c',1,'acl_selectors.php']]],
+ ['post_2ephp',['post.php',['../post_8php.html',1,'']]],
+ ['post_5factivity_5fitem',['post_activity_item',['../items_8php.html#a410f9c743877c125ca06312373346903',1,'items.php']]],
+ ['post_5finit',['post_init',['../post_8php.html#af4b48181ce773ef0cdfc972441445c34',1,'post.php']]],
+ ['post_5fpost',['post_post',['../post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75',1,'post.php']]],
+ ['post_5furl',['post_url',['../include_2network_8php.html#aa44d9e33a579d930e9e79c4ebb3d6b5e',1,'network.php']]],
+ ['posted_5fdate_5fwidget',['posted_date_widget',['../items_8php.html#abe695dd89e1e10ed042c26b80114f0ed',1,'items.php']]],
+ ['posted_5fdates',['posted_dates',['../items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0',1,'items.php']]],
+ ['preg_5fheart',['preg_heart',['../text_8php.html#ac19d2b33a58372a357a43d51eed19162',1,'text.php']]],
+ ['prepare_5fbody',['prepare_body',['../text_8php.html#ae4df74296fbe55051ed3c035e55205e5',1,'text.php']]],
+ ['prepare_5fpage',['prepare_page',['../conversation_8php.html#a4b0888b0f26e1c284a4341fe5fd04f0c',1,'conversation.php']]],
+ ['prepare_5ftext',['prepare_text',['../text_8php.html#afe54312607d92f7ce9593f5760831f80',1,'text.php']]],
+ ['pretheme_2ephp',['pretheme.php',['../pretheme_8php.html',1,'']]],
+ ['pretheme_5finit',['pretheme_init',['../pretheme_8php.html#af5660943ee99db5fd75182316522eafe',1,'pretheme.php']]],
+ ['print_5ftemplate',['print_template',['../tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3',1,'tpldebug.php']]],
+ ['printable',['printable',['../dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249',1,'dba_driver.php']]],
+ ['private_5fmessages_5fdrop',['private_messages_drop',['../include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1',1,'message.php']]],
+ ['private_5fmessages_5ffetch_5fconversation',['private_messages_fetch_conversation',['../include_2message_8php.html#a5f8de9847e203329e317ac38dc646898',1,'message.php']]],
+ ['private_5fmessages_5ffetch_5fmessage',['private_messages_fetch_message',['../include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091',1,'message.php']]],
+ ['private_5fmessages_5flist',['private_messages_list',['../include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e',1,'message.php']]],
+ ['probe_2ephp',['probe.php',['../probe_8php.html',1,'']]],
+ ['probe_5fcontent',['probe_content',['../probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99',1,'probe.php']]],
+ ['proc_5frun',['proc_run',['../boot_8php.html#ab346a2ece14993861f3e4206befa94f0',1,'boot.php']]],
+ ['process_5fchannel_5fsync_5fdelivery',['process_channel_sync_delivery',['../zot_8php.html#ac301c67864917c35922257950ae0f95c',1,'zot.php']]],
+ ['process_5fdelivery',['process_delivery',['../zot_8php.html#a37ec13b18057634eadb071f05297f5e1',1,'zot.php']]],
+ ['process_5fmail_5fdelivery',['process_mail_delivery',['../zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc',1,'zot.php']]],
+ ['process_5fprofile_5fdelivery',['process_profile_delivery',['../zot_8php.html#a9a57b40669351c9791126b925cb7ef3b',1,'zot.php']]],
+ ['profile_2ephp',['profile.php',['../profile_8php.html',1,'']]],
+ ['profile_5factivity',['profile_activity',['../activities_8php.html#a80134e807719b3c54aba971958d2e132',1,'activities.php']]],
+ ['profile_5fadvanced_2ephp',['profile_advanced.php',['../profile__advanced_8php.html',1,'']]],
+ ['profile_5faside',['profile_aside',['../profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e',1,'profile.php']]],
+ ['profile_5fcontent',['profile_content',['../profile_8php.html#a3775cf6eef6587e5143133356a7b76c0',1,'profile.php']]],
+ ['profile_5fcreate_5fsidebar',['profile_create_sidebar',['../boot_8php.html#a5b45d647da3743a7fc8c6223350b4d67',1,'boot.php']]],
+ ['profile_5finit',['profile_init',['../profile_8php.html#ab5d0246be0552e2182a585c1206d22a5',1,'profile.php']]],
+ ['profile_5fload',['profile_load',['../boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68',1,'boot.php']]],
+ ['profile_5fphoto_2ephp',['profile_photo.php',['../profile__photo_8php.html',1,'']]],
+ ['profile_5fphoto_5faside',['profile_photo_aside',['../profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3',1,'profile_photo.php']]],
+ ['profile_5fphoto_5finit',['profile_photo_init',['../profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02',1,'profile_photo.php']]],
+ ['profile_5fphoto_5fpost',['profile_photo_post',['../profile__photo_8php.html#a4b80234074bd603221aa5364f330e479',1,'profile_photo.php']]],
+ ['profile_5fselectors_2ephp',['profile_selectors.php',['../profile__selectors_8php.html',1,'']]],
+ ['profile_5fsidebar',['profile_sidebar',['../boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b',1,'boot.php']]],
+ ['profile_5ftabs',['profile_tabs',['../boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273',1,'boot.php']]],
+ ['profiler',['profiler',['../text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6',1,'text.php']]],
+ ['profiles_2ephp',['profiles.php',['../profiles_8php.html',1,'']]],
+ ['profiles_5faside',['profiles_aside',['../profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c',1,'profiles.php']]],
+ ['profiles_5fcontent',['profiles_content',['../profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00',1,'profiles.php']]],
+ ['profiles_5finit',['profiles_init',['../profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e',1,'profiles.php']]],
+ ['profiles_5fpost',['profiles_post',['../profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04',1,'profiles.php']]],
+ ['profperm_2ephp',['profperm.php',['../profperm_8php.html',1,'']]],
+ ['profperm_5faside',['profperm_aside',['../profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc',1,'profperm.php']]],
+ ['profperm_5fcontent',['profperm_content',['../profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023',1,'profperm.php']]],
+ ['profperm_5finit',['profperm_init',['../profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6',1,'profperm.php']]],
+ ['protect_5fsprintf',['protect_sprintf',['../text_8php.html#a4e7698aca48982512594b274543c3b9b',1,'text.php']]],
+ ['protodriver',['ProtoDriver',['../classProtoDriver.html',1,'']]],
+ ['protodriver_2ephp',['ProtoDriver.php',['../ProtoDriver_8php.html',1,'']]],
+ ['public_5fpermissions_5fsql',['public_permissions_sql',['../security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01',1,'security.php']]],
+ ['public_5frecips',['public_recips',['../zot_8php.html#a083aec6c900d244e1bfc1406f9461465',1,'zot.php']]],
+ ['purify_5fhtml',['purify_html',['../text_8php.html#a4841df5beabdd1bdd1ed56781a915d61',1,'text.php']]],
+ ['push_5flang',['push_lang',['../language_8php.html#ac9142ef1d01a235c760deb0f16643f5a',1,'language.php']]]
+];
diff --git a/doc/html/search/all_71.html b/doc/html/search/all_71.html
new file mode 100644
index 000000000..e9d391f66
--- /dev/null
+++ b/doc/html/search/all_71.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_71.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_71.js b/doc/html/search/all_71.js
new file mode 100644
index 000000000..9a1ee9bc1
--- /dev/null
+++ b/doc/html/search/all_71.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['q',['q',['../classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555',1,'dba_driver\q()'],['../classdba__mysql.html#ac3fd60c278f400907322dac578754a99',1,'dba_mysql\q()'],['../classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec',1,'dba_mysqli\q()'],['../dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f',1,'q():&#160;dba_driver.php']]],
+ ['qp',['qp',['../text_8php.html#afc998d2796a6b2a08e96f7cc061e7221',1,'text.php']]],
+ ['qsearch_2ephp',['qsearch.php',['../qsearch_8php.html',1,'']]],
+ ['qsearch_5finit',['qsearch_init',['../qsearch_8php.html#a0501887b95bd8fa21018b2936a668894',1,'qsearch.php']]],
+ ['queue_2ephp',['queue.php',['../queue_8php.html',1,'']]],
+ ['queue_5ffn_2ephp',['queue_fn.php',['../queue__fn_8php.html',1,'']]],
+ ['queue_5frun',['queue_run',['../queue_8php.html#af8c93de86d866c3200174c8450a0f341',1,'queue.php']]],
+ ['quotelevel',['quotelevel',['../html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0',1,'html2plain.php']]]
+];
diff --git a/doc/html/search/all_72.html b/doc/html/search/all_72.html
new file mode 100644
index 000000000..347b9f666
--- /dev/null
+++ b/doc/html/search/all_72.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_72.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_72.js b/doc/html/search/all_72.js
new file mode 100644
index 000000000..b6f0d62cc
--- /dev/null
+++ b/doc/html/search/all_72.js
@@ -0,0 +1,67 @@
+var searchData=
+[
+ ['redstrap_20theme',['Redstrap theme',['../md_README.html',1,'']]],
+ ['random_5fprofile',['random_profile',['../Contact_8php.html#a91281b5d4bbbb2ed468e27ec82ca083c',1,'Contact.php']]],
+ ['random_5fstring',['random_string',['../text_8php.html#a9d6a5ee1290de7a8b483fe78585daade',1,'text.php']]],
+ ['random_5fstring_5fhex',['RANDOM_STRING_HEX',['../text_8php.html#aad557c054cf2ed915633701018fc7e3f',1,'text.php']]],
+ ['random_5fstring_5ftext',['RANDOM_STRING_TEXT',['../text_8php.html#a2ffd79c60cc87cec24ef76447b905187',1,'text.php']]],
+ ['randprof_2ephp',['randprof.php',['../randprof_8php.html',1,'']]],
+ ['randprof_5finit',['randprof_init',['../randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090',1,'randprof.php']]],
+ ['rdelim',['rdelim',['../namespacefriendica-to-smarty-tpl.html#a8540514fb7c4aa18ad2dffa2a975036b',1,'friendica-to-smarty-tpl']]],
+ ['readme_2emd',['README.md',['../README_8md.html',1,'']]],
+ ['rebuild_5ftheme_5ftable',['rebuild_theme_table',['../admin_8php.html#ae46311a3fefc21abc838a26e91789de6',1,'admin.php']]],
+ ['red_5fplatform',['RED_PLATFORM',['../boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4',1,'boot.php']]],
+ ['red_5fversion',['RED_VERSION',['../boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3',1,'boot.php']]],
+ ['red_5fzrl_5fcallback',['red_zrl_callback',['../items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b',1,'items.php']]],
+ ['redbasic_5fform',['redbasic_form',['../view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2',1,'redbasic_form(&amp;$a, $font_size, $line_height, $colour, $shadow, $navcolour, $opaquenav, $displaystyle, $linkcolour, $iconset, $shiny, $colour_scheme, $radius):&#160;config.php'],['../view_2theme_2redstrap_2php_2config_8php.html#af58e97b437c1e98a5e434886494cc70e',1,'redbasic_form(&amp;$a, $font_size, $line_height, $colour, $shadow, $navcolour, $opaquenav, $displaystyle, $linkcolour, $iconset, $shiny):&#160;config.php']]],
+ ['redbasic_5finit',['redbasic_init',['../redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b',1,'theme.php']]],
+ ['redir_2ephp',['redir.php',['../redir_8php.html',1,'']]],
+ ['redir_5finit',['redir_init',['../redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5',1,'redir.php']]],
+ ['redstrap_5finit',['redstrap_init',['../redstrap_2php_2theme_8php.html#a4dac61d466b4261deca2846f548e484a',1,'theme.php']]],
+ ['reduce',['reduce',['../docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f',1,'docblox_errorchecker.php']]],
+ ['ref_5fsession_5fclose',['ref_session_close',['../session_8php.html#a5e1c616e02b863d5450317d101366bb7',1,'session.php']]],
+ ['ref_5fsession_5fdestroy',['ref_session_destroy',['../session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052',1,'session.php']]],
+ ['ref_5fsession_5fgc',['ref_session_gc',['../session_8php.html#ac95373f4966862a028033dd2f94d4da1',1,'session.php']]],
+ ['ref_5fsession_5fopen',['ref_session_open',['../session_8php.html#a26fa1042356d555023cbf15ddd4f8507',1,'session.php']]],
+ ['ref_5fsession_5fread',['ref_session_read',['../session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e',1,'session.php']]],
+ ['ref_5fsession_5fwrite',['ref_session_write',['../session_8php.html#ac4461c1984543d3553e73dba2771568f',1,'session.php']]],
+ ['register_2ephp',['register.php',['../register_8php.html',1,'']]],
+ ['register_5fapprove',['REGISTER_APPROVE',['../boot_8php.html#a7176c0f9f1c98421b97735d892cf6252',1,'boot.php']]],
+ ['register_5fclosed',['REGISTER_CLOSED',['../boot_8php.html#a69aac276ed82e010dc382b16ab4d59e1',1,'boot.php']]],
+ ['register_5fcontent',['register_content',['../register_8php.html#a0e91f57f111407ea8d3223a05022bb2a',1,'register.php']]],
+ ['register_5fhook',['register_hook',['../plugin_8php.html#a425472c5f3afc137268b2ad45652b209',1,'plugin.php']]],
+ ['register_5finit',['register_init',['../register_8php.html#ae20c0cd40f738d6295de58b9202c83d5',1,'register.php']]],
+ ['register_5fopen',['REGISTER_OPEN',['../boot_8php.html#ad8887b49bbb02dd30b4eb9f6c7773c63',1,'boot.php']]],
+ ['register_5fpost',['register_post',['../register_8php.html#a51731dcc1917c58a790eb1c0f6132271',1,'register.php']]],
+ ['register_5ftemplate_5fengine',['register_template_engine',['../classApp.html#abf46a653d8499e7c253cc1be894a6d83',1,'App']]],
+ ['regmod_2ephp',['regmod.php',['../regmod_8php.html',1,'']]],
+ ['regmod_5fcontent',['regmod_content',['../regmod_8php.html#a7953df4e32e63946565e90cdd5d50409',1,'regmod.php']]],
+ ['relative_5fdate',['relative_date',['../datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82',1,'datetime.php']]],
+ ['reload_5fplugins',['reload_plugins',['../plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025',1,'plugin.php']]],
+ ['reltoabs',['reltoabs',['../text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2',1,'text.php']]],
+ ['remote_5fuser',['remote_user',['../boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209',1,'boot.php']]],
+ ['remove_5fall_5fxchan_5fresources',['remove_all_xchan_resources',['../Contact_8php.html#acc12cda999c88c4d6185cca967c15125',1,'Contact.php']]],
+ ['remove_5fchild',['remove_child',['../classItem.html#a2ce70ef63f9f4d86a09c351678806925',1,'Item']]],
+ ['remove_5fcommunity_5ftag',['remove_community_tag',['../zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10',1,'zot.php']]],
+ ['remove_5fparent',['remove_parent',['../classItem.html#aa452b5bcd8dea12119b09212c615cb41',1,'Item']]],
+ ['remove_5fqueue_5fitem',['remove_queue_item',['../queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24',1,'queue_fn.php']]],
+ ['removeme_2ephp',['removeme.php',['../removeme_8php.html',1,'']]],
+ ['removeme_5fcontent',['removeme_content',['../removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c',1,'removeme.php']]],
+ ['removeme_5fpost',['removeme_post',['../removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88',1,'removeme.php']]],
+ ['render_5flocation_5fdefault',['render_location_default',['../conversation_8php.html#a40b9b5e7825bc73932a32e667f05e6f2',1,'conversation.php']]],
+ ['replace',['replace',['../classTemplate.html#a285b5b2007dbbf733476273df3fed4ef',1,'Template']]],
+ ['replace_5fmacros',['replace_macros',['../classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2',1,'FriendicaSmartyEngine\replace_macros()'],['../interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243',1,'ITemplateEngine\replace_macros()'],['../classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b',1,'Template\replace_macros()'],['../text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09',1,'replace_macros():&#160;text.php']]],
+ ['request_5ftoken_5fduration',['REQUEST_TOKEN_DURATION',['../oauth_8php.html#a7a32a5990f113ac9465b03b29175cf16',1,'oauth.php']]],
+ ['requestdata',['requestdata',['../include_2api_8php.html#a43c47de8565cc00c3369cb35c19cc75e',1,'api.php']]],
+ ['return_5fbytes',['return_bytes',['../text_8php.html#ae2126da85966da0e79c6bcbac63b0bda',1,'text.php']]],
+ ['rmagic_2ephp',['rmagic.php',['../rmagic_8php.html',1,'']]],
+ ['rmagic_5fcontent',['rmagic_content',['../rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef',1,'rmagic.php']]],
+ ['rmagic_5finit',['rmagic_init',['../rmagic_8php.html#a95455edd43f1bff39446a57388cdde16',1,'rmagic.php']]],
+ ['rmagic_5fpost',['rmagic_post',['../rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f',1,'rmagic.php']]],
+ ['rotate',['rotate',['../classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec',1,'photo_driver\rotate()'],['../classphoto__gd.html#a77f87730b11093b76980c541159df37d',1,'photo_gd\rotate()'],['../classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f',1,'photo_imagick\rotate()']]],
+ ['rsa_5fsign',['rsa_sign',['../crypto_8php.html#a920e5f222d0020f47556033d8b2b6552',1,'crypto.php']]],
+ ['rsa_5fverify',['rsa_verify',['../crypto_8php.html#ab4f21d8f6b8ece0915e7c8bb73379f96',1,'crypto.php']]],
+ ['rsd_5fxml_2ephp',['rsd_xml.php',['../rsd__xml_8php.html',1,'']]],
+ ['rsd_5fxml_5fcontent',['rsd_xml_content',['../rsd__xml_8php.html#a740cd02fa15e5a53f8547fac73f0ab82',1,'rsd_xml.php']]],
+ ['runs',['runs',['../docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec',1,'docblox_errorchecker.php']]]
+];
diff --git a/doc/html/search/all_73.html b/doc/html/search/all_73.html
new file mode 100644
index 000000000..9abac91a9
--- /dev/null
+++ b/doc/html/search/all_73.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_73.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_73.js b/doc/html/search/all_73.js
new file mode 100644
index 000000000..10773a993
--- /dev/null
+++ b/doc/html/search/all_73.js
@@ -0,0 +1,108 @@
+var searchData=
+[
+ ['sanitise_5facl',['sanitise_acl',['../text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c',1,'text.php']]],
+ ['saved_5fsearches',['saved_searches',['../mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad',1,'network.php']]],
+ ['saveimage',['saveImage',['../classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3',1,'photo_driver']]],
+ ['scale_5fexternal_5fimages',['scale_external_images',['../include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f',1,'network.php']]],
+ ['scaleimage',['scaleImage',['../classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0',1,'photo_driver']]],
+ ['scaleimagesquare',['scaleImageSquare',['../classphoto__driver.html#a56634842b071b96502716e9843ea5361',1,'photo_driver']]],
+ ['scaleimageup',['scaleImageUp',['../classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce',1,'photo_driver']]],
+ ['search',['search',['../text_8php.html#a876e94892867019935b348b573299352',1,'text.php']]],
+ ['search_2ephp',['search.php',['../search_8php.html',1,'']]],
+ ['search_5fac_2ephp',['search_ac.php',['../search__ac_8php.html',1,'']]],
+ ['search_5fac_5finit',['search_ac_init',['../search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138',1,'search_ac.php']]],
+ ['search_5fcontent',['search_content',['../search_8php.html#ab2568591359edde5b483a6cd9a24b2cc',1,'search.php']]],
+ ['search_5finit',['search_init',['../search_8php.html#acf19fd30f07f495781ca0d7a0a08b435',1,'search.php']]],
+ ['search_5fpost',['search_post',['../search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7',1,'search.php']]],
+ ['search_5fsaved_5fsearches',['search_saved_searches',['../search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6',1,'search.php']]],
+ ['security_2ephp',['security.php',['../security_8php.html',1,'']]],
+ ['select_5ftimezone',['select_timezone',['../datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f',1,'datetime.php']]],
+ ['send',['send',['../classenotify.html#afbc088860f534c6c05788b48cfc262c6',1,'enotify']]],
+ ['send_5fmessage',['send_message',['../include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd',1,'message.php']]],
+ ['send_5freg_5fapproval_5femail',['send_reg_approval_email',['../account_8php.html#a014de2d5d5c9785de5bf547a485822fa',1,'account.php']]],
+ ['send_5fstatus_5fnotifications',['send_status_notifications',['../items_8php.html#aab9e0c58247427126de0699c729c3b6c',1,'items.php']]],
+ ['send_5fverification_5femail',['send_verification_email',['../account_8php.html#aa9c29c497c17d8f9344dce8631ad8761',1,'account.php']]],
+ ['service_5fclass_5fallows',['service_class_allows',['../plugin_8php.html#a030cec6793b909c439c0336ba39b1571',1,'plugin.php']]],
+ ['service_5fclass_5ffetch',['service_class_fetch',['../plugin_8php.html#a905b54e10704b283ac64680a8abc0971',1,'plugin.php']]],
+ ['session_2ephp',['session.php',['../session_8php.html',1,'']]],
+ ['set',['set',['../classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce',1,'Cache']]],
+ ['set_5faccount',['set_account',['../classApp.html#aeb1fe1c8ad9aa639909bd183ce578536',1,'App']]],
+ ['set_5fapp',['set_app',['../classBaseObject.html#a0a9acda12d751692834cf6999f889223',1,'BaseObject']]],
+ ['set_5fapps',['set_apps',['../classApp.html#abea5a4f77dcd53c928dc4eed86616637',1,'App']]],
+ ['set_5fbaseurl',['set_baseurl',['../classApp.html#a78788f6e9d8b713b138f81e457c5cd08',1,'App']]],
+ ['set_5fchannel',['set_channel',['../classApp.html#a89e9feb2bfb5253883a9720beaffe876',1,'App']]],
+ ['set_5fconfig',['set_config',['../include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a',1,'config.php']]],
+ ['set_5fconversation',['set_conversation',['../classItem.html#aa8b1bbc4236890694635295e46d7fd72',1,'Item']]],
+ ['set_5fcurl_5fcode',['set_curl_code',['../classApp.html#a5e6a6bd641e4d9909df56f0283c03821',1,'App']]],
+ ['set_5fcurl_5fheaders',['set_curl_headers',['../classApp.html#a9632092d9e8fdaa82a9fc4586433fd31',1,'App']]],
+ ['set_5fdefault_5flogin_5fidentity',['set_default_login_identity',['../identity_8php.html#a78151baf4407a8482d2681a91a9c486b',1,'identity.php']]],
+ ['set_5fgroups',['set_groups',['../classApp.html#a3d84af5e42082098672531cd1a618853',1,'App']]],
+ ['set_5fhostname',['set_hostname',['../classApp.html#a344d2b7dc2f276648d521aee4da1731c',1,'App']]],
+ ['set_5fmode',['set_mode',['../classConversation.html#a66f121ca4026246f86a732e5faa0682c',1,'Conversation']]],
+ ['set_5fobserver',['set_observer',['../classApp.html#a4776d9322edea17fae56afa5d01a323e',1,'App']]],
+ ['set_5fpager_5fitemspage',['set_pager_itemspage',['../classApp.html#a4bdd7bfed62f50515fce652127bf481b',1,'App']]],
+ ['set_5fpager_5ftotal',['set_pager_total',['../classApp.html#a560189f048d3db2f526841963cc43e97',1,'App']]],
+ ['set_5fparent',['set_parent',['../classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7',1,'Item']]],
+ ['set_5fpath',['set_path',['../classApp.html#adb060d5c7f35a521ec7ec0effbe08097',1,'App']]],
+ ['set_5fpconfig',['set_pconfig',['../include_2config_8php.html#a61591371cb18764138655d67dc817ab2',1,'config.php']]],
+ ['set_5fperms',['set_perms',['../classApp.html#a557d7b779d8259027f4724ebf7b248dc',1,'App']]],
+ ['set_5fprofile_5fowner',['set_profile_owner',['../classConversation.html#a8898bddc1e8990e81dab9a13a532cc93',1,'Conversation']]],
+ ['set_5ftemplate_5fengine',['set_template_engine',['../classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7',1,'App']]],
+ ['set_5fwidget',['set_widget',['../classApp.html#a123b903dfe5d3488cc68db3471d36fd2',1,'App']]],
+ ['set_5fxconfig',['set_xconfig',['../include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e',1,'config.php']]],
+ ['setdimensions',['setDimensions',['../classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143',1,'photo_driver\setDimensions()'],['../classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e',1,'photo_gd\setDimensions()'],['../classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb',1,'photo_imagick\setDimensions()']]],
+ ['settings_2ephp',['settings.php',['../settings_8php.html',1,'']]],
+ ['settings_5faside',['settings_aside',['../settings_8php.html#ae5aebccb006bee1300078576baaf5582',1,'settings.php']]],
+ ['settings_5finit',['settings_init',['../settings_8php.html#a3a4cde287482fced008583f54ba2a722',1,'settings.php']]],
+ ['settings_5fpost',['settings_post',['../settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586',1,'settings.php']]],
+ ['setup_2ephp',['setup.php',['../setup_8php.html',1,'']]],
+ ['setup_5fcontent',['setup_content',['../setup_8php.html#a88247384a96e14516f474d7af6a465c1',1,'setup.php']]],
+ ['setup_5finit',['setup_init',['../setup_8php.html#a267555abd17290e659b4bf44b885e4e0',1,'setup.php']]],
+ ['setup_5fpost',['setup_post',['../setup_8php.html#a13cf286774149a0a7bd8adb8179cec75',1,'setup.php']]],
+ ['sexpref_5fselector',['sexpref_selector',['../profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7',1,'profile_selectors.php']]],
+ ['share_2ephp',['share.php',['../share_8php.html',1,'']]],
+ ['share_5finit',['share_init',['../share_8php.html#afeb26046bdd02567ecd29ab5f188b249',1,'share.php']]],
+ ['showform',['showForm',['../fpostit_8php.html#a3f3ae3ae61578b5671673914fd894443',1,'fpostit.php']]],
+ ['siteinfo_2ephp',['siteinfo.php',['../siteinfo_8php.html',1,'']]],
+ ['siteinfo_5fcontent',['siteinfo_content',['../siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656',1,'siteinfo.php']]],
+ ['siteinfo_5finit',['siteinfo_init',['../siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0',1,'siteinfo.php']]],
+ ['smile_5fdecode',['smile_decode',['../text_8php.html#aca0f589be74fab1a460c57e88dad9779',1,'text.php']]],
+ ['smile_5fencode',['smile_encode',['../text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6',1,'text.php']]],
+ ['smilies',['smilies',['../text_8php.html#a3d225b253bb9e0f2498c11647d927b0b',1,'text.php']]],
+ ['smilies_2ephp',['smilies.php',['../smilies_8php.html',1,'']]],
+ ['smilies_5fcontent',['smilies_content',['../smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f',1,'smilies.php']]],
+ ['socgraph_2ephp',['socgraph.php',['../socgraph_8php.html',1,'']]],
+ ['sort_5fby_5fdate',['sort_by_date',['../event_8php.html#a018ea4484910a873a7c1eaa126de9b1a',1,'event.php']]],
+ ['sort_5fitem_5fchildren',['sort_item_children',['../conversation_8php.html#ae996eb116d397a2c6396c312d7b98664',1,'conversation.php']]],
+ ['sort_5fthr_5fcommented',['sort_thr_commented',['../conversation_8php.html#a9f909b8885259b79c6ac8da93afd8f11',1,'conversation.php']]],
+ ['sort_5fthr_5fcreated',['sort_thr_created',['../conversation_8php.html#ac55e070f65f46fcc8e269f7896be4c7d',1,'conversation.php']]],
+ ['sort_5fthr_5fcreated_5frev',['sort_thr_created_rev',['../conversation_8php.html#a9cc2a679606da9e535a06433f9f553a0',1,'conversation.php']]],
+ ['ssl_5fpolicy_5ffull',['SSL_POLICY_FULL',['../boot_8php.html#a02566ac9d891369a1d3ebb81a15722fc',1,'boot.php']]],
+ ['ssl_5fpolicy_5fnone',['SSL_POLICY_NONE',['../boot_8php.html#af86c651547aa8f9e549ee40a09455549',1,'boot.php']]],
+ ['ssl_5fpolicy_5fselfsign',['SSL_POLICY_SELFSIGN',['../boot_8php.html#adca48aee78465ae3064ca4432c0d87b5',1,'boot.php']]],
+ ['starred_2ephp',['starred.php',['../starred_8php.html',1,'']]],
+ ['starred_5finit',['starred_init',['../starred_8php.html#a63024fb418c678e49fd535e3752d349a',1,'starred.php']]],
+ ['startup',['startup',['../boot_8php.html#aca47505b8732177f52bb2d647eb2741c',1,'boot.php']]],
+ ['status_5feditor',['status_editor',['../conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a',1,'conversation.php']]],
+ ['store',['store',['../classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b',1,'photo_driver']]],
+ ['store_5fitem_5ftag',['store_item_tag',['../taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd',1,'taxonomy.php']]],
+ ['stream_5fperms_5fapi_5fuids',['stream_perms_api_uids',['../security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809',1,'security.php']]],
+ ['string_5fplural_5fselect_5fdefault',['string_plural_select_default',['../language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0',1,'language.php']]],
+ ['stringify_5farray_5felms',['stringify_array_elms',['../text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13',1,'text.php']]],
+ ['stripdcode_5fbr_5fcb',['stripdcode_br_cb',['../bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93',1,'bb2diaspora.php']]],
+ ['style_2ephp',['style.php',['../redstrap_2php_2style_8php.html',1,'']]],
+ ['style_2ephp',['style.php',['../redbasic_2php_2style_8php.html',1,'']]],
+ ['subthread_2ephp',['subthread.php',['../subthread_8php.html',1,'']]],
+ ['subthread_5fcontent',['subthread_content',['../subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3',1,'subthread.php']]],
+ ['suggest_2ephp',['suggest.php',['../suggest_8php.html',1,'']]],
+ ['suggest_5faside',['suggest_aside',['../suggest_8php.html#a4df91c84594d51ba56b5918de414230d',1,'suggest.php']]],
+ ['suggest_5fcontent',['suggest_content',['../suggest_8php.html#a58748a8235d4523f8333847f3e42dd91',1,'suggest.php']]],
+ ['suggest_5finit',['suggest_init',['../suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c',1,'suggest.php']]],
+ ['suggestion_5fquery',['suggestion_query',['../socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329',1,'socgraph.php']]],
+ ['supportedtypes',['supportedTypes',['../classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da',1,'photo_driver\supportedTypes()'],['../classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd',1,'photo_gd\supportedTypes()'],['../classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7',1,'photo_imagick\supportedTypes()']]],
+ ['sync_5fdirectories',['sync_directories',['../dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6',1,'dir_fns.php']]],
+ ['syncdirs',['syncdirs',['../dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a',1,'dir_fns.php']]],
+ ['system_5fdown',['system_down',['../system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa',1,'system_unavailable.php']]],
+ ['system_5funavailable',['system_unavailable',['../boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0',1,'boot.php']]],
+ ['system_5funavailable_2ephp',['system_unavailable.php',['../system__unavailable_8php.html',1,'']]]
+];
diff --git a/doc/html/search/all_74.html b/doc/html/search/all_74.html
new file mode 100644
index 000000000..c646aeffc
--- /dev/null
+++ b/doc/html/search/all_74.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_74.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_74.js b/doc/html/search/all_74.js
new file mode 100644
index 000000000..220469521
--- /dev/null
+++ b/doc/html/search/all_74.js
@@ -0,0 +1,61 @@
+var searchData=
+[
+ ['t',['t',['../language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04',1,'language.php']]],
+ ['tag_5fdeliver',['tag_deliver',['../items_8php.html#ab1bce4261bcf75ad62753b498a144d17',1,'items.php']]],
+ ['tagadelic',['tagadelic',['../taxonomy_8php.html#a061b3db9426d4b074395f5824062cad4',1,'taxonomy.php']]],
+ ['tagblock',['tagblock',['../taxonomy_8php.html#abdb698bc6921429df6d697f6c5dec96f',1,'taxonomy.php']]],
+ ['tagger_2ephp',['tagger.php',['../tagger_8php.html',1,'']]],
+ ['tagger_5fcontent',['tagger_content',['../tagger_8php.html#a0e4a3eb177d1684553c547503d67161c',1,'tagger.php']]],
+ ['tagrm_2ephp',['tagrm.php',['../tagrm_8php.html',1,'']]],
+ ['tagrm_5fcontent',['tagrm_content',['../tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a',1,'tagrm.php']]],
+ ['tagrm_5fpost',['tagrm_post',['../tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78',1,'tagrm.php']]],
+ ['tags_5fsort',['tags_sort',['../taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43',1,'taxonomy.php']]],
+ ['taxonomy_2ephp',['taxonomy.php',['../taxonomy_8php.html',1,'']]],
+ ['template',['Template',['../classTemplate.html',1,'']]],
+ ['template_5fengine',['template_engine',['../classApp.html#a94a1ed2dc493c58612d17035b74ae736',1,'App']]],
+ ['template_5fescape',['template_escape',['../template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5',1,'template_processor.php']]],
+ ['template_5fprocessor_2ephp',['template_processor.php',['../template__processor_8php.html',1,'']]],
+ ['template_5funescape',['template_unescape',['../template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e',1,'template_processor.php']]],
+ ['term_5fcategory',['TERM_CATEGORY',['../boot_8php.html#af33d1b2e98a1e21af672005525d46dfe',1,'boot.php']]],
+ ['term_5ffile',['TERM_FILE',['../boot_8php.html#afb97615e985a013799839b68b99018d7',1,'boot.php']]],
+ ['term_5fhashtag',['TERM_HASHTAG',['../boot_8php.html#a2750985ec445617d7e82ae3098c91e3f',1,'boot.php']]],
+ ['term_5fmention',['TERM_MENTION',['../boot_8php.html#ae37444eaa42705185080ccf3e670cbc2',1,'boot.php']]],
+ ['term_5fobj_5fchannel',['TERM_OBJ_CHANNEL',['../boot_8php.html#a8892374789fd261eb32a7969d934a14a',1,'boot.php']]],
+ ['term_5fobj_5fobject',['TERM_OBJ_OBJECT',['../boot_8php.html#a882b666adfe21f035a0f8c02806066d6',1,'boot.php']]],
+ ['term_5fobj_5fphoto',['TERM_OBJ_PHOTO',['../boot_8php.html#a64617d4655804de2a3c86501ab4fdbfd',1,'boot.php']]],
+ ['term_5fobj_5fpost',['TERM_OBJ_POST',['../boot_8php.html#a9eeb8989272d5ff804a616898bb13659',1,'boot.php']]],
+ ['term_5fobj_5fprofile',['TERM_OBJ_PROFILE',['../boot_8php.html#aead84fa27d7516b855220fe004964a45',1,'boot.php']]],
+ ['term_5fobj_5fthing',['TERM_OBJ_THING',['../boot_8php.html#a0cc8dc76bd10ac0ec81bac08a46f82fe',1,'boot.php']]],
+ ['term_5fpcategory',['TERM_PCATEGORY',['../boot_8php.html#a45b12aefab9675baffc7a07a09486db8',1,'boot.php']]],
+ ['term_5fquery',['term_query',['../taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c',1,'taxonomy.php']]],
+ ['term_5fsavedsearch',['TERM_SAVEDSEARCH',['../boot_8php.html#abd7bb40da9cc073297e49736b338ca07',1,'boot.php']]],
+ ['term_5fthing',['TERM_THING',['../boot_8php.html#a0d877df1e20bae765e1708be50f6b503',1,'boot.php']]],
+ ['term_5funknown',['TERM_UNKNOWN',['../boot_8php.html#a0c59dde058efebbc66520d136cbd1631',1,'boot.php']]],
+ ['terminate_5ffriendship',['terminate_friendship',['../Contact_8php.html#a38daa1c210b78385307123450ca9a1fc',1,'Contact.php']]],
+ ['termtype',['termtype',['../items_8php.html#ad34827ed330898456783fb14c7b46154',1,'items.php']]],
+ ['text_2ephp',['text.php',['../text_8php.html',1,'']]],
+ ['tgroup_5fcheck',['tgroup_check',['../items_8php.html#a88c6cf7649ac836fbbed82a7a0315110',1,'items.php']]],
+ ['theme_2ephp',['theme.php',['../redbasic_2php_2theme_8php.html',1,'']]],
+ ['theme_2ephp',['theme.php',['../redstrap_2php_2theme_8php.html',1,'']]],
+ ['theme_5fcontent',['theme_content',['../view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php'],['../view_2theme_2redstrap_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php']]],
+ ['theme_5finclude',['theme_include',['../plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2',1,'plugin.php']]],
+ ['theme_5finit_2ephp',['theme_init.php',['../php_2theme__init_8php.html',1,'']]],
+ ['theme_5finit_2ephp',['theme_init.php',['../theme_2redstrap_2php_2theme__init_8php.html',1,'']]],
+ ['theme_5fpost',['theme_post',['../view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php'],['../view_2theme_2redstrap_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php']]],
+ ['theme_5fstatus',['theme_status',['../admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4',1,'admin.php']]],
+ ['thing_2ephp',['thing.php',['../thing_8php.html',1,'']]],
+ ['thing_5fcontent',['thing_content',['../thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b',1,'thing.php']]],
+ ['thing_5finit',['thing_init',['../thing_8php.html#a8be23b1d475ec3d9291999221c674c80',1,'thing.php']]],
+ ['timesel',['timesel',['../datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1',1,'datetime.php']]],
+ ['timezone_5fcmp',['timezone_cmp',['../datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865',1,'datetime.php']]],
+ ['title_5fis_5fbody',['title_is_body',['../items_8php.html#aa371905f0a211b307cb3f7188c6cba04',1,'items.php']]],
+ ['toggle_5fmobile_2ephp',['toggle_mobile.php',['../toggle__mobile_8php.html',1,'']]],
+ ['toggle_5fmobile_5finit',['toggle_mobile_init',['../toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254',1,'toggle_mobile.php']]],
+ ['toggle_5ftheme',['toggle_theme',['../admin_8php.html#af81f081851791cd15e49e8ff6722dc27',1,'admin.php']]],
+ ['tpldebug_2ephp',['tpldebug.php',['../tpldebug_8php.html',1,'']]],
+ ['tplpaths',['tplpaths',['../namespaceupdatetpl.html#a52a85ffa6b6d63d840b185a133478c12',1,'updatetpl']]],
+ ['tryoembed',['tryoembed',['../bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7',1,'bbcode.php']]],
+ ['tt',['tt',['../language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d',1,'language.php']]],
+ ['typo_2ephp',['typo.php',['../typo_8php.html',1,'']]],
+ ['typohelper_2ephp',['typohelper.php',['../typohelper_8php.html',1,'']]]
+];
diff --git a/doc/html/search/all_75.html b/doc/html/search/all_75.html
new file mode 100644
index 000000000..550133a97
--- /dev/null
+++ b/doc/html/search/all_75.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_75.js b/doc/html/search/all_75.js
new file mode 100644
index 000000000..5b5b4dd2d
--- /dev/null
+++ b/doc/html/search/all_75.js
@@ -0,0 +1,37 @@
+var searchData=
+[
+ ['uexport_2ephp',['uexport.php',['../uexport_8php.html',1,'']]],
+ ['uexport_5finit',['uexport_init',['../uexport_8php.html#a118920137dedebe0581623a2e57e7b0d',1,'uexport.php']]],
+ ['unamp',['unamp',['../text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7',1,'text.php']]],
+ ['undo_5fpost_5ftagging',['undo_post_tagging',['../text_8php.html#a740ad03e00459039a2c0992246c4e727',1,'text.php']]],
+ ['unescape_5funderscores_5fin_5flinks',['unescape_underscores_in_links',['../bb2diaspora_8php.html#a599428bceb6f6d82a6a78cb66811f747',1,'bb2diaspora.php']]],
+ ['uninstall_5fplugin',['uninstall_plugin',['../plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76',1,'plugin.php']]],
+ ['unload_5fplugin',['unload_plugin',['../plugin_8php.html#a90538627db68605aeb6db17a8ead6523',1,'plugin.php']]],
+ ['unregister_5fhook',['unregister_hook',['../plugin_8php.html#a56f71fe5adf9586ce950523d8180443e',1,'plugin.php']]],
+ ['unxmlify',['unxmlify',['../text_8php.html#a1360fed7f918d859daaca1c9f384f9af',1,'text.php']]],
+ ['update_5fchannel_2ephp',['update_channel.php',['../update__channel_8php.html',1,'']]],
+ ['update_5fchannel_5fcontent',['update_channel_content',['../update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba',1,'update_channel.php']]],
+ ['update_5fcommunity_2ephp',['update_community.php',['../update__community_8php.html',1,'']]],
+ ['update_5fcommunity_5fcontent',['update_community_content',['../update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1',1,'update_community.php']]],
+ ['update_5fdisplay_2ephp',['update_display.php',['../update__display_8php.html',1,'']]],
+ ['update_5fdisplay_5fcontent',['update_display_content',['../update__display_8php.html#aa36ac524059e209d5d75a03c16206246',1,'update_display.php']]],
+ ['update_5ffailed',['UPDATE_FAILED',['../boot_8php.html#a75fc600186b13c3b25e661afefb5eac8',1,'boot.php']]],
+ ['update_5fimported_5fitem',['update_imported_item',['../zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df',1,'zot.php']]],
+ ['update_5fmodtime',['update_modtime',['../zot_8php.html#a666d3efcac00ec1b4a4537a60655f2ab',1,'zot.php']]],
+ ['update_5fnetwork_2ephp',['update_network.php',['../update__network_8php.html',1,'']]],
+ ['update_5fnetwork_5fcontent',['update_network_content',['../update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41',1,'update_network.php']]],
+ ['update_5fqueue_5ftime',['update_queue_time',['../queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1',1,'queue_fn.php']]],
+ ['update_5fsearch_2ephp',['update_search.php',['../update__search_8php.html',1,'']]],
+ ['update_5fsearch_5fcontent',['update_search_content',['../update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52',1,'update_search.php']]],
+ ['update_5fsuccess',['UPDATE_SUCCESS',['../boot_8php.html#ac86615ddc0763a00f5311c90e991730c',1,'boot.php']]],
+ ['update_5fsuggestions',['update_suggestions',['../socgraph_8php.html#a790690bb1a1d02483fe31632a160144d',1,'socgraph.php']]],
+ ['updatetpl',['updatetpl',['../namespaceupdatetpl.html',1,'']]],
+ ['updatetpl_2epy',['updatetpl.py',['../updatetpl_8py.html',1,'']]],
+ ['upgrade_5fbool_5fmessage',['upgrade_bool_message',['../plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d',1,'plugin.php']]],
+ ['upgrade_5flink',['upgrade_link',['../plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040',1,'plugin.php']]],
+ ['upgrade_5fmessage',['upgrade_message',['../plugin_8php.html#a901657dd078e070516cf97285e0bada7',1,'plugin.php']]],
+ ['user_5fallow',['user_allow',['../account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1',1,'account.php']]],
+ ['user_5fdeny',['user_deny',['../account_8php.html#ac1653efba62493b9d87513e1b6c04c83',1,'account.php']]],
+ ['user_5fremove',['user_remove',['../Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15',1,'Contact.php']]],
+ ['util',['util',['../namespaceutil.html',1,'']]]
+];
diff --git a/doc/html/search/all_76.html b/doc/html/search/all_76.html
new file mode 100644
index 000000000..50b86daa0
--- /dev/null
+++ b/doc/html/search/all_76.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_76.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_76.js b/doc/html/search/all_76.js
new file mode 100644
index 000000000..1bf8df053
--- /dev/null
+++ b/doc/html/search/all_76.js
@@ -0,0 +1,18 @@
+var searchData=
+[
+ ['valid_5femail',['valid_email',['../text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb',1,'text.php']]],
+ ['validate_5fchannelname',['validate_channelname',['../identity_8php.html#af2802bc13a00a17b867bba7978ba8f58',1,'identity.php']]],
+ ['validate_5femail',['validate_email',['../include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02',1,'network.php']]],
+ ['validate_5furl',['validate_url',['../include_2network_8php.html#a5caa264fab6d2b2344e6bd5b298b08f2',1,'network.php']]],
+ ['var_5freplace',['var_replace',['../classTemplate.html#abbc484016ddf5d818f55b823cae6feb0',1,'Template']]],
+ ['vcard_5ffrom_5fxchan',['vcard_from_xchan',['../Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960',1,'Contact.php']]],
+ ['view_2ephp',['view.php',['../view_8php.html',1,'']]],
+ ['view_5finit',['view_init',['../view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e',1,'view.php']]],
+ ['viewconnections_2ephp',['viewconnections.php',['../viewconnections_8php.html',1,'']]],
+ ['viewconnections_5faside',['viewconnections_aside',['../viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6',1,'viewconnections.php']]],
+ ['viewconnections_5fcontent',['viewconnections_content',['../viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776',1,'viewconnections.php']]],
+ ['viewconnections_5finit',['viewconnections_init',['../viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330',1,'viewconnections.php']]],
+ ['viewsrc_2ephp',['viewsrc.php',['../viewsrc_8php.html',1,'']]],
+ ['viewsrc_5fcontent',['viewsrc_content',['../viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4',1,'viewsrc.php']]],
+ ['visible_5factivity',['visible_activity',['../conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3',1,'conversation.php']]]
+];
diff --git a/doc/html/search/all_77.html b/doc/html/search/all_77.html
new file mode 100644
index 000000000..55d714292
--- /dev/null
+++ b/doc/html/search/all_77.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_77.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_77.js b/doc/html/search/all_77.js
new file mode 100644
index 000000000..61f0635f7
--- /dev/null
+++ b/doc/html/search/all_77.js
@@ -0,0 +1,18 @@
+var searchData=
+[
+ ['wall_5fattach_2ephp',['wall_attach.php',['../wall__attach_8php.html',1,'']]],
+ ['wall_5fattach_5fpost',['wall_attach_post',['../wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653',1,'wall_attach.php']]],
+ ['wall_5fupload_2ephp',['wall_upload.php',['../wall__upload_8php.html',1,'']]],
+ ['wall_5fupload_5fpost',['wall_upload_post',['../wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f',1,'wall_upload.php']]],
+ ['webfinger',['webfinger',['../include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5',1,'network.php']]],
+ ['webfinger_2ephp',['webfinger.php',['../webfinger_8php.html',1,'']]],
+ ['webfinger_5fcontent',['webfinger_content',['../webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3',1,'webfinger.php']]],
+ ['webfinger_5fdfrn',['webfinger_dfrn',['../include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335',1,'network.php']]],
+ ['webpages_2ephp',['webpages.php',['../webpages_8php.html',1,'']]],
+ ['webpages_5fcontent',['webpages_content',['../webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d',1,'webpages.php']]],
+ ['webpages_5finit',['webpages_init',['../webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7',1,'webpages.php']]],
+ ['wfinger_2ephp',['wfinger.php',['../wfinger_8php.html',1,'']]],
+ ['wfinger_5finit',['wfinger_init',['../wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3',1,'wfinger.php']]],
+ ['what_5fnext',['what_next',['../setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58',1,'setup.php']]],
+ ['while',['while',['../docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d',1,'docblox_errorchecker.php']]]
+];
diff --git a/doc/html/search/all_78.html b/doc/html/search/all_78.html
new file mode 100644
index 000000000..39075d44e
--- /dev/null
+++ b/doc/html/search/all_78.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_78.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_78.js b/doc/html/search/all_78.js
new file mode 100644
index 000000000..786ddeb99
--- /dev/null
+++ b/doc/html/search/all_78.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+ ['x',['x',['../boot_8php.html#a01353c9abebc3544ea080ac161729632',1,'boot.php']]],
+ ['xchan_2ephp',['xchan.php',['../xchan_8php.html',1,'']]],
+ ['xchan_5fcontent',['xchan_content',['../xchan_8php.html#a9853348bf1a35c644460221ba75edc2d',1,'xchan.php']]],
+ ['xchan_5fflags_5fhidden',['XCHAN_FLAGS_HIDDEN',['../boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2',1,'boot.php']]],
+ ['xchan_5fmail_5fquery',['xchan_mail_query',['../text_8php.html#a543447c5ed766535221e2d9636b379ee',1,'text.php']]],
+ ['xchan_5fquery',['xchan_query',['../text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f',1,'text.php']]],
+ ['xml2array',['xml2array',['../include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff',1,'network.php']]],
+ ['xml_5fstatus',['xml_status',['../include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6',1,'network.php']]],
+ ['xmlify',['xmlify',['../text_8php.html#aaed4413ed8918838b517e3b2fafaea0d',1,'text.php']]],
+ ['xrd_2ephp',['xrd.php',['../xrd_8php.html',1,'']]],
+ ['xrd_5finit',['xrd_init',['../xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270',1,'xrd.php']]]
+];
diff --git a/doc/html/search/all_7a.html b/doc/html/search/all_7a.html
new file mode 100644
index 000000000..5d99ff761
--- /dev/null
+++ b/doc/html/search/all_7a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_7a.js b/doc/html/search/all_7a.js
new file mode 100644
index 000000000..20e3146f1
--- /dev/null
+++ b/doc/html/search/all_7a.js
@@ -0,0 +1,35 @@
+var searchData=
+[
+ ['z_5fbirthday',['z_birthday',['../boot_8php.html#ab55e545b72ec8c097e052ea7d373491f',1,'boot.php']]],
+ ['z_5ffetch_5furl',['z_fetch_url',['../include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37',1,'network.php']]],
+ ['z_5fmime_5fcontent_5ftype',['z_mime_content_type',['../include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a',1,'attach.php']]],
+ ['z_5fpath',['z_path',['../boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda',1,'boot.php']]],
+ ['z_5fpost_5furl',['z_post_url',['../include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc',1,'network.php']]],
+ ['z_5freaddir',['z_readdir',['../include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909',1,'attach.php']]],
+ ['z_5froot',['z_root',['../boot_8php.html#add517a0958ac684792c62142a3877f81',1,'boot.php']]],
+ ['zcurl_5ftimeout',['ZCURL_TIMEOUT',['../boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af',1,'boot.php']]],
+ ['zfinger_2ephp',['zfinger.php',['../zfinger_8php.html',1,'']]],
+ ['zfinger_5finit',['zfinger_init',['../zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0',1,'zfinger.php']]],
+ ['zid',['zid',['../boot_8php.html#a5b815330f3d177ab383af37a6c12e532',1,'boot.php']]],
+ ['zid_5finit',['zid_init',['../boot_8php.html#a680fbafc2db023c5b1309e0180e81315',1,'boot.php']]],
+ ['zidify_5fcallback',['zidify_callback',['../text_8php.html#a405afe814a23f3bd94d826101aa168ab',1,'text.php']]],
+ ['zidify_5fimg_5fcallback',['zidify_img_callback',['../text_8php.html#ab4a4c3d4700bc219bb84f33b499314f4',1,'text.php']]],
+ ['zidify_5flinks',['zidify_links',['../text_8php.html#a29988052f3944111def3b6aaf2c7a8f6',1,'text.php']]],
+ ['zot_2ephp',['zot.php',['../zot_8php.html',1,'']]],
+ ['zot_5fbuild_5fpacket',['zot_build_packet',['../zot_8php.html#a3862b3161b2c8557dc1a95020179bd81',1,'zot.php']]],
+ ['zot_5ffeed',['zot_feed',['../items_8php.html#a004e89d86b0f29b2c4da20108ecc4091',1,'items.php']]],
+ ['zot_5ffetch',['zot_fetch',['../zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea',1,'zot.php']]],
+ ['zot_5ffinger',['zot_finger',['../zot_8php.html#a77720d6b59894e9b609af89c310c8a4d',1,'zot.php']]],
+ ['zot_5fget_5fhubloc',['zot_get_hubloc',['../zot_8php.html#acdea9362d78a63dce948fdf0ea73ef0e',1,'zot.php']]],
+ ['zot_5fgethub',['zot_gethub',['../zot_8php.html#a55056e863a7860bc0cf922e78fcce073',1,'zot.php']]],
+ ['zot_5fimport',['zot_import',['../zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c',1,'zot.php']]],
+ ['zot_5fnew_5fuid',['zot_new_uid',['../zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7',1,'zot.php']]],
+ ['zot_5fprocess_5fresponse',['zot_process_response',['../zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03',1,'zot.php']]],
+ ['zot_5frefresh',['zot_refresh',['../zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d',1,'zot.php']]],
+ ['zot_5fregister_5fhub',['zot_register_hub',['../zot_8php.html#a5bcdfef419b16075a0eca990956223dc',1,'zot.php']]],
+ ['zot_5frevision',['ZOT_REVISION',['../boot_8php.html#a36b31575f992a10b5927b76efba9362e',1,'boot.php']]],
+ ['zot_5fzot',['zot_zot',['../zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142',1,'zot.php']]],
+ ['zotdriver',['ZotDriver',['../classZotDriver.html',1,'']]],
+ ['zotfeed_2ephp',['zotfeed.php',['../zotfeed_8php.html',1,'']]],
+ ['zotfeed_5finit',['zotfeed_init',['../zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac',1,'zotfeed.php']]]
+];
diff --git a/doc/html/search/classes_61.html b/doc/html/search/classes_61.html
new file mode 100644
index 000000000..a4c07d590
--- /dev/null
+++ b/doc/html/search/classes_61.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_61.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_61.js b/doc/html/search/classes_61.js
new file mode 100644
index 000000000..9703f2f97
--- /dev/null
+++ b/doc/html/search/classes_61.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['app',['App',['../classApp.html',1,'']]]
+];
diff --git a/doc/html/search/classes_62.html b/doc/html/search/classes_62.html
new file mode 100644
index 000000000..04a59d2ef
--- /dev/null
+++ b/doc/html/search/classes_62.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_62.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_62.js b/doc/html/search/classes_62.js
new file mode 100644
index 000000000..1aa035405
--- /dev/null
+++ b/doc/html/search/classes_62.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['baseobject',['BaseObject',['../classBaseObject.html',1,'']]]
+];
diff --git a/doc/html/search/classes_63.html b/doc/html/search/classes_63.html
new file mode 100644
index 000000000..def37a7e1
--- /dev/null
+++ b/doc/html/search/classes_63.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_63.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_63.js b/doc/html/search/classes_63.js
new file mode 100644
index 000000000..56b080754
--- /dev/null
+++ b/doc/html/search/classes_63.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['cache',['Cache',['../classCache.html',1,'']]],
+ ['conversation',['Conversation',['../classConversation.html',1,'']]]
+];
diff --git a/doc/html/search/classes_64.html b/doc/html/search/classes_64.html
new file mode 100644
index 000000000..4092564e3
--- /dev/null
+++ b/doc/html/search/classes_64.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_64.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_64.js b/doc/html/search/classes_64.js
new file mode 100644
index 000000000..c52174855
--- /dev/null
+++ b/doc/html/search/classes_64.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['dba_5fdriver',['dba_driver',['../classdba__driver.html',1,'']]],
+ ['dba_5fmysql',['dba_mysql',['../classdba__mysql.html',1,'']]],
+ ['dba_5fmysqli',['dba_mysqli',['../classdba__mysqli.html',1,'']]]
+];
diff --git a/doc/html/search/classes_65.html b/doc/html/search/classes_65.html
new file mode 100644
index 000000000..4f441f9de
--- /dev/null
+++ b/doc/html/search/classes_65.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_65.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_65.js b/doc/html/search/classes_65.js
new file mode 100644
index 000000000..ad80724c8
--- /dev/null
+++ b/doc/html/search/classes_65.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['enotify',['enotify',['../classenotify.html',1,'']]]
+];
diff --git a/doc/html/search/classes_66.html b/doc/html/search/classes_66.html
new file mode 100644
index 000000000..b83e5933f
--- /dev/null
+++ b/doc/html/search/classes_66.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_66.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_66.js b/doc/html/search/classes_66.js
new file mode 100644
index 000000000..b7fd611b8
--- /dev/null
+++ b/doc/html/search/classes_66.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['fkoauth1',['FKOAuth1',['../classFKOAuth1.html',1,'']]],
+ ['fkoauthdatastore',['FKOAuthDataStore',['../classFKOAuthDataStore.html',1,'']]],
+ ['friendicasmarty',['FriendicaSmarty',['../classFriendicaSmarty.html',1,'']]],
+ ['friendicasmartyengine',['FriendicaSmartyEngine',['../classFriendicaSmartyEngine.html',1,'']]]
+];
diff --git a/doc/html/search/classes_69.html b/doc/html/search/classes_69.html
new file mode 100644
index 000000000..7a0d01368
--- /dev/null
+++ b/doc/html/search/classes_69.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_69.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_69.js b/doc/html/search/classes_69.js
new file mode 100644
index 000000000..b0394186f
--- /dev/null
+++ b/doc/html/search/classes_69.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['item',['Item',['../classItem.html',1,'']]],
+ ['itemplateengine',['ITemplateEngine',['../interfaceITemplateEngine.html',1,'']]]
+];
diff --git a/doc/html/search/classes_70.html b/doc/html/search/classes_70.html
new file mode 100644
index 000000000..7c5b3e595
--- /dev/null
+++ b/doc/html/search/classes_70.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_70.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_70.js b/doc/html/search/classes_70.js
new file mode 100644
index 000000000..f59cd1115
--- /dev/null
+++ b/doc/html/search/classes_70.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['photo_5fdriver',['photo_driver',['../classphoto__driver.html',1,'']]],
+ ['photo_5fgd',['photo_gd',['../classphoto__gd.html',1,'']]],
+ ['photo_5fimagick',['photo_imagick',['../classphoto__imagick.html',1,'']]],
+ ['protodriver',['ProtoDriver',['../classProtoDriver.html',1,'']]]
+];
diff --git a/doc/html/search/classes_74.html b/doc/html/search/classes_74.html
new file mode 100644
index 000000000..4b0fdaa16
--- /dev/null
+++ b/doc/html/search/classes_74.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_74.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_74.js b/doc/html/search/classes_74.js
new file mode 100644
index 000000000..a8854d502
--- /dev/null
+++ b/doc/html/search/classes_74.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['template',['Template',['../classTemplate.html',1,'']]]
+];
diff --git a/doc/html/search/classes_7a.html b/doc/html/search/classes_7a.html
new file mode 100644
index 000000000..d9534cdbc
--- /dev/null
+++ b/doc/html/search/classes_7a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_7a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_7a.js b/doc/html/search/classes_7a.js
new file mode 100644
index 000000000..1b4744a16
--- /dev/null
+++ b/doc/html/search/classes_7a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['zotdriver',['ZotDriver',['../classZotDriver.html',1,'']]]
+];
diff --git a/doc/html/search/close.png b/doc/html/search/close.png
new file mode 100644
index 000000000..9342d3dfe
--- /dev/null
+++ b/doc/html/search/close.png
Binary files differ
diff --git a/doc/html/search/files_5f.html b/doc/html/search/files_5f.html
new file mode 100644
index 000000000..b6c444603
--- /dev/null
+++ b/doc/html/search/files_5f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_5f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_5f.js b/doc/html/search/files_5f.js
new file mode 100644
index 000000000..2dbe8fc3a
--- /dev/null
+++ b/doc/html/search/files_5f.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['_5fwell_5fknown_2ephp',['_well_known.php',['../__well__known_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_61.html b/doc/html/search/files_61.html
new file mode 100644
index 000000000..0aa6beb10
--- /dev/null
+++ b/doc/html/search/files_61.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_61.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_61.js b/doc/html/search/files_61.js
new file mode 100644
index 000000000..6ad1b427b
--- /dev/null
+++ b/doc/html/search/files_61.js
@@ -0,0 +1,15 @@
+var searchData=
+[
+ ['account_2ephp',['account.php',['../account_8php.html',1,'']]],
+ ['acl_2ephp',['acl.php',['../acl_8php.html',1,'']]],
+ ['acl_5fselectors_2ephp',['acl_selectors.php',['../acl__selectors_8php.html',1,'']]],
+ ['activities_2ephp',['activities.php',['../activities_8php.html',1,'']]],
+ ['admin_2ephp',['admin.php',['../admin_8php.html',1,'']]],
+ ['allfriends_2ephp',['allfriends.php',['../allfriends_8php.html',1,'']]],
+ ['api_2ephp',['api.php',['../mod_2api_8php.html',1,'']]],
+ ['api_2ephp',['api.php',['../include_2api_8php.html',1,'']]],
+ ['apps_2ephp',['apps.php',['../apps_8php.html',1,'']]],
+ ['attach_2ephp',['attach.php',['../mod_2attach_8php.html',1,'']]],
+ ['attach_2ephp',['attach.php',['../include_2attach_8php.html',1,'']]],
+ ['auth_2ephp',['auth.php',['../auth_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_62.html b/doc/html/search/files_62.html
new file mode 100644
index 000000000..86dfe39e6
--- /dev/null
+++ b/doc/html/search/files_62.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_62.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_62.js b/doc/html/search/files_62.js
new file mode 100644
index 000000000..f982e5a2f
--- /dev/null
+++ b/doc/html/search/files_62.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['baseobject_2ephp',['BaseObject.php',['../BaseObject_8php.html',1,'']]],
+ ['bb2diaspora_2ephp',['bb2diaspora.php',['../bb2diaspora_8php.html',1,'']]],
+ ['bbcode_2ephp',['bbcode.php',['../bbcode_8php.html',1,'']]],
+ ['boot_2ephp',['boot.php',['../boot_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_63.html b/doc/html/search/files_63.html
new file mode 100644
index 000000000..788d523a8
--- /dev/null
+++ b/doc/html/search/files_63.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_63.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_63.js b/doc/html/search/files_63.js
new file mode 100644
index 000000000..a5c277680
--- /dev/null
+++ b/doc/html/search/files_63.js
@@ -0,0 +1,23 @@
+var searchData=
+[
+ ['cache_2ephp',['cache.php',['../cache_8php.html',1,'']]],
+ ['channel_2ephp',['channel.php',['../channel_8php.html',1,'']]],
+ ['chanview_2ephp',['chanview.php',['../chanview_8php.html',1,'']]],
+ ['cli_5fstartup_2ephp',['cli_startup.php',['../cli__startup_8php.html',1,'']]],
+ ['common_2ephp',['common.php',['../common_8php.html',1,'']]],
+ ['community_2ephp',['community.php',['../community_8php.html',1,'']]],
+ ['config_2emd',['config.md',['../config_8md.html',1,'']]],
+ ['config_2ephp',['config.php',['../view_2theme_2redbasic_2php_2config_8php.html',1,'']]],
+ ['config_2ephp',['config.php',['../view_2theme_2redstrap_2php_2config_8php.html',1,'']]],
+ ['config_2ephp',['config.php',['../include_2config_8php.html',1,'']]],
+ ['connections_2ephp',['connections.php',['../connections_8php.html',1,'']]],
+ ['contact_2ephp',['Contact.php',['../Contact_8php.html',1,'']]],
+ ['contact_5fselectors_2ephp',['contact_selectors.php',['../contact__selectors_8php.html',1,'']]],
+ ['contact_5fwidgets_2ephp',['contact_widgets.php',['../contact__widgets_8php.html',1,'']]],
+ ['contactgroup_2ephp',['contactgroup.php',['../contactgroup_8php.html',1,'']]],
+ ['conversation_2ephp',['conversation.php',['../conversation_8php.html',1,'']]],
+ ['conversationobject_2ephp',['ConversationObject.php',['../ConversationObject_8php.html',1,'']]],
+ ['crepair_2ephp',['crepair.php',['../crepair_8php.html',1,'']]],
+ ['cronhooks_2ephp',['cronhooks.php',['../cronhooks_8php.html',1,'']]],
+ ['crypto_2ephp',['crypto.php',['../crypto_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_64.html b/doc/html/search/files_64.html
new file mode 100644
index 000000000..175a900cc
--- /dev/null
+++ b/doc/html/search/files_64.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_64.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_64.js b/doc/html/search/files_64.js
new file mode 100644
index 000000000..4f27cb5a8
--- /dev/null
+++ b/doc/html/search/files_64.js
@@ -0,0 +1,19 @@
+var searchData=
+[
+ ['datetime_2ephp',['datetime.php',['../datetime_8php.html',1,'']]],
+ ['db_5fupdate_2ephp',['db_update.php',['../db__update_8php.html',1,'']]],
+ ['dba_5fdriver_2ephp',['dba_driver.php',['../dba__driver_8php.html',1,'']]],
+ ['dba_5fmysql_2ephp',['dba_mysql.php',['../dba__mysql_8php.html',1,'']]],
+ ['dba_5fmysqli_2ephp',['dba_mysqli.php',['../dba__mysqli_8php.html',1,'']]],
+ ['default_2ephp',['default.php',['../theme_2redstrap_2php_2default_8php.html',1,'']]],
+ ['default_2ephp',['default.php',['../php_2default_8php.html',1,'']]],
+ ['delegate_2ephp',['delegate.php',['../delegate_8php.html',1,'']]],
+ ['deliver_2ephp',['deliver.php',['../deliver_8php.html',1,'']]],
+ ['dir_5ffns_2ephp',['dir_fns.php',['../dir__fns_8php.html',1,'']]],
+ ['directory_2ephp',['directory.php',['../include_2directory_8php.html',1,'']]],
+ ['directory_2ephp',['directory.php',['../mod_2directory_8php.html',1,'']]],
+ ['dirfind_2ephp',['dirfind.php',['../dirfind_8php.html',1,'']]],
+ ['dirsearch_2ephp',['dirsearch.php',['../dirsearch_8php.html',1,'']]],
+ ['display_2ephp',['display.php',['../display_8php.html',1,'']]],
+ ['docblox_5ferrorchecker_2ephp',['docblox_errorchecker.php',['../docblox__errorchecker_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_65.html b/doc/html/search/files_65.html
new file mode 100644
index 000000000..2347de991
--- /dev/null
+++ b/doc/html/search/files_65.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_65.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_65.js b/doc/html/search/files_65.js
new file mode 100644
index 000000000..c6417407a
--- /dev/null
+++ b/doc/html/search/files_65.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+ ['editpost_2ephp',['editpost.php',['../editpost_8php.html',1,'']]],
+ ['editwebpage_2ephp',['editwebpage.php',['../editwebpage_8php.html',1,'']]],
+ ['enotify_2ephp',['enotify.php',['../enotify_8php.html',1,'']]],
+ ['event_2ephp',['event.php',['../event_8php.html',1,'']]],
+ ['events_2ephp',['events.php',['../events_8php.html',1,'']]],
+ ['expire_2ephp',['expire.php',['../expire_8php.html',1,'']]],
+ ['extract_2ephp',['extract.php',['../extract_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_66.html b/doc/html/search/files_66.html
new file mode 100644
index 000000000..70873b352
--- /dev/null
+++ b/doc/html/search/files_66.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_66.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_66.js b/doc/html/search/files_66.js
new file mode 100644
index 000000000..e96d6a488
--- /dev/null
+++ b/doc/html/search/files_66.js
@@ -0,0 +1,16 @@
+var searchData=
+[
+ ['fbrowser_2ephp',['fbrowser.php',['../fbrowser_8php.html',1,'']]],
+ ['features_2ephp',['features.php',['../features_8php.html',1,'']]],
+ ['feed_2ephp',['feed.php',['../feed_8php.html',1,'']]],
+ ['filer_2ephp',['filer.php',['../filer_8php.html',1,'']]],
+ ['filerm_2ephp',['filerm.php',['../filerm_8php.html',1,'']]],
+ ['follow_2ephp',['follow.php',['../include_2follow_8php.html',1,'']]],
+ ['follow_2ephp',['follow.php',['../mod_2follow_8php.html',1,'']]],
+ ['fpostit_2ephp',['fpostit.php',['../fpostit_8php.html',1,'']]],
+ ['fresh_2emd',['fresh.md',['../fresh_8md.html',1,'']]],
+ ['friendica_2dto_2dsmarty_2dtpl_2epy',['friendica-to-smarty-tpl.py',['../friendica-to-smarty-tpl_8py.html',1,'']]],
+ ['friendica_5fsmarty_2ephp',['friendica_smarty.php',['../friendica__smarty_8php.html',1,'']]],
+ ['fsuggest_2ephp',['fsuggest.php',['../fsuggest_8php.html',1,'']]],
+ ['full_2ephp',['full.php',['../full_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_67.html b/doc/html/search/files_67.html
new file mode 100644
index 000000000..65d69ddc0
--- /dev/null
+++ b/doc/html/search/files_67.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_67.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_67.js b/doc/html/search/files_67.js
new file mode 100644
index 000000000..f9924735e
--- /dev/null
+++ b/doc/html/search/files_67.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['gprobe_2ephp',['gprobe.php',['../gprobe_8php.html',1,'']]],
+ ['group_2ephp',['group.php',['../include_2group_8php.html',1,'']]],
+ ['group_2ephp',['group.php',['../mod_2group_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_68.html b/doc/html/search/files_68.html
new file mode 100644
index 000000000..35734d1fc
--- /dev/null
+++ b/doc/html/search/files_68.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_68.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_68.js b/doc/html/search/files_68.js
new file mode 100644
index 000000000..4377d15af
--- /dev/null
+++ b/doc/html/search/files_68.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['hcard_2ephp',['hcard.php',['../hcard_8php.html',1,'']]],
+ ['help_2ephp',['help.php',['../help_8php.html',1,'']]],
+ ['home_2ephp',['home.php',['../home_8php.html',1,'']]],
+ ['hostxrd_2ephp',['hostxrd.php',['../hostxrd_8php.html',1,'']]],
+ ['html2bbcode_2ephp',['html2bbcode.php',['../html2bbcode_8php.html',1,'']]],
+ ['html2plain_2ephp',['html2plain.php',['../html2plain_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_69.html b/doc/html/search/files_69.html
new file mode 100644
index 000000000..4e0baee7a
--- /dev/null
+++ b/doc/html/search/files_69.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_69.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_69.js b/doc/html/search/files_69.js
new file mode 100644
index 000000000..1ac9204d9
--- /dev/null
+++ b/doc/html/search/files_69.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['identity_2ephp',['identity.php',['../identity_8php.html',1,'']]],
+ ['import_2ephp',['import.php',['../import_8php.html',1,'']]],
+ ['intro_2ephp',['intro.php',['../intro_8php.html',1,'']]],
+ ['invite_2ephp',['invite.php',['../invite_8php.html',1,'']]],
+ ['item_2ephp',['item.php',['../item_8php.html',1,'']]],
+ ['itemobject_2ephp',['ItemObject.php',['../ItemObject_8php.html',1,'']]],
+ ['itemplateengine_2ephp',['ITemplateEngine.php',['../ITemplateEngine_8php.html',1,'']]],
+ ['items_2ephp',['items.php',['../items_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_6c.html b/doc/html/search/files_6c.html
new file mode 100644
index 000000000..088b17f00
--- /dev/null
+++ b/doc/html/search/files_6c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_6c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_6c.js b/doc/html/search/files_6c.js
new file mode 100644
index 000000000..f917d39b0
--- /dev/null
+++ b/doc/html/search/files_6c.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['language_2ephp',['language.php',['../language_8php.html',1,'']]],
+ ['like_2ephp',['like.php',['../like_8php.html',1,'']]],
+ ['lockview_2ephp',['lockview.php',['../lockview_8php.html',1,'']]],
+ ['login_2ephp',['login.php',['../login_8php.html',1,'']]],
+ ['lostpass_2ephp',['lostpass.php',['../lostpass_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_6d.html b/doc/html/search/files_6d.html
new file mode 100644
index 000000000..5796e5280
--- /dev/null
+++ b/doc/html/search/files_6d.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_6d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_6d.js b/doc/html/search/files_6d.js
new file mode 100644
index 000000000..dfe1de471
--- /dev/null
+++ b/doc/html/search/files_6d.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+ ['magic_2ephp',['magic.php',['../magic_8php.html',1,'']]],
+ ['manage_2ephp',['manage.php',['../manage_8php.html',1,'']]],
+ ['match_2ephp',['match.php',['../match_8php.html',1,'']]],
+ ['message_2ephp',['message.php',['../mod_2message_8php.html',1,'']]],
+ ['message_2ephp',['message.php',['../include_2message_8php.html',1,'']]],
+ ['minimal_2ephp',['minimal.php',['../minimal_8php.html',1,'']]],
+ ['mod_5fimport_2ephp',['mod_import.php',['../mod__import_8php.html',1,'']]],
+ ['mod_5fnew_5fchannel_2ephp',['mod_new_channel.php',['../mod__new__channel_8php.html',1,'']]],
+ ['mod_5fregister_2ephp',['mod_register.php',['../mod__register_8php.html',1,'']]],
+ ['mood_2ephp',['mood.php',['../mood_8php.html',1,'']]],
+ ['msearch_2ephp',['msearch.php',['../msearch_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_6e.html b/doc/html/search/files_6e.html
new file mode 100644
index 000000000..def03fe7d
--- /dev/null
+++ b/doc/html/search/files_6e.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_6e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_6e.js b/doc/html/search/files_6e.js
new file mode 100644
index 000000000..1d6cb6c17
--- /dev/null
+++ b/doc/html/search/files_6e.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+ ['nav_2ephp',['nav.php',['../nav_8php.html',1,'']]],
+ ['network_2ephp',['network.php',['../include_2network_8php.html',1,'']]],
+ ['network_2ephp',['network.php',['../mod_2network_8php.html',1,'']]],
+ ['new_5fchannel_2ephp',['new_channel.php',['../new__channel_8php.html',1,'']]],
+ ['nogroup_2ephp',['nogroup.php',['../nogroup_8php.html',1,'']]],
+ ['notifications_2ephp',['notifications.php',['../notifications_8php.html',1,'']]],
+ ['notifier_2ephp',['notifier.php',['../notifier_8php.html',1,'']]],
+ ['notify_2ephp',['notify.php',['../mod_2notify_8php.html',1,'']]],
+ ['notify_2ephp',['notify.php',['../include_2notify_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_6f.html b/doc/html/search/files_6f.html
new file mode 100644
index 000000000..4f9b7bbdb
--- /dev/null
+++ b/doc/html/search/files_6f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_6f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_6f.js b/doc/html/search/files_6f.js
new file mode 100644
index 000000000..85c779ba1
--- /dev/null
+++ b/doc/html/search/files_6f.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['oauth_2ephp',['oauth.php',['../oauth_8php.html',1,'']]],
+ ['oembed_2ephp',['oembed.php',['../include_2oembed_8php.html',1,'']]],
+ ['oembed_2ephp',['oembed.php',['../mod_2oembed_8php.html',1,'']]],
+ ['oexchange_2ephp',['oexchange.php',['../oexchange_8php.html',1,'']]],
+ ['onepoll_2ephp',['onepoll.php',['../onepoll_8php.html',1,'']]],
+ ['opensearch_2ephp',['opensearch.php',['../opensearch_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_70.html b/doc/html/search/files_70.html
new file mode 100644
index 000000000..e159ceaae
--- /dev/null
+++ b/doc/html/search/files_70.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_70.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_70.js b/doc/html/search/files_70.js
new file mode 100644
index 000000000..3559e86e1
--- /dev/null
+++ b/doc/html/search/files_70.js
@@ -0,0 +1,30 @@
+var searchData=
+[
+ ['page_2ephp',['page.php',['../page_8php.html',1,'']]],
+ ['parse_5furl_2ephp',['parse_url.php',['../parse__url_8php.html',1,'']]],
+ ['permissions_2ephp',['permissions.php',['../permissions_8php.html',1,'']]],
+ ['photo_2ephp',['photo.php',['../photo_8php.html',1,'']]],
+ ['photo_5fdriver_2ephp',['photo_driver.php',['../photo__driver_8php.html',1,'']]],
+ ['photo_5fgd_2ephp',['photo_gd.php',['../photo__gd_8php.html',1,'']]],
+ ['photo_5fimagick_2ephp',['photo_imagick.php',['../photo__imagick_8php.html',1,'']]],
+ ['photos_2ephp',['photos.php',['../mod_2photos_8php.html',1,'']]],
+ ['photos_2ephp',['photos.php',['../include_2photos_8php.html',1,'']]],
+ ['php_2ephp',['php.php',['../php_8php.html',1,'']]],
+ ['php2po_2ephp',['php2po.php',['../php2po_8php.html',1,'']]],
+ ['ping_2ephp',['ping.php',['../ping_8php.html',1,'']]],
+ ['plugin_2ephp',['plugin.php',['../plugin_8php.html',1,'']]],
+ ['po2php_2ephp',['po2php.php',['../po2php_8php.html',1,'']]],
+ ['poco_2ephp',['poco.php',['../poco_8php.html',1,'']]],
+ ['poke_2ephp',['poke.php',['../poke_8php.html',1,'']]],
+ ['poller_2ephp',['poller.php',['../poller_8php.html',1,'']]],
+ ['post_2ephp',['post.php',['../post_8php.html',1,'']]],
+ ['pretheme_2ephp',['pretheme.php',['../pretheme_8php.html',1,'']]],
+ ['probe_2ephp',['probe.php',['../probe_8php.html',1,'']]],
+ ['profile_2ephp',['profile.php',['../profile_8php.html',1,'']]],
+ ['profile_5fadvanced_2ephp',['profile_advanced.php',['../profile__advanced_8php.html',1,'']]],
+ ['profile_5fphoto_2ephp',['profile_photo.php',['../profile__photo_8php.html',1,'']]],
+ ['profile_5fselectors_2ephp',['profile_selectors.php',['../profile__selectors_8php.html',1,'']]],
+ ['profiles_2ephp',['profiles.php',['../profiles_8php.html',1,'']]],
+ ['profperm_2ephp',['profperm.php',['../profperm_8php.html',1,'']]],
+ ['protodriver_2ephp',['ProtoDriver.php',['../ProtoDriver_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_71.html b/doc/html/search/files_71.html
new file mode 100644
index 000000000..a417eff53
--- /dev/null
+++ b/doc/html/search/files_71.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_71.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_71.js b/doc/html/search/files_71.js
new file mode 100644
index 000000000..1da0b5b3f
--- /dev/null
+++ b/doc/html/search/files_71.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['qsearch_2ephp',['qsearch.php',['../qsearch_8php.html',1,'']]],
+ ['queue_2ephp',['queue.php',['../queue_8php.html',1,'']]],
+ ['queue_5ffn_2ephp',['queue_fn.php',['../queue__fn_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_72.html b/doc/html/search/files_72.html
new file mode 100644
index 000000000..573ec112d
--- /dev/null
+++ b/doc/html/search/files_72.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_72.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_72.js b/doc/html/search/files_72.js
new file mode 100644
index 000000000..7d644d884
--- /dev/null
+++ b/doc/html/search/files_72.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['randprof_2ephp',['randprof.php',['../randprof_8php.html',1,'']]],
+ ['readme_2emd',['README.md',['../README_8md.html',1,'']]],
+ ['redir_2ephp',['redir.php',['../redir_8php.html',1,'']]],
+ ['register_2ephp',['register.php',['../register_8php.html',1,'']]],
+ ['regmod_2ephp',['regmod.php',['../regmod_8php.html',1,'']]],
+ ['removeme_2ephp',['removeme.php',['../removeme_8php.html',1,'']]],
+ ['rmagic_2ephp',['rmagic.php',['../rmagic_8php.html',1,'']]],
+ ['rsd_5fxml_2ephp',['rsd_xml.php',['../rsd__xml_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_73.html b/doc/html/search/files_73.html
new file mode 100644
index 000000000..bcc9ae6ee
--- /dev/null
+++ b/doc/html/search/files_73.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_73.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_73.js b/doc/html/search/files_73.js
new file mode 100644
index 000000000..637791c44
--- /dev/null
+++ b/doc/html/search/files_73.js
@@ -0,0 +1,19 @@
+var searchData=
+[
+ ['search_2ephp',['search.php',['../search_8php.html',1,'']]],
+ ['search_5fac_2ephp',['search_ac.php',['../search__ac_8php.html',1,'']]],
+ ['security_2ephp',['security.php',['../security_8php.html',1,'']]],
+ ['session_2ephp',['session.php',['../session_8php.html',1,'']]],
+ ['settings_2ephp',['settings.php',['../settings_8php.html',1,'']]],
+ ['setup_2ephp',['setup.php',['../setup_8php.html',1,'']]],
+ ['share_2ephp',['share.php',['../share_8php.html',1,'']]],
+ ['siteinfo_2ephp',['siteinfo.php',['../siteinfo_8php.html',1,'']]],
+ ['smilies_2ephp',['smilies.php',['../smilies_8php.html',1,'']]],
+ ['socgraph_2ephp',['socgraph.php',['../socgraph_8php.html',1,'']]],
+ ['starred_2ephp',['starred.php',['../starred_8php.html',1,'']]],
+ ['style_2ephp',['style.php',['../redstrap_2php_2style_8php.html',1,'']]],
+ ['style_2ephp',['style.php',['../redbasic_2php_2style_8php.html',1,'']]],
+ ['subthread_2ephp',['subthread.php',['../subthread_8php.html',1,'']]],
+ ['suggest_2ephp',['suggest.php',['../suggest_8php.html',1,'']]],
+ ['system_5funavailable_2ephp',['system_unavailable.php',['../system__unavailable_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_74.html b/doc/html/search/files_74.html
new file mode 100644
index 000000000..985db8690
--- /dev/null
+++ b/doc/html/search/files_74.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_74.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_74.js b/doc/html/search/files_74.js
new file mode 100644
index 000000000..8c09d38e2
--- /dev/null
+++ b/doc/html/search/files_74.js
@@ -0,0 +1,17 @@
+var searchData=
+[
+ ['tagger_2ephp',['tagger.php',['../tagger_8php.html',1,'']]],
+ ['tagrm_2ephp',['tagrm.php',['../tagrm_8php.html',1,'']]],
+ ['taxonomy_2ephp',['taxonomy.php',['../taxonomy_8php.html',1,'']]],
+ ['template_5fprocessor_2ephp',['template_processor.php',['../template__processor_8php.html',1,'']]],
+ ['text_2ephp',['text.php',['../text_8php.html',1,'']]],
+ ['theme_2ephp',['theme.php',['../redbasic_2php_2theme_8php.html',1,'']]],
+ ['theme_2ephp',['theme.php',['../redstrap_2php_2theme_8php.html',1,'']]],
+ ['theme_5finit_2ephp',['theme_init.php',['../theme_2redstrap_2php_2theme__init_8php.html',1,'']]],
+ ['theme_5finit_2ephp',['theme_init.php',['../php_2theme__init_8php.html',1,'']]],
+ ['thing_2ephp',['thing.php',['../thing_8php.html',1,'']]],
+ ['toggle_5fmobile_2ephp',['toggle_mobile.php',['../toggle__mobile_8php.html',1,'']]],
+ ['tpldebug_2ephp',['tpldebug.php',['../tpldebug_8php.html',1,'']]],
+ ['typo_2ephp',['typo.php',['../typo_8php.html',1,'']]],
+ ['typohelper_2ephp',['typohelper.php',['../typohelper_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_75.html b/doc/html/search/files_75.html
new file mode 100644
index 000000000..70607dd35
--- /dev/null
+++ b/doc/html/search/files_75.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_75.js b/doc/html/search/files_75.js
new file mode 100644
index 000000000..4a330b239
--- /dev/null
+++ b/doc/html/search/files_75.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+ ['uexport_2ephp',['uexport.php',['../uexport_8php.html',1,'']]],
+ ['update_5fchannel_2ephp',['update_channel.php',['../update__channel_8php.html',1,'']]],
+ ['update_5fcommunity_2ephp',['update_community.php',['../update__community_8php.html',1,'']]],
+ ['update_5fdisplay_2ephp',['update_display.php',['../update__display_8php.html',1,'']]],
+ ['update_5fnetwork_2ephp',['update_network.php',['../update__network_8php.html',1,'']]],
+ ['update_5fsearch_2ephp',['update_search.php',['../update__search_8php.html',1,'']]],
+ ['updatetpl_2epy',['updatetpl.py',['../updatetpl_8py.html',1,'']]]
+];
diff --git a/doc/html/search/files_76.html b/doc/html/search/files_76.html
new file mode 100644
index 000000000..174dedb49
--- /dev/null
+++ b/doc/html/search/files_76.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_76.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_76.js b/doc/html/search/files_76.js
new file mode 100644
index 000000000..2f5aac4b4
--- /dev/null
+++ b/doc/html/search/files_76.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['view_2ephp',['view.php',['../view_8php.html',1,'']]],
+ ['viewconnections_2ephp',['viewconnections.php',['../viewconnections_8php.html',1,'']]],
+ ['viewsrc_2ephp',['viewsrc.php',['../viewsrc_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_77.html b/doc/html/search/files_77.html
new file mode 100644
index 000000000..63bf92c09
--- /dev/null
+++ b/doc/html/search/files_77.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_77.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_77.js b/doc/html/search/files_77.js
new file mode 100644
index 000000000..11332f668
--- /dev/null
+++ b/doc/html/search/files_77.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['wall_5fattach_2ephp',['wall_attach.php',['../wall__attach_8php.html',1,'']]],
+ ['wall_5fupload_2ephp',['wall_upload.php',['../wall__upload_8php.html',1,'']]],
+ ['webfinger_2ephp',['webfinger.php',['../webfinger_8php.html',1,'']]],
+ ['webpages_2ephp',['webpages.php',['../webpages_8php.html',1,'']]],
+ ['wfinger_2ephp',['wfinger.php',['../wfinger_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_78.html b/doc/html/search/files_78.html
new file mode 100644
index 000000000..d1e306db2
--- /dev/null
+++ b/doc/html/search/files_78.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_78.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_78.js b/doc/html/search/files_78.js
new file mode 100644
index 000000000..cd29e0cce
--- /dev/null
+++ b/doc/html/search/files_78.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['xchan_2ephp',['xchan.php',['../xchan_8php.html',1,'']]],
+ ['xrd_2ephp',['xrd.php',['../xrd_8php.html',1,'']]]
+];
diff --git a/doc/html/search/files_7a.html b/doc/html/search/files_7a.html
new file mode 100644
index 000000000..935df7f2d
--- /dev/null
+++ b/doc/html/search/files_7a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_7a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_7a.js b/doc/html/search/files_7a.js
new file mode 100644
index 000000000..f3e2fc21d
--- /dev/null
+++ b/doc/html/search/files_7a.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['zfinger_2ephp',['zfinger.php',['../zfinger_8php.html',1,'']]],
+ ['zot_2ephp',['zot.php',['../zot_8php.html',1,'']]],
+ ['zotfeed_2ephp',['zotfeed.php',['../zotfeed_8php.html',1,'']]]
+];
diff --git a/doc/html/search/functions_5f.html b/doc/html/search/functions_5f.html
new file mode 100644
index 000000000..2946e1e69
--- /dev/null
+++ b/doc/html/search/functions_5f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_5f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_5f.js b/doc/html/search/functions_5f.js
new file mode 100644
index 000000000..b33809fbe
--- /dev/null
+++ b/doc/html/search/functions_5f.js
@@ -0,0 +1,17 @@
+var searchData=
+[
+ ['_5f_5fconstruct',['__construct',['../classApp.html#af6d39f63fb7116bbeb04e51696f99474',1,'App\__construct()'],['../classConversation.html#a6b064d00c56a6b7dec359d4348711c84',1,'Conversation\__construct()'],['../classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186',1,'dba_driver\__construct()'],['../classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6',1,'FriendicaSmarty\__construct()'],['../classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6',1,'FriendicaSmartyEngine\__construct()'],['../classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2',1,'Item\__construct()'],['../classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6',1,'FKOAuth1\__construct()'],['../classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae',1,'photo_driver\__construct()']]],
+ ['_5f_5fdestruct',['__destruct',['../classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721',1,'dba_driver\__destruct()'],['../classphoto__driver.html#ae4501abdc9651359f81d036b63625686',1,'photo_driver\__destruct()']]],
+ ['_5fbuild_5fnodes',['_build_nodes',['../classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4',1,'Template']]],
+ ['_5fget_5fvar',['_get_var',['../classTemplate.html#aae9c4d761ea1298e745e8052d7910194',1,'Template']]],
+ ['_5fpop_5fstack',['_pop_stack',['../classTemplate.html#a35d599c9b53a02e2fe2232e5b7ed5da7',1,'Template']]],
+ ['_5fpreg_5ferror',['_preg_error',['../classTemplate.html#a37c15f6d1ade500943629f27a62808b7',1,'Template']]],
+ ['_5fpush_5fstack',['_push_stack',['../classTemplate.html#aa6a087e0b7b887dd1c98c9e0ecbd3b29',1,'Template']]],
+ ['_5freplcb',['_replcb',['../classTemplate.html#ae791766c3d055f7f1ba5a5e60d647934',1,'Template']]],
+ ['_5freplcb_5fdebug',['_replcb_debug',['../classTemplate.html#a4b933954086d9e01a1804b0b1c6ee93e',1,'Template']]],
+ ['_5freplcb_5ffor',['_replcb_for',['../classTemplate.html#abf71098c80fd1f218a59452b3408309e',1,'Template']]],
+ ['_5freplcb_5fif',['_replcb_if',['../classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228',1,'Template']]],
+ ['_5freplcb_5finc',['_replcb_inc',['../classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677',1,'Template']]],
+ ['_5freplcb_5fnode',['_replcb_node',['../classTemplate.html#aa6f9bd7a8f7512efcf90e8d376fe05ee',1,'Template']]],
+ ['_5fwell_5fknown_5finit',['_well_known_init',['../__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0',1,'_well_known.php']]]
+];
diff --git a/doc/html/search/functions_61.html b/doc/html/search/functions_61.html
new file mode 100644
index 000000000..d68c74892
--- /dev/null
+++ b/doc/html/search/functions_61.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_61.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_61.js b/doc/html/search/functions_61.js
new file mode 100644
index 000000000..50639ccf3
--- /dev/null
+++ b/doc/html/search/functions_61.js
@@ -0,0 +1,111 @@
+var searchData=
+[
+ ['abook_5fconnections',['abook_connections',['../Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e',1,'Contact.php']]],
+ ['abook_5fself',['abook_self',['../Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5',1,'Contact.php']]],
+ ['abook_5ftoggle_5fflag',['abook_toggle_flag',['../Contact_8php.html#a024919623a830e8703ac4f23496dd66c',1,'Contact.php']]],
+ ['absurl',['absurl',['../boot_8php.html#a081307d681d7d04f17b9ced2076e7c85',1,'boot.php']]],
+ ['account_5ftotal',['account_total',['../account_8php.html#a43e3042b2723d76915a030bac3c668b6',1,'account.php']]],
+ ['account_5fverify_5fpassword',['account_verify_password',['../auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee',1,'auth.php']]],
+ ['acknowledge_5fpermissions',['acknowledge_permissions',['../classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a',1,'ProtoDriver\acknowledge_permissions()'],['../classZotDriver.html#a3cfdf443da4e5326e205855d7c0054f2',1,'ZotDriver\acknowledge_permissions()']]],
+ ['acl_5finit',['acl_init',['../acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a',1,'acl.php']]],
+ ['activity_5fmatch',['activity_match',['../text_8php.html#af8a3e3a66a7b862d4510f145d2e13186',1,'text.php']]],
+ ['activity_5fsanitise',['activity_sanitise',['../items_8php.html#a36e656667193c83aa2cc03a024fc131b',1,'items.php']]],
+ ['add_5fchild',['add_child',['../classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51',1,'Item']]],
+ ['add_5fchildren_5fto_5flist',['add_children_to_list',['../conversation_8php.html#ad3e1d4b15e7d6d026ee182edd58f692b',1,'conversation.php']]],
+ ['add_5ffcontact',['add_fcontact',['../include_2network_8php.html#a0bdc4b0bfc54797c249dc4eca25aeda4',1,'network.php']]],
+ ['add_5fthread',['add_thread',['../classConversation.html#a8335cdd43f1836e3c255638e61a09e16',1,'Conversation']]],
+ ['admin_5fcontent',['admin_content',['../admin_8php.html#afef415e4011607fbb665610441595015',1,'admin.php']]],
+ ['admin_5fpage_5fdbsync',['admin_page_dbsync',['../admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade',1,'admin.php']]],
+ ['admin_5fpage_5flogs',['admin_page_logs',['../admin_8php.html#a1d1362698af14d209aa3a0fb655551dd',1,'admin.php']]],
+ ['admin_5fpage_5flogs_5fpost',['admin_page_logs_post',['../admin_8php.html#a233b7c8c31776b7020532003c6e44e1c',1,'admin.php']]],
+ ['admin_5fpage_5fplugins',['admin_page_plugins',['../admin_8php.html#a54128076986ba80c4a103de3fc3e19a8',1,'admin.php']]],
+ ['admin_5fpage_5fsite',['admin_page_site',['../admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e',1,'admin.php']]],
+ ['admin_5fpage_5fsite_5fpost',['admin_page_site_post',['../admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f',1,'admin.php']]],
+ ['admin_5fpage_5fsummary',['admin_page_summary',['../admin_8php.html#ac6e95b920b5abd030cc522964987087a',1,'admin.php']]],
+ ['admin_5fpage_5fthemes',['admin_page_themes',['../admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb',1,'admin.php']]],
+ ['admin_5fpage_5fusers',['admin_page_users',['../admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2',1,'admin.php']]],
+ ['admin_5fpage_5fusers_5fpost',['admin_page_users_post',['../admin_8php.html#a5a696706a3869800e65fb365214241b7',1,'admin.php']]],
+ ['admin_5fpost',['admin_post',['../admin_8php.html#acf51f5837a7427832144c2bf7308ada3',1,'admin.php']]],
+ ['advanced_5fprofile',['advanced_profile',['../profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4',1,'profile_advanced.php']]],
+ ['aes256cbc_5fdecrypt',['AES256CBC_decrypt',['../crypto_8php.html#ac852ee41392d1358c3a54d54935e0bf9',1,'crypto.php']]],
+ ['aes256cbc_5fencrypt',['AES256CBC_encrypt',['../crypto_8php.html#a5c61821d205f95f127114159cbffa764',1,'crypto.php']]],
+ ['aes_5fencapsulate',['aes_encapsulate',['../crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286',1,'crypto.php']]],
+ ['aes_5funencapsulate',['aes_unencapsulate',['../crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914',1,'crypto.php']]],
+ ['age',['age',['../datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df',1,'datetime.php']]],
+ ['all_5ffriends',['all_friends',['../socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586',1,'socgraph.php']]],
+ ['allfriends_5fcontent',['allfriends_content',['../allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83',1,'allfriends.php']]],
+ ['allowed_5femail',['allowed_email',['../include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694',1,'network.php']]],
+ ['allowed_5fpublic_5frecips',['allowed_public_recips',['../zot_8php.html#a703f528ade8382cf374e4119bd6f7859',1,'zot.php']]],
+ ['allowed_5furl',['allowed_url',['../include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7',1,'network.php']]],
+ ['alt_5fpager',['alt_pager',['../text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85',1,'text.php']]],
+ ['api_5faccount_5flogout',['api_account_logout',['../include_2api_8php.html#a2e94eab9d6c164bfef7a1b2ab87b339b',1,'api.php']]],
+ ['api_5faccount_5frate_5flimit_5fstatus',['api_account_rate_limit_status',['../include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5',1,'api.php']]],
+ ['api_5faccount_5fverify_5fcredentials',['api_account_verify_credentials',['../include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad',1,'api.php']]],
+ ['api_5falbums',['api_albums',['../include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18',1,'api.php']]],
+ ['api_5fapply_5ftemplate',['api_apply_template',['../include_2api_8php.html#a5990101034e7abf6404feba3cd273629',1,'api.php']]],
+ ['api_5fcall',['api_call',['../include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5',1,'api.php']]],
+ ['api_5fchannel_5fstream',['api_channel_stream',['../include_2api_8php.html#a72bfecac1970bc29b853073e816388ff',1,'api.php']]],
+ ['api_5fcontent',['api_content',['../mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d',1,'api.php']]],
+ ['api_5fdate',['api_date',['../include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25',1,'api.php']]],
+ ['api_5fdirect_5fmessages_5fall',['api_direct_messages_all',['../include_2api_8php.html#a970b02c06dea8b229aa3d5fff9cf4705',1,'api.php']]],
+ ['api_5fdirect_5fmessages_5fbox',['api_direct_messages_box',['../include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5',1,'api.php']]],
+ ['api_5fdirect_5fmessages_5fconversation',['api_direct_messages_conversation',['../include_2api_8php.html#a9160288b7ac220635942d8dc209b78c3',1,'api.php']]],
+ ['api_5fdirect_5fmessages_5finbox',['api_direct_messages_inbox',['../include_2api_8php.html#ad2b0192f3006918bea895de8074bf8d2',1,'api.php']]],
+ ['api_5fdirect_5fmessages_5fnew',['api_direct_messages_new',['../include_2api_8php.html#a0991f72554f821255397d615e76f3203',1,'api.php']]],
+ ['api_5fdirect_5fmessages_5fsentbox',['api_direct_messages_sentbox',['../include_2api_8php.html#a58cf4c02ef435996f5c3bc4283d3968d',1,'api.php']]],
+ ['api_5fexport_5fbasic',['api_export_basic',['../include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53',1,'api.php']]],
+ ['api_5ffavorites',['api_favorites',['../include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f',1,'api.php']]],
+ ['api_5fff_5fids',['api_ff_ids',['../include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8',1,'api.php']]],
+ ['api_5ffollowers_5fids',['api_followers_ids',['../include_2api_8php.html#ab1ecb58954f722444bfe03233345cb1b',1,'api.php']]],
+ ['api_5fformat_5fas',['api_format_as',['../include_2api_8php.html#a18cab7c6391df5c421753463f5d2a879',1,'api.php']]],
+ ['api_5fformat_5fitems',['api_format_items',['../include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea',1,'api.php']]],
+ ['api_5fformat_5fmessages',['api_format_messages',['../include_2api_8php.html#ae82608c317421f27446465aa6724733d',1,'api.php']]],
+ ['api_5ffriendica_5fversion',['api_friendica_version',['../include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74',1,'api.php']]],
+ ['api_5ffriends_5fids',['api_friends_ids',['../include_2api_8php.html#acafd2899309a005fcb725289173dc7fe',1,'api.php']]],
+ ['api_5fget_5fuser',['api_get_user',['../include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa',1,'api.php']]],
+ ['api_5fhelp_5ftest',['api_help_test',['../include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23',1,'api.php']]],
+ ['api_5fitem_5fget_5fuser',['api_item_get_user',['../include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1',1,'api.php']]],
+ ['api_5flogin',['api_login',['../include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73',1,'api.php']]],
+ ['api_5foauth_5faccess_5ftoken',['api_oauth_access_token',['../include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0',1,'api.php']]],
+ ['api_5foauth_5frequest_5ftoken',['api_oauth_request_token',['../include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3',1,'api.php']]],
+ ['api_5fphotos',['api_photos',['../include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f',1,'api.php']]],
+ ['api_5fpost',['api_post',['../mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2',1,'api.php']]],
+ ['api_5fregister_5ffunc',['api_register_func',['../include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a',1,'api.php']]],
+ ['api_5frss_5fextra',['api_rss_extra',['../include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f',1,'api.php']]],
+ ['api_5fstatus_5fshow',['api_status_show',['../include_2api_8php.html#a645397787618b5c548a31e8686e8cca4',1,'api.php']]],
+ ['api_5fstatuses_5fdestroy',['api_statuses_destroy',['../include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4',1,'api.php']]],
+ ['api_5fstatuses_5ff',['api_statuses_f',['../include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410',1,'api.php']]],
+ ['api_5fstatuses_5ffollowers',['api_statuses_followers',['../include_2api_8php.html#a6951c690d87775eb37e569c66011988e',1,'api.php']]],
+ ['api_5fstatuses_5ffriends',['api_statuses_friends',['../include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e',1,'api.php']]],
+ ['api_5fstatuses_5fhome_5ftimeline',['api_statuses_home_timeline',['../include_2api_8php.html#a528d8070ee74ea800102936ce73cf366',1,'api.php']]],
+ ['api_5fstatuses_5fmediap',['api_statuses_mediap',['../include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95',1,'api.php']]],
+ ['api_5fstatuses_5fmentions',['api_statuses_mentions',['../include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e',1,'api.php']]],
+ ['api_5fstatuses_5fpublic_5ftimeline',['api_statuses_public_timeline',['../include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22',1,'api.php']]],
+ ['api_5fstatuses_5frepeat',['api_statuses_repeat',['../include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8',1,'api.php']]],
+ ['api_5fstatuses_5fshow',['api_statuses_show',['../include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63',1,'api.php']]],
+ ['api_5fstatuses_5fupdate',['api_statuses_update',['../include_2api_8php.html#ad4d1634df6b35126552324683caaffa2',1,'api.php']]],
+ ['api_5fstatuses_5fuser_5ftimeline',['api_statuses_user_timeline',['../include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283',1,'api.php']]],
+ ['api_5fstatusnet_5fconfig',['api_statusnet_config',['../include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08',1,'api.php']]],
+ ['api_5fstatusnet_5fversion',['api_statusnet_version',['../include_2api_8php.html#a8969e8d9c683f12ba17dcd4b059e020d',1,'api.php']]],
+ ['api_5fuser',['api_user',['../include_2api_8php.html#afb99daa6b731bf497b81f2128084852c',1,'api.php']]],
+ ['api_5fusers_5fshow',['api_users_show',['../include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76',1,'api.php']]],
+ ['appdirpath',['appdirpath',['../boot_8php.html#a75a90b0eadd0df510f7e63210733634d',1,'boot.php']]],
+ ['apps_5fcontent',['apps_content',['../apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c',1,'apps.php']]],
+ ['argc',['argc',['../boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7',1,'boot.php']]],
+ ['argv',['argv',['../boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006',1,'boot.php']]],
+ ['arr_5fadd_5fhashes',['arr_add_hashes',['../parse__url_8php.html#aa7dd8f961bea042d62726ed909e4a868',1,'parse_url.php']]],
+ ['array_5fsanitise',['array_sanitise',['../items_8php.html#abf7a1b73eb352d79acd36309b0dababd',1,'items.php']]],
+ ['array_5fxmlify',['array_xmlify',['../text_8php.html#acedb584f65114a33f389efb796172a91',1,'text.php']]],
+ ['atom_5fauthor',['atom_author',['../items_8php.html#a016dd86c827d08db89061ea81d15c6cb',1,'items.php']]],
+ ['atom_5fentry',['atom_entry',['../items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6',1,'items.php']]],
+ ['attach_5fby_5fhash',['attach_by_hash',['../include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36',1,'attach.php']]],
+ ['attach_5fby_5fhash_5fnodata',['attach_by_hash_nodata',['../include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932',1,'attach.php']]],
+ ['attach_5fcount_5ffiles',['attach_count_files',['../include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3',1,'attach.php']]],
+ ['attach_5finit',['attach_init',['../mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1',1,'attach.php']]],
+ ['attach_5flist_5ffiles',['attach_list_files',['../include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d',1,'attach.php']]],
+ ['attach_5fstore',['attach_store',['../include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f',1,'attach.php']]],
+ ['attribute_5fcontains',['attribute_contains',['../text_8php.html#a95fd2f8f23a1948414a03ebc963bac57',1,'text.php']]],
+ ['authenticate_5fsuccess',['authenticate_success',['../security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733',1,'security.php']]],
+ ['autoname',['autoname',['../text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca',1,'text.php']]],
+ ['avatar_5fimg',['avatar_img',['../include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7',1,'network.php']]]
+];
diff --git a/doc/html/search/functions_62.html b/doc/html/search/functions_62.html
new file mode 100644
index 000000000..5134d2d29
--- /dev/null
+++ b/doc/html/search/functions_62.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_62.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_62.js b/doc/html/search/functions_62.js
new file mode 100644
index 000000000..9b6ac0476
--- /dev/null
+++ b/doc/html/search/functions_62.js
@@ -0,0 +1,20 @@
+var searchData=
+[
+ ['base64url_5fdecode',['base64url_decode',['../text_8php.html#a13286f8a95d2de6b102966ecc270c8d6',1,'text.php']]],
+ ['base64url_5fencode',['base64url_encode',['../text_8php.html#a070384ec000fd65043fce11d5392d241',1,'text.php']]],
+ ['bb2diaspora',['bb2diaspora',['../bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c',1,'bb2diaspora.php']]],
+ ['bb_5fshareattributes',['bb_ShareAttributes',['../bbcode_8php.html#a52c45273fbb7ce5ec27094f7936856e1',1,'bbcode.php']]],
+ ['bb_5fshareattributessimple',['bb_ShareAttributesSimple',['../bbcode_8php.html#a2be26414a367118143cc89e2d58e7377',1,'bbcode.php']]],
+ ['bb_5fspacefy',['bb_spacefy',['../bbcode_8php.html#a8911e027907820df3db03b4f76724b50',1,'bbcode.php']]],
+ ['bb_5ftag_5fpreg_5freplace',['bb_tag_preg_replace',['../bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba',1,'bb2diaspora.php']]],
+ ['bb_5ftranslate_5fvideo',['bb_translate_video',['../text_8php.html#a3d2793d66db3345fd290b71e2eadf98e',1,'text.php']]],
+ ['bb_5funspacefy_5fand_5ftrim',['bb_unspacefy_and_trim',['../bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d',1,'bbcode.php']]],
+ ['bbcode',['bbcode',['../bbcode_8php.html#a009f61aaf78771737ed0765c8463911b',1,'bbcode.php']]],
+ ['bbtoevent',['bbtoevent',['../event_8php.html#a180cccd63c2a2f00ff432b03113531f3',1,'event.php']]],
+ ['bbtovcal',['bbtovcal',['../event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279',1,'event.php']]],
+ ['best_5flink_5furl',['best_link_url',['../conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7',1,'conversation.php']]],
+ ['breaklines',['breaklines',['../html2plain_8php.html#a3214912e3d00cf0a948072daccf16740',1,'html2plain.php']]],
+ ['build_5fpagehead',['build_pagehead',['../classApp.html#a08f0537964d98958d218066364cff785',1,'App']]],
+ ['build_5fquerystring',['build_querystring',['../boot_8php.html#a9cbab4ee728e9a8b4ce952bae643044e',1,'boot.php']]],
+ ['build_5fsync_5fpacket',['build_sync_packet',['../zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7',1,'zot.php']]]
+];
diff --git a/doc/html/search/functions_63.html b/doc/html/search/functions_63.html
new file mode 100644
index 000000000..9114d820c
--- /dev/null
+++ b/doc/html/search/functions_63.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_63.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_63.js b/doc/html/search/functions_63.js
new file mode 100644
index 000000000..00f4a80d7
--- /dev/null
+++ b/doc/html/search/functions_63.js
@@ -0,0 +1,97 @@
+var searchData=
+[
+ ['cal',['cal',['../datetime_8php.html#aea356409ba69f9de412298c998595dd2',1,'datetime.php']]],
+ ['call_5fhooks',['call_hooks',['../plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c',1,'plugin.php']]],
+ ['can_5fcomment_5fon_5fpost',['can_comment_on_post',['../items_8php.html#a1e75047cf175aaee8dd16aa761913ff9',1,'items.php']]],
+ ['categories_5fwidget',['categories_widget',['../contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353',1,'contact_widgets.php']]],
+ ['change_5fchannel',['change_channel',['../security_8php.html#a8d23d2597aae380a3341872fe9513380',1,'security.php']]],
+ ['change_5fpermissions',['change_permissions',['../classProtoDriver.html#a34b97ca5ef2165f2e16eb2fe59ff6c67',1,'ProtoDriver\change_permissions()'],['../classZotDriver.html#a6776935156accb0f170e2e24577133db',1,'ZotDriver\change_permissions()']]],
+ ['chanlink_5fcid',['chanlink_cid',['../text_8php.html#a85e3a4851c16674834010d8419a5d7ca',1,'text.php']]],
+ ['chanlink_5fhash',['chanlink_hash',['../text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0',1,'text.php']]],
+ ['chanlink_5furl',['chanlink_url',['../text_8php.html#a2e8d6c402603be3a1256a16605e09c2a',1,'text.php']]],
+ ['channel_5faside',['channel_aside',['../channel_8php.html#aea8e189f2fbabfda779349dd94082e8e',1,'channel.php']]],
+ ['channel_5fcontent',['channel_content',['../channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1',1,'channel.php']]],
+ ['channel_5finit',['channel_init',['../channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc',1,'channel.php']]],
+ ['channel_5fremove',['channel_remove',['../Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa',1,'Contact.php']]],
+ ['channel_5ftotal',['channel_total',['../identity_8php.html#a77d2237f1846964634b1c99089c27c7d',1,'identity.php']]],
+ ['channelx_5fby_5fhash',['channelx_by_hash',['../Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258',1,'Contact.php']]],
+ ['channelx_5fby_5fn',['channelx_by_n',['../Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc',1,'Contact.php']]],
+ ['channelx_5fby_5fnick',['channelx_by_nick',['../Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e',1,'Contact.php']]],
+ ['chanview_5fcontent',['chanview_content',['../chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b',1,'chanview.php']]],
+ ['check_5faccount_5fadmin',['check_account_admin',['../account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f',1,'account.php']]],
+ ['check_5faccount_5femail',['check_account_email',['../account_8php.html#ae052bd5558847bd38e89c213561a9771',1,'account.php']]],
+ ['check_5faccount_5finvite',['check_account_invite',['../account_8php.html#aaff7720423417a4333697894ffd9ddeb',1,'account.php']]],
+ ['check_5faccount_5fpassword',['check_account_password',['../account_8php.html#a144b4891022567668375b58ea61cfff0',1,'account.php']]],
+ ['check_5fadd',['check_add',['../setup_8php.html#ae8e4d9279a61de74d5f39962cb7b6ca1',1,'setup.php']]],
+ ['check_5fconfig',['check_config',['../boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3',1,'boot.php']]],
+ ['check_5fform_5fsecurity_5fstd_5ferr_5fmsg',['check_form_security_std_err_msg',['../security_8php.html#a20f8b9851f23ee8894b8925584ef6821',1,'security.php']]],
+ ['check_5fform_5fsecurity_5ftoken',['check_form_security_token',['../security_8php.html#a9c6180e82150a5a9af91a1255d096b5c',1,'security.php']]],
+ ['check_5fform_5fsecurity_5ftoken_5fforbiddenonerr',['check_form_security_token_ForbiddenOnErr',['../security_8php.html#a444ac867dfa8c37cf0a7a226412bee28',1,'security.php']]],
+ ['check_5fform_5fsecurity_5ftoken_5fredirectonerr',['check_form_security_token_redirectOnErr',['../security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433',1,'security.php']]],
+ ['check_5ffuncs',['check_funcs',['../setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e',1,'setup.php']]],
+ ['check_5fhtaccess',['check_htaccess',['../setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4',1,'setup.php']]],
+ ['check_5fhtconfig',['check_htconfig',['../setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f',1,'setup.php']]],
+ ['check_5fkeys',['check_keys',['../setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76',1,'setup.php']]],
+ ['check_5flist_5fpermissions',['check_list_permissions',['../permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7',1,'permissions.php']]],
+ ['check_5fphp',['check_php',['../setup_8php.html#a14d208682a88632290c895d20da6e7d6',1,'setup.php']]],
+ ['check_5fsmarty3',['check_smarty3',['../setup_8php.html#afd8b0b3ade1507c45325caf377bf459d',1,'setup.php']]],
+ ['check_5fwall_5fto_5fwall',['check_wall_to_wall',['../classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8',1,'Item']]],
+ ['check_5fwebbie',['check_webbie',['../text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3',1,'text.php']]],
+ ['clean_5furls',['clean_urls',['../boot_8php.html#ab79b8b4555cae20d03f8200666d89d63',1,'boot.php']]],
+ ['clear',['clear',['../classCache.html#ab14d0f4bdf7116a94d545c574b38f568',1,'Cache']]],
+ ['cleardiv',['cleardiv',['../text_8php.html#afe18627c4983ee5f7c940a0992818cd5',1,'text.php']]],
+ ['cli_5fstartup',['cli_startup',['../cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b',1,'cli_startup.php']]],
+ ['close',['close',['../classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975',1,'dba_driver\close()'],['../classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e',1,'dba_mysql\close()'],['../classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55',1,'dba_mysqli\close()']]],
+ ['collect',['collect',['../classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d',1,'ProtoDriver\collect()'],['../classZotDriver.html#af65febb26031eb7f39871b9e2a539797',1,'ZotDriver\collect()']]],
+ ['collect_5fprivate',['collect_private',['../classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b',1,'ProtoDriver\collect_private()'],['../classZotDriver.html#a2e15ff09772f0608203dad1c98299394',1,'ZotDriver\collect_private()']]],
+ ['collect_5frecipients',['collect_recipients',['../items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70',1,'items.php']]],
+ ['collecturls',['collecturls',['../html2plain_8php.html#ae1c203d0f089d5678d73a6c64a395201',1,'html2plain.php']]],
+ ['common_5faside',['common_aside',['../common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a',1,'common.php']]],
+ ['common_5fcontent',['common_content',['../common_8php.html#ab63408f39abef7a6915186e8dabc5a96',1,'common.php']]],
+ ['common_5ffriends',['common_friends',['../socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918',1,'socgraph.php']]],
+ ['common_5ffriends_5fvisitor_5fwidget',['common_friends_visitor_widget',['../contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65',1,'contact_widgets.php']]],
+ ['common_5ffriends_5fzcid',['common_friends_zcid',['../socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9',1,'socgraph.php']]],
+ ['common_5finit',['common_init',['../common_8php.html#aca62f113655809f41f49042ce9b123c2',1,'common.php']]],
+ ['community_5fcontent',['community_content',['../community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a',1,'community.php']]],
+ ['community_5finit',['community_init',['../community_8php.html#a56c94ec978a38633c5628fa6f8e386d9',1,'community.php']]],
+ ['compare_5fpermissions',['compare_permissions',['../items_8php.html#a0790a4550b829e85504af548623002ca',1,'items.php']]],
+ ['completeurl',['completeurl',['../parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a',1,'parse_url.php']]],
+ ['connect',['connect',['../classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc',1,'dba_driver\connect()'],['../classdba__mysql.html#a1887338627ce0e28786839363014bd0b',1,'dba_mysql\connect()'],['../classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1',1,'dba_mysqli\connect()']]],
+ ['connections_5faside',['connections_aside',['../connections_8php.html#af48f7ad20914760ba9874c090384e35a',1,'connections.php']]],
+ ['connections_5fclone',['connections_clone',['../connections_8php.html#a15af118efee9c948b6f8294e54a73bb2',1,'connections.php']]],
+ ['connections_5fcontent',['connections_content',['../connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c',1,'connections.php']]],
+ ['connections_5finit',['connections_init',['../connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558',1,'connections.php']]],
+ ['connections_5fpost',['connections_post',['../connections_8php.html#a1224058db8e3fb56463eb312f98e561d',1,'connections.php']]],
+ ['construct_5factivity_5fobject',['construct_activity_object',['../items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee',1,'items.php']]],
+ ['construct_5factivity_5ftarget',['construct_activity_target',['../items_8php.html#aa579bc4445d60098b1410961ca8e96b7',1,'items.php']]],
+ ['construct_5fpage',['construct_page',['../boot_8php.html#acc4e0c910af066148b810e5fde55fff1',1,'boot.php']]],
+ ['construct_5fverb',['construct_verb',['../items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8',1,'items.php']]],
+ ['consume_5ffeed',['consume_feed',['../items_8php.html#a8794863cdf8ce1333040933d3a3f66bd',1,'items.php']]],
+ ['contact_5fblock',['contact_block',['../text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784',1,'text.php']]],
+ ['contact_5fpoll_5finterval',['contact_poll_interval',['../contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f',1,'contact_selectors.php']]],
+ ['contact_5fprofile_5fassign',['contact_profile_assign',['../contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75',1,'contact_selectors.php']]],
+ ['contact_5fremove',['contact_remove',['../Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6',1,'Contact.php']]],
+ ['contact_5freputation',['contact_reputation',['../contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53',1,'contact_selectors.php']]],
+ ['contact_5fselect',['contact_select',['../acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91',1,'acl_selectors.php']]],
+ ['contactgroup_5fcontent',['contactgroup_content',['../contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3',1,'contactgroup.php']]],
+ ['contacts_5fnot_5fgrouped',['contacts_not_grouped',['../Contact_8php.html#a228fc01f90ae9bfdde4c2ad0772bd7dc',1,'Contact.php']]],
+ ['conv_5fsort',['conv_sort',['../conversation_8php.html#abed85a41f1160598de880b84021c9cf7',1,'conversation.php']]],
+ ['conversation',['conversation',['../conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1',1,'conversation.php']]],
+ ['convert',['convert',['../namespacefriendica-to-smarty-tpl.html#a38503e37fe68ac27c88cce91a9ac9efa',1,'friendica-to-smarty-tpl']]],
+ ['convert_5fxml_5felement_5fto_5farray',['convert_xml_element_to_array',['../include_2network_8php.html#ad4056d3ce69988f5c1a997a79f503246',1,'network.php']]],
+ ['count_5fall_5ffriends',['count_all_friends',['../socgraph_8php.html#af29d056beec10b4e38e5209c92452894',1,'socgraph.php']]],
+ ['count_5fcommon_5ffriends',['count_common_friends',['../socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84',1,'socgraph.php']]],
+ ['count_5fcommon_5ffriends_5fzcid',['count_common_friends_zcid',['../socgraph_8php.html#af175807406d94407a5e11742a3287746',1,'socgraph.php']]],
+ ['count_5fdescendants',['count_descendants',['../classItem.html#aca1e66988ed00cd627b2a359b72cd0ae',1,'Item\count_descendants()'],['../conversation_8php.html#ab2383dff4f823e580399ff469d90ab19',1,'count_descendants():&#160;conversation.php']]],
+ ['create_5faccount',['create_account',['../account_8php.html#a141fe579c351c78209d425473f978eb5',1,'account.php']]],
+ ['create_5fdir_5faccount',['create_dir_account',['../identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd',1,'identity.php']]],
+ ['create_5fidentity',['create_identity',['../identity_8php.html#a345f4c943d84de502ec6e72d2c813945',1,'identity.php']]],
+ ['crepair_5fcontent',['crepair_content',['../crepair_8php.html#a29464c01838e209c8059cfcd2d195caa',1,'crepair.php']]],
+ ['crepair_5finit',['crepair_init',['../crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198',1,'crepair.php']]],
+ ['crepair_5fpost',['crepair_post',['../crepair_8php.html#acc4493e1ffd1462a605dd9b870034513',1,'crepair.php']]],
+ ['cronhooks_5frun',['cronhooks_run',['../cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca',1,'cronhooks.php']]],
+ ['cropimage',['cropImage',['../classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e',1,'photo_driver\cropImage()'],['../classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c',1,'photo_gd\cropImage()'],['../classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4',1,'photo_imagick\cropImage()']]],
+ ['curpageurl',['curPageURL',['../boot_8php.html#aa4221641e5c21db69fa52c426b9017f5',1,'boot.php']]],
+ ['current_5ftheme',['current_theme',['../boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13',1,'boot.php']]],
+ ['current_5ftheme_5furl',['current_theme_url',['../boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3',1,'boot.php']]]
+];
diff --git a/doc/html/search/functions_64.html b/doc/html/search/functions_64.html
new file mode 100644
index 000000000..17149308a
--- /dev/null
+++ b/doc/html/search/functions_64.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_64.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_64.js b/doc/html/search/functions_64.js
new file mode 100644
index 000000000..b2517d52c
--- /dev/null
+++ b/doc/html/search/functions_64.js
@@ -0,0 +1,46 @@
+var searchData=
+[
+ ['datesel',['datesel',['../datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8',1,'datetime.php']]],
+ ['datesel_5fformat',['datesel_format',['../datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa',1,'datetime.php']]],
+ ['datetime_5fconvert',['datetime_convert',['../datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226',1,'datetime.php']]],
+ ['day_5ftranslate',['day_translate',['../text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63',1,'text.php']]],
+ ['dba_5ffactory',['dba_factory',['../dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947',1,'dba_driver.php']]],
+ ['dba_5ftimer',['dba_timer',['../boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4',1,'boot.php']]],
+ ['dbesc',['dbesc',['../dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e',1,'dba_driver.php']]],
+ ['dbesc_5farray',['dbesc_array',['../dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4',1,'dba_driver.php']]],
+ ['dbesc_5farray_5fcb',['dbesc_array_cb',['../dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930',1,'dba_driver.php']]],
+ ['dbg',['dbg',['../classdba__driver.html#adcc1f8955120fec0708bce39202d0422',1,'dba_driver\dbg()'],['../dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb',1,'dbg():&#160;dba_driver.php']]],
+ ['dbq',['dbq',['../dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee',1,'dba_driver.php']]],
+ ['decode_5ftags',['decode_tags',['../items_8php.html#a56b2a4abcadfac71175cd50555528cc3',1,'items.php']]],
+ ['del_5fconfig',['del_config',['../include_2config_8php.html#a549910227348003efc3c05c9105c42da',1,'config.php']]],
+ ['del_5fpconfig',['del_pconfig',['../include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941',1,'config.php']]],
+ ['del_5fxconfig',['del_xconfig',['../include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72',1,'config.php']]],
+ ['delegate_5fcontent',['delegate_content',['../delegate_8php.html#a943eea8996ef348eb845c498f9f354dd',1,'delegate.php']]],
+ ['delete_5fimported_5fitem',['delete_imported_item',['../zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72',1,'zot.php']]],
+ ['delete_5fitem_5flowlevel',['delete_item_lowlevel',['../items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259',1,'items.php']]],
+ ['deletenode',['deletenode',['../html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2',1,'html2bbcode.php']]],
+ ['deliver',['deliver',['../classProtoDriver.html#a85e9063f6d0c304410cd246f7900ea1b',1,'ProtoDriver\deliver()'],['../classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f',1,'ZotDriver\deliver()']]],
+ ['deliver_5fprivate',['deliver_private',['../classProtoDriver.html#ae5b44739f84c10d00a9b65adf3785181',1,'ProtoDriver\deliver_private()'],['../classZotDriver.html#afaaf9941169fc966e43e25b25e6daea6',1,'ZotDriver\deliver_private()']]],
+ ['deliver_5frun',['deliver_run',['../deliver_8php.html#a397afcb9afecf0c1816b0951189dd346',1,'deliver.php']]],
+ ['destroy',['destroy',['../classphoto__driver.html#ae1a9edaf846983780dc65ea77d99e813',1,'photo_driver\destroy()'],['../classphoto__gd.html#a724703ecf71b1f1d04a80e86c76db6b1',1,'photo_gd\destroy()'],['../classphoto__imagick.html#afd49d64751ee3a298eac0c0ce0ba0207',1,'photo_imagick\destroy()']]],
+ ['detect_5flanguage',['detect_language',['../language_8php.html#a632da17c7ac0d2dc1a00a4706870194b',1,'language.php']]],
+ ['dfrn_5fdeliver',['dfrn_deliver',['../items_8php.html#a8395d189a36abfa0dfff81a2b0e70669',1,'items.php']]],
+ ['diaspora2bb',['diaspora2bb',['../bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6',1,'bb2diaspora.php']]],
+ ['diaspora_5fol',['diaspora_ol',['../bb2diaspora_8php.html#a8b96bd45884fa1c40b942939354197d4',1,'bb2diaspora.php']]],
+ ['diaspora_5ful',['diaspora_ul',['../bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc',1,'bb2diaspora.php']]],
+ ['directory_5faside',['directory_aside',['../mod_2directory_8php.html#aa1d928543212871491706216742dd73c',1,'directory.php']]],
+ ['directory_5fcontent',['directory_content',['../mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44',1,'directory.php']]],
+ ['directory_5finit',['directory_init',['../mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf',1,'directory.php']]],
+ ['directory_5frun',['directory_run',['../include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0',1,'directory.php']]],
+ ['dirfind_5fcontent',['dirfind_content',['../dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee',1,'dirfind.php']]],
+ ['dirfind_5finit',['dirfind_init',['../dirfind_8php.html#ac689a812c84f161b3a0d42349f83981c',1,'dirfind.php']]],
+ ['dirsearch_5fcontent',['dirsearch_content',['../dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c',1,'dirsearch.php']]],
+ ['dirsearch_5finit',['dirsearch_init',['../dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752',1,'dirsearch.php']]],
+ ['discover',['discover',['../classProtoDriver.html#a64a3868cffe27d601d55f69a2ecc4337',1,'ProtoDriver\discover()'],['../classZotDriver.html#a40d328ff9f6b0a238afe286dddee1514',1,'ZotDriver\discover()']]],
+ ['display_5fcontent',['display_content',['../display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0',1,'display.php']]],
+ ['dlogger',['dlogger',['../text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c',1,'text.php']]],
+ ['dob',['dob',['../datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8',1,'datetime.php']]],
+ ['doscaleimage',['doScaleImage',['../classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f',1,'photo_driver\doScaleImage()'],['../classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754',1,'photo_gd\doScaleImage()'],['../classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66',1,'photo_imagick\doScaleImage()']]],
+ ['drop_5fitem',['drop_item',['../items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1',1,'items.php']]],
+ ['drop_5fitems',['drop_items',['../items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55',1,'items.php']]]
+];
diff --git a/doc/html/search/functions_65.html b/doc/html/search/functions_65.html
new file mode 100644
index 000000000..13260cf25
--- /dev/null
+++ b/doc/html/search/functions_65.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_65.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_65.js b/doc/html/search/functions_65.js
new file mode 100644
index 000000000..55e54cb35
--- /dev/null
+++ b/doc/html/search/functions_65.js
@@ -0,0 +1,23 @@
+var searchData=
+[
+ ['editpost_5fcontent',['editpost_content',['../editpost_8php.html#a34011690864d122680c802e9e748ccfb',1,'editpost.php']]],
+ ['editwebpage_5fcontent',['editwebpage_content',['../editwebpage_8php.html#a375e945255fad79a71036528f7480650',1,'editwebpage.php']]],
+ ['email_5fheader_5fencode',['email_header_encode',['../include_2network_8php.html#a540420ff3675a72cb781ef9a7e8c2cd9',1,'network.php']]],
+ ['email_5fsend',['email_send',['../include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0',1,'network.php']]],
+ ['encode_5fitem',['encode_item',['../items_8php.html#a82955cc578f0fa600acec84475026194',1,'items.php']]],
+ ['encode_5fitem_5fflags',['encode_item_flags',['../items_8php.html#a5f690fc2484abec07840b4f9dd525bd9',1,'items.php']]],
+ ['encode_5fitem_5fterms',['encode_item_terms',['../items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a',1,'items.php']]],
+ ['encode_5fitem_5fxchan',['encode_item_xchan',['../items_8php.html#a566c601726697e044e75284af7fb6f17',1,'items.php']]],
+ ['encode_5fmail',['encode_mail',['../items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7',1,'items.php']]],
+ ['encode_5frel_5flinks',['encode_rel_links',['../items_8php.html#aa723c0571e314a1853a24c5854b4f54f',1,'items.php']]],
+ ['enumerate_5fpermissions',['enumerate_permissions',['../items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67',1,'items.php']]],
+ ['escape',['escape',['../classdba__driver.html#afc95ffa103a3290581b537670cde5311',1,'dba_driver\escape()'],['../classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e',1,'dba_mysql\escape()'],['../classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64',1,'dba_mysqli\escape()']]],
+ ['escape_5ftags',['escape_tags',['../text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64',1,'text.php']]],
+ ['ev_5fcompare',['ev_compare',['../event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850',1,'event.php']]],
+ ['event_5fstore',['event_store',['../event_8php.html#a89ef533faf345db8d64a58d4856bde3a',1,'event.php']]],
+ ['events_5fcontent',['events_content',['../events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec',1,'events.php']]],
+ ['events_5fpost',['events_post',['../events_8php.html#ab3e8a8f901175f8e40a8089eea45c075',1,'events.php']]],
+ ['expand_5facl',['expand_acl',['../text_8php.html#ae4282a39492caa23ccbc2ce98e54f110',1,'text.php']]],
+ ['expand_5fgroups',['expand_groups',['../include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345',1,'group.php']]],
+ ['expire_5frun',['expire_run',['../expire_8php.html#a444e45c9b67727b27db4c779fd51a298',1,'expire.php']]]
+];
diff --git a/doc/html/search/functions_66.html b/doc/html/search/functions_66.html
new file mode 100644
index 000000000..12565e3b2
--- /dev/null
+++ b/doc/html/search/functions_66.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_66.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_66.js b/doc/html/search/functions_66.js
new file mode 100644
index 000000000..602d5373b
--- /dev/null
+++ b/doc/html/search/functions_66.js
@@ -0,0 +1,48 @@
+var searchData=
+[
+ ['fbrowser_5fcontent',['fbrowser_content',['../fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4',1,'fbrowser.php']]],
+ ['feature_5fenabled',['feature_enabled',['../features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0',1,'features.php']]],
+ ['feed_5fhublinks',['feed_hublinks',['../text_8php.html#a8d8c4a11e53461caca21181ebd72daca',1,'text.php']]],
+ ['feed_5finit',['feed_init',['../feed_8php.html#af86137700b56f33d1d5f25c8dec22c04',1,'feed.php']]],
+ ['feed_5fsalmonlinks',['feed_salmonlinks',['../text_8php.html#a89929fa6f70a8ba54d5273fcf622b665',1,'text.php']]],
+ ['fetch_5flrdd_5ftemplate',['fetch_lrdd_template',['../include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0',1,'network.php']]],
+ ['fetch_5fpost_5ftags',['fetch_post_tags',['../items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9',1,'items.php']]],
+ ['fetch_5furl',['fetch_url',['../include_2network_8php.html#a37ddeb88a3fd1dee9e8339723f9edf9a',1,'network.php']]],
+ ['fetch_5fxrd_5flinks',['fetch_xrd_links',['../include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d',1,'network.php']]],
+ ['field_5ftimezone',['field_timezone',['../datetime_8php.html#a03900dcf0f9e3c58793a031673a70326',1,'datetime.php']]],
+ ['file_5ftag_5fdecode',['file_tag_decode',['../taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6',1,'taxonomy.php']]],
+ ['file_5ftag_5fencode',['file_tag_encode',['../taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37',1,'taxonomy.php']]],
+ ['file_5ftag_5ffile_5fquery',['file_tag_file_query',['../taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1',1,'taxonomy.php']]],
+ ['fileas_5fwidget',['fileas_widget',['../contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b',1,'contact_widgets.php']]],
+ ['filer_5fcontent',['filer_content',['../filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274',1,'filer.php']]],
+ ['filerm_5fcontent',['filerm_content',['../filerm_8php.html#ae2eb28d2054fa2c37e38689882172208',1,'filerm.php']]],
+ ['find_5fthread_5fparent_5findex',['find_thread_parent_index',['../conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6',1,'conversation.php']]],
+ ['find_5fupstream_5fdirectory',['find_upstream_directory',['../dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d',1,'dir_fns.php']]],
+ ['find_5fxchan_5fin_5farray',['find_xchan_in_array',['../text_8php.html#ace3c98538c63e09b70a363210b414112',1,'text.php']]],
+ ['findpeople_5fwidget',['findpeople_widget',['../contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6',1,'contact_widgets.php']]],
+ ['first_5fpost_5fdate',['first_post_date',['../items_8php.html#a0cf98bb619f07dd18f602683a55a5f59',1,'items.php']]],
+ ['fix_5fattached_5ffile_5fpermissions',['fix_attached_file_permissions',['../item_8php.html#a3daae7944f737bd30412a0d042207c0f',1,'item.php']]],
+ ['fix_5fattached_5fphoto_5fpermissions',['fix_attached_photo_permissions',['../item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10',1,'item.php']]],
+ ['fix_5fcontact_5fssl_5fpolicy',['fix_contact_ssl_policy',['../include_2network_8php.html#a2729d012410e470c527a62a3f777ded8',1,'network.php']]],
+ ['fix_5felement',['fix_element',['../namespacefriendica-to-smarty-tpl.html#a3719dd46e286a57d315e6adae1845854',1,'friendica-to-smarty-tpl']]],
+ ['fix_5fmce_5flf',['fix_mce_lf',['../text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28',1,'text.php']]],
+ ['fix_5fprivate_5fphotos',['fix_private_photos',['../items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87',1,'items.php']]],
+ ['fix_5fsystem_5furls',['fix_system_urls',['../boot_8php.html#aca5e42678e178c6b9034610d66666fd7',1,'boot.php']]],
+ ['fixacl',['fixacl',['../acl__selectors_8php.html#ad6664fb8330308e23f2645cd6624727e',1,'acl_selectors.php']]],
+ ['flip',['flip',['../classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832',1,'photo_driver\flip()'],['../classphoto__gd.html#a44cedef376044018702d9355ddc813ce',1,'photo_gd\flip()'],['../classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393',1,'photo_imagick\flip()']]],
+ ['follow_5fcontent',['follow_content',['../mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592',1,'follow.php']]],
+ ['follow_5finit',['follow_init',['../mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a',1,'follow.php']]],
+ ['follow_5fwidget',['follow_widget',['../contact__widgets_8php.html#af24e693532a045954caab515942cfc6f',1,'contact_widgets.php']]],
+ ['format_5fcss_5fif_5fexists',['format_css_if_exists',['../plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6',1,'plugin.php']]],
+ ['format_5fevent_5fbbcode',['format_event_bbcode',['../event_8php.html#abb74206cf42d694307c3d7abb7af9869',1,'event.php']]],
+ ['format_5fevent_5fdiaspora',['format_event_diaspora',['../bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863',1,'bb2diaspora.php']]],
+ ['format_5fevent_5fhtml',['format_event_html',['../event_8php.html#a2ac9f1b08de03250ecd794f705781d17',1,'event.php']]],
+ ['format_5fjs_5fif_5fexists',['format_js_if_exists',['../plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f',1,'plugin.php']]],
+ ['format_5flike',['format_like',['../conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3',1,'conversation.php']]],
+ ['format_5flocation',['format_location',['../conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3',1,'conversation.php']]],
+ ['format_5fnotification',['format_notification',['../include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3',1,'notify.php']]],
+ ['format_5fterm_5ffor_5fdisplay',['format_term_for_display',['../taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1',1,'taxonomy.php']]],
+ ['fsuggest_5fcontent',['fsuggest_content',['../fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998',1,'fsuggest.php']]],
+ ['fsuggest_5fpost',['fsuggest_post',['../fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d',1,'fsuggest.php']]],
+ ['ftosmarty',['fToSmarty',['../namespacefriendica-to-smarty-tpl.html#a89388ea9b2826e8218ed480e917d8105',1,'friendica-to-smarty-tpl']]]
+];
diff --git a/doc/html/search/functions_67.html b/doc/html/search/functions_67.html
new file mode 100644
index 000000000..53d4a096f
--- /dev/null
+++ b/doc/html/search/functions_67.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_67.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_67.js b/doc/html/search/functions_67.js
new file mode 100644
index 000000000..51db5875f
--- /dev/null
+++ b/doc/html/search/functions_67.js
@@ -0,0 +1,106 @@
+var searchData=
+[
+ ['gen_5ftoken',['gen_token',['../classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819',1,'FKOAuthDataStore']]],
+ ['gender_5fselector',['gender_selector',['../profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355',1,'profile_selectors.php']]],
+ ['generate_5fuser_5fguid',['generate_user_guid',['../text_8php.html#ae4f6881d7e13623f8eded6277595112a',1,'text.php']]],
+ ['get',['get',['../classCache.html#a70392b109331897bf9fdd7f1960e21de',1,'Cache']]],
+ ['get_5faccount',['get_account',['../classApp.html#a08bc87aff64f39fbc084e9d6545cee4d',1,'App']]],
+ ['get_5faccount_5fid',['get_account_id',['../boot_8php.html#afe88b920aa285982edb817a0dd44eb37',1,'boot.php']]],
+ ['get_5fall_5fperms',['get_all_perms',['../permissions_8php.html#aeca9b280f3dc3358c89976d81d690008',1,'permissions.php']]],
+ ['get_5fapp',['get_app',['../classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2',1,'BaseObject\get_app()'],['../boot_8php.html#a0e6db7e365f2b041a828b93786f694bc',1,'get_app():&#160;boot.php']]],
+ ['get_5fapps',['get_apps',['../classApp.html#a5c63eabdc7fdd8b6e3348980ec16a3ad',1,'App']]],
+ ['get_5fatom_5felements',['get_atom_elements',['../items_8php.html#a896c1809d58f2d7a42cfe14577958ddf',1,'items.php']]],
+ ['get_5fbaseurl',['get_baseurl',['../classApp.html#a604d659d6977a99de42a160343e5289a',1,'App']]],
+ ['get_5fbb_5ftag_5fpos',['get_bb_tag_pos',['../bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2',1,'bb2diaspora.php']]],
+ ['get_5fbest_5flanguage',['get_best_language',['../language_8php.html#a980dee1d8715a98ab02e36b59facf8ed',1,'language.php']]],
+ ['get_5fbirthdays',['get_birthdays',['../boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51',1,'boot.php']]],
+ ['get_5fbrowser_5flanguage',['get_browser_language',['../language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e',1,'language.php']]],
+ ['get_5fcapath',['get_capath',['../include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7',1,'network.php']]],
+ ['get_5fchannel',['get_channel',['../classApp.html#a084e03c77686d8c13390fef3f7428a2b',1,'App']]],
+ ['get_5fchild',['get_child',['../classItem.html#a632185dd25c5caf277067c76230a4320',1,'Item']]],
+ ['get_5fchildren',['get_children',['../classItem.html#aa0ee775ec94abccec6c798428835d001',1,'Item']]],
+ ['get_5fcomment_5fbox',['get_comment_box',['../classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf',1,'Item']]],
+ ['get_5fcomment_5fbox_5ftemplate',['get_comment_box_template',['../classItem.html#a904421c7a427411bb2ab473bca872f63',1,'Item']]],
+ ['get_5fconfig',['get_config',['../include_2config_8php.html#af02c96e6b37335774b548914ede1d22e',1,'config.php']]],
+ ['get_5fconfig_5ffrom_5fstorage',['get_config_from_storage',['../include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74',1,'config.php']]],
+ ['get_5fconversation',['get_conversation',['../classItem.html#a0c301aaed2b7d682728d18db3a22afa3',1,'Item']]],
+ ['get_5fcurl_5fcode',['get_curl_code',['../classApp.html#ab410451f132910773d0a02e35d0dced9',1,'App']]],
+ ['get_5fcurl_5fheaders',['get_curl_headers',['../classApp.html#abaf2173711e861ae4aebf43a7f70157e',1,'App']]],
+ ['get_5fdata',['get_data',['../classItem.html#ad3638f93065693c1f69eb349feb1b7aa',1,'Item']]],
+ ['get_5fdata_5fvalue',['get_data_value',['../classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c',1,'Item']]],
+ ['get_5fdb_5ferrno',['get_db_errno',['../setup_8php.html#a8652788e8589778c5f81634a9d5b9429',1,'setup.php']]],
+ ['get_5fdim',['get_dim',['../datetime_8php.html#a7df24d72ea05922d3127363e2295174c',1,'datetime.php']]],
+ ['get_5fevents',['get_events',['../boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312',1,'boot.php']]],
+ ['get_5ffeatures',['get_features',['../features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c',1,'features.php']]],
+ ['get_5ffeed_5ffor',['get_feed_for',['../items_8php.html#a04a35b610acfe54434df08adec39c0c7',1,'items.php']]],
+ ['get_5ffirst_5fdim',['get_first_dim',['../datetime_8php.html#aba971b67f17fecf050813f1eba72367f',1,'datetime.php']]],
+ ['get_5fform_5fsecurity_5ftoken',['get_form_security_token',['../security_8php.html#acd06ef411116115c2f0a92633700db8a',1,'security.php']]],
+ ['get_5fformatsmap',['get_FormatsMap',['../classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4',1,'photo_imagick']]],
+ ['get_5fgroups',['get_groups',['../classApp.html#a4659785d13e4bac0bed50dbb1b0d4299',1,'App']]],
+ ['get_5fhostname',['get_hostname',['../classApp.html#a622eace13f8fc9f4b5672a68e2bc4396',1,'App']]],
+ ['get_5fid',['get_id',['../classItem.html#ac0f27e58532612f6e7a54c8a621b9b92',1,'Item']]],
+ ['get_5fintltext_5ftemplate',['get_intltext_template',['../classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118',1,'FriendicaSmartyEngine\get_intltext_template()'],['../plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295',1,'get_intltext_template():&#160;plugin.php']]],
+ ['get_5fitem_5fchildren',['get_item_children',['../conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67',1,'conversation.php']]],
+ ['get_5fitem_5fcontact',['get_item_contact',['../items_8php.html#aab9c6bae4c40799867596bdaae9829fd',1,'items.php']]],
+ ['get_5fitem_5felements',['get_item_elements',['../items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361',1,'items.php']]],
+ ['get_5fmail_5felements',['get_mail_elements',['../items_8php.html#a94ddb1d6c8fa21dd7433677e85168037',1,'items.php']]],
+ ['get_5fmarkup_5ftemplate',['get_markup_template',['../classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88',1,'FriendicaSmartyEngine\get_markup_template()'],['../interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442',1,'ITemplateEngine\get_markup_template()'],['../classTemplate.html#afd97b4b1e7754a550e67c0ea79159059',1,'Template\get_markup_template()'],['../plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4',1,'get_markup_template():&#160;plugin.php']]],
+ ['get_5fmax_5fimport_5fsize',['get_max_import_size',['../boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90',1,'boot.php']]],
+ ['get_5fmentions',['get_mentions',['../text_8php.html#a76d1b3435c067978d7b484c45f56472b',1,'text.php']]],
+ ['get_5fmode',['get_mode',['../classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd',1,'Conversation']]],
+ ['get_5fmood_5fverbs',['get_mood_verbs',['../text_8php.html#a736db13a966b8abaf8c9198faa35911a',1,'text.php']]],
+ ['get_5fmy_5faddress',['get_my_address',['../boot_8php.html#a490972c02fdb638c52ec0e012a30bfd2',1,'boot.php']]],
+ ['get_5fmy_5furl',['get_my_url',['../boot_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec',1,'boot.php']]],
+ ['get_5fobserver',['get_observer',['../classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2',1,'App\get_observer()'],['../classConversation.html#ae3d4190142e12b57051f11f2911f77a0',1,'Conversation\get_observer()']]],
+ ['get_5fobserver_5fhash',['get_observer_hash',['../boot_8php.html#a623e49c79943f3e7bdb770d021683cf7',1,'boot.php']]],
+ ['get_5fowner_5fname',['get_owner_name',['../classItem.html#a67892aa23d19f4431bb2e5f43c74000e',1,'Item']]],
+ ['get_5fowner_5fphoto',['get_owner_photo',['../classItem.html#aa541bc4290e51bfd688d6921bebabc73',1,'Item']]],
+ ['get_5fowner_5furl',['get_owner_url',['../classItem.html#a9f2d219da712390f59012fc32a342074',1,'Item']]],
+ ['get_5fparent',['get_parent',['../classItem.html#a4b92e3a9d6212c553aa2661489bd95d8',1,'Item']]],
+ ['get_5fpath',['get_path',['../classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be',1,'App']]],
+ ['get_5fpconfig',['get_pconfig',['../include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad',1,'config.php']]],
+ ['get_5fperms',['get_perms',['../classApp.html#adb5a4bb657881e553978ff390babd01f',1,'App\get_perms()'],['../permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972',1,'get_perms():&#160;permissions.php']]],
+ ['get_5fplink',['get_plink',['../text_8php.html#a05b7f26dc2df78681f57eeade53040c6',1,'text.php']]],
+ ['get_5fplugin_5finfo',['get_plugin_info',['../plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35',1,'plugin.php']]],
+ ['get_5fpoke_5fverbs',['get_poke_verbs',['../text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66',1,'text.php']]],
+ ['get_5fprofile_5felements',['get_profile_elements',['../items_8php.html#a251343637ff40a50cca93452cd530c26',1,'items.php']]],
+ ['get_5fprofile_5fowner',['get_profile_owner',['../classConversation.html#a5effe8ad3007e01333df44b81432b813',1,'Conversation']]],
+ ['get_5fpublic_5ffeed',['get_public_feed',['../items_8php.html#a079e099e15d88d47aeb6ca6d60da7107',1,'items.php']]],
+ ['get_5fredirect_5furl',['get_redirect_url',['../classItem.html#a428f448f89a8629055ea3294eb942aea',1,'Item']]],
+ ['get_5frel_5flink',['get_rel_link',['../text_8php.html#a3972701c5c83624ec4e2d06242f614e7',1,'text.php']]],
+ ['get_5ftags',['get_tags',['../text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623',1,'text.php']]],
+ ['get_5ftemplate',['get_template',['../classItem.html#aba23a0a9d89e316d2b343cc46d695d91',1,'Item']]],
+ ['get_5ftemplate_5fdata',['get_template_data',['../classConversation.html#a2a96b7a6573ae53db861624659e831cb',1,'Conversation\get_template_data()'],['../classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8',1,'Item\get_template_data()']]],
+ ['get_5ftemplate_5fengine',['get_template_engine',['../classApp.html#acb27e607fe4c82603444676e25c36b70',1,'App']]],
+ ['get_5ftemplate_5fldelim',['get_template_ldelim',['../classApp.html#a2eb832a8577dee7d40b93abdf6d1d35a',1,'App']]],
+ ['get_5ftemplate_5frdelim',['get_template_rdelim',['../classApp.html#aab23c59172310fd30f2d60dc039d3eea',1,'App']]],
+ ['get_5fterms_5foftype',['get_terms_oftype',['../taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1',1,'taxonomy.php']]],
+ ['get_5ftheme_5fconfig_5ffile',['get_theme_config_file',['../settings_8php.html#a39abc76ff5459c57e3b957664f273f18',1,'settings.php']]],
+ ['get_5ftheme_5finfo',['get_theme_info',['../plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405',1,'plugin.php']]],
+ ['get_5ftheme_5fscreenshot',['get_theme_screenshot',['../plugin_8php.html#a48047edfbef770125a5508dcc2f9282f',1,'plugin.php']]],
+ ['get_5ftheme_5fuid',['get_theme_uid',['../boot_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3',1,'boot.php']]],
+ ['get_5fthread',['get_thread',['../classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8',1,'Conversation']]],
+ ['get_5fwidgets',['get_widgets',['../classApp.html#a871898becd0697d778f36d9336253ae8',1,'App']]],
+ ['get_5fxconfig',['get_xconfig',['../include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e',1,'config.php']]],
+ ['getext',['getExt',['../classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba',1,'photo_driver']]],
+ ['getheight',['getHeight',['../classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468',1,'photo_driver']]],
+ ['getimage',['getImage',['../classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5',1,'photo_driver\getImage()'],['../classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484',1,'photo_gd\getImage()'],['../classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc',1,'photo_imagick\getImage()']]],
+ ['gettype',['getType',['../classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3',1,'photo_driver']]],
+ ['getwidth',['getWidth',['../classphoto__driver.html#acc30486acee9e89e32701f44a1738117',1,'photo_driver']]],
+ ['goaway',['goaway',['../boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1',1,'boot.php']]],
+ ['gprobe_5frun',['gprobe_run',['../gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1',1,'gprobe.php']]],
+ ['group_5fadd',['group_add',['../include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0',1,'group.php']]],
+ ['group_5fadd_5fmember',['group_add_member',['../include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b',1,'group.php']]],
+ ['group_5faside',['group_aside',['../mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c',1,'group.php']]],
+ ['group_5fbyname',['group_byname',['../include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb',1,'group.php']]],
+ ['group_5fcontent',['group_content',['../mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83',1,'group.php']]],
+ ['group_5fget_5fmembers',['group_get_members',['../include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09',1,'group.php']]],
+ ['group_5fpost',['group_post',['../mod_2group_8php.html#aed1f009b1221348021bb34761160ef35',1,'group.php']]],
+ ['group_5frec_5fbyhash',['group_rec_byhash',['../include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245',1,'group.php']]],
+ ['group_5frmv',['group_rmv',['../include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5',1,'group.php']]],
+ ['group_5frmv_5fmember',['group_rmv_member',['../include_2group_8php.html#a540e3ef36f47d47532646be4241f6518',1,'group.php']]],
+ ['group_5fselect',['group_select',['../acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0',1,'acl_selectors.php']]],
+ ['group_5fside',['group_side',['../include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17',1,'group.php']]],
+ ['groups_5fcontaining',['groups_containing',['../include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f',1,'group.php']]],
+ ['guess_5fimage_5ftype',['guess_image_type',['../photo__driver_8php.html#a7273b82b017fd96d29b2c57bab03aea6',1,'photo_driver.php']]]
+];
diff --git a/doc/html/search/functions_68.html b/doc/html/search/functions_68.html
new file mode 100644
index 000000000..77d37fe1a
--- /dev/null
+++ b/doc/html/search/functions_68.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_68.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_68.js b/doc/html/search/functions_68.js
new file mode 100644
index 000000000..2fcb45ed0
--- /dev/null
+++ b/doc/html/search/functions_68.js
@@ -0,0 +1,20 @@
+var searchData=
+[
+ ['handle_5ftag',['handle_tag',['../item_8php.html#abd0e603a6696051af16476eb968d52e7',1,'item.php']]],
+ ['has_5fpermissions',['has_permissions',['../items_8php.html#a77051724d1784074ff187e73a4db93fe',1,'items.php']]],
+ ['hcard_5faside',['hcard_aside',['../hcard_8php.html#a956c7cae2009652a37900306e5b7b73d',1,'hcard.php']]],
+ ['hcard_5finit',['hcard_init',['../hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d',1,'hcard.php']]],
+ ['head_5fadd_5fcss',['head_add_css',['../plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a',1,'plugin.php']]],
+ ['head_5fadd_5fjs',['head_add_js',['../plugin_8php.html#a516591850f4fd49fd1425cfa54089db8',1,'plugin.php']]],
+ ['head_5fget_5fcss',['head_get_css',['../plugin_8php.html#af92789f559b89a380e49d303218aeeca',1,'plugin.php']]],
+ ['head_5fget_5ficon',['head_get_icon',['../classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166',1,'App\head_get_icon()'],['../boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77',1,'head_get_icon():&#160;boot.php']]],
+ ['head_5fget_5fjs',['head_get_js',['../plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1',1,'plugin.php']]],
+ ['head_5fset_5ficon',['head_set_icon',['../classApp.html#a8863703a0305eaa45eb970dbd2046291',1,'App\head_set_icon()'],['../boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84',1,'head_set_icon():&#160;boot.php']]],
+ ['help',['help',['../namespacefriendica-to-smarty-tpl.html#af6b2c793958aae2aadc294577431f749',1,'friendica-to-smarty-tpl.help()'],['../namespaceupdatetpl.html#ac9d11279fed403a329a719298feafc4f',1,'updatetpl.help()']]],
+ ['help_5fcontent',['help_content',['../help_8php.html#af055e15f600ffa6fbca9386fdf715224',1,'help.php']]],
+ ['hostxrd_5finit',['hostxrd_init',['../hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92',1,'hostxrd.php']]],
+ ['html2bb_5fvideo',['html2bb_video',['../text_8php.html#a138a3a611fa7f4f3630674145fc826bf',1,'text.php']]],
+ ['html2bbcode',['html2bbcode',['../html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837',1,'html2bbcode.php']]],
+ ['html2plain',['html2plain',['../html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04',1,'html2plain.php']]],
+ ['http_5fstatus_5fexit',['http_status_exit',['../include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2',1,'network.php']]]
+];
diff --git a/doc/html/search/functions_69.html b/doc/html/search/functions_69.html
new file mode 100644
index 000000000..9edd1a1c1
--- /dev/null
+++ b/doc/html/search/functions_69.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_69.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_69.js b/doc/html/search/functions_69.js
new file mode 100644
index 000000000..d4c48a47b
--- /dev/null
+++ b/doc/html/search/functions_69.js
@@ -0,0 +1,50 @@
+var searchData=
+[
+ ['identity_5fbasic_5fexport',['identity_basic_export',['../identity_8php.html#a3570a4eb77332b292d394c4132cb8f03',1,'identity.php']]],
+ ['identity_5fbasic_5fimport',['identity_basic_import',['../identity_8php.html#a77ee7d66eb0758f7e7882f70ad0f9485',1,'identity.php']]],
+ ['identity_5fcheck_5fservice_5fclass',['identity_check_service_class',['../identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633',1,'identity.php']]],
+ ['ids_5fto_5fquerystr',['ids_to_querystr',['../text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a',1,'text.php']]],
+ ['imagestring',['imageString',['../classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd',1,'photo_driver\imageString()'],['../classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00',1,'photo_gd\imageString()'],['../classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019',1,'photo_imagick\imageString()']]],
+ ['import_5fauthor_5fxchan',['import_author_xchan',['../items_8php.html#ae73794179b62d39bb597ff670ab1c1e5',1,'items.php']]],
+ ['import_5fchannel_5fphoto',['import_channel_photo',['../photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a',1,'photo_driver.php']]],
+ ['import_5fcontent',['import_content',['../import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184',1,'import.php']]],
+ ['import_5fdirectory_5fkeywords',['import_directory_keywords',['../zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a',1,'zot.php']]],
+ ['import_5fdirectory_5fprofile',['import_directory_profile',['../zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32',1,'zot.php']]],
+ ['import_5fpost',['import_post',['../import_8php.html#af17fef0410518f7eac205d0ea416eaa2',1,'import.php']]],
+ ['import_5fprofile_5fphoto',['import_profile_photo',['../photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca',1,'photo_driver.php']]],
+ ['import_5fsite',['import_site',['../zot_8php.html#a2657e141d62d5f67ad3c87651b585299',1,'zot.php']]],
+ ['import_5fxchan',['import_xchan',['../zot_8php.html#ab0227978011d8601494a7651fa26acf0',1,'zot.php']]],
+ ['info',['info',['../boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498',1,'boot.php']]],
+ ['install',['install',['../classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746',1,'dba_driver']]],
+ ['install_5fplugin',['install_plugin',['../plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5',1,'plugin.php']]],
+ ['intro_5faside',['intro_aside',['../intro_8php.html#abc3abf25da64f98f215126eb08c7936b',1,'intro.php']]],
+ ['intro_5fcontent',['intro_content',['../intro_8php.html#a3e2a523697633ddb4517b9266a515f5b',1,'intro.php']]],
+ ['intro_5fpost',['intro_post',['../intro_8php.html#af3681062183ccbdf065ae2647b07d6f1',1,'intro.php']]],
+ ['invite_5fcontent',['invite_content',['../invite_8php.html#a244385b28cfd021d308715f01158bfd9',1,'invite.php']]],
+ ['invite_5fpost',['invite_post',['../invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5',1,'invite.php']]],
+ ['is_5fa_5fdate_5farg',['is_a_date_arg',['../text_8php.html#a1557112a774ec00fa06ed6b6f6495506',1,'text.php']]],
+ ['is_5fajax',['is_ajax',['../boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c',1,'boot.php']]],
+ ['is_5fcommentable',['is_commentable',['../classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3',1,'Conversation']]],
+ ['is_5fpreview',['is_preview',['../classConversation.html#adf25ce023b69a166c63c6e84e02c136a',1,'Conversation']]],
+ ['is_5fsite_5fadmin',['is_site_admin',['../boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e',1,'boot.php']]],
+ ['is_5fthreaded',['is_threaded',['../classItem.html#a5b2fafdca55aefeaa08993a5a60529f0',1,'Item']]],
+ ['is_5ftoplevel',['is_toplevel',['../classItem.html#aa49e40f961dff66da32c5ae110e32993',1,'Item']]],
+ ['is_5fvalid',['is_valid',['../classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab',1,'photo_driver']]],
+ ['is_5fvisiting',['is_visiting',['../classItem.html#a97c7feeea7f26a73176cb19faa455e12',1,'Item']]],
+ ['is_5fwall_5fto_5fwall',['is_wall_to_wall',['../classItem.html#aabf87ded59c25b5fe2b2296678e70509',1,'Item']]],
+ ['is_5fwritable',['is_writable',['../classConversation.html#a5879199008b96bee7550b576d614e1c1',1,'Conversation']]],
+ ['item_5fcontent',['item_content',['../item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221',1,'item.php']]],
+ ['item_5fexpire',['item_expire',['../items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc',1,'items.php']]],
+ ['item_5fextract_5fimages',['item_extract_images',['../conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654',1,'conversation.php']]],
+ ['item_5fgetfeedattach',['item_getfeedattach',['../items_8php.html#a09d425596b9f8663472cf7474ad36d96',1,'items.php']]],
+ ['item_5fgetfeedtags',['item_getfeedtags',['../items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7',1,'items.php']]],
+ ['item_5fmessage_5fid',['item_message_id',['../text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e',1,'text.php']]],
+ ['item_5fpermissions_5fsql',['item_permissions_sql',['../security_8php.html#a9355488460ab11d6058656ff919e5cf9',1,'security.php']]],
+ ['item_5fphoto_5fmenu',['item_photo_menu',['../conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3',1,'conversation.php']]],
+ ['item_5fpost',['item_post',['../item_8php.html#a693cd09805755ab85bbb5ecae69a48c3',1,'item.php']]],
+ ['item_5fpost_5ftype',['item_post_type',['../text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e',1,'text.php']]],
+ ['item_5fredir_5fand_5freplace_5fimages',['item_redir_and_replace_images',['../conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533',1,'conversation.php']]],
+ ['item_5fstore',['item_store',['../items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049',1,'items.php']]],
+ ['item_5fstore_5fupdate',['item_store_update',['../items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53',1,'items.php']]],
+ ['items_5ffetch',['items_fetch',['../items_8php.html#a756738301f2ed96be50232500677d58a',1,'items.php']]]
+];
diff --git a/doc/html/search/functions_6a.html b/doc/html/search/functions_6a.html
new file mode 100644
index 000000000..948495f1b
--- /dev/null
+++ b/doc/html/search/functions_6a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_6a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_6a.js b/doc/html/search/functions_6a.js
new file mode 100644
index 000000000..20409f3df
--- /dev/null
+++ b/doc/html/search/functions_6a.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['jindent',['jindent',['../text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8',1,'text.php']]],
+ ['json_5freturn_5fand_5fdie',['json_return_and_die',['../include_2network_8php.html#a4c5d50079e089168d9248427018fffd4',1,'network.php']]]
+];
diff --git a/doc/html/search/functions_6b.html b/doc/html/search/functions_6b.html
new file mode 100644
index 000000000..a0d07a92d
--- /dev/null
+++ b/doc/html/search/functions_6b.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_6b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_6b.js b/doc/html/search/functions_6b.js
new file mode 100644
index 000000000..d29bcec09
--- /dev/null
+++ b/doc/html/search/functions_6b.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['killme',['killme',['../boot_8php.html#aea7fc57a4d8e9dcb42f2601b0b9b761c',1,'boot.php']]]
+];
diff --git a/doc/html/search/functions_6c.html b/doc/html/search/functions_6c.html
new file mode 100644
index 000000000..33c0d6dd1
--- /dev/null
+++ b/doc/html/search/functions_6c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_6c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_6c.js b/doc/html/search/functions_6c.js
new file mode 100644
index 000000000..54c9fa6ab
--- /dev/null
+++ b/doc/html/search/functions_6c.js
@@ -0,0 +1,36 @@
+var searchData=
+[
+ ['lang_5fselector',['lang_selector',['../text_8php.html#a71f6952243d3fe1c5a8154f78027e29c',1,'text.php']]],
+ ['legal_5fwebbie',['legal_webbie',['../text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728',1,'text.php']]],
+ ['like_5fcontent',['like_content',['../like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538',1,'like.php']]],
+ ['like_5fpuller',['like_puller',['../conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0',1,'conversation.php']]],
+ ['limit_5fbody_5fsize',['limit_body_size',['../items_8php.html#af94c281016c6c912d06e064113336c5c',1,'items.php']]],
+ ['link_5fcompare',['link_compare',['../text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285',1,'text.php']]],
+ ['linkify',['linkify',['../text_8php.html#a11255c8c4e5245b6c24f97684826aa54',1,'text.php']]],
+ ['load',['load',['../classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712',1,'photo_driver\load()'],['../classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9',1,'photo_gd\load()'],['../classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8',1,'photo_imagick\load()']]],
+ ['load_5fconfig',['load_config',['../include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1',1,'config.php']]],
+ ['load_5fcontact_5flinks',['load_contact_links',['../boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6',1,'boot.php']]],
+ ['load_5fdatabase',['load_database',['../setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a',1,'setup.php']]],
+ ['load_5fdatabase_5frem',['load_database_rem',['../setup_8php.html#a2b375ddc555140236fc500135de99371',1,'setup.php']]],
+ ['load_5fhooks',['load_hooks',['../plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813',1,'plugin.php']]],
+ ['load_5fpconfig',['load_pconfig',['../include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6',1,'config.php']]],
+ ['load_5fplugin',['load_plugin',['../plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d',1,'plugin.php']]],
+ ['load_5ftranslation_5ftable',['load_translation_table',['../language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05',1,'language.php']]],
+ ['load_5fxconfig',['load_xconfig',['../include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33',1,'config.php']]],
+ ['local_5fdelivery',['local_delivery',['../items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45',1,'items.php']]],
+ ['local_5fuser',['local_user',['../boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44',1,'boot.php']]],
+ ['localize_5fitem',['localize_item',['../conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c',1,'conversation.php']]],
+ ['lockview_5fcontent',['lockview_content',['../lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44',1,'lockview.php']]],
+ ['logger',['logger',['../text_8php.html#a030fa5ecc64168af0c4f44897a9bce63',1,'text.php']]],
+ ['login',['login',['../boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4',1,'boot.php']]],
+ ['login_5fcontent',['login_content',['../login_8php.html#a1d69ca88eb9005a7026e128b9a645904',1,'login.php']]],
+ ['loginuser',['loginUser',['../classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f',1,'FKOAuth1']]],
+ ['lookup_5fconsumer',['lookup_consumer',['../classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1',1,'FKOAuthDataStore']]],
+ ['lookup_5fnonce',['lookup_nonce',['../classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599',1,'FKOAuthDataStore']]],
+ ['lookup_5ftoken',['lookup_token',['../classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab',1,'FKOAuthDataStore']]],
+ ['lose_5ffollower',['lose_follower',['../items_8php.html#ade53043e7bc5ab9cc9ef1e4fed6569d4',1,'items.php']]],
+ ['lose_5fsharer',['lose_sharer',['../items_8php.html#a3a218d5e8ffbe261f773225ecded86a2',1,'items.php']]],
+ ['lostpass_5fcontent',['lostpass_content',['../lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3',1,'lostpass.php']]],
+ ['lostpass_5fpost',['lostpass_post',['../lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc',1,'lostpass.php']]],
+ ['lrdd',['lrdd',['../include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041',1,'network.php']]]
+];
diff --git a/doc/html/search/functions_6d.html b/doc/html/search/functions_6d.html
new file mode 100644
index 000000000..73fecffde
--- /dev/null
+++ b/doc/html/search/functions_6d.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_6d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_6d.js b/doc/html/search/functions_6d.js
new file mode 100644
index 000000000..cd02081da
--- /dev/null
+++ b/doc/html/search/functions_6d.js
@@ -0,0 +1,21 @@
+var searchData=
+[
+ ['magic_5finit',['magic_init',['../magic_8php.html#acea2cc792849ca2d71d4b689f66518bf',1,'magic.php']]],
+ ['magic_5flink',['magic_link',['../text_8php.html#a1e510c53624933ce9b7d6715784894db',1,'text.php']]],
+ ['magiclink_5furl',['magiclink_url',['../text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6',1,'text.php']]],
+ ['mail_5fstore',['mail_store',['../items_8php.html#a77da7ce9a117601d49ac4a67c71b514f',1,'items.php']]],
+ ['manage_5fcontent',['manage_content',['../manage_8php.html#a2bca247b5296827638959138367db4f5',1,'manage.php']]],
+ ['manual_5fconfig',['manual_config',['../setup_8php.html#abe405d227ba7232971964a706d4f3bce',1,'setup.php']]],
+ ['map_5fscope',['map_scope',['../items_8php.html#ac1fcf621dce7370515b420a7753f4726',1,'items.php']]],
+ ['marital_5fselector',['marital_selector',['../profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798',1,'profile_selectors.php']]],
+ ['match_5fcontent',['match_content',['../match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d',1,'match.php']]],
+ ['member_5fof',['member_of',['../include_2group_8php.html#a048f6892bfd28852de1b76470df411de',1,'group.php']]],
+ ['message_5faside',['message_aside',['../mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7',1,'message.php']]],
+ ['message_5fcontent',['message_content',['../mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79',1,'message.php']]],
+ ['message_5fpost',['message_post',['../mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718',1,'message.php']]],
+ ['micropro',['micropro',['../text_8php.html#a2a902f5fdba8646333e997898ac45ea3',1,'text.php']]],
+ ['mini_5fgroup_5fselect',['mini_group_select',['../include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f',1,'group.php']]],
+ ['mood_5fcontent',['mood_content',['../mood_8php.html#a721b9b6703b3234a005641c92d409b8f',1,'mood.php']]],
+ ['mood_5finit',['mood_init',['../mood_8php.html#a7ae136dd7476865b4828136175db5022',1,'mood.php']]],
+ ['msearch_5fpost',['msearch_post',['../msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8',1,'msearch.php']]]
+];
diff --git a/doc/html/search/functions_6e.html b/doc/html/search/functions_6e.html
new file mode 100644
index 000000000..5e54741d4
--- /dev/null
+++ b/doc/html/search/functions_6e.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_6e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_6e.js b/doc/html/search/functions_6e.js
new file mode 100644
index 000000000..fcd89d6b2
--- /dev/null
+++ b/doc/html/search/functions_6e.js
@@ -0,0 +1,35 @@
+var searchData=
+[
+ ['nameslist',['namesList',['../docblox__errorchecker_8php.html#a2b767cfc461fdd5061fffc9e4a806d5b',1,'docblox_errorchecker.php']]],
+ ['nav',['nav',['../nav_8php.html#a43be0df73b90647ea70947ce004e231e',1,'nav.php']]],
+ ['nav_5fset_5fselected',['nav_set_selected',['../nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a',1,'nav.php']]],
+ ['navbar_5fcomplete',['navbar_complete',['../acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f',1,'acl.php']]],
+ ['network_5fcontent',['network_content',['../mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4',1,'network.php']]],
+ ['network_5finit',['network_init',['../mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec',1,'network.php']]],
+ ['network_5fquery_5fget_5fsel_5ftab',['network_query_get_sel_tab',['../mod_2network_8php.html#aeaa518c1a317516a3da337b88d358666',1,'network.php']]],
+ ['network_5fto_5fname',['network_to_name',['../contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be',1,'contact_selectors.php']]],
+ ['new_5faccess_5ftoken',['new_access_token',['../classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934',1,'FKOAuthDataStore']]],
+ ['new_5fchannel_5fcontent',['new_channel_content',['../new__channel_8php.html#ae585191610f79da129492482ce8e2fee',1,'new_channel.php']]],
+ ['new_5fchannel_5finit',['new_channel_init',['../new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164',1,'new_channel.php']]],
+ ['new_5fchannel_5fpost',['new_channel_post',['../new__channel_8php.html#a180b0646957db8290482f02454ad7f23',1,'new_channel.php']]],
+ ['new_5fcontact',['new_contact',['../include_2follow_8php.html#a6553a7650fae55f95660510d90983144',1,'follow.php']]],
+ ['new_5fcookie',['new_cookie',['../session_8php.html#a4c0ead624f95483e386bc80abf570a8f',1,'session.php']]],
+ ['new_5ffollower',['new_follower',['../items_8php.html#a53eb3d27e1c55083be93a32f392d54e7',1,'items.php']]],
+ ['new_5fkeypair',['new_keypair',['../crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a',1,'crypto.php']]],
+ ['new_5frequest_5ftoken',['new_request_token',['../classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050',1,'FKOAuthDataStore']]],
+ ['node2bbcode',['node2bbcode',['../html2bbcode_8php.html#ad174afe0ccbd8c475e48f8a6ee2f27d8',1,'html2bbcode.php']]],
+ ['node2bbcodesub',['node2bbcodesub',['../html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7',1,'html2bbcode.php']]],
+ ['nogroup_5fcontent',['nogroup_content',['../nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30',1,'nogroup.php']]],
+ ['nogroup_5finit',['nogroup_init',['../nogroup_8php.html#a099cb353bf62e8453069ce107b763212',1,'nogroup.php']]],
+ ['normalise_5flink',['normalise_link',['../text_8php.html#a4bbb7d00c05cd20b4e043424f322388f',1,'text.php']]],
+ ['normalise_5fopenid',['normalise_openid',['../text_8php.html#adba17ec946f4285285dc100f7860bf51',1,'text.php']]],
+ ['notags',['notags',['../text_8php.html#a1af49756c8c71902a66c7e329c462beb',1,'text.php']]],
+ ['notice',['notice',['../boot_8php.html#a9255af5ae9c887520091ea04763c1a88',1,'boot.php']]],
+ ['notification',['notification',['../enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc',1,'enotify.php']]],
+ ['notifications_5fcontent',['notifications_content',['../notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62',1,'notifications.php']]],
+ ['notifications_5fpost',['notifications_post',['../notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33',1,'notifications.php']]],
+ ['notifier_5frun',['notifier_run',['../notifier_8php.html#a568c502f626cff95e344c0748938b85d',1,'notifier.php']]],
+ ['notify_5fcontent',['notify_content',['../mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3',1,'notify.php']]],
+ ['notify_5finit',['notify_init',['../mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae',1,'notify.php']]],
+ ['nuke_5fsession',['nuke_session',['../auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a',1,'auth.php']]]
+];
diff --git a/doc/html/search/functions_6f.html b/doc/html/search/functions_6f.html
new file mode 100644
index 000000000..9d6926417
--- /dev/null
+++ b/doc/html/search/functions_6f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_6f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_6f.js b/doc/html/search/functions_6f.js
new file mode 100644
index 000000000..e9dff92d6
--- /dev/null
+++ b/doc/html/search/functions_6f.js
@@ -0,0 +1,20 @@
+var searchData=
+[
+ ['oauth_5fget_5fclient',['oauth_get_client',['../mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117',1,'api.php']]],
+ ['obj_5fverb_5fselector',['obj_verb_selector',['../taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2',1,'taxonomy.php']]],
+ ['obj_5fverbs',['obj_verbs',['../taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce',1,'taxonomy.php']]],
+ ['oe_5fbuild_5fxpath',['oe_build_xpath',['../include_2oembed_8php.html#ab953a6e7c11bc6498ce01ed73e2ba319',1,'oembed.php']]],
+ ['oe_5fget_5finner_5fhtml',['oe_get_inner_html',['../include_2oembed_8php.html#a03fa3b7832c98a3d0b4630afeb73d487',1,'oembed.php']]],
+ ['oembed_5fbbcode2html',['oembed_bbcode2html',['../include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2',1,'oembed.php']]],
+ ['oembed_5ffetch_5furl',['oembed_fetch_url',['../include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2',1,'oembed.php']]],
+ ['oembed_5fformat_5fobject',['oembed_format_object',['../include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3',1,'oembed.php']]],
+ ['oembed_5fhtml2bbcode',['oembed_html2bbcode',['../include_2oembed_8php.html#a000a62b97113cf95b0e9e00412168172',1,'oembed.php']]],
+ ['oembed_5fiframe',['oembed_iframe',['../include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a',1,'oembed.php']]],
+ ['oembed_5finit',['oembed_init',['../mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014',1,'oembed.php']]],
+ ['oembed_5freplacecb',['oembed_replacecb',['../include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0',1,'oembed.php']]],
+ ['oexchange_5fcontent',['oexchange_content',['../oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26',1,'oexchange.php']]],
+ ['oexchange_5finit',['oexchange_init',['../oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59',1,'oexchange.php']]],
+ ['onepoll_5frun',['onepoll_run',['../onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d',1,'onepoll.php']]],
+ ['opensearch_5finit',['opensearch_init',['../opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9',1,'opensearch.php']]],
+ ['orient',['orient',['../classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d',1,'photo_driver']]]
+];
diff --git a/doc/html/search/functions_70.html b/doc/html/search/functions_70.html
new file mode 100644
index 000000000..8ef7fb962
--- /dev/null
+++ b/doc/html/search/functions_70.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_70.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_70.js b/doc/html/search/functions_70.js
new file mode 100644
index 000000000..f37bb2de9
--- /dev/null
+++ b/doc/html/search/functions_70.js
@@ -0,0 +1,86 @@
+var searchData=
+[
+ ['page_5fcontent',['page_content',['../page_8php.html#a91a5f649f68406149108bded1dc90b22',1,'page.php']]],
+ ['page_5finit',['page_init',['../page_8php.html#a4d89800c0366a239191b1692c09635cf',1,'page.php']]],
+ ['paginate',['paginate',['../text_8php.html#afe9f178d264d44a94dc1292aaf0fd585',1,'text.php']]],
+ ['parse_5furl_5fcontent',['parse_url_content',['../parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b',1,'parse_url.php']]],
+ ['parse_5fxml_5fstring',['parse_xml_string',['../include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6',1,'network.php']]],
+ ['parsed',['parsed',['../classFriendicaSmarty.html#a6a4d4281d6fa9be1d37a97b188ffe8c9',1,'FriendicaSmarty']]],
+ ['parseurl_5fgetsiteinfo',['parseurl_getsiteinfo',['../parse__url_8php.html#a25635549f2c22955d72465f4d2e58993',1,'parse_url.php']]],
+ ['perm_5fis_5fallowed',['perm_is_allowed',['../permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835',1,'permissions.php']]],
+ ['permissions_5fsql',['permissions_sql',['../security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f',1,'security.php']]],
+ ['perms2str',['perms2str',['../text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee',1,'text.php']]],
+ ['photo_5ffactory',['photo_factory',['../photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035',1,'photo_driver.php']]],
+ ['photo_5finit',['photo_init',['../photo_8php.html#a582779d24882b0d31ee909a91d70a448',1,'photo.php']]],
+ ['photo_5fnew_5fresource',['photo_new_resource',['../text_8php.html#aa5528f41533927e1bd2da3618a74a6d7',1,'text.php']]],
+ ['photo_5fupload',['photo_upload',['../include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109',1,'photos.php']]],
+ ['photos_5falbum_5fexists',['photos_album_exists',['../include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35',1,'photos.php']]],
+ ['photos_5falbum_5fget_5fdb_5fidstr',['photos_album_get_db_idstr',['../include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe',1,'photos.php']]],
+ ['photos_5falbum_5frename',['photos_album_rename',['../include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab',1,'photos.php']]],
+ ['photos_5falbum_5fwidget',['photos_album_widget',['../include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979',1,'photos.php']]],
+ ['photos_5falbums_5flist',['photos_albums_list',['../include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9',1,'photos.php']]],
+ ['photos_5fcontent',['photos_content',['../mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812',1,'photos.php']]],
+ ['photos_5fcreate_5fitem',['photos_create_item',['../include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274',1,'photos.php']]],
+ ['photos_5finit',['photos_init',['../mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014',1,'photos.php']]],
+ ['photos_5flist_5fphotos',['photos_list_photos',['../include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51',1,'photos.php']]],
+ ['photos_5fpost',['photos_post',['../mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080',1,'photos.php']]],
+ ['php_5finit',['php_init',['../php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6',1,'php.php']]],
+ ['ping_5finit',['ping_init',['../ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1',1,'ping.php']]],
+ ['pkcs5_5fpad',['pkcs5_pad',['../crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec',1,'crypto.php']]],
+ ['pkcs5_5funpad',['pkcs5_unpad',['../crypto_8php.html#ac95ac3b1b23b65b04a86613d4206ae85',1,'crypto.php']]],
+ ['po2php_5frun',['po2php_run',['../po2php_8php.html#a3b75e36f913198299e99559b175cd8b4',1,'po2php.php']]],
+ ['poco_5finit',['poco_init',['../poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498',1,'poco.php']]],
+ ['poco_5fload',['poco_load',['../socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca',1,'socgraph.php']]],
+ ['poke_5fcontent',['poke_content',['../poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993',1,'poke.php']]],
+ ['poke_5finit',['poke_init',['../poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b',1,'poke.php']]],
+ ['poller_5frun',['poller_run',['../poller_8php.html#a5f12df3a4738124b6c039971e87e76da',1,'poller.php']]],
+ ['pop_5flang',['pop_lang',['../language_8php.html#a78bd204955ec4cc3a9ac651285a1689d',1,'language.php']]],
+ ['populate_5facl',['populate_acl',['../acl__selectors_8php.html#a51f2ec7a143d5a5b38e35efd5f3d6e2c',1,'acl_selectors.php']]],
+ ['post_5factivity_5fitem',['post_activity_item',['../items_8php.html#a410f9c743877c125ca06312373346903',1,'items.php']]],
+ ['post_5finit',['post_init',['../post_8php.html#af4b48181ce773ef0cdfc972441445c34',1,'post.php']]],
+ ['post_5fpost',['post_post',['../post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75',1,'post.php']]],
+ ['post_5furl',['post_url',['../include_2network_8php.html#aa44d9e33a579d930e9e79c4ebb3d6b5e',1,'network.php']]],
+ ['posted_5fdate_5fwidget',['posted_date_widget',['../items_8php.html#abe695dd89e1e10ed042c26b80114f0ed',1,'items.php']]],
+ ['posted_5fdates',['posted_dates',['../items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0',1,'items.php']]],
+ ['preg_5fheart',['preg_heart',['../text_8php.html#ac19d2b33a58372a357a43d51eed19162',1,'text.php']]],
+ ['prepare_5fbody',['prepare_body',['../text_8php.html#ae4df74296fbe55051ed3c035e55205e5',1,'text.php']]],
+ ['prepare_5fpage',['prepare_page',['../conversation_8php.html#a4b0888b0f26e1c284a4341fe5fd04f0c',1,'conversation.php']]],
+ ['prepare_5ftext',['prepare_text',['../text_8php.html#afe54312607d92f7ce9593f5760831f80',1,'text.php']]],
+ ['pretheme_5finit',['pretheme_init',['../pretheme_8php.html#af5660943ee99db5fd75182316522eafe',1,'pretheme.php']]],
+ ['print_5ftemplate',['print_template',['../tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3',1,'tpldebug.php']]],
+ ['printable',['printable',['../dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249',1,'dba_driver.php']]],
+ ['private_5fmessages_5fdrop',['private_messages_drop',['../include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1',1,'message.php']]],
+ ['private_5fmessages_5ffetch_5fconversation',['private_messages_fetch_conversation',['../include_2message_8php.html#a5f8de9847e203329e317ac38dc646898',1,'message.php']]],
+ ['private_5fmessages_5ffetch_5fmessage',['private_messages_fetch_message',['../include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091',1,'message.php']]],
+ ['private_5fmessages_5flist',['private_messages_list',['../include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e',1,'message.php']]],
+ ['probe_5fcontent',['probe_content',['../probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99',1,'probe.php']]],
+ ['proc_5frun',['proc_run',['../boot_8php.html#ab346a2ece14993861f3e4206befa94f0',1,'boot.php']]],
+ ['process_5fchannel_5fsync_5fdelivery',['process_channel_sync_delivery',['../zot_8php.html#ac301c67864917c35922257950ae0f95c',1,'zot.php']]],
+ ['process_5fdelivery',['process_delivery',['../zot_8php.html#a37ec13b18057634eadb071f05297f5e1',1,'zot.php']]],
+ ['process_5fmail_5fdelivery',['process_mail_delivery',['../zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc',1,'zot.php']]],
+ ['process_5fprofile_5fdelivery',['process_profile_delivery',['../zot_8php.html#a9a57b40669351c9791126b925cb7ef3b',1,'zot.php']]],
+ ['profile_5factivity',['profile_activity',['../activities_8php.html#a80134e807719b3c54aba971958d2e132',1,'activities.php']]],
+ ['profile_5faside',['profile_aside',['../profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e',1,'profile.php']]],
+ ['profile_5fcontent',['profile_content',['../profile_8php.html#a3775cf6eef6587e5143133356a7b76c0',1,'profile.php']]],
+ ['profile_5fcreate_5fsidebar',['profile_create_sidebar',['../boot_8php.html#a5b45d647da3743a7fc8c6223350b4d67',1,'boot.php']]],
+ ['profile_5finit',['profile_init',['../profile_8php.html#ab5d0246be0552e2182a585c1206d22a5',1,'profile.php']]],
+ ['profile_5fload',['profile_load',['../boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68',1,'boot.php']]],
+ ['profile_5fphoto_5faside',['profile_photo_aside',['../profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3',1,'profile_photo.php']]],
+ ['profile_5fphoto_5finit',['profile_photo_init',['../profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02',1,'profile_photo.php']]],
+ ['profile_5fphoto_5fpost',['profile_photo_post',['../profile__photo_8php.html#a4b80234074bd603221aa5364f330e479',1,'profile_photo.php']]],
+ ['profile_5fsidebar',['profile_sidebar',['../boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b',1,'boot.php']]],
+ ['profile_5ftabs',['profile_tabs',['../boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273',1,'boot.php']]],
+ ['profiler',['profiler',['../text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6',1,'text.php']]],
+ ['profiles_5faside',['profiles_aside',['../profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c',1,'profiles.php']]],
+ ['profiles_5fcontent',['profiles_content',['../profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00',1,'profiles.php']]],
+ ['profiles_5finit',['profiles_init',['../profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e',1,'profiles.php']]],
+ ['profiles_5fpost',['profiles_post',['../profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04',1,'profiles.php']]],
+ ['profperm_5faside',['profperm_aside',['../profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc',1,'profperm.php']]],
+ ['profperm_5fcontent',['profperm_content',['../profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023',1,'profperm.php']]],
+ ['profperm_5finit',['profperm_init',['../profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6',1,'profperm.php']]],
+ ['protect_5fsprintf',['protect_sprintf',['../text_8php.html#a4e7698aca48982512594b274543c3b9b',1,'text.php']]],
+ ['public_5fpermissions_5fsql',['public_permissions_sql',['../security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01',1,'security.php']]],
+ ['public_5frecips',['public_recips',['../zot_8php.html#a083aec6c900d244e1bfc1406f9461465',1,'zot.php']]],
+ ['purify_5fhtml',['purify_html',['../text_8php.html#a4841df5beabdd1bdd1ed56781a915d61',1,'text.php']]],
+ ['push_5flang',['push_lang',['../language_8php.html#ac9142ef1d01a235c760deb0f16643f5a',1,'language.php']]]
+];
diff --git a/doc/html/search/functions_71.html b/doc/html/search/functions_71.html
new file mode 100644
index 000000000..d8d7e7358
--- /dev/null
+++ b/doc/html/search/functions_71.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_71.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_71.js b/doc/html/search/functions_71.js
new file mode 100644
index 000000000..64b6af3a9
--- /dev/null
+++ b/doc/html/search/functions_71.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['q',['q',['../classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555',1,'dba_driver\q()'],['../classdba__mysql.html#ac3fd60c278f400907322dac578754a99',1,'dba_mysql\q()'],['../classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec',1,'dba_mysqli\q()'],['../dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f',1,'q():&#160;dba_driver.php']]],
+ ['qp',['qp',['../text_8php.html#afc998d2796a6b2a08e96f7cc061e7221',1,'text.php']]],
+ ['qsearch_5finit',['qsearch_init',['../qsearch_8php.html#a0501887b95bd8fa21018b2936a668894',1,'qsearch.php']]],
+ ['queue_5frun',['queue_run',['../queue_8php.html#af8c93de86d866c3200174c8450a0f341',1,'queue.php']]],
+ ['quotelevel',['quotelevel',['../html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0',1,'html2plain.php']]]
+];
diff --git a/doc/html/search/functions_72.html b/doc/html/search/functions_72.html
new file mode 100644
index 000000000..71f58bbd1
--- /dev/null
+++ b/doc/html/search/functions_72.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_72.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_72.js b/doc/html/search/functions_72.js
new file mode 100644
index 000000000..167c34050
--- /dev/null
+++ b/doc/html/search/functions_72.js
@@ -0,0 +1,49 @@
+var searchData=
+[
+ ['random_5fprofile',['random_profile',['../Contact_8php.html#a91281b5d4bbbb2ed468e27ec82ca083c',1,'Contact.php']]],
+ ['random_5fstring',['random_string',['../text_8php.html#a9d6a5ee1290de7a8b483fe78585daade',1,'text.php']]],
+ ['randprof_5finit',['randprof_init',['../randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090',1,'randprof.php']]],
+ ['rebuild_5ftheme_5ftable',['rebuild_theme_table',['../admin_8php.html#ae46311a3fefc21abc838a26e91789de6',1,'admin.php']]],
+ ['red_5fzrl_5fcallback',['red_zrl_callback',['../items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b',1,'items.php']]],
+ ['redbasic_5fform',['redbasic_form',['../view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2',1,'redbasic_form(&amp;$a, $font_size, $line_height, $colour, $shadow, $navcolour, $opaquenav, $displaystyle, $linkcolour, $iconset, $shiny, $colour_scheme, $radius):&#160;config.php'],['../view_2theme_2redstrap_2php_2config_8php.html#af58e97b437c1e98a5e434886494cc70e',1,'redbasic_form(&amp;$a, $font_size, $line_height, $colour, $shadow, $navcolour, $opaquenav, $displaystyle, $linkcolour, $iconset, $shiny):&#160;config.php']]],
+ ['redbasic_5finit',['redbasic_init',['../redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b',1,'theme.php']]],
+ ['redir_5finit',['redir_init',['../redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5',1,'redir.php']]],
+ ['redstrap_5finit',['redstrap_init',['../redstrap_2php_2theme_8php.html#a4dac61d466b4261deca2846f548e484a',1,'theme.php']]],
+ ['reduce',['reduce',['../docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f',1,'docblox_errorchecker.php']]],
+ ['ref_5fsession_5fclose',['ref_session_close',['../session_8php.html#a5e1c616e02b863d5450317d101366bb7',1,'session.php']]],
+ ['ref_5fsession_5fdestroy',['ref_session_destroy',['../session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052',1,'session.php']]],
+ ['ref_5fsession_5fgc',['ref_session_gc',['../session_8php.html#ac95373f4966862a028033dd2f94d4da1',1,'session.php']]],
+ ['ref_5fsession_5fopen',['ref_session_open',['../session_8php.html#a26fa1042356d555023cbf15ddd4f8507',1,'session.php']]],
+ ['ref_5fsession_5fread',['ref_session_read',['../session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e',1,'session.php']]],
+ ['ref_5fsession_5fwrite',['ref_session_write',['../session_8php.html#ac4461c1984543d3553e73dba2771568f',1,'session.php']]],
+ ['register_5fcontent',['register_content',['../register_8php.html#a0e91f57f111407ea8d3223a05022bb2a',1,'register.php']]],
+ ['register_5fhook',['register_hook',['../plugin_8php.html#a425472c5f3afc137268b2ad45652b209',1,'plugin.php']]],
+ ['register_5finit',['register_init',['../register_8php.html#ae20c0cd40f738d6295de58b9202c83d5',1,'register.php']]],
+ ['register_5fpost',['register_post',['../register_8php.html#a51731dcc1917c58a790eb1c0f6132271',1,'register.php']]],
+ ['register_5ftemplate_5fengine',['register_template_engine',['../classApp.html#abf46a653d8499e7c253cc1be894a6d83',1,'App']]],
+ ['regmod_5fcontent',['regmod_content',['../regmod_8php.html#a7953df4e32e63946565e90cdd5d50409',1,'regmod.php']]],
+ ['relative_5fdate',['relative_date',['../datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82',1,'datetime.php']]],
+ ['reload_5fplugins',['reload_plugins',['../plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025',1,'plugin.php']]],
+ ['reltoabs',['reltoabs',['../text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2',1,'text.php']]],
+ ['remote_5fuser',['remote_user',['../boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209',1,'boot.php']]],
+ ['remove_5fall_5fxchan_5fresources',['remove_all_xchan_resources',['../Contact_8php.html#acc12cda999c88c4d6185cca967c15125',1,'Contact.php']]],
+ ['remove_5fchild',['remove_child',['../classItem.html#a2ce70ef63f9f4d86a09c351678806925',1,'Item']]],
+ ['remove_5fcommunity_5ftag',['remove_community_tag',['../zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10',1,'zot.php']]],
+ ['remove_5fparent',['remove_parent',['../classItem.html#aa452b5bcd8dea12119b09212c615cb41',1,'Item']]],
+ ['remove_5fqueue_5fitem',['remove_queue_item',['../queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24',1,'queue_fn.php']]],
+ ['removeme_5fcontent',['removeme_content',['../removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c',1,'removeme.php']]],
+ ['removeme_5fpost',['removeme_post',['../removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88',1,'removeme.php']]],
+ ['render_5flocation_5fdefault',['render_location_default',['../conversation_8php.html#a40b9b5e7825bc73932a32e667f05e6f2',1,'conversation.php']]],
+ ['replace',['replace',['../classTemplate.html#a285b5b2007dbbf733476273df3fed4ef',1,'Template']]],
+ ['replace_5fmacros',['replace_macros',['../classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2',1,'FriendicaSmartyEngine\replace_macros()'],['../interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243',1,'ITemplateEngine\replace_macros()'],['../classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b',1,'Template\replace_macros()'],['../text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09',1,'replace_macros():&#160;text.php']]],
+ ['requestdata',['requestdata',['../include_2api_8php.html#a43c47de8565cc00c3369cb35c19cc75e',1,'api.php']]],
+ ['return_5fbytes',['return_bytes',['../text_8php.html#ae2126da85966da0e79c6bcbac63b0bda',1,'text.php']]],
+ ['rmagic_5fcontent',['rmagic_content',['../rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef',1,'rmagic.php']]],
+ ['rmagic_5finit',['rmagic_init',['../rmagic_8php.html#a95455edd43f1bff39446a57388cdde16',1,'rmagic.php']]],
+ ['rmagic_5fpost',['rmagic_post',['../rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f',1,'rmagic.php']]],
+ ['rotate',['rotate',['../classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec',1,'photo_driver\rotate()'],['../classphoto__gd.html#a77f87730b11093b76980c541159df37d',1,'photo_gd\rotate()'],['../classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f',1,'photo_imagick\rotate()']]],
+ ['rsa_5fsign',['rsa_sign',['../crypto_8php.html#a920e5f222d0020f47556033d8b2b6552',1,'crypto.php']]],
+ ['rsa_5fverify',['rsa_verify',['../crypto_8php.html#ab4f21d8f6b8ece0915e7c8bb73379f96',1,'crypto.php']]],
+ ['rsd_5fxml_5fcontent',['rsd_xml_content',['../rsd__xml_8php.html#a740cd02fa15e5a53f8547fac73f0ab82',1,'rsd_xml.php']]],
+ ['runs',['runs',['../docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec',1,'docblox_errorchecker.php']]]
+];
diff --git a/doc/html/search/functions_73.html b/doc/html/search/functions_73.html
new file mode 100644
index 000000000..c80660e8c
--- /dev/null
+++ b/doc/html/search/functions_73.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_73.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_73.js b/doc/html/search/functions_73.js
new file mode 100644
index 000000000..d3b45321a
--- /dev/null
+++ b/doc/html/search/functions_73.js
@@ -0,0 +1,89 @@
+var searchData=
+[
+ ['sanitise_5facl',['sanitise_acl',['../text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c',1,'text.php']]],
+ ['saved_5fsearches',['saved_searches',['../mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad',1,'network.php']]],
+ ['saveimage',['saveImage',['../classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3',1,'photo_driver']]],
+ ['scale_5fexternal_5fimages',['scale_external_images',['../include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f',1,'network.php']]],
+ ['scaleimage',['scaleImage',['../classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0',1,'photo_driver']]],
+ ['scaleimagesquare',['scaleImageSquare',['../classphoto__driver.html#a56634842b071b96502716e9843ea5361',1,'photo_driver']]],
+ ['scaleimageup',['scaleImageUp',['../classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce',1,'photo_driver']]],
+ ['search',['search',['../text_8php.html#a876e94892867019935b348b573299352',1,'text.php']]],
+ ['search_5fac_5finit',['search_ac_init',['../search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138',1,'search_ac.php']]],
+ ['search_5fcontent',['search_content',['../search_8php.html#ab2568591359edde5b483a6cd9a24b2cc',1,'search.php']]],
+ ['search_5finit',['search_init',['../search_8php.html#acf19fd30f07f495781ca0d7a0a08b435',1,'search.php']]],
+ ['search_5fpost',['search_post',['../search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7',1,'search.php']]],
+ ['search_5fsaved_5fsearches',['search_saved_searches',['../search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6',1,'search.php']]],
+ ['select_5ftimezone',['select_timezone',['../datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f',1,'datetime.php']]],
+ ['send',['send',['../classenotify.html#afbc088860f534c6c05788b48cfc262c6',1,'enotify']]],
+ ['send_5fmessage',['send_message',['../include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd',1,'message.php']]],
+ ['send_5freg_5fapproval_5femail',['send_reg_approval_email',['../account_8php.html#a014de2d5d5c9785de5bf547a485822fa',1,'account.php']]],
+ ['send_5fstatus_5fnotifications',['send_status_notifications',['../items_8php.html#aab9e0c58247427126de0699c729c3b6c',1,'items.php']]],
+ ['send_5fverification_5femail',['send_verification_email',['../account_8php.html#aa9c29c497c17d8f9344dce8631ad8761',1,'account.php']]],
+ ['service_5fclass_5fallows',['service_class_allows',['../plugin_8php.html#a030cec6793b909c439c0336ba39b1571',1,'plugin.php']]],
+ ['service_5fclass_5ffetch',['service_class_fetch',['../plugin_8php.html#a905b54e10704b283ac64680a8abc0971',1,'plugin.php']]],
+ ['set',['set',['../classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce',1,'Cache']]],
+ ['set_5faccount',['set_account',['../classApp.html#aeb1fe1c8ad9aa639909bd183ce578536',1,'App']]],
+ ['set_5fapp',['set_app',['../classBaseObject.html#a0a9acda12d751692834cf6999f889223',1,'BaseObject']]],
+ ['set_5fapps',['set_apps',['../classApp.html#abea5a4f77dcd53c928dc4eed86616637',1,'App']]],
+ ['set_5fbaseurl',['set_baseurl',['../classApp.html#a78788f6e9d8b713b138f81e457c5cd08',1,'App']]],
+ ['set_5fchannel',['set_channel',['../classApp.html#a89e9feb2bfb5253883a9720beaffe876',1,'App']]],
+ ['set_5fconfig',['set_config',['../include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a',1,'config.php']]],
+ ['set_5fconversation',['set_conversation',['../classItem.html#aa8b1bbc4236890694635295e46d7fd72',1,'Item']]],
+ ['set_5fcurl_5fcode',['set_curl_code',['../classApp.html#a5e6a6bd641e4d9909df56f0283c03821',1,'App']]],
+ ['set_5fcurl_5fheaders',['set_curl_headers',['../classApp.html#a9632092d9e8fdaa82a9fc4586433fd31',1,'App']]],
+ ['set_5fdefault_5flogin_5fidentity',['set_default_login_identity',['../identity_8php.html#a78151baf4407a8482d2681a91a9c486b',1,'identity.php']]],
+ ['set_5fgroups',['set_groups',['../classApp.html#a3d84af5e42082098672531cd1a618853',1,'App']]],
+ ['set_5fhostname',['set_hostname',['../classApp.html#a344d2b7dc2f276648d521aee4da1731c',1,'App']]],
+ ['set_5fmode',['set_mode',['../classConversation.html#a66f121ca4026246f86a732e5faa0682c',1,'Conversation']]],
+ ['set_5fobserver',['set_observer',['../classApp.html#a4776d9322edea17fae56afa5d01a323e',1,'App']]],
+ ['set_5fpager_5fitemspage',['set_pager_itemspage',['../classApp.html#a4bdd7bfed62f50515fce652127bf481b',1,'App']]],
+ ['set_5fpager_5ftotal',['set_pager_total',['../classApp.html#a560189f048d3db2f526841963cc43e97',1,'App']]],
+ ['set_5fparent',['set_parent',['../classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7',1,'Item']]],
+ ['set_5fpath',['set_path',['../classApp.html#adb060d5c7f35a521ec7ec0effbe08097',1,'App']]],
+ ['set_5fpconfig',['set_pconfig',['../include_2config_8php.html#a61591371cb18764138655d67dc817ab2',1,'config.php']]],
+ ['set_5fperms',['set_perms',['../classApp.html#a557d7b779d8259027f4724ebf7b248dc',1,'App']]],
+ ['set_5fprofile_5fowner',['set_profile_owner',['../classConversation.html#a8898bddc1e8990e81dab9a13a532cc93',1,'Conversation']]],
+ ['set_5ftemplate_5fengine',['set_template_engine',['../classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7',1,'App']]],
+ ['set_5fwidget',['set_widget',['../classApp.html#a123b903dfe5d3488cc68db3471d36fd2',1,'App']]],
+ ['set_5fxconfig',['set_xconfig',['../include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e',1,'config.php']]],
+ ['setdimensions',['setDimensions',['../classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143',1,'photo_driver\setDimensions()'],['../classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e',1,'photo_gd\setDimensions()'],['../classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb',1,'photo_imagick\setDimensions()']]],
+ ['settings_5faside',['settings_aside',['../settings_8php.html#ae5aebccb006bee1300078576baaf5582',1,'settings.php']]],
+ ['settings_5finit',['settings_init',['../settings_8php.html#a3a4cde287482fced008583f54ba2a722',1,'settings.php']]],
+ ['settings_5fpost',['settings_post',['../settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586',1,'settings.php']]],
+ ['setup_5fcontent',['setup_content',['../setup_8php.html#a88247384a96e14516f474d7af6a465c1',1,'setup.php']]],
+ ['setup_5finit',['setup_init',['../setup_8php.html#a267555abd17290e659b4bf44b885e4e0',1,'setup.php']]],
+ ['setup_5fpost',['setup_post',['../setup_8php.html#a13cf286774149a0a7bd8adb8179cec75',1,'setup.php']]],
+ ['sexpref_5fselector',['sexpref_selector',['../profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7',1,'profile_selectors.php']]],
+ ['share_5finit',['share_init',['../share_8php.html#afeb26046bdd02567ecd29ab5f188b249',1,'share.php']]],
+ ['showform',['showForm',['../fpostit_8php.html#a3f3ae3ae61578b5671673914fd894443',1,'fpostit.php']]],
+ ['siteinfo_5fcontent',['siteinfo_content',['../siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656',1,'siteinfo.php']]],
+ ['siteinfo_5finit',['siteinfo_init',['../siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0',1,'siteinfo.php']]],
+ ['smile_5fdecode',['smile_decode',['../text_8php.html#aca0f589be74fab1a460c57e88dad9779',1,'text.php']]],
+ ['smile_5fencode',['smile_encode',['../text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6',1,'text.php']]],
+ ['smilies',['smilies',['../text_8php.html#a3d225b253bb9e0f2498c11647d927b0b',1,'text.php']]],
+ ['smilies_5fcontent',['smilies_content',['../smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f',1,'smilies.php']]],
+ ['sort_5fby_5fdate',['sort_by_date',['../event_8php.html#a018ea4484910a873a7c1eaa126de9b1a',1,'event.php']]],
+ ['sort_5fitem_5fchildren',['sort_item_children',['../conversation_8php.html#ae996eb116d397a2c6396c312d7b98664',1,'conversation.php']]],
+ ['sort_5fthr_5fcommented',['sort_thr_commented',['../conversation_8php.html#a9f909b8885259b79c6ac8da93afd8f11',1,'conversation.php']]],
+ ['sort_5fthr_5fcreated',['sort_thr_created',['../conversation_8php.html#ac55e070f65f46fcc8e269f7896be4c7d',1,'conversation.php']]],
+ ['sort_5fthr_5fcreated_5frev',['sort_thr_created_rev',['../conversation_8php.html#a9cc2a679606da9e535a06433f9f553a0',1,'conversation.php']]],
+ ['starred_5finit',['starred_init',['../starred_8php.html#a63024fb418c678e49fd535e3752d349a',1,'starred.php']]],
+ ['startup',['startup',['../boot_8php.html#aca47505b8732177f52bb2d647eb2741c',1,'boot.php']]],
+ ['status_5feditor',['status_editor',['../conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a',1,'conversation.php']]],
+ ['store',['store',['../classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b',1,'photo_driver']]],
+ ['store_5fitem_5ftag',['store_item_tag',['../taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd',1,'taxonomy.php']]],
+ ['stream_5fperms_5fapi_5fuids',['stream_perms_api_uids',['../security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809',1,'security.php']]],
+ ['string_5fplural_5fselect_5fdefault',['string_plural_select_default',['../language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0',1,'language.php']]],
+ ['stringify_5farray_5felms',['stringify_array_elms',['../text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13',1,'text.php']]],
+ ['stripdcode_5fbr_5fcb',['stripdcode_br_cb',['../bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93',1,'bb2diaspora.php']]],
+ ['subthread_5fcontent',['subthread_content',['../subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3',1,'subthread.php']]],
+ ['suggest_5faside',['suggest_aside',['../suggest_8php.html#a4df91c84594d51ba56b5918de414230d',1,'suggest.php']]],
+ ['suggest_5fcontent',['suggest_content',['../suggest_8php.html#a58748a8235d4523f8333847f3e42dd91',1,'suggest.php']]],
+ ['suggest_5finit',['suggest_init',['../suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c',1,'suggest.php']]],
+ ['suggestion_5fquery',['suggestion_query',['../socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329',1,'socgraph.php']]],
+ ['supportedtypes',['supportedTypes',['../classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da',1,'photo_driver\supportedTypes()'],['../classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd',1,'photo_gd\supportedTypes()'],['../classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7',1,'photo_imagick\supportedTypes()']]],
+ ['sync_5fdirectories',['sync_directories',['../dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6',1,'dir_fns.php']]],
+ ['syncdirs',['syncdirs',['../dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a',1,'dir_fns.php']]],
+ ['system_5fdown',['system_down',['../system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa',1,'system_unavailable.php']]],
+ ['system_5funavailable',['system_unavailable',['../boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0',1,'boot.php']]]
+];
diff --git a/doc/html/search/functions_74.html b/doc/html/search/functions_74.html
new file mode 100644
index 000000000..1605901ee
--- /dev/null
+++ b/doc/html/search/functions_74.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_74.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_74.js b/doc/html/search/functions_74.js
new file mode 100644
index 000000000..8bf65fac0
--- /dev/null
+++ b/doc/html/search/functions_74.js
@@ -0,0 +1,31 @@
+var searchData=
+[
+ ['t',['t',['../language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04',1,'language.php']]],
+ ['tag_5fdeliver',['tag_deliver',['../items_8php.html#ab1bce4261bcf75ad62753b498a144d17',1,'items.php']]],
+ ['tagadelic',['tagadelic',['../taxonomy_8php.html#a061b3db9426d4b074395f5824062cad4',1,'taxonomy.php']]],
+ ['tagblock',['tagblock',['../taxonomy_8php.html#abdb698bc6921429df6d697f6c5dec96f',1,'taxonomy.php']]],
+ ['tagger_5fcontent',['tagger_content',['../tagger_8php.html#a0e4a3eb177d1684553c547503d67161c',1,'tagger.php']]],
+ ['tagrm_5fcontent',['tagrm_content',['../tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a',1,'tagrm.php']]],
+ ['tagrm_5fpost',['tagrm_post',['../tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78',1,'tagrm.php']]],
+ ['tags_5fsort',['tags_sort',['../taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43',1,'taxonomy.php']]],
+ ['template_5fengine',['template_engine',['../classApp.html#a94a1ed2dc493c58612d17035b74ae736',1,'App']]],
+ ['template_5fescape',['template_escape',['../template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5',1,'template_processor.php']]],
+ ['template_5funescape',['template_unescape',['../template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e',1,'template_processor.php']]],
+ ['term_5fquery',['term_query',['../taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c',1,'taxonomy.php']]],
+ ['terminate_5ffriendship',['terminate_friendship',['../Contact_8php.html#a38daa1c210b78385307123450ca9a1fc',1,'Contact.php']]],
+ ['termtype',['termtype',['../items_8php.html#ad34827ed330898456783fb14c7b46154',1,'items.php']]],
+ ['tgroup_5fcheck',['tgroup_check',['../items_8php.html#a88c6cf7649ac836fbbed82a7a0315110',1,'items.php']]],
+ ['theme_5fcontent',['theme_content',['../view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php'],['../view_2theme_2redstrap_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php']]],
+ ['theme_5finclude',['theme_include',['../plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2',1,'plugin.php']]],
+ ['theme_5fpost',['theme_post',['../view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php'],['../view_2theme_2redstrap_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php']]],
+ ['theme_5fstatus',['theme_status',['../admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4',1,'admin.php']]],
+ ['thing_5fcontent',['thing_content',['../thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b',1,'thing.php']]],
+ ['thing_5finit',['thing_init',['../thing_8php.html#a8be23b1d475ec3d9291999221c674c80',1,'thing.php']]],
+ ['timesel',['timesel',['../datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1',1,'datetime.php']]],
+ ['timezone_5fcmp',['timezone_cmp',['../datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865',1,'datetime.php']]],
+ ['title_5fis_5fbody',['title_is_body',['../items_8php.html#aa371905f0a211b307cb3f7188c6cba04',1,'items.php']]],
+ ['toggle_5fmobile_5finit',['toggle_mobile_init',['../toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254',1,'toggle_mobile.php']]],
+ ['toggle_5ftheme',['toggle_theme',['../admin_8php.html#af81f081851791cd15e49e8ff6722dc27',1,'admin.php']]],
+ ['tryoembed',['tryoembed',['../bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7',1,'bbcode.php']]],
+ ['tt',['tt',['../language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d',1,'language.php']]]
+];
diff --git a/doc/html/search/functions_75.html b/doc/html/search/functions_75.html
new file mode 100644
index 000000000..a6c28fa65
--- /dev/null
+++ b/doc/html/search/functions_75.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_75.js b/doc/html/search/functions_75.js
new file mode 100644
index 000000000..815d545d0
--- /dev/null
+++ b/doc/html/search/functions_75.js
@@ -0,0 +1,26 @@
+var searchData=
+[
+ ['uexport_5finit',['uexport_init',['../uexport_8php.html#a118920137dedebe0581623a2e57e7b0d',1,'uexport.php']]],
+ ['unamp',['unamp',['../text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7',1,'text.php']]],
+ ['undo_5fpost_5ftagging',['undo_post_tagging',['../text_8php.html#a740ad03e00459039a2c0992246c4e727',1,'text.php']]],
+ ['unescape_5funderscores_5fin_5flinks',['unescape_underscores_in_links',['../bb2diaspora_8php.html#a599428bceb6f6d82a6a78cb66811f747',1,'bb2diaspora.php']]],
+ ['uninstall_5fplugin',['uninstall_plugin',['../plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76',1,'plugin.php']]],
+ ['unload_5fplugin',['unload_plugin',['../plugin_8php.html#a90538627db68605aeb6db17a8ead6523',1,'plugin.php']]],
+ ['unregister_5fhook',['unregister_hook',['../plugin_8php.html#a56f71fe5adf9586ce950523d8180443e',1,'plugin.php']]],
+ ['unxmlify',['unxmlify',['../text_8php.html#a1360fed7f918d859daaca1c9f384f9af',1,'text.php']]],
+ ['update_5fchannel_5fcontent',['update_channel_content',['../update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba',1,'update_channel.php']]],
+ ['update_5fcommunity_5fcontent',['update_community_content',['../update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1',1,'update_community.php']]],
+ ['update_5fdisplay_5fcontent',['update_display_content',['../update__display_8php.html#aa36ac524059e209d5d75a03c16206246',1,'update_display.php']]],
+ ['update_5fimported_5fitem',['update_imported_item',['../zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df',1,'zot.php']]],
+ ['update_5fmodtime',['update_modtime',['../zot_8php.html#a666d3efcac00ec1b4a4537a60655f2ab',1,'zot.php']]],
+ ['update_5fnetwork_5fcontent',['update_network_content',['../update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41',1,'update_network.php']]],
+ ['update_5fqueue_5ftime',['update_queue_time',['../queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1',1,'queue_fn.php']]],
+ ['update_5fsearch_5fcontent',['update_search_content',['../update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52',1,'update_search.php']]],
+ ['update_5fsuggestions',['update_suggestions',['../socgraph_8php.html#a790690bb1a1d02483fe31632a160144d',1,'socgraph.php']]],
+ ['upgrade_5fbool_5fmessage',['upgrade_bool_message',['../plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d',1,'plugin.php']]],
+ ['upgrade_5flink',['upgrade_link',['../plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040',1,'plugin.php']]],
+ ['upgrade_5fmessage',['upgrade_message',['../plugin_8php.html#a901657dd078e070516cf97285e0bada7',1,'plugin.php']]],
+ ['user_5fallow',['user_allow',['../account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1',1,'account.php']]],
+ ['user_5fdeny',['user_deny',['../account_8php.html#ac1653efba62493b9d87513e1b6c04c83',1,'account.php']]],
+ ['user_5fremove',['user_remove',['../Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15',1,'Contact.php']]]
+];
diff --git a/doc/html/search/functions_76.html b/doc/html/search/functions_76.html
new file mode 100644
index 000000000..e5263cc30
--- /dev/null
+++ b/doc/html/search/functions_76.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_76.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_76.js b/doc/html/search/functions_76.js
new file mode 100644
index 000000000..87ecfe8d8
--- /dev/null
+++ b/doc/html/search/functions_76.js
@@ -0,0 +1,15 @@
+var searchData=
+[
+ ['valid_5femail',['valid_email',['../text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb',1,'text.php']]],
+ ['validate_5fchannelname',['validate_channelname',['../identity_8php.html#af2802bc13a00a17b867bba7978ba8f58',1,'identity.php']]],
+ ['validate_5femail',['validate_email',['../include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02',1,'network.php']]],
+ ['validate_5furl',['validate_url',['../include_2network_8php.html#a5caa264fab6d2b2344e6bd5b298b08f2',1,'network.php']]],
+ ['var_5freplace',['var_replace',['../classTemplate.html#abbc484016ddf5d818f55b823cae6feb0',1,'Template']]],
+ ['vcard_5ffrom_5fxchan',['vcard_from_xchan',['../Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960',1,'Contact.php']]],
+ ['view_5finit',['view_init',['../view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e',1,'view.php']]],
+ ['viewconnections_5faside',['viewconnections_aside',['../viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6',1,'viewconnections.php']]],
+ ['viewconnections_5fcontent',['viewconnections_content',['../viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776',1,'viewconnections.php']]],
+ ['viewconnections_5finit',['viewconnections_init',['../viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330',1,'viewconnections.php']]],
+ ['viewsrc_5fcontent',['viewsrc_content',['../viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4',1,'viewsrc.php']]],
+ ['visible_5factivity',['visible_activity',['../conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3',1,'conversation.php']]]
+];
diff --git a/doc/html/search/functions_77.html b/doc/html/search/functions_77.html
new file mode 100644
index 000000000..add7295de
--- /dev/null
+++ b/doc/html/search/functions_77.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_77.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_77.js b/doc/html/search/functions_77.js
new file mode 100644
index 000000000..78e960294
--- /dev/null
+++ b/doc/html/search/functions_77.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+ ['wall_5fattach_5fpost',['wall_attach_post',['../wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653',1,'wall_attach.php']]],
+ ['wall_5fupload_5fpost',['wall_upload_post',['../wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f',1,'wall_upload.php']]],
+ ['webfinger',['webfinger',['../include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5',1,'network.php']]],
+ ['webfinger_5fcontent',['webfinger_content',['../webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3',1,'webfinger.php']]],
+ ['webfinger_5fdfrn',['webfinger_dfrn',['../include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335',1,'network.php']]],
+ ['webpages_5fcontent',['webpages_content',['../webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d',1,'webpages.php']]],
+ ['webpages_5finit',['webpages_init',['../webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7',1,'webpages.php']]],
+ ['wfinger_5finit',['wfinger_init',['../wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3',1,'wfinger.php']]],
+ ['what_5fnext',['what_next',['../setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58',1,'setup.php']]]
+];
diff --git a/doc/html/search/functions_78.html b/doc/html/search/functions_78.html
new file mode 100644
index 000000000..7f647970f
--- /dev/null
+++ b/doc/html/search/functions_78.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_78.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_78.js b/doc/html/search/functions_78.js
new file mode 100644
index 000000000..0f98f99b9
--- /dev/null
+++ b/doc/html/search/functions_78.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['x',['x',['../boot_8php.html#a01353c9abebc3544ea080ac161729632',1,'boot.php']]],
+ ['xchan_5fcontent',['xchan_content',['../xchan_8php.html#a9853348bf1a35c644460221ba75edc2d',1,'xchan.php']]],
+ ['xchan_5fmail_5fquery',['xchan_mail_query',['../text_8php.html#a543447c5ed766535221e2d9636b379ee',1,'text.php']]],
+ ['xchan_5fquery',['xchan_query',['../text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f',1,'text.php']]],
+ ['xml2array',['xml2array',['../include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff',1,'network.php']]],
+ ['xml_5fstatus',['xml_status',['../include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6',1,'network.php']]],
+ ['xmlify',['xmlify',['../text_8php.html#aaed4413ed8918838b517e3b2fafaea0d',1,'text.php']]],
+ ['xrd_5finit',['xrd_init',['../xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270',1,'xrd.php']]]
+];
diff --git a/doc/html/search/functions_7a.html b/doc/html/search/functions_7a.html
new file mode 100644
index 000000000..e23b42fb0
--- /dev/null
+++ b/doc/html/search/functions_7a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_7a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_7a.js b/doc/html/search/functions_7a.js
new file mode 100644
index 000000000..9c1b34db7
--- /dev/null
+++ b/doc/html/search/functions_7a.js
@@ -0,0 +1,29 @@
+var searchData=
+[
+ ['z_5fbirthday',['z_birthday',['../boot_8php.html#ab55e545b72ec8c097e052ea7d373491f',1,'boot.php']]],
+ ['z_5ffetch_5furl',['z_fetch_url',['../include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37',1,'network.php']]],
+ ['z_5fmime_5fcontent_5ftype',['z_mime_content_type',['../include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a',1,'attach.php']]],
+ ['z_5fpath',['z_path',['../boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda',1,'boot.php']]],
+ ['z_5fpost_5furl',['z_post_url',['../include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc',1,'network.php']]],
+ ['z_5freaddir',['z_readdir',['../include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909',1,'attach.php']]],
+ ['z_5froot',['z_root',['../boot_8php.html#add517a0958ac684792c62142a3877f81',1,'boot.php']]],
+ ['zfinger_5finit',['zfinger_init',['../zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0',1,'zfinger.php']]],
+ ['zid',['zid',['../boot_8php.html#a5b815330f3d177ab383af37a6c12e532',1,'boot.php']]],
+ ['zid_5finit',['zid_init',['../boot_8php.html#a680fbafc2db023c5b1309e0180e81315',1,'boot.php']]],
+ ['zidify_5fcallback',['zidify_callback',['../text_8php.html#a405afe814a23f3bd94d826101aa168ab',1,'text.php']]],
+ ['zidify_5fimg_5fcallback',['zidify_img_callback',['../text_8php.html#ab4a4c3d4700bc219bb84f33b499314f4',1,'text.php']]],
+ ['zidify_5flinks',['zidify_links',['../text_8php.html#a29988052f3944111def3b6aaf2c7a8f6',1,'text.php']]],
+ ['zot_5fbuild_5fpacket',['zot_build_packet',['../zot_8php.html#a3862b3161b2c8557dc1a95020179bd81',1,'zot.php']]],
+ ['zot_5ffeed',['zot_feed',['../items_8php.html#a004e89d86b0f29b2c4da20108ecc4091',1,'items.php']]],
+ ['zot_5ffetch',['zot_fetch',['../zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea',1,'zot.php']]],
+ ['zot_5ffinger',['zot_finger',['../zot_8php.html#a77720d6b59894e9b609af89c310c8a4d',1,'zot.php']]],
+ ['zot_5fget_5fhubloc',['zot_get_hubloc',['../zot_8php.html#acdea9362d78a63dce948fdf0ea73ef0e',1,'zot.php']]],
+ ['zot_5fgethub',['zot_gethub',['../zot_8php.html#a55056e863a7860bc0cf922e78fcce073',1,'zot.php']]],
+ ['zot_5fimport',['zot_import',['../zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c',1,'zot.php']]],
+ ['zot_5fnew_5fuid',['zot_new_uid',['../zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7',1,'zot.php']]],
+ ['zot_5fprocess_5fresponse',['zot_process_response',['../zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03',1,'zot.php']]],
+ ['zot_5frefresh',['zot_refresh',['../zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d',1,'zot.php']]],
+ ['zot_5fregister_5fhub',['zot_register_hub',['../zot_8php.html#a5bcdfef419b16075a0eca990956223dc',1,'zot.php']]],
+ ['zot_5fzot',['zot_zot',['../zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142',1,'zot.php']]],
+ ['zotfeed_5finit',['zotfeed_init',['../zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac',1,'zotfeed.php']]]
+];
diff --git a/doc/html/search/mag_sel.png b/doc/html/search/mag_sel.png
new file mode 100644
index 000000000..81f6040a2
--- /dev/null
+++ b/doc/html/search/mag_sel.png
Binary files differ
diff --git a/doc/html/search/namespaces_61.html b/doc/html/search/namespaces_61.html
new file mode 100644
index 000000000..05b64569f
--- /dev/null
+++ b/doc/html/search/namespaces_61.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="namespaces_61.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/namespaces_61.js b/doc/html/search/namespaces_61.js
new file mode 100644
index 000000000..3e7051957
--- /dev/null
+++ b/doc/html/search/namespaces_61.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['acl_5fselectors',['acl_selectors',['../namespaceacl__selectors.html',1,'']]]
+];
diff --git a/doc/html/search/namespaces_66.html b/doc/html/search/namespaces_66.html
new file mode 100644
index 000000000..eeb821dc9
--- /dev/null
+++ b/doc/html/search/namespaces_66.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="namespaces_66.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/namespaces_66.js b/doc/html/search/namespaces_66.js
new file mode 100644
index 000000000..e9fe2106c
--- /dev/null
+++ b/doc/html/search/namespaces_66.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['friendica',['Friendica',['../namespaceFriendica.html',1,'']]],
+ ['friendica_2dto_2dsmarty_2dtpl',['friendica-to-smarty-tpl',['../namespacefriendica-to-smarty-tpl.html',1,'']]]
+];
diff --git a/doc/html/search/namespaces_75.html b/doc/html/search/namespaces_75.html
new file mode 100644
index 000000000..185eb0b07
--- /dev/null
+++ b/doc/html/search/namespaces_75.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="namespaces_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/namespaces_75.js b/doc/html/search/namespaces_75.js
new file mode 100644
index 000000000..677307359
--- /dev/null
+++ b/doc/html/search/namespaces_75.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['updatetpl',['updatetpl',['../namespaceupdatetpl.html',1,'']]],
+ ['util',['util',['../namespaceutil.html',1,'']]]
+];
diff --git a/doc/html/search/nomatches.html b/doc/html/search/nomatches.html
new file mode 100644
index 000000000..b1ded27e9
--- /dev/null
+++ b/doc/html/search/nomatches.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/pages_63.html b/doc/html/search/pages_63.html
new file mode 100644
index 000000000..8a7aaf9e2
--- /dev/null
+++ b/doc/html/search/pages_63.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_63.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/pages_63.js b/doc/html/search/pages_63.js
new file mode 100644
index 000000000..85cc4ab15
--- /dev/null
+++ b/doc/html/search/pages_63.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['cli_20config_20utility',['CLI config utility',['../md_config.html',1,'']]]
+];
diff --git a/doc/html/search/pages_66.html b/doc/html/search/pages_66.html
new file mode 100644
index 000000000..b5d700d10
--- /dev/null
+++ b/doc/html/search/pages_66.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_66.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/pages_66.js b/doc/html/search/pages_66.js
new file mode 100644
index 000000000..3bc9f4b01
--- /dev/null
+++ b/doc/html/search/pages_66.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['fresh_20_2d_20the_20freaking_20red_20shell',['Fresh - The Freaking REd Shell',['../md_fresh.html',1,'']]]
+];
diff --git a/doc/html/search/pages_72.html b/doc/html/search/pages_72.html
new file mode 100644
index 000000000..5e9722171
--- /dev/null
+++ b/doc/html/search/pages_72.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_72.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/pages_72.js b/doc/html/search/pages_72.js
new file mode 100644
index 000000000..6d650d56f
--- /dev/null
+++ b/doc/html/search/pages_72.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['redstrap_20theme',['Redstrap theme',['../md_README.html',1,'']]]
+];
diff --git a/doc/html/search/search.css b/doc/html/search/search.css
new file mode 100644
index 000000000..5b208eddd
--- /dev/null
+++ b/doc/html/search/search.css
@@ -0,0 +1,271 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+ float: left;
+}
+
+#MSearchBox {
+ white-space : nowrap;
+ position: absolute;
+ float: none;
+ display: inline;
+ margin-top: 8px;
+ right: 0px;
+ width: 170px;
+ z-index: 102;
+ background-color: white;
+}
+
+#MSearchBox .left
+{
+ display:block;
+ position:absolute;
+ left:10px;
+ width:20px;
+ height:19px;
+ background:url('search_l.png') no-repeat;
+ background-position:right;
+}
+
+#MSearchSelect {
+ display:block;
+ position:absolute;
+ width:20px;
+ height:19px;
+}
+
+.left #MSearchSelect {
+ left:4px;
+}
+
+.right #MSearchSelect {
+ right:5px;
+}
+
+#MSearchField {
+ display:block;
+ position:absolute;
+ height:19px;
+ background:url('search_m.png') repeat-x;
+ border:none;
+ width:116px;
+ margin-left:20px;
+ padding-left:4px;
+ color: #909090;
+ outline: none;
+ font: 9pt Arial, Verdana, sans-serif;
+}
+
+#FSearchBox #MSearchField {
+ margin-left:15px;
+}
+
+#MSearchBox .right {
+ display:block;
+ position:absolute;
+ right:10px;
+ top:0px;
+ width:20px;
+ height:19px;
+ background:url('search_r.png') no-repeat;
+ background-position:left;
+}
+
+#MSearchClose {
+ display: none;
+ position: absolute;
+ top: 4px;
+ background : none;
+ border: none;
+ margin: 0px 4px 0px 0px;
+ padding: 0px 0px;
+ outline: none;
+}
+
+.left #MSearchClose {
+ left: 6px;
+}
+
+.right #MSearchClose {
+ right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+ color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #90A5CE;
+ background-color: #F9FAFC;
+ z-index: 1;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+ font: 8pt Arial, Verdana, sans-serif;
+ padding-left: 2px;
+ padding-right: 12px;
+ border: 0px;
+}
+
+span.SelectionMark {
+ margin-right: 4px;
+ font-family: monospace;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem {
+ display: block;
+ outline-style: none;
+ color: #000000;
+ text-decoration: none;
+ padding-left: 6px;
+ padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+ color: #000000;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem:hover {
+ color: #FFFFFF;
+ background-color: #3D578C;
+ outline-style: none;
+ text-decoration: none;
+ cursor: pointer;
+ display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+ width: 60ex;
+ height: 15em;
+}
+
+#MSearchResultsWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #000;
+ background-color: #EEF1F7;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+ clear:both;
+ padding-bottom: 15px;
+}
+
+.SREntry {
+ font-size: 10pt;
+ padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+ font-size: 8pt;
+ padding: 1px 5px;
+}
+
+body.SRPage {
+ margin: 5px 2px;
+}
+
+.SRChildren {
+ padding-left: 3ex; padding-bottom: .5em
+}
+
+.SRPage .SRChildren {
+ display: none;
+}
+
+.SRSymbol {
+ font-weight: bold;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRScope {
+ display: block;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+ text-decoration: underline;
+}
+
+span.SRScope {
+ padding-left: 4px;
+}
+
+.SRPage .SRStatus {
+ padding: 2px 5px;
+ font-size: 8pt;
+ font-style: italic;
+}
+
+.SRResult {
+ display: none;
+}
+
+DIV.searchresults {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+ background-color: #F0F3F8;
+}
+
+.pages b {
+ color: white;
+ padding: 5px 5px 3px 5px;
+ background-image: url("../tab_a.png");
+ background-repeat: repeat-x;
+ text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+ line-height: 17px;
+ margin-left: 4px;
+ text-decoration: none;
+}
+
+.hl {
+ font-weight: bold;
+}
+
+#searchresults {
+ margin-bottom: 20px;
+}
+
+.searchpages {
+ margin-top: 10px;
+}
+
diff --git a/doc/html/search/search.js b/doc/html/search/search.js
new file mode 100644
index 000000000..42a2bc1b1
--- /dev/null
+++ b/doc/html/search/search.js
@@ -0,0 +1,807 @@
+// Search script generated by doxygen
+// Copyright (C) 2009 by Dimitri van Heesch.
+
+// The code in this file is loosly based on main.js, part of Natural Docs,
+// which is Copyright (C) 2003-2008 Greg Valure
+// Natural Docs is licensed under the GPL.
+
+var indexSectionsWithContent =
+{
+ 0: "0000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000010111111111111111111111111010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111001000000100010000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111111111001111111111111010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111111111111111111111111010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 5: "0000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000101111111111111101111011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 6: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+};
+
+var indexSectionNames =
+{
+ 0: "all",
+ 1: "classes",
+ 2: "namespaces",
+ 3: "files",
+ 4: "functions",
+ 5: "variables",
+ 6: "pages"
+};
+
+function convertToId(search)
+{
+ var result = '';
+ for (i=0;i<search.length;i++)
+ {
+ var c = search.charAt(i);
+ var cn = c.charCodeAt(0);
+ if (c.match(/[a-z0-9]/))
+ {
+ result+=c;
+ }
+ else if (cn<16)
+ {
+ result+="_0"+cn.toString(16);
+ }
+ else
+ {
+ result+="_"+cn.toString(16);
+ }
+ }
+ return result;
+}
+
+function getXPos(item)
+{
+ var x = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ x += item.offsetLeft;
+ item = item.offsetParent;
+ }
+ }
+ return x;
+}
+
+function getYPos(item)
+{
+ var y = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ y += item.offsetTop;
+ item = item.offsetParent;
+ }
+ }
+ return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+ Parameters:
+ name - The name of the global variable that will be
+ storing this instance. Is needed to be able to set timeouts.
+ resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+ if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
+
+ // ---------- Instance variables
+ this.name = name;
+ this.resultsPath = resultsPath;
+ this.keyTimeout = 0;
+ this.keyTimeoutLength = 500;
+ this.closeSelectionTimeout = 300;
+ this.lastSearchValue = "";
+ this.lastResultsPage = "";
+ this.hideTimeout = 0;
+ this.searchIndex = 0;
+ this.searchActive = false;
+ this.insideFrame = inFrame;
+ this.searchLabel = label;
+
+ // ----------- DOM Elements
+
+ this.DOMSearchField = function()
+ { return document.getElementById("MSearchField"); }
+
+ this.DOMSearchSelect = function()
+ { return document.getElementById("MSearchSelect"); }
+
+ this.DOMSearchSelectWindow = function()
+ { return document.getElementById("MSearchSelectWindow"); }
+
+ this.DOMPopupSearchResults = function()
+ { return document.getElementById("MSearchResults"); }
+
+ this.DOMPopupSearchResultsWindow = function()
+ { return document.getElementById("MSearchResultsWindow"); }
+
+ this.DOMSearchClose = function()
+ { return document.getElementById("MSearchClose"); }
+
+ this.DOMSearchBox = function()
+ { return document.getElementById("MSearchBox"); }
+
+ // ------------ Event Handlers
+
+ // Called when focus is added or removed from the search field.
+ this.OnSearchFieldFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ }
+
+ this.OnSearchSelectShow = function()
+ {
+ var searchSelectWindow = this.DOMSearchSelectWindow();
+ var searchField = this.DOMSearchSelect();
+
+ if (this.insideFrame)
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ left += searchField.offsetWidth + 6;
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ left -= searchSelectWindow.offsetWidth;
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+ else
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+
+ // stop selection hide timer
+ if (this.hideTimeout)
+ {
+ clearTimeout(this.hideTimeout);
+ this.hideTimeout=0;
+ }
+ return false; // to avoid "image drag" default event
+ }
+
+ this.OnSearchSelectHide = function()
+ {
+ this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+ this.closeSelectionTimeout);
+ }
+
+ // Called when the content of the search field is changed.
+ this.OnSearchFieldChange = function(evt)
+ {
+ if (this.keyTimeout) // kill running timer
+ {
+ clearTimeout(this.keyTimeout);
+ this.keyTimeout = 0;
+ }
+
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 || e.keyCode==13)
+ {
+ if (e.shiftKey==1)
+ {
+ this.OnSearchSelectShow();
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ child.focus();
+ return;
+ }
+ }
+ return;
+ }
+ else if (window.frames.MSearchResults.searchResults)
+ {
+ var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+ }
+ else if (e.keyCode==27) // Escape out of the search field
+ {
+ this.DOMSearchField().blur();
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ this.Activate(false);
+ return;
+ }
+
+ // strip whitespaces
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != this.lastSearchValue) // search value has changed
+ {
+ if (searchValue != "") // non-empty search
+ {
+ // set timer for search update
+ this.keyTimeout = setTimeout(this.name + '.Search()',
+ this.keyTimeoutLength);
+ }
+ else // empty search field
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ }
+ }
+ }
+
+ this.SelectItemCount = function(id)
+ {
+ var count=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ this.SelectItemSet = function(id)
+ {
+ var i,j=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ var node = child.firstChild;
+ if (j==id)
+ {
+ node.innerHTML='&#8226;';
+ }
+ else
+ {
+ node.innerHTML='&#160;';
+ }
+ j++;
+ }
+ }
+ }
+
+ // Called when an search filter selection is made.
+ // set item with index id as the active item
+ this.OnSelectItem = function(id)
+ {
+ this.searchIndex = id;
+ this.SelectItemSet(id);
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+ if (searchValue!="" && this.searchActive) // something was found -> do a search
+ {
+ this.Search();
+ }
+ }
+
+ this.OnSearchSelectKey = function(evt)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+ {
+ this.searchIndex++;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==38 && this.searchIndex>0) // Up
+ {
+ this.searchIndex--;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==13 || e.keyCode==27)
+ {
+ this.OnSelectItem(this.searchIndex);
+ this.CloseSelectionWindow();
+ this.DOMSearchField().focus();
+ }
+ return false;
+ }
+
+ // --------- Actions
+
+ // Closes the results window.
+ this.CloseResultsWindow = function()
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.Activate(false);
+ }
+
+ this.CloseSelectionWindow = function()
+ {
+ this.DOMSearchSelectWindow().style.display = 'none';
+ }
+
+ // Performs a search.
+ this.Search = function()
+ {
+ this.keyTimeout = 0;
+
+ // strip leading whitespace
+ var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+ var code = searchValue.toLowerCase().charCodeAt(0);
+ var hexCode;
+ if (code<16)
+ {
+ hexCode="0"+code.toString(16);
+ }
+ else
+ {
+ hexCode=code.toString(16);
+ }
+
+ var resultsPage;
+ var resultsPageWithSearch;
+ var hasResultsPage;
+
+ if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1')
+ {
+ resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+ resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+ hasResultsPage = true;
+ }
+ else // nothing available for this search term
+ {
+ resultsPage = this.resultsPath + '/nomatches.html';
+ resultsPageWithSearch = resultsPage;
+ hasResultsPage = false;
+ }
+
+ window.frames.MSearchResults.location = resultsPageWithSearch;
+ var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+ if (domPopupSearchResultsWindow.style.display!='block')
+ {
+ var domSearchBox = this.DOMSearchBox();
+ this.DOMSearchClose().style.display = 'inline';
+ if (this.insideFrame)
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ domPopupSearchResultsWindow.style.position = 'relative';
+ domPopupSearchResultsWindow.style.display = 'block';
+ var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+ domPopupSearchResultsWindow.style.width = width + 'px';
+ domPopupSearchResults.style.width = width + 'px';
+ }
+ else
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+ var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
+ domPopupSearchResultsWindow.style.display = 'block';
+ left -= domPopupSearchResults.offsetWidth;
+ domPopupSearchResultsWindow.style.top = top + 'px';
+ domPopupSearchResultsWindow.style.left = left + 'px';
+ }
+ }
+
+ this.lastSearchValue = searchValue;
+ this.lastResultsPage = resultsPage;
+ }
+
+ // -------- Activation Functions
+
+ // Activates or deactivates the search panel, resetting things to
+ // their default values if necessary.
+ this.Activate = function(isActive)
+ {
+ if (isActive || // open it
+ this.DOMPopupSearchResultsWindow().style.display == 'block'
+ )
+ {
+ this.DOMSearchBox().className = 'MSearchBoxActive';
+
+ var searchField = this.DOMSearchField();
+
+ if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+ {
+ searchField.value = '';
+ this.searchActive = true;
+ }
+ }
+ else if (!isActive) // directly remove the panel
+ {
+ this.DOMSearchBox().className = 'MSearchBoxInactive';
+ this.DOMSearchField().value = this.searchLabel;
+ this.searchActive = false;
+ this.lastSearchValue = ''
+ this.lastResultsPage = '';
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+ // The number of matches from the last run of <Search()>.
+ this.lastMatchCount = 0;
+ this.lastKey = 0;
+ this.repeatOn = false;
+
+ // Toggles the visibility of the passed element ID.
+ this.FindChildElement = function(id)
+ {
+ var parentElement = document.getElementById(id);
+ var element = parentElement.firstChild;
+
+ while (element && element!=parentElement)
+ {
+ if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+ {
+ return element;
+ }
+
+ if (element.nodeName == 'DIV' && element.hasChildNodes())
+ {
+ element = element.firstChild;
+ }
+ else if (element.nextSibling)
+ {
+ element = element.nextSibling;
+ }
+ else
+ {
+ do
+ {
+ element = element.parentNode;
+ }
+ while (element && element!=parentElement && !element.nextSibling);
+
+ if (element && element!=parentElement)
+ {
+ element = element.nextSibling;
+ }
+ }
+ }
+ }
+
+ this.Toggle = function(id)
+ {
+ var element = this.FindChildElement(id);
+ if (element)
+ {
+ if (element.style.display == 'block')
+ {
+ element.style.display = 'none';
+ }
+ else
+ {
+ element.style.display = 'block';
+ }
+ }
+ }
+
+ // Searches for the passed string. If there is no parameter,
+ // it takes it from the URL query.
+ //
+ // Always returns true, since other documents may try to call it
+ // and that may or may not be possible.
+ this.Search = function(search)
+ {
+ if (!search) // get search word from URL
+ {
+ search = window.location.search;
+ search = search.substring(1); // Remove the leading '?'
+ search = unescape(search);
+ }
+
+ search = search.replace(/^ +/, ""); // strip leading spaces
+ search = search.replace(/ +$/, ""); // strip trailing spaces
+ search = search.toLowerCase();
+ search = convertToId(search);
+
+ var resultRows = document.getElementsByTagName("div");
+ var matches = 0;
+
+ var i = 0;
+ while (i < resultRows.length)
+ {
+ var row = resultRows.item(i);
+ if (row.className == "SRResult")
+ {
+ var rowMatchName = row.id.toLowerCase();
+ rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+ if (search.length<=rowMatchName.length &&
+ rowMatchName.substr(0, search.length)==search)
+ {
+ row.style.display = 'block';
+ matches++;
+ }
+ else
+ {
+ row.style.display = 'none';
+ }
+ }
+ i++;
+ }
+ document.getElementById("Searching").style.display='none';
+ if (matches == 0) // no results
+ {
+ document.getElementById("NoMatches").style.display='block';
+ }
+ else // at least one result
+ {
+ document.getElementById("NoMatches").style.display='none';
+ }
+ this.lastMatchCount = matches;
+ return true;
+ }
+
+ // return the first item with index index or higher that is visible
+ this.NavNext = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index++;
+ }
+ return focusItem;
+ }
+
+ this.NavPrev = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index--;
+ }
+ return focusItem;
+ }
+
+ this.ProcessKeys = function(e)
+ {
+ if (e.type == "keydown")
+ {
+ this.repeatOn = false;
+ this.lastKey = e.keyCode;
+ }
+ else if (e.type == "keypress")
+ {
+ if (!this.repeatOn)
+ {
+ if (this.lastKey) this.repeatOn = true;
+ return false; // ignore first keypress after keydown
+ }
+ }
+ else if (e.type == "keyup")
+ {
+ this.lastKey = 0;
+ this.repeatOn = false;
+ }
+ return this.lastKey!=0;
+ }
+
+ this.Nav = function(evt,itemIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ var newIndex = itemIndex-1;
+ var focusItem = this.NavPrev(newIndex);
+ if (focusItem)
+ {
+ var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+ if (child && child.style.display == 'block') // children visible
+ {
+ var n=0;
+ var tmpElem;
+ while (1) // search for last child
+ {
+ tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+ if (tmpElem)
+ {
+ focusItem = tmpElem;
+ }
+ else // found it!
+ {
+ break;
+ }
+ n++;
+ }
+ }
+ }
+ if (focusItem)
+ {
+ focusItem.focus();
+ }
+ else // return focus to search field
+ {
+ parent.document.getElementById("MSearchField").focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = itemIndex+1;
+ var focusItem;
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem && elem.style.display == 'block') // children visible
+ {
+ focusItem = document.getElementById('Item'+itemIndex+'_c0');
+ }
+ if (!focusItem) focusItem = this.NavNext(newIndex);
+ if (focusItem) focusItem.focus();
+ }
+ else if (this.lastKey==39) // Right
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'block';
+ }
+ else if (this.lastKey==37) // Left
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'none';
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+
+ this.NavChild = function(evt,itemIndex,childIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ if (childIndex>0)
+ {
+ var newIndex = childIndex-1;
+ document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+ }
+ else // already at first child, jump to parent
+ {
+ document.getElementById('Item'+itemIndex).focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = childIndex+1;
+ var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+ if (!elem) // last child, jump to parent next parent
+ {
+ elem = this.NavNext(itemIndex+1);
+ }
+ if (elem)
+ {
+ elem.focus();
+ }
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+}
+
+function setKeyActions(elem,action)
+{
+ elem.setAttribute('onkeydown',action);
+ elem.setAttribute('onkeypress',action);
+ elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+ elem.setAttribute('class',attr);
+ elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+ var results = document.getElementById("SRResults");
+ for (var e=0; e<searchData.length; e++)
+ {
+ var id = searchData[e][0];
+ var srResult = document.createElement('div');
+ srResult.setAttribute('id','SR_'+id);
+ setClassAttr(srResult,'SRResult');
+ var srEntry = document.createElement('div');
+ setClassAttr(srEntry,'SREntry');
+ var srLink = document.createElement('a');
+ srLink.setAttribute('id','Item'+e);
+ setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+ setClassAttr(srLink,'SRSymbol');
+ srLink.innerHTML = searchData[e][1][0];
+ srEntry.appendChild(srLink);
+ if (searchData[e][1].length==2) // single result
+ {
+ srLink.setAttribute('href',searchData[e][1][1][0]);
+ if (searchData[e][1][1][1])
+ {
+ srLink.setAttribute('target','_parent');
+ }
+ var srScope = document.createElement('span');
+ setClassAttr(srScope,'SRScope');
+ srScope.innerHTML = searchData[e][1][1][2];
+ srEntry.appendChild(srScope);
+ }
+ else // multiple results
+ {
+ srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+ var srChildren = document.createElement('div');
+ setClassAttr(srChildren,'SRChildren');
+ for (var c=0; c<searchData[e][1].length-1; c++)
+ {
+ var srChild = document.createElement('a');
+ srChild.setAttribute('id','Item'+e+'_c'+c);
+ setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+ setClassAttr(srChild,'SRScope');
+ srChild.setAttribute('href',searchData[e][1][c+1][0]);
+ if (searchData[e][1][c+1][1])
+ {
+ srChild.setAttribute('target','_parent');
+ }
+ srChild.innerHTML = searchData[e][1][c+1][2];
+ srChildren.appendChild(srChild);
+ }
+ srEntry.appendChild(srChildren);
+ }
+ srResult.appendChild(srEntry);
+ results.appendChild(srResult);
+ }
+}
+
diff --git a/doc/html/search/search_l.png b/doc/html/search/search_l.png
new file mode 100644
index 000000000..c872f4da4
--- /dev/null
+++ b/doc/html/search/search_l.png
Binary files differ
diff --git a/doc/html/search/search_m.png b/doc/html/search/search_m.png
new file mode 100644
index 000000000..b429a16ba
--- /dev/null
+++ b/doc/html/search/search_m.png
Binary files differ
diff --git a/doc/html/search/search_r.png b/doc/html/search/search_r.png
new file mode 100644
index 000000000..97ee8b439
--- /dev/null
+++ b/doc/html/search/search_r.png
Binary files differ
diff --git a/doc/html/search/variables_24.html b/doc/html/search/variables_24.html
new file mode 100644
index 000000000..eb6f68ee2
--- /dev/null
+++ b/doc/html/search/variables_24.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_24.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_24.js b/doc/html/search/variables_24.js
new file mode 100644
index 000000000..023be319b
--- /dev/null
+++ b/doc/html/search/variables_24.js
@@ -0,0 +1,143 @@
+var searchData=
+[
+ ['_24a',['$a',['../typo_8php.html#acebf83966ef6d7e5645a6b62ba368f9f',1,'typo.php']]],
+ ['_24account',['$account',['../classApp.html#a14bd4b1c29f3aff371fe5d4cb11aeea3',1,'App']]],
+ ['_24api',['$API',['../include_2api_8php.html#aeb2e7ad00ea666b4b6dfcf82008194f8',1,'api.php']]],
+ ['_24app',['$app',['../classBaseObject.html#a02cc4cd8fa26b6fc76d92fde54b4e4b1',1,'BaseObject']]],
+ ['_24apps',['$apps',['../classApp.html#a230e975296cf164da2fee35ef720964f',1,'App']]],
+ ['_24argc',['$argc',['../classApp.html#af58db526040829b1c8bd95561b329262',1,'App']]],
+ ['_24argv',['$argv',['../classApp.html#ab3da757abe5cb45bf88f07cc51a73b58',1,'App']]],
+ ['_24arr',['$arr',['../extract_8php.html#a63bb4c41bc532baacf6a4976cfaa0feb',1,'extract.php']]],
+ ['_24baseurl',['$baseurl',['../classApp.html#ad5175536561021548ae8188e24c7b80c',1,'App']]],
+ ['_24cached_5fprofile_5fimage',['$cached_profile_image',['../classApp.html#abe0e4fa91097f7a6588e1213a834121c',1,'App']]],
+ ['_24cached_5fprofile_5fpicdate',['$cached_profile_picdate',['../classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e',1,'App']]],
+ ['_24called_5fapi',['$called_api',['../include_2api_8php.html#aa62b15a6bbb280e86b98132eb214013d',1,'api.php']]],
+ ['_24category',['$category',['../classApp.html#a5cfc098c061b7d765add58fd2ca97445',1,'App']]],
+ ['_24channel',['$channel',['../classApp.html#a050b0696118da47e8b30859ad1a2c149',1,'App\$channel()'],['../classItem.html#acc32426c0f465391be8a99ad810c7b8e',1,'Item\$channel()']]],
+ ['_24children',['$children',['../classItem.html#a80dcd0fb7673776c0967839d429c2a0f',1,'Item']]],
+ ['_24cid',['$cid',['../classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0',1,'App']]],
+ ['_24cmd',['$cmd',['../classApp.html#a495ec082c2719314e536070ca1ce073d',1,'App']]],
+ ['_24colour',['$colour',['../redbasic_2php_2style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab',1,'$colour():&#160;style.php'],['../redstrap_2php_2style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab',1,'$colour():&#160;style.php']]],
+ ['_24comment_5fbox_5ftemplate',['$comment_box_template',['../classItem.html#a90743c8348b13213275c223bb9333aa0',1,'Item']]],
+ ['_24commentable',['$commentable',['../classConversation.html#afd4965d22a6e4bfea2f35e931b3273c6',1,'Conversation']]],
+ ['_24config',['$config',['../classApp.html#ac73dc90e4764497e2f1b7e6612c8fb88',1,'App']]],
+ ['_24connected',['$connected',['../classdba__driver.html#a205f6535e399700b6fca2492f96f2229',1,'dba_driver']]],
+ ['_24contact',['$contact',['../classApp.html#a98ef4cfd36693a3457c879b76bc6d694',1,'App']]],
+ ['_24contacts',['$contacts',['../classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2',1,'App']]],
+ ['_24content',['$content',['../classApp.html#ac1d80a14492acc932715d54567d8a589',1,'App']]],
+ ['_24conversation',['$conversation',['../classItem.html#a007424e3e3171dcfb4312a02161da6cd',1,'Item']]],
+ ['_24css_5fsources',['$css_sources',['../classApp.html#a6f55d087e1ff4710132c1b0863faa2ee',1,'App']]],
+ ['_24curl_5fcode',['$curl_code',['../classApp.html#a256360c9184fed6d7556e0bc0a835d7f',1,'App']]],
+ ['_24curl_5fheaders',['$curl_headers',['../classApp.html#af5007c42a693afd9c4899c243b2e1363',1,'App']]],
+ ['_24d',['$d',['../classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38',1,'Template']]],
+ ['_24data',['$data',['../classApp.html#a0ce85be198e46570366cb3344f3c55b8',1,'App\$data()'],['../classItem.html#aec24e233f9098f902b1e57e60dcb2019',1,'Item\$data()']]],
+ ['_24db',['$db',['../classApp.html#a330410a288f3393d53772f5e98f857ea',1,'App\$db()'],['../classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6',1,'dba_driver\$db()']]],
+ ['_24debug',['$debug',['../classdba__driver.html#af48e2afeded5285766bf92e22123ed03',1,'dba_driver\$debug()'],['../classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a',1,'Template\$debug()']]],
+ ['_24dir',['$dir',['../docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62',1,'docblox_errorchecker.php']]],
+ ['_24dirs',['$dirs',['../typo_8php.html#a1b709c1d79631ebc8320b41bda028b54',1,'typo.php']]],
+ ['_24dirstack',['$dirstack',['../docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6',1,'docblox_errorchecker.php']]],
+ ['_24displaystyle',['$displaystyle',['../redbasic_2php_2style_8php.html#aa658152b727ea1233f6df6ded6437dad',1,'$displaystyle():&#160;style.php'],['../redstrap_2php_2style_8php.html#aa658152b727ea1233f6df6ded6437dad',1,'$displaystyle():&#160;style.php']]],
+ ['_24done',['$done',['../classTemplate.html#abda4c8d049f70553338eae7c905e9d5c',1,'Template']]],
+ ['_24error',['$error',['../classApp.html#ac1a8b2cd40609b231a560201a08852ba',1,'App\$error()'],['../classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c',1,'dba_driver\$error()']]],
+ ['_24filelist',['$filelist',['../docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b',1,'docblox_errorchecker.php']]],
+ ['_24filename',['$filename',['../classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690',1,'FriendicaSmarty']]],
+ ['_24files',['$files',['../extract_8php.html#a9590b15215a21e9b42eb546aeef79704',1,'$files():&#160;extract.php'],['../tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149',1,'$files():&#160;tpldebug.php'],['../typo_8php.html#a9590b15215a21e9b42eb546aeef79704',1,'$files():&#160;typo.php']]],
+ ['_24force_5fmax_5fitems',['$force_max_items',['../classApp.html#ae3f47830543d0d902f66913def8db66b',1,'App']]],
+ ['_24gc_5fprobability',['$gc_probability',['../session_8php.html#a96b09cc763572f45280786a7b33feb7e',1,'session.php']]],
+ ['_24groups',['$groups',['../classApp.html#ac6e6b1c7d6df408580ff79977fcfa656',1,'App']]],
+ ['_24height',['$height',['../classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80',1,'photo_driver']]],
+ ['_24hooks',['$hooks',['../classApp.html#a3694aa1907aa103a2adbc71f926f0fa0',1,'App']]],
+ ['_24hostname',['$hostname',['../classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3',1,'App']]],
+ ['_24i',['$i',['../docblox__errorchecker_8php.html#a83018d9153d17d91fbcf3bc10158d34f',1,'docblox_errorchecker.php']]],
+ ['_24identities',['$identities',['../classApp.html#a7954862f44f606b0ff83d4c74d15e792',1,'App']]],
+ ['_24image',['$image',['../classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55',1,'photo_driver']]],
+ ['_24infile',['$infile',['../php2po_8php.html#a61f8ddeb5557d46ebc546cc355bda214',1,'php2po.php']]],
+ ['_24ink',['$ink',['../php2po_8php.html#a6b0b8ebd9ce811d1325ef2c129443bc0',1,'php2po.php']]],
+ ['_24install_5fwizard_5fpass',['$install_wizard_pass',['../setup_8php.html#addb24714bc2542aa4f4215e98fe48432',1,'setup.php']]],
+ ['_24interactive',['$interactive',['../classApp.html#a4c7cfc62d39508086cf300dc2e39c4df',1,'App']]],
+ ['_24js_5fsources',['$js_sources',['../classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d',1,'App']]],
+ ['_24k',['$k',['../php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178',1,'php2po.php']]],
+ ['_24lang',['$lang',['../classTemplate.html#ace26b8a4252fbc1c385d2b5e1e93e5c8',1,'Template']]],
+ ['_24language',['$language',['../classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f',1,'App']]],
+ ['_24ldelim',['$ldelim',['../classApp.html#a59dd4b665c70e7dbd80682c014ff7145',1,'App']]],
+ ['_24line_5fheight',['$line_height',['../redbasic_2php_2style_8php.html#a4131d1765ee4deb28e83fc4527943ee0',1,'$line_height():&#160;style.php'],['../redstrap_2php_2style_8php.html#a4131d1765ee4deb28e83fc4527943ee0',1,'$line_height():&#160;style.php']]],
+ ['_24linkcolour',['$linkcolour',['../redbasic_2php_2style_8php.html#a6628a80911a6b37b464ef110ac8f6e42',1,'$linkcolour():&#160;style.php'],['../redstrap_2php_2style_8php.html#a6628a80911a6b37b464ef110ac8f6e42',1,'$linkcolour():&#160;style.php']]],
+ ['_24mode',['$mode',['../classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a',1,'Conversation']]],
+ ['_24module',['$module',['../classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d',1,'App']]],
+ ['_24module_5floaded',['$module_loaded',['../classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165',1,'App']]],
+ ['_24name',['$name',['../classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02',1,'FriendicaSmartyEngine\$name()'],['../classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae',1,'Template\$name()']]],
+ ['_24nav_5fbg_5f1',['$nav_bg_1',['../redbasic_2php_2style_8php.html#a232513bf4339fe34908c4c63cb93168b',1,'$nav_bg_1():&#160;style.php'],['../redstrap_2php_2style_8php.html#a232513bf4339fe34908c4c63cb93168b',1,'$nav_bg_1():&#160;style.php']]],
+ ['_24nav_5fbg_5f2',['$nav_bg_2',['../redbasic_2php_2style_8php.html#a03a72942b7428fd9af1224770d20a8ba',1,'$nav_bg_2():&#160;style.php'],['../redstrap_2php_2style_8php.html#a03a72942b7428fd9af1224770d20a8ba',1,'$nav_bg_2():&#160;style.php']]],
+ ['_24nav_5fbg_5f3',['$nav_bg_3',['../redbasic_2php_2style_8php.html#acc190405dda0a23a80551dee11c74c0c',1,'$nav_bg_3():&#160;style.php'],['../redstrap_2php_2style_8php.html#acc190405dda0a23a80551dee11c74c0c',1,'$nav_bg_3():&#160;style.php']]],
+ ['_24nav_5fbg_5f4',['$nav_bg_4',['../redbasic_2php_2style_8php.html#aef266cfcb27c6ddb3292584c945bab33',1,'$nav_bg_4():&#160;style.php'],['../redstrap_2php_2style_8php.html#aef266cfcb27c6ddb3292584c945bab33',1,'$nav_bg_4():&#160;style.php']]],
+ ['_24nav_5fsel',['$nav_sel',['../classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c',1,'App']]],
+ ['_24navcolour',['$navcolour',['../redbasic_2php_2style_8php.html#a938168352fd3cdaa1c10c16a34f5938a',1,'$navcolour():&#160;style.php'],['../redstrap_2php_2style_8php.html#a938168352fd3cdaa1c10c16a34f5938a',1,'$navcolour():&#160;style.php']]],
+ ['_24needed',['$needed',['../docblox__errorchecker_8php.html#a852004caba0a34390297a079f4aaac73',1,'docblox_errorchecker.php']]],
+ ['_24nodes',['$nodes',['../classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1',1,'Template']]],
+ ['_24observer',['$observer',['../classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f',1,'App\$observer()'],['../classConversation.html#a8748445aa26047ebed5141f3c3cbc244',1,'Conversation\$observer()']]],
+ ['_24out',['$out',['../php2po_8php.html#a48cb304902320d173a4eaa41543327b9',1,'php2po.php']]],
+ ['_24owner_5fname',['$owner_name',['../classItem.html#a9594df6014b0b6f45364ea7a34510130',1,'Item']]],
+ ['_24owner_5fphoto',['$owner_photo',['../classItem.html#a078f95b4134ce3a1df344cf8d386f986',1,'Item']]],
+ ['_24owner_5furl',['$owner_url',['../classItem.html#afa54851df82962c7c42dea3cc9f5c92c',1,'Item']]],
+ ['_24page',['$page',['../classApp.html#a4b67935096f66d1f14b657399a8461ac',1,'App']]],
+ ['_24pager',['$pager',['../classApp.html#a6bcb19cdc4907077da72864686d5a780',1,'App']]],
+ ['_24parent',['$parent',['../classItem.html#a1a1e42877e6ac7af50286142ceb483d2',1,'Item']]],
+ ['_24path',['$path',['../classApp.html#acad5896b7a79ae31433ad8f89606c728',1,'App']]],
+ ['_24perms',['$perms',['../classApp.html#ab47de68fa39806d1fb0976407e188b77',1,'App']]],
+ ['_24phpath',['$phpath',['../typo_8php.html#a3ecd17ac846be1b35f3662f5c12ab6bd',1,'typo.php']]],
+ ['_24phpfile',['$phpfile',['../php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4',1,'php2po.php']]],
+ ['_24plugins',['$plugins',['../classApp.html#ae9f96338f32187d308b67b980eea0008',1,'App']]],
+ ['_24pofile',['$pofile',['../php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1',1,'php2po.php']]],
+ ['_24preview',['$preview',['../classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae',1,'Conversation']]],
+ ['_24profile',['$profile',['../classApp.html#a57d041fcc003d08c127dfa99a02bc192',1,'App']]],
+ ['_24profile_5fowner',['$profile_owner',['../classConversation.html#a2f12724ef0244e9049fe1bb9641b516d',1,'Conversation']]],
+ ['_24profile_5fuid',['$profile_uid',['../classApp.html#a08c24d6a6fc52fcc784b0f765f13b820',1,'App']]],
+ ['_24query_5fstring',['$query_string',['../classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f',1,'App']]],
+ ['_24r',['$r',['../classTemplate.html#aac9a4638f11271e1b1dcc9f247242718',1,'Template']]],
+ ['_24radius',['$radius',['../redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351',1,'style.php']]],
+ ['_24rdelim',['$rdelim',['../classApp.html#a244b2d53b21be269aad2269d23192f95',1,'App']]],
+ ['_24redbasic_5ffont_5fsize',['$redbasic_font_size',['../redbasic_2php_2style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda',1,'$redbasic_font_size():&#160;style.php'],['../redstrap_2php_2style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda',1,'$redbasic_font_size():&#160;style.php']]],
+ ['_24redirect_5furl',['$redirect_url',['../classItem.html#a5b561415861f5b89b0733aacfe0428d1',1,'Item']]],
+ ['_24replace',['$replace',['../classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10',1,'Template']]],
+ ['_24res',['$res',['../docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5',1,'docblox_errorchecker.php']]],
+ ['_24resolution',['$resolution',['../redbasic_2php_2style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc',1,'$resolution():&#160;style.php'],['../redstrap_2php_2style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc',1,'$resolution():&#160;style.php']]],
+ ['_24s',['$s',['../extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634',1,'extract.php']]],
+ ['_24scheme',['$scheme',['../classApp.html#ad082d63acc078e5bf23825a03bdd6a76',1,'App']]],
+ ['_24search',['$search',['../classTemplate.html#a317d535946dc065c35dd5cd38380e6c6',1,'Template']]],
+ ['_24session_5fexists',['$session_exists',['../session_8php.html#a62e4a6cb26b4bb1b8ddd8277b26090eb',1,'session.php']]],
+ ['_24session_5fexpire',['$session_expire',['../session_8php.html#af0100a2642a5268594bbd5742a03d885',1,'session.php']]],
+ ['_24shadows',['$shadows',['../redbasic_2php_2style_8php.html#acb3046ad9c01b7d60cde20f58d77c548',1,'$shadows():&#160;style.php'],['../redstrap_2php_2style_8php.html#acb3046ad9c01b7d60cde20f58d77c548',1,'$shadows():&#160;style.php']]],
+ ['_24shiny',['$shiny',['../redbasic_2php_2style_8php.html#a0b942d36d8862908864e2ffa4521be70',1,'$shiny():&#160;style.php'],['../redstrap_2php_2style_8php.html#a0b942d36d8862908864e2ffa4521be70',1,'$shiny():&#160;style.php']]],
+ ['_24site_5fcolour',['$site_colour',['../redbasic_2php_2style_8php.html#a02d39b683a42fffbb27823d3860283bd',1,'$site_colour():&#160;style.php'],['../redstrap_2php_2style_8php.html#a02d39b683a42fffbb27823d3860283bd',1,'$site_colour():&#160;style.php']]],
+ ['_24site_5fline_5fheight',['$site_line_height',['../redbasic_2php_2style_8php.html#a8749837e08dfb3372662af9c33fa2a2e',1,'$site_line_height():&#160;style.php'],['../redstrap_2php_2style_8php.html#a8749837e08dfb3372662af9c33fa2a2e',1,'$site_line_height():&#160;style.php']]],
+ ['_24site_5fredbasic_5ffont_5fsize',['$site_redbasic_font_size',['../redbasic_2php_2style_8php.html#a45e6fafa363bc4586fa91dce1786be4f',1,'$site_redbasic_font_size():&#160;style.php'],['../redstrap_2php_2style_8php.html#a45e6fafa363bc4586fa91dce1786be4f',1,'$site_redbasic_font_size():&#160;style.php']]],
+ ['_24sourcename',['$sourcename',['../classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11',1,'App']]],
+ ['_24stack',['$stack',['../classTemplate.html#a6f0efc256688c36110180b501067ff11',1,'Template']]],
+ ['_24str',['$str',['../typohelper_8php.html#a7542d95618011800c61773127fa625cf',1,'typohelper.php']]],
+ ['_24strings',['$strings',['../classApp.html#a5f64620473a9727a48ebe9cf6f335a98',1,'App']]],
+ ['_24template',['$template',['../classItem.html#a7f7bc059de377319282cb4ef4a828480',1,'Item']]],
+ ['_24template_5fengine_5finstance',['$template_engine_instance',['../classApp.html#a6844aedad10e201b8c3d80cfc9e876d3',1,'App']]],
+ ['_24template_5fengines',['$template_engines',['../classApp.html#a6859a4848a5c0049b4134cc4b34228b6',1,'App']]],
+ ['_24theme',['$theme',['../classApp.html#a764cc6cd7578132c21d2b4545de9301c',1,'App']]],
+ ['_24theme_5finfo',['$theme_info',['../classApp.html#aeca29fd4f7192ca07369b3c598c36e67',1,'App']]],
+ ['_24theme_5fthread_5fallow',['$theme_thread_allow',['../classApp.html#a487332f8de40414ca1a54a4265570b70',1,'App']]],
+ ['_24threaded',['$threaded',['../classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2',1,'Item']]],
+ ['_24threads',['$threads',['../classConversation.html#a41f4a549e6a99f98935c4742addd22c8',1,'Conversation']]],
+ ['_24timezone',['$timezone',['../classApp.html#ab35b01a366a2ea95725e97af278f87ab',1,'App']]],
+ ['_24toplevel',['$toplevel',['../classItem.html#a5cfa6cf964f433a917a81cab079ff9d8',1,'Item']]],
+ ['_24type',['$type',['../classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03',1,'photo_driver']]],
+ ['_24types',['$types',['../classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03',1,'photo_driver']]],
+ ['_24uid',['$uid',['../redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a',1,'style.php']]],
+ ['_24user',['$user',['../classApp.html#a91fd3c8b89016113b05f3be24805ccff',1,'App']]],
+ ['_24valid',['$valid',['../classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9',1,'photo_driver']]],
+ ['_24videoheight',['$videoheight',['../classApp.html#a56b1a432c96aef8b1971f779c9d93c8c',1,'App']]],
+ ['_24videowidth',['$videowidth',['../classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8',1,'App']]],
+ ['_24visiting',['$visiting',['../classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8',1,'Item']]],
+ ['_24wall_5fto_5fwall',['$wall_to_wall',['../classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189',1,'Item']]],
+ ['_24widgetlist',['$widgetlist',['../classApp.html#a4833bee2eae4ad1691a04fa19e11a766',1,'App']]],
+ ['_24widgets',['$widgets',['../classApp.html#aa5a87c46ab3fee21362c466bf78042ef',1,'App']]],
+ ['_24width',['$width',['../classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1',1,'photo_driver']]],
+ ['_24writable',['$writable',['../classConversation.html#ae81221251307e315f566a11f921ce0a9',1,'Conversation']]],
+ ['_24x',['$x',['../redbasic_2php_2style_8php.html#af3a16c5f0dd7a74cf9acf6a49fff73a7',1,'style.php']]],
+ ['_24zones',['$zones',['../extract_8php.html#a0cbe524ffc9a496114fd7ba9f423ef44',1,'extract.php']]]
+];
diff --git a/doc/html/search/variables_61.html b/doc/html/search/variables_61.html
new file mode 100644
index 000000000..a0de7a473
--- /dev/null
+++ b/doc/html/search/variables_61.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_61.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_61.js b/doc/html/search/variables_61.js
new file mode 100644
index 000000000..95336c00b
--- /dev/null
+++ b/doc/html/search/variables_61.js
@@ -0,0 +1,46 @@
+var searchData=
+[
+ ['abook_5fflag_5farchived',['ABOOK_FLAG_ARCHIVED',['../boot_8php.html#a222395aa223cfbff6166fab0b4e2e1d5',1,'boot.php']]],
+ ['abook_5fflag_5fblocked',['ABOOK_FLAG_BLOCKED',['../boot_8php.html#a52b599cd13e152ebc80d7e4413683195',1,'boot.php']]],
+ ['abook_5fflag_5fhidden',['ABOOK_FLAG_HIDDEN',['../boot_8php.html#a34c756469ebed32e2fc987bcde62d382',1,'boot.php']]],
+ ['abook_5fflag_5fignored',['ABOOK_FLAG_IGNORED',['../boot_8php.html#aa3425e2de85b08f7041656d3a8502cb6',1,'boot.php']]],
+ ['abook_5fflag_5fpending',['ABOOK_FLAG_PENDING',['../boot_8php.html#a68eebe493e6f729ffd1aeda7a4b11155',1,'boot.php']]],
+ ['abook_5fflag_5fself',['ABOOK_FLAG_SELF',['../boot_8php.html#a0450389f24c632906fbc24347700a543',1,'boot.php']]],
+ ['access_5ftoken_5fduration',['ACCESS_TOKEN_DURATION',['../oauth_8php.html#ad343cab37aa860d2d14dc86b7f5ca0c6',1,'oauth.php']]],
+ ['account_5fblocked',['ACCOUNT_BLOCKED',['../boot_8php.html#af3bdfc20979c16f15bb9c60446a480f9',1,'boot.php']]],
+ ['account_5fexpired',['ACCOUNT_EXPIRED',['../boot_8php.html#a400519fa181591cd6fdbb8f25fbcba0a',1,'boot.php']]],
+ ['account_5fok',['ACCOUNT_OK',['../boot_8php.html#a84057c5bfa1bca5fba8497fe005ee4d8',1,'boot.php']]],
+ ['account_5fpending',['ACCOUNT_PENDING',['../boot_8php.html#a032bbd6d0321e99e9117332c9ed2b1b8',1,'boot.php']]],
+ ['account_5fremoved',['ACCOUNT_REMOVED',['../boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78',1,'boot.php']]],
+ ['account_5frole_5fadmin',['ACCOUNT_ROLE_ADMIN',['../boot_8php.html#ac8400313df2c831653f9036f71ebd86d',1,'boot.php']]],
+ ['account_5funverified',['ACCOUNT_UNVERIFIED',['../boot_8php.html#af3a4271630aabd8be592213f925d6a36',1,'boot.php']]],
+ ['activity_5fdislike',['ACTIVITY_DISLIKE',['../boot_8php.html#a0e57f846e6d47a308feced0f7274f178',1,'boot.php']]],
+ ['activity_5ffavorite',['ACTIVITY_FAVORITE',['../boot_8php.html#a3e2ea123d29a72012db1241f96280b0e',1,'boot.php']]],
+ ['activity_5ffollow',['ACTIVITY_FOLLOW',['../boot_8php.html#a5ae728ac966ea1d3525a19e7fec59434',1,'boot.php']]],
+ ['activity_5ffriend',['ACTIVITY_FRIEND',['../boot_8php.html#a176664e78dcb9132e16be69418223eb2',1,'boot.php']]],
+ ['activity_5fjoin',['ACTIVITY_JOIN',['../boot_8php.html#aced60c7285192e80b7c4757e45a7f1e3',1,'boot.php']]],
+ ['activity_5flike',['ACTIVITY_LIKE',['../boot_8php.html#abdcdfc873ace4e0902177bad934de0c0',1,'boot.php']]],
+ ['activity_5fmood',['ACTIVITY_MOOD',['../boot_8php.html#a7aa57438db03834aaa0b468bdce773a6',1,'boot.php']]],
+ ['activity_5fobj_5falbum',['ACTIVITY_OBJ_ALBUM',['../boot_8php.html#aaf9b76832ee5f85e56466af162ba8a14',1,'boot.php']]],
+ ['activity_5fobj_5fcomment',['ACTIVITY_OBJ_COMMENT',['../boot_8php.html#a0a98dd0110dc6c8e24cefc8ae74d5562',1,'boot.php']]],
+ ['activity_5fobj_5fevent',['ACTIVITY_OBJ_EVENT',['../boot_8php.html#a2e90096fede6acce16abf0da8cb2febe',1,'boot.php']]],
+ ['activity_5fobj_5fgroup',['ACTIVITY_OBJ_GROUP',['../boot_8php.html#a7bff2278e68a71e524afd1c7c951e1e3',1,'boot.php']]],
+ ['activity_5fobj_5fheart',['ACTIVITY_OBJ_HEART',['../boot_8php.html#ad302cb26b838898d475f57f61b0fcc9f',1,'boot.php']]],
+ ['activity_5fobj_5fnote',['ACTIVITY_OBJ_NOTE',['../boot_8php.html#a44d069c8a1cfcc6d2007c506a17ff28f',1,'boot.php']]],
+ ['activity_5fobj_5fp_5fphoto',['ACTIVITY_OBJ_P_PHOTO',['../boot_8php.html#a74bf27f7564c9a37975e7b37d973dcab',1,'boot.php']]],
+ ['activity_5fobj_5fperson',['ACTIVITY_OBJ_PERSON',['../boot_8php.html#a2f8f25b13480c37a5f22511f53da8bab',1,'boot.php']]],
+ ['activity_5fobj_5fphoto',['ACTIVITY_OBJ_PHOTO',['../boot_8php.html#a774f0f792ebfec1e774c5a17bb9d5966',1,'boot.php']]],
+ ['activity_5fobj_5fprofile',['ACTIVITY_OBJ_PROFILE',['../boot_8php.html#a62c832a95e38b1fa23e6cef39521b7d5',1,'boot.php']]],
+ ['activity_5fobj_5ftagterm',['ACTIVITY_OBJ_TAGTERM',['../boot_8php.html#a1da180f961f49a11573cac4ff6c62c05',1,'boot.php']]],
+ ['activity_5fobj_5fthing',['ACTIVITY_OBJ_THING',['../boot_8php.html#a0fb63e51c2a9814941842ae8f2f4dff8',1,'boot.php']]],
+ ['activity_5fpoke',['ACTIVITY_POKE',['../boot_8php.html#a14ba8f9e162f2559831ee3bf98e0c3bd',1,'boot.php']]],
+ ['activity_5fpost',['ACTIVITY_POST',['../boot_8php.html#a5c3747e0f505f0d5271dc4c54e3feaf4',1,'boot.php']]],
+ ['activity_5freq_5ffriend',['ACTIVITY_REQ_FRIEND',['../boot_8php.html#afe084c30a1810c10442edb4fbcbc0086',1,'boot.php']]],
+ ['activity_5ftag',['ACTIVITY_TAG',['../boot_8php.html#a12c781cefc20167231e2e3fd5866b1b5',1,'boot.php']]],
+ ['activity_5funfollow',['ACTIVITY_UNFOLLOW',['../boot_8php.html#a53e4bdb6f225da55115acb9277f75e53',1,'boot.php']]],
+ ['activity_5funfriend',['ACTIVITY_UNFRIEND',['../boot_8php.html#a29528a2544373cc19a378f350040c6a1',1,'boot.php']]],
+ ['activity_5fupdate',['ACTIVITY_UPDATE',['../boot_8php.html#a7f4264232dbb6c3b41f2617deecb1866',1,'boot.php']]],
+ ['atom_5ftime',['ATOM_TIME',['../boot_8php.html#ad34c1547020a305915bcc39707744690',1,'boot.php']]],
+ ['attach_5fflag_5fdir',['ATTACH_FLAG_DIR',['../boot_8php.html#aa74438cf71e48e37bf7b440b94243985',1,'boot.php']]],
+ ['attach_5fflag_5fos',['ATTACH_FLAG_OS',['../boot_8php.html#a781916f83fcc8ff1035649afa45f0292',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_63.html b/doc/html/search/variables_63.html
new file mode 100644
index 000000000..422085c12
--- /dev/null
+++ b/doc/html/search/variables_63.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_63.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_63.js b/doc/html/search/variables_63.js
new file mode 100644
index 000000000..e29a5d230
--- /dev/null
+++ b/doc/html/search/variables_63.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['client_5fmode_5fload',['CLIENT_MODE_LOAD',['../boot_8php.html#af6f6f6f40139f12fc09ec47373b30919',1,'boot.php']]],
+ ['client_5fmode_5fnormal',['CLIENT_MODE_NORMAL',['../boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731',1,'boot.php']]],
+ ['client_5fmode_5fupdate',['CLIENT_MODE_UPDATE',['../boot_8php.html#a3f40aa5bafff8c4eebdc62e5121daf77',1,'boot.php']]],
+ ['contact_5fis_5ffollower',['CONTACT_IS_FOLLOWER',['../boot_8php.html#ada72d88ae39a7e3b45baea201cb49a29',1,'boot.php']]],
+ ['contact_5fis_5ffriend',['CONTACT_IS_FRIEND',['../boot_8php.html#a27299ecfb9e9a99826f17a1c14c6995f',1,'boot.php']]],
+ ['contact_5fis_5fsharing',['CONTACT_IS_SHARING',['../boot_8php.html#a6c5e9e293c8242dcb9bc2c3ea2fee2c9',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_64.html b/doc/html/search/variables_64.html
new file mode 100644
index 000000000..df4414b92
--- /dev/null
+++ b/doc/html/search/variables_64.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_64.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_64.js b/doc/html/search/variables_64.js
new file mode 100644
index 000000000..2c0187ed0
--- /dev/null
+++ b/doc/html/search/variables_64.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+ ['db_5fupdate_5fversion',['DB_UPDATE_VERSION',['../boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03',1,'boot.php']]],
+ ['default_5fdb_5fengine',['DEFAULT_DB_ENGINE',['../boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d',1,'boot.php']]],
+ ['directory_5ffallback_5fmaster',['DIRECTORY_FALLBACK_MASTER',['../boot_8php.html#abedd940e664017c61b48c6efa31d0cb8',1,'boot.php']]],
+ ['directory_5fmode_5fnormal',['DIRECTORY_MODE_NORMAL',['../boot_8php.html#ab7d65a7e7417825a4db62906bb600729',1,'boot.php']]],
+ ['directory_5fmode_5fprimary',['DIRECTORY_MODE_PRIMARY',['../boot_8php.html#a8a60cc38bb567765fd926fef70205f16',1,'boot.php']]],
+ ['directory_5fmode_5fsecondary',['DIRECTORY_MODE_SECONDARY',['../boot_8php.html#aedfb9501ed408278667995524e0d15cf',1,'boot.php']]],
+ ['directory_5fmode_5fstandalone',['DIRECTORY_MODE_STANDALONE',['../boot_8php.html#a25476eec71fceda237f7dc1d78b0adb8',1,'boot.php']]],
+ ['directory_5frealm',['DIRECTORY_REALM',['../boot_8php.html#a6b9909db6a7ec80ec6fdd40ba74014dd',1,'boot.php']]],
+ ['do',['do',['../docblox__errorchecker_8php.html#a721c6ff80a6d3e4ad4ffa52a04c60085',1,'docblox_errorchecker.php']]]
+];
diff --git a/doc/html/search/variables_65.html b/doc/html/search/variables_65.html
new file mode 100644
index 000000000..38eb9f67f
--- /dev/null
+++ b/doc/html/search/variables_65.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_65.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_65.js b/doc/html/search/variables_65.js
new file mode 100644
index 000000000..260cd72bd
--- /dev/null
+++ b/doc/html/search/variables_65.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['else',['else',['../auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5',1,'else():&#160;auth.php'],['../fpostit_8php.html#a501b5ca82f287509fc691c88524064c1',1,'else():&#160;fpostit.php'],['../tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c',1,'else():&#160;tpldebug.php']]],
+ ['eol',['EOL',['../boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b',1,'boot.php']]],
+ ['eot',['EOT',['../typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805',1,'typohelper.php']]],
+ ['excludepaths',['excludepaths',['../namespaceupdatetpl.html#a988d937ed5d5c2b592b763036af5cf94',1,'updatetpl']]],
+ ['ext',['ext',['../namespacefriendica-to-smarty-tpl.html#aecf730e0884bb4ddc6c0deb1ef85f8eb',1,'friendica-to-smarty-tpl']]]
+];
diff --git a/doc/html/search/variables_66.html b/doc/html/search/variables_66.html
new file mode 100644
index 000000000..6e1863868
--- /dev/null
+++ b/doc/html/search/variables_66.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_66.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_66.js b/doc/html/search/variables_66.js
new file mode 100644
index 000000000..071f9b973
--- /dev/null
+++ b/doc/html/search/variables_66.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['f',['f',['../namespacefriendica-to-smarty-tpl.html#a965e1d6d6293654a56e029a7e454dec7',1,'friendica-to-smarty-tpl']]],
+ ['filename',['filename',['../namespacefriendica-to-smarty-tpl.html#a5f9bf7a67d955c0d6be70a82097611c5',1,'friendica-to-smarty-tpl']]],
+ ['files',['files',['../namespacefriendica-to-smarty-tpl.html#ae74419b16516956c66f7db714a93a6ac',1,'friendica-to-smarty-tpl']]],
+ ['fnull',['fnull',['../namespaceupdatetpl.html#a79c20eb62d568c999b56eb08530355d3',1,'updatetpl']]],
+ ['foreach',['foreach',['../typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5',1,'typo.php']]]
+];
diff --git a/doc/html/search/variables_67.html b/doc/html/search/variables_67.html
new file mode 100644
index 000000000..8a1f3d9e5
--- /dev/null
+++ b/doc/html/search/variables_67.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_67.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_67.js b/doc/html/search/variables_67.js
new file mode 100644
index 000000000..cf66f0cdb
--- /dev/null
+++ b/doc/html/search/variables_67.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['gravity_5fcomment',['GRAVITY_COMMENT',['../boot_8php.html#a4a12ce5de39789b0361e308d89925a20',1,'boot.php']]],
+ ['gravity_5flike',['GRAVITY_LIKE',['../boot_8php.html#a1f5906598e90b5ea2b4245f682be4348',1,'boot.php']]],
+ ['gravity_5fparent',['GRAVITY_PARENT',['../boot_8php.html#a2af173e4e9836ee7c90757b4793a2be3',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_68.html b/doc/html/search/variables_68.html
new file mode 100644
index 000000000..2f0a862b9
--- /dev/null
+++ b/doc/html/search/variables_68.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_68.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_68.js b/doc/html/search/variables_68.js
new file mode 100644
index 000000000..8341c06e1
--- /dev/null
+++ b/doc/html/search/variables_68.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['hubloc_5fflags_5fprimary',['HUBLOC_FLAGS_PRIMARY',['../boot_8php.html#a3ad9cc5d4354be741fa1de12b96e9955',1,'boot.php']]],
+ ['hubloc_5fflags_5funverified',['HUBLOC_FLAGS_UNVERIFIED',['../boot_8php.html#ab54b24cc302e1a42a67a49d788b6b764',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_69.html b/doc/html/search/variables_69.html
new file mode 100644
index 000000000..44c2cd1ee
--- /dev/null
+++ b/doc/html/search/variables_69.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_69.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_69.js b/doc/html/search/variables_69.js
new file mode 100644
index 000000000..382d21761
--- /dev/null
+++ b/doc/html/search/variables_69.js
@@ -0,0 +1,26 @@
+var searchData=
+[
+ ['if',['if',['../php2po_8php.html#a45b05625748f412ec97afcd61cf7980b',1,'if():&#160;php2po.php'],['../php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762',1,'if():&#160;default.php'],['../full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db',1,'if():&#160;full.php'],['../redbasic_2php_2style_8php.html#ac4c6bc3cd9cc92204f04cf6cb34b47dd',1,'if():&#160;style.php'],['../theme_2redstrap_2php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762',1,'if():&#160;default.php'],['../redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea',1,'if():&#160;style.php']]],
+ ['item_5fblocked',['ITEM_BLOCKED',['../boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f',1,'boot.php']]],
+ ['item_5fdelayed_5fpublish',['ITEM_DELAYED_PUBLISH',['../boot_8php.html#ac890557fedc5b5a3b1d996249b1e1a20',1,'boot.php']]],
+ ['item_5fdeleted',['ITEM_DELETED',['../boot_8php.html#a3515ea6bf77495de89b93e9ccd881c49',1,'boot.php']]],
+ ['item_5fhidden',['ITEM_HIDDEN',['../boot_8php.html#ac99fc4d040764eac1736bec6973556fe',1,'boot.php']]],
+ ['item_5fmentionsme',['ITEM_MENTIONSME',['../boot_8php.html#a8da836617174eed9fc2ac8054125354b',1,'boot.php']]],
+ ['item_5fmoderated',['ITEM_MODERATED',['../boot_8php.html#ac01230c7655e0705b2e99c9bc03c4450',1,'boot.php']]],
+ ['item_5fnocomment',['ITEM_NOCOMMENT',['../boot_8php.html#a949116d9a295b214293006c060ca4848',1,'boot.php']]],
+ ['item_5fnotshown',['ITEM_NOTSHOWN',['../boot_8php.html#a8663f32171568489dbb2a01dd00371f8',1,'boot.php']]],
+ ['item_5fnsfw',['ITEM_NSFW',['../boot_8php.html#a939de9a99278f4fd7dcd0ee67f243f08',1,'boot.php']]],
+ ['item_5fobscured',['ITEM_OBSCURED',['../boot_8php.html#a2c8906f1af94a3559a5b4661067bb79d',1,'boot.php']]],
+ ['item_5forigin',['ITEM_ORIGIN',['../boot_8php.html#a8c9dce0ef27b35397e29298eb966f7f7',1,'boot.php']]],
+ ['item_5frelay',['ITEM_RELAY',['../boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221',1,'boot.php']]],
+ ['item_5fspam',['ITEM_SPAM',['../boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb',1,'boot.php']]],
+ ['item_5fstarred',['ITEM_STARRED',['../boot_8php.html#a7af107fab8d62b9a73801713b774ed30',1,'boot.php']]],
+ ['item_5fthread_5ftop',['ITEM_THREAD_TOP',['../boot_8php.html#a749144d8dd9c1366596a0213c277d050',1,'boot.php']]],
+ ['item_5funpublished',['ITEM_UNPUBLISHED',['../boot_8php.html#adaeb4f590c56326b2dca3b19f31b6272',1,'boot.php']]],
+ ['item_5funseen',['ITEM_UNSEEN',['../boot_8php.html#a009e6a0637cb65804ea8094ecc4450b0',1,'boot.php']]],
+ ['item_5fuplink',['ITEM_UPLINK',['../boot_8php.html#aefba06f1c0842036329033e7567ecf6d',1,'boot.php']]],
+ ['item_5fuplink_5fprv',['ITEM_UPLINK_PRV',['../boot_8php.html#aad33b494084f729b6ee3b0bc457718a1',1,'boot.php']]],
+ ['item_5fvisible',['ITEM_VISIBLE',['../boot_8php.html#ab55b16ae7fc19fafe5afaedd49163bbf',1,'boot.php']]],
+ ['item_5fwall',['ITEM_WALL',['../boot_8php.html#a6788e99021ec8ffb0fa94d651f22a322',1,'boot.php']]],
+ ['item_5fwebpage',['ITEM_WEBPAGE',['../boot_8php.html#af489d0c3166551b93e63a79ff2c9be35',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_6a.html b/doc/html/search/variables_6a.html
new file mode 100644
index 000000000..e87ecc409
--- /dev/null
+++ b/doc/html/search/variables_6a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_6a.js b/doc/html/search/variables_6a.js
new file mode 100644
index 000000000..43e76e798
--- /dev/null
+++ b/doc/html/search/variables_6a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['jpeg_5fquality',['JPEG_QUALITY',['../boot_8php.html#a3475ff6c2e575f946ea0ee377e944173',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_6b.html b/doc/html/search/variables_6b.html
new file mode 100644
index 000000000..d1001a969
--- /dev/null
+++ b/doc/html/search/variables_6b.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_6b.js b/doc/html/search/variables_6b.js
new file mode 100644
index 000000000..dd6ee4759
--- /dev/null
+++ b/doc/html/search/variables_6b.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['key_5fnot_5fexists',['KEY_NOT_EXISTS',['../template__processor_8php.html#a797745996c7839a93b2ab1af456631ab',1,'template_processor.php']]]
+];
diff --git a/doc/html/search/variables_6c.html b/doc/html/search/variables_6c.html
new file mode 100644
index 000000000..8d08e812e
--- /dev/null
+++ b/doc/html/search/variables_6c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_6c.js b/doc/html/search/variables_6c.js
new file mode 100644
index 000000000..9540ea4f0
--- /dev/null
+++ b/doc/html/search/variables_6c.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['language_5fdetect_5fmin_5fconfidence',['LANGUAGE_DETECT_MIN_CONFIDENCE',['../boot_8php.html#a68d1d5bc9c7ccb663dc671b48c66df11',1,'boot.php']]],
+ ['language_5fdetect_5fmin_5flength',['LANGUAGE_DETECT_MIN_LENGTH',['../boot_8php.html#a17cf72338b040891781a4bcbdd9a8595',1,'boot.php']]],
+ ['ldelim',['ldelim',['../namespacefriendica-to-smarty-tpl.html#a0b4cf73d1a8d201a28d269eeb62a5d5c',1,'friendica-to-smarty-tpl']]],
+ ['logger_5fall',['LOGGER_ALL',['../boot_8php.html#afe63ae69ba55299f813766e54df06ede',1,'boot.php']]],
+ ['logger_5fdata',['LOGGER_DATA',['../boot_8php.html#a6969947145a139ec374ce098224d8e81',1,'boot.php']]],
+ ['logger_5fdebug',['LOGGER_DEBUG',['../boot_8php.html#a93823d15ae07548a4c49de88d325cd26',1,'boot.php']]],
+ ['logger_5fnormal',['LOGGER_NORMAL',['../boot_8php.html#a17b4ea23d9ecf628d9c8f53b7abcb805',1,'boot.php']]],
+ ['logger_5ftrace',['LOGGER_TRACE',['../boot_8php.html#a022cea669f9f13ef7c6268b63884c57f',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_6d.html b/doc/html/search/variables_6d.html
new file mode 100644
index 000000000..1b8f1a83a
--- /dev/null
+++ b/doc/html/search/variables_6d.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_6d.js b/doc/html/search/variables_6d.js
new file mode 100644
index 000000000..45bb59275
--- /dev/null
+++ b/doc/html/search/variables_6d.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['mail_5fdeleted',['MAIL_DELETED',['../boot_8php.html#ad0876e837cf3fad8a26417e315f6e2c8',1,'boot.php']]],
+ ['mail_5fisreply',['MAIL_ISREPLY',['../boot_8php.html#aa544a6c078130d0967a1f4ed8ce0a2d2',1,'boot.php']]],
+ ['mail_5fobscured',['MAIL_OBSCURED',['../boot_8php.html#a44ae1542a805ffd7f826fb511db07374',1,'boot.php']]],
+ ['mail_5frecalled',['MAIL_RECALLED',['../boot_8php.html#ae4861de36017fe399c1839f778bad9f5',1,'boot.php']]],
+ ['mail_5freplied',['MAIL_REPLIED',['../boot_8php.html#aa3679df31c8dad1b71816b0322d5baff',1,'boot.php']]],
+ ['mail_5fseen',['MAIL_SEEN',['../boot_8php.html#a1fbb93cf030f07391f22cc2948744869',1,'boot.php']]],
+ ['max_5fimage_5flength',['MAX_IMAGE_LENGTH',['../boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa',1,'boot.php']]],
+ ['max_5flikers',['MAX_LIKERS',['../boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_6e.html b/doc/html/search/variables_6e.html
new file mode 100644
index 000000000..2eb4def97
--- /dev/null
+++ b/doc/html/search/variables_6e.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_6e.js b/doc/html/search/variables_6e.js
new file mode 100644
index 000000000..cf8c2728f
--- /dev/null
+++ b/doc/html/search/variables_6e.js
@@ -0,0 +1,45 @@
+var searchData=
+[
+ ['n',['n',['../php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b',1,'php2po.php']]],
+ ['names',['names',['../namespaceupdatetpl.html#ab42dd79af65ee82201fd6f04715f62f6',1,'updatetpl']]],
+ ['namespace_5factivity',['NAMESPACE_ACTIVITY',['../boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2',1,'boot.php']]],
+ ['namespace_5factivity_5fschema',['NAMESPACE_ACTIVITY_SCHEMA',['../boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133',1,'boot.php']]],
+ ['namespace_5fatom1',['NAMESPACE_ATOM1',['../boot_8php.html#a444ce608ce34efb82ee11852f36e825f',1,'boot.php']]],
+ ['namespace_5fdfrn',['NAMESPACE_DFRN',['../boot_8php.html#a7ed4581ab66ebcde97f6b3730856b028',1,'boot.php']]],
+ ['namespace_5ffeed',['NAMESPACE_FEED',['../boot_8php.html#ac195fc9003298923ea81f144388e24b1',1,'boot.php']]],
+ ['namespace_5fgeorss',['NAMESPACE_GEORSS',['../boot_8php.html#a03d19251c245587de7ed959300b87bdf',1,'boot.php']]],
+ ['namespace_5fmedia',['NAMESPACE_MEDIA',['../boot_8php.html#a6626f383c3d2d459f731ab8b4f237d16',1,'boot.php']]],
+ ['namespace_5fostatus',['NAMESPACE_OSTATUS',['../boot_8php.html#acca19aae62e1a6951a856b945de20d67',1,'boot.php']]],
+ ['namespace_5fostatussub',['NAMESPACE_OSTATUSSUB',['../boot_8php.html#a181c111f4b6c14d091dfd3bf0d0a22cd',1,'boot.php']]],
+ ['namespace_5fpoco',['NAMESPACE_POCO',['../boot_8php.html#a0b73e2548d6f9beb9c93211f488e336a',1,'boot.php']]],
+ ['namespace_5fsalmon_5fme',['NAMESPACE_SALMON_ME',['../boot_8php.html#aee324eca9de4e0fedf01ab5f92e27c67',1,'boot.php']]],
+ ['namespace_5fstatusnet',['NAMESPACE_STATUSNET',['../boot_8php.html#afaf93b7026f784b113b4f8921745891e',1,'boot.php']]],
+ ['namespace_5fthread',['NAMESPACE_THREAD',['../boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86',1,'boot.php']]],
+ ['namespace_5ftomb',['NAMESPACE_TOMB',['../boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e',1,'boot.php']]],
+ ['namespace_5fzot',['NAMESPACE_ZOT',['../boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47',1,'boot.php']]],
+ ['network_5fdfrn',['NETWORK_DFRN',['../boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e',1,'boot.php']]],
+ ['network_5fdiaspora',['NETWORK_DIASPORA',['../boot_8php.html#a38f6c7fe33b5434a24b4314567753dfa',1,'boot.php']]],
+ ['network_5ffacebook',['NETWORK_FACEBOOK',['../boot_8php.html#af3905ea8f8568d0236db13fca40514e3',1,'boot.php']]],
+ ['network_5ffeed',['NETWORK_FEED',['../boot_8php.html#ab4bddb41a0cf407178ec5278b950c393',1,'boot.php']]],
+ ['network_5fgplus',['NETWORK_GPLUS',['../boot_8php.html#a8905fde0a5b7882bdc083b20d9b34701',1,'boot.php']]],
+ ['network_5flinkedin',['NETWORK_LINKEDIN',['../boot_8php.html#a5b043b7fdcfd4e8c9c3747574afc6caa',1,'boot.php']]],
+ ['network_5fmail',['NETWORK_MAIL',['../boot_8php.html#a7236b2cdcf59f02a42302e893a99013b',1,'boot.php']]],
+ ['network_5fmail2',['NETWORK_MAIL2',['../boot_8php.html#aa17a4f9c63f5cbc5c06f1066b6aebc42',1,'boot.php']]],
+ ['network_5fmyspace',['NETWORK_MYSPACE',['../boot_8php.html#ae94f7c7c0909629a75aed1c41f10bc95',1,'boot.php']]],
+ ['network_5fostatus',['NETWORK_OSTATUS',['../boot_8php.html#aef4b6c558c68c88c10f13c5a00c20e3d',1,'boot.php']]],
+ ['network_5fphantom',['NETWORK_PHANTOM',['../boot_8php.html#ab21fb0f3e6b962419955c6fc7f26734f',1,'boot.php']]],
+ ['network_5fxmpp',['NETWORK_XMPP',['../boot_8php.html#a43296b1b4398aacbf92a4b2d56bab91e',1,'boot.php']]],
+ ['network_5fzot',['NETWORK_ZOT',['../boot_8php.html#a2c65e925994566a63e6c03c381f1b4a0',1,'boot.php']]],
+ ['newfilename',['newfilename',['../namespacefriendica-to-smarty-tpl.html#ad9ef87ccb2c9960501f5e02424a22d80',1,'friendica-to-smarty-tpl']]],
+ ['notify_5fcomment',['NOTIFY_COMMENT',['../boot_8php.html#a20f0eed431d25870b624b8937a07a59f',1,'boot.php']]],
+ ['notify_5fconfirm',['NOTIFY_CONFIRM',['../boot_8php.html#af8c0cb0744c9a6b5d6d3baafb1f1e71d',1,'boot.php']]],
+ ['notify_5fintro',['NOTIFY_INTRO',['../boot_8php.html#a56fd673eaa7014150297ce1162502db5',1,'boot.php']]],
+ ['notify_5fmail',['NOTIFY_MAIL',['../boot_8php.html#a285732e7889fa7f333cbe431111e1029',1,'boot.php']]],
+ ['notify_5fpoke',['NOTIFY_POKE',['../boot_8php.html#aca08bc4f1554ba877500f6abcc99e1e8',1,'boot.php']]],
+ ['notify_5fprofile',['NOTIFY_PROFILE',['../boot_8php.html#a981d46380f9f23c308bac1f9cb00dc5b',1,'boot.php']]],
+ ['notify_5fsuggest',['NOTIFY_SUGGEST',['../boot_8php.html#a9d01ef178b72b145016cca1393415bc4',1,'boot.php']]],
+ ['notify_5fsystem',['NOTIFY_SYSTEM',['../boot_8php.html#a14d44d4a00223dc3db4ea962325db192',1,'boot.php']]],
+ ['notify_5ftagself',['NOTIFY_TAGSELF',['../boot_8php.html#ab724491497ab2618b23a01d5da60aec0',1,'boot.php']]],
+ ['notify_5ftagshare',['NOTIFY_TAGSHARE',['../boot_8php.html#af6937db5f581d006bf4a5c3d9c7e0461',1,'boot.php']]],
+ ['notify_5fwall',['NOTIFY_WALL',['../boot_8php.html#a505410c7edc5f5bb5fa227b98359793e',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_6f.html b/doc/html/search/variables_6f.html
new file mode 100644
index 000000000..f06e2e0f4
--- /dev/null
+++ b/doc/html/search/variables_6f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_6f.js b/doc/html/search/variables_6f.js
new file mode 100644
index 000000000..f7979a46a
--- /dev/null
+++ b/doc/html/search/variables_6f.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['outf',['outf',['../namespacefriendica-to-smarty-tpl.html#a87182a9bab47640428bd0b2b9946bef9',1,'friendica-to-smarty-tpl']]],
+ ['outpath',['outpath',['../namespacefriendica-to-smarty-tpl.html#a005c1b7a69cac31fad72a941974ba7bb',1,'friendica-to-smarty-tpl']]]
+];
diff --git a/doc/html/search/variables_70.html b/doc/html/search/variables_70.html
new file mode 100644
index 000000000..439d152f5
--- /dev/null
+++ b/doc/html/search/variables_70.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_70.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_70.js b/doc/html/search/variables_70.js
new file mode 100644
index 000000000..3b6d5ed63
--- /dev/null
+++ b/doc/html/search/variables_70.js
@@ -0,0 +1,38 @@
+var searchData=
+[
+ ['page',['page',['../mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'page():&#160;mod_import.php'],['../mod__new__channel_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'page():&#160;mod_new_channel.php'],['../mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'page():&#160;mod_register.php']]],
+ ['page_5fapplication',['PAGE_APPLICATION',['../boot_8php.html#a8231d115060d41a9c2a677f2c86f10ed',1,'boot.php']]],
+ ['page_5fautoconnect',['PAGE_AUTOCONNECT',['../boot_8php.html#aa275653b9c87abc7391bb8040c1c2de9',1,'boot.php']]],
+ ['page_5fdirectory_5fchannel',['PAGE_DIRECTORY_CHANNEL',['../boot_8php.html#a5b8484922918946d041e5e0515dbe718',1,'boot.php']]],
+ ['page_5fhidden',['PAGE_HIDDEN',['../boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640',1,'boot.php']]],
+ ['page_5fnormal',['PAGE_NORMAL',['../boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3',1,'boot.php']]],
+ ['page_5fremoved',['PAGE_REMOVED',['../boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6',1,'boot.php']]],
+ ['path',['path',['../namespacefriendica-to-smarty-tpl.html#a68d15934660cd1f4301ce251b1646f09',1,'friendica-to-smarty-tpl.path()'],['../namespaceupdatetpl.html#ae694f5e1f25f8a92a945eb90c432dfe6',1,'updatetpl.path()']]],
+ ['perms_5fa_5fdelegate',['PERMS_A_DELEGATE',['../boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b',1,'boot.php']]],
+ ['perms_5fcontacts',['PERMS_CONTACTS',['../boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6',1,'boot.php']]],
+ ['perms_5fnetwork',['PERMS_NETWORK',['../boot_8php.html#a6df1102664f64b274810db85197c2755',1,'boot.php']]],
+ ['perms_5fpublic',['PERMS_PUBLIC',['../boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7',1,'boot.php']]],
+ ['perms_5fr_5fabook',['PERMS_R_ABOOK',['../boot_8php.html#a3d6d4fc5fafcc9156811669158541caf',1,'boot.php']]],
+ ['perms_5fr_5fpages',['PERMS_R_PAGES',['../boot_8php.html#ab51965fabe54dc031e9a0ce1142ee83e',1,'boot.php']]],
+ ['perms_5fr_5fphotos',['PERMS_R_PHOTOS',['../boot_8php.html#a29e921c0c72412cc738e44cca6ca1f62',1,'boot.php']]],
+ ['perms_5fr_5fprofile',['PERMS_R_PROFILE',['../boot_8php.html#ad789aef3cb95fc1eb36be7c4283d0137',1,'boot.php']]],
+ ['perms_5fr_5fstorage',['PERMS_R_STORAGE',['../boot_8php.html#a1db4f0009c9cb4e107eab0f914a3c8dc',1,'boot.php']]],
+ ['perms_5fr_5fstream',['PERMS_R_STREAM',['../boot_8php.html#aec36f8fcd4cb14a52934590b3d6666b4',1,'boot.php']]],
+ ['perms_5fsite',['PERMS_SITE',['../boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f',1,'boot.php']]],
+ ['perms_5fspecific',['PERMS_SPECIFIC',['../boot_8php.html#a9cc986b4f9dd6558cbb2e25aadbfd964',1,'boot.php']]],
+ ['perms_5fw_5fchat',['PERMS_W_CHAT',['../boot_8php.html#acd877c405b06b348b37b6f7e62a211e9',1,'boot.php']]],
+ ['perms_5fw_5fcomment',['PERMS_W_COMMENT',['../boot_8php.html#a32df13fec0e43281da5979e1f5579aa8',1,'boot.php']]],
+ ['perms_5fw_5fmail',['PERMS_W_MAIL',['../boot_8php.html#a6b31dd451bc6c37fe7c9c766ff385aaf',1,'boot.php']]],
+ ['perms_5fw_5fpages',['PERMS_W_PAGES',['../boot_8php.html#aa9244fc9cc221980c07a20cc534111be',1,'boot.php']]],
+ ['perms_5fw_5fphotos',['PERMS_W_PHOTOS',['../boot_8php.html#a57eee7352714c004d36c26dda74af73e',1,'boot.php']]],
+ ['perms_5fw_5fstorage',['PERMS_W_STORAGE',['../boot_8php.html#a4fefd7486d3b888a05cfd3dc9575f115',1,'boot.php']]],
+ ['perms_5fw_5fstream',['PERMS_W_STREAM',['../boot_8php.html#a8bb0395933b5e886f086f6a2fb0bfa55',1,'boot.php']]],
+ ['perms_5fw_5ftagwall',['PERMS_W_TAGWALL',['../boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777',1,'boot.php']]],
+ ['perms_5fw_5fwall',['PERMS_W_WALL',['../boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2',1,'boot.php']]],
+ ['photo_5fnormal',['PHOTO_NORMAL',['../boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4',1,'boot.php']]],
+ ['photo_5fprofile',['PHOTO_PROFILE',['../boot_8php.html#ab4bc9c50ecc927b92d519e36562b0df0',1,'boot.php']]],
+ ['photo_5fthing',['PHOTO_THING',['../boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383',1,'boot.php']]],
+ ['photo_5fxchan',['PHOTO_XCHAN',['../boot_8php.html#ac43182e0d8bae7576a30b603774974f8',1,'boot.php']]],
+ ['php_5ftpl',['php_tpl',['../namespacefriendica-to-smarty-tpl.html#a5dfc21ab8282dda8e3a7dff43cd0e283',1,'friendica-to-smarty-tpl']]],
+ ['png_5fquality',['PNG_QUALITY',['../boot_8php.html#a8df201788c9dd0ca91384e3a14c08bce',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_72.html b/doc/html/search/variables_72.html
new file mode 100644
index 000000000..8a4ee7bb3
--- /dev/null
+++ b/doc/html/search/variables_72.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_72.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_72.js b/doc/html/search/variables_72.js
new file mode 100644
index 000000000..be2927ed5
--- /dev/null
+++ b/doc/html/search/variables_72.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+ ['random_5fstring_5fhex',['RANDOM_STRING_HEX',['../text_8php.html#aad557c054cf2ed915633701018fc7e3f',1,'text.php']]],
+ ['random_5fstring_5ftext',['RANDOM_STRING_TEXT',['../text_8php.html#a2ffd79c60cc87cec24ef76447b905187',1,'text.php']]],
+ ['rdelim',['rdelim',['../namespacefriendica-to-smarty-tpl.html#a8540514fb7c4aa18ad2dffa2a975036b',1,'friendica-to-smarty-tpl']]],
+ ['red_5fplatform',['RED_PLATFORM',['../boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4',1,'boot.php']]],
+ ['red_5fversion',['RED_VERSION',['../boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3',1,'boot.php']]],
+ ['register_5fapprove',['REGISTER_APPROVE',['../boot_8php.html#a7176c0f9f1c98421b97735d892cf6252',1,'boot.php']]],
+ ['register_5fclosed',['REGISTER_CLOSED',['../boot_8php.html#a69aac276ed82e010dc382b16ab4d59e1',1,'boot.php']]],
+ ['register_5fopen',['REGISTER_OPEN',['../boot_8php.html#ad8887b49bbb02dd30b4eb9f6c7773c63',1,'boot.php']]],
+ ['request_5ftoken_5fduration',['REQUEST_TOKEN_DURATION',['../oauth_8php.html#a7a32a5990f113ac9465b03b29175cf16',1,'oauth.php']]]
+];
diff --git a/doc/html/search/variables_73.html b/doc/html/search/variables_73.html
new file mode 100644
index 000000000..388a6d74b
--- /dev/null
+++ b/doc/html/search/variables_73.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_73.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_73.js b/doc/html/search/variables_73.js
new file mode 100644
index 000000000..380434573
--- /dev/null
+++ b/doc/html/search/variables_73.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['ssl_5fpolicy_5ffull',['SSL_POLICY_FULL',['../boot_8php.html#a02566ac9d891369a1d3ebb81a15722fc',1,'boot.php']]],
+ ['ssl_5fpolicy_5fnone',['SSL_POLICY_NONE',['../boot_8php.html#af86c651547aa8f9e549ee40a09455549',1,'boot.php']]],
+ ['ssl_5fpolicy_5fselfsign',['SSL_POLICY_SELFSIGN',['../boot_8php.html#adca48aee78465ae3064ca4432c0d87b5',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_74.html b/doc/html/search/variables_74.html
new file mode 100644
index 000000000..1665fb806
--- /dev/null
+++ b/doc/html/search/variables_74.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_74.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_74.js b/doc/html/search/variables_74.js
new file mode 100644
index 000000000..e36593332
--- /dev/null
+++ b/doc/html/search/variables_74.js
@@ -0,0 +1,18 @@
+var searchData=
+[
+ ['term_5fcategory',['TERM_CATEGORY',['../boot_8php.html#af33d1b2e98a1e21af672005525d46dfe',1,'boot.php']]],
+ ['term_5ffile',['TERM_FILE',['../boot_8php.html#afb97615e985a013799839b68b99018d7',1,'boot.php']]],
+ ['term_5fhashtag',['TERM_HASHTAG',['../boot_8php.html#a2750985ec445617d7e82ae3098c91e3f',1,'boot.php']]],
+ ['term_5fmention',['TERM_MENTION',['../boot_8php.html#ae37444eaa42705185080ccf3e670cbc2',1,'boot.php']]],
+ ['term_5fobj_5fchannel',['TERM_OBJ_CHANNEL',['../boot_8php.html#a8892374789fd261eb32a7969d934a14a',1,'boot.php']]],
+ ['term_5fobj_5fobject',['TERM_OBJ_OBJECT',['../boot_8php.html#a882b666adfe21f035a0f8c02806066d6',1,'boot.php']]],
+ ['term_5fobj_5fphoto',['TERM_OBJ_PHOTO',['../boot_8php.html#a64617d4655804de2a3c86501ab4fdbfd',1,'boot.php']]],
+ ['term_5fobj_5fpost',['TERM_OBJ_POST',['../boot_8php.html#a9eeb8989272d5ff804a616898bb13659',1,'boot.php']]],
+ ['term_5fobj_5fprofile',['TERM_OBJ_PROFILE',['../boot_8php.html#aead84fa27d7516b855220fe004964a45',1,'boot.php']]],
+ ['term_5fobj_5fthing',['TERM_OBJ_THING',['../boot_8php.html#a0cc8dc76bd10ac0ec81bac08a46f82fe',1,'boot.php']]],
+ ['term_5fpcategory',['TERM_PCATEGORY',['../boot_8php.html#a45b12aefab9675baffc7a07a09486db8',1,'boot.php']]],
+ ['term_5fsavedsearch',['TERM_SAVEDSEARCH',['../boot_8php.html#abd7bb40da9cc073297e49736b338ca07',1,'boot.php']]],
+ ['term_5fthing',['TERM_THING',['../boot_8php.html#a0d877df1e20bae765e1708be50f6b503',1,'boot.php']]],
+ ['term_5funknown',['TERM_UNKNOWN',['../boot_8php.html#a0c59dde058efebbc66520d136cbd1631',1,'boot.php']]],
+ ['tplpaths',['tplpaths',['../namespaceupdatetpl.html#a52a85ffa6b6d63d840b185a133478c12',1,'updatetpl']]]
+];
diff --git a/doc/html/search/variables_75.html b/doc/html/search/variables_75.html
new file mode 100644
index 000000000..7850aec50
--- /dev/null
+++ b/doc/html/search/variables_75.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_75.js b/doc/html/search/variables_75.js
new file mode 100644
index 000000000..940c28990
--- /dev/null
+++ b/doc/html/search/variables_75.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['update_5ffailed',['UPDATE_FAILED',['../boot_8php.html#a75fc600186b13c3b25e661afefb5eac8',1,'boot.php']]],
+ ['update_5fsuccess',['UPDATE_SUCCESS',['../boot_8php.html#ac86615ddc0763a00f5311c90e991730c',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_77.html b/doc/html/search/variables_77.html
new file mode 100644
index 000000000..434c6df9e
--- /dev/null
+++ b/doc/html/search/variables_77.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_77.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_77.js b/doc/html/search/variables_77.js
new file mode 100644
index 000000000..59eb7ded7
--- /dev/null
+++ b/doc/html/search/variables_77.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['while',['while',['../docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d',1,'docblox_errorchecker.php']]]
+];
diff --git a/doc/html/search/variables_78.html b/doc/html/search/variables_78.html
new file mode 100644
index 000000000..602e87995
--- /dev/null
+++ b/doc/html/search/variables_78.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_78.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_78.js b/doc/html/search/variables_78.js
new file mode 100644
index 000000000..70c46d827
--- /dev/null
+++ b/doc/html/search/variables_78.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['xchan_5fflags_5fhidden',['XCHAN_FLAGS_HIDDEN',['../boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_7a.html b/doc/html/search/variables_7a.html
new file mode 100644
index 000000000..8a5710483
--- /dev/null
+++ b/doc/html/search/variables_7a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_7a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_7a.js b/doc/html/search/variables_7a.js
new file mode 100644
index 000000000..c1d257f75
--- /dev/null
+++ b/doc/html/search/variables_7a.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['zcurl_5ftimeout',['ZCURL_TIMEOUT',['../boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af',1,'boot.php']]],
+ ['zot_5frevision',['ZOT_REVISION',['../boot_8php.html#a36b31575f992a10b5927b76efba9362e',1,'boot.php']]]
+];
diff --git a/doc/html/search_8php.html b/doc/html/search_8php.html
new file mode 100644
index 000000000..d88613963
--- /dev/null
+++ b/doc/html/search_8php.html
@@ -0,0 +1,210 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/search.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('search_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">search.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aa911f7c7f0cdb0284e35d0ed610f19c6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search_saved_searches</a> ()</td></tr>
+<tr class="separator:aa911f7c7f0cdb0284e35d0ed610f19c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf19fd30f07f495781ca0d7a0a08b435"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init</a> (&amp;$a)</td></tr>
+<tr class="separator:acf19fd30f07f495781ca0d7a0a08b435"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a230ec9681ddee3b5b8b40c8d550f32f7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7">search_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a230ec9681ddee3b5b8b40c8d550f32f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2568591359edde5b483a6cd9a24b2cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content</a> (&amp;$a, $update=0, $load=false)</td></tr>
+<tr class="separator:ab2568591359edde5b483a6cd9a24b2cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ab2568591359edde5b483a6cd9a24b2cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">search_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$update</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$load</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acf19fd30f07f495781ca0d7a0a08b435"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">search_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a230ec9681ddee3b5b8b40c8d550f32f7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">search_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa911f7c7f0cdb0284e35d0ed610f19c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">search_saved_searches </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/search_8php.js b/doc/html/search_8php.js
new file mode 100644
index 000000000..ffe2bd8fc
--- /dev/null
+++ b/doc/html/search_8php.js
@@ -0,0 +1,7 @@
+var search_8php =
+[
+ [ "search_content", "search_8php.html#ab2568591359edde5b483a6cd9a24b2cc", null ],
+ [ "search_init", "search_8php.html#acf19fd30f07f495781ca0d7a0a08b435", null ],
+ [ "search_post", "search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7", null ],
+ [ "search_saved_searches", "search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6", null ]
+]; \ No newline at end of file
diff --git a/doc/html/search__ac_8php.html b/doc/html/search__ac_8php.html
new file mode 100644
index 000000000..b8e9202ec
--- /dev/null
+++ b/doc/html/search__ac_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/search_ac.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('search__ac_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">search_ac.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a14f90c83a3f2be095e9e2992a8d66138"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a14f90c83a3f2be095e9e2992a8d66138"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a14f90c83a3f2be095e9e2992a8d66138"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">search_ac_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/search__ac_8php.js b/doc/html/search__ac_8php.js
new file mode 100644
index 000000000..27ce8db46
--- /dev/null
+++ b/doc/html/search__ac_8php.js
@@ -0,0 +1,4 @@
+var search__ac_8php =
+[
+ [ "search_ac_init", "search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138", null ]
+]; \ No newline at end of file
diff --git a/doc/html/security_8php.html b/doc/html/security_8php.html
new file mode 100644
index 000000000..6e020b13b
--- /dev/null
+++ b/doc/html/security_8php.html
@@ -0,0 +1,442 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/security.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('security_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">security.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:adc7bf51e3b8d67bd80e9348f9ab03733"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success</a> ($user_record, $login_initial=false, $interactive=false, $return=false, $update_lastlog=false)</td></tr>
+<tr class="separator:adc7bf51e3b8d67bd80e9348f9ab03733"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d23d2597aae380a3341872fe9513380"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel</a> ($change_channel)</td></tr>
+<tr class="separator:a8d23d2597aae380a3341872fe9513380"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa683bc025a1d2fe9065e2f6cd71a22f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql</a> ($owner_id, $remote_verified=false, $groups=null)</td></tr>
+<tr class="separator:afa683bc025a1d2fe9065e2f6cd71a22f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9355488460ab11d6058656ff919e5cf9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql</a> ($owner_id, $remote_verified=false, $groups=null)</td></tr>
+<tr class="separator:a9355488460ab11d6058656ff919e5cf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3bdd30dc60d9ee72370b866aa4a2d01"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">public_permissions_sql</a> ($observer_hash)</td></tr>
+<tr class="separator:ab3bdd30dc60d9ee72370b866aa4a2d01"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acd06ef411116115c2f0a92633700db8a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#acd06ef411116115c2f0a92633700db8a">get_form_security_token</a> ($typename= '')</td></tr>
+<tr class="separator:acd06ef411116115c2f0a92633700db8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c6180e82150a5a9af91a1255d096b5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#a9c6180e82150a5a9af91a1255d096b5c">check_form_security_token</a> ($typename= '', $formname= 'form_security_token')</td></tr>
+<tr class="separator:a9c6180e82150a5a9af91a1255d096b5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20f8b9851f23ee8894b8925584ef6821"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#a20f8b9851f23ee8894b8925584ef6821">check_form_security_std_err_msg</a> ()</td></tr>
+<tr class="separator:a20f8b9851f23ee8894b8925584ef6821"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77ba0d1889a39cf32434c5ce96fe1433"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr</a> ($err_redirect, $typename= '', $formname= 'form_security_token')</td></tr>
+<tr class="separator:a77ba0d1889a39cf32434c5ce96fe1433"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a444ac867dfa8c37cf0a7a226412bee28"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr</a> ($typename= '', $formname= 'form_security_token')</td></tr>
+<tr class="separator:a444ac867dfa8c37cf0a7a226412bee28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae92c5c1a1cbbc49ddbb8b3265d2db809"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(!function_exists('init_groups_visitor'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">stream_perms_api_uids</a> ($perms_min=<a class="el" href="boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f">PERMS_SITE</a>)</td></tr>
+<tr class="separator:ae92c5c1a1cbbc49ddbb8b3265d2db809"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="adc7bf51e3b8d67bd80e9348f9ab03733"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">authenticate_success </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user_record</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$login_initial</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$interactive</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$return</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$update_lastlog</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, and <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8d23d2597aae380a3341872fe9513380"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">change_channel </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$change_channel</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, and <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a20f8b9851f23ee8894b8925584ef6821"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_form_security_std_err_msg </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9c6180e82150a5a9af91a1255d096b5c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_form_security_token </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$typename</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$formname</em> = <code>'form_security_token'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, and <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a444ac867dfa8c37cf0a7a226412bee28"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_form_security_token_ForbiddenOnErr </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$typename</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$formname</em> = <code>'form_security_token'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a77ba0d1889a39cf32434c5ce96fe1433"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_form_security_token_redirectOnErr </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$err_redirect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$typename</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$formname</em> = <code>'form_security_token'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, and <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acd06ef411116115c2f0a92633700db8a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_form_security_token </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$typename</em> = <code>''</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, and <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9355488460ab11d6058656ff919e5cf9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">item_permissions_sql </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$owner_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$remote_verified</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$groups</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Construct permissions</p>
+<p>default permissions - anonymous user</p>
+<p>Profile owner - everything is visible</p>
+<p>Authenticated visitor. Unless pre-verified, check that the contact belongs to this $owner_id and load the groups the visitor belongs to. If pre-verified, the caller is expected to have already done this and passed the groups into this function.</p>
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afa683bc025a1d2fe9065e2f6cd71a22f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">permissions_sql </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$owner_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$remote_verified</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$groups</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Construct permissions</p>
+<p>default permissions - anonymous user</p>
+<p>Profile owner - everything is visible</p>
+<p>Authenticated visitor. Unless pre-verified, check that the contact belongs to this $owner_id and load the groups the visitor belongs to. If pre-verified, the caller is expected to have already done this and passed the groups into this function.</p>
+
+<p>Referenced by <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, and <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab3bdd30dc60d9ee72370b866aa4a2d01"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">public_permissions_sql </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer_hash</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae92c5c1a1cbbc49ddbb8b3265d2db809"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (!function_exists('init_groups_visitor')) stream_perms_api_uids </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$perms_min</em> = <code><a class="el" href="boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f">PERMS_SITE</a></code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, and <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/security_8php.js b/doc/html/security_8php.js
new file mode 100644
index 000000000..f31abc14a
--- /dev/null
+++ b/doc/html/security_8php.js
@@ -0,0 +1,14 @@
+var security_8php =
+[
+ [ "authenticate_success", "security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733", null ],
+ [ "change_channel", "security_8php.html#a8d23d2597aae380a3341872fe9513380", null ],
+ [ "check_form_security_std_err_msg", "security_8php.html#a20f8b9851f23ee8894b8925584ef6821", null ],
+ [ "check_form_security_token", "security_8php.html#a9c6180e82150a5a9af91a1255d096b5c", null ],
+ [ "check_form_security_token_ForbiddenOnErr", "security_8php.html#a444ac867dfa8c37cf0a7a226412bee28", null ],
+ [ "check_form_security_token_redirectOnErr", "security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433", null ],
+ [ "get_form_security_token", "security_8php.html#acd06ef411116115c2f0a92633700db8a", null ],
+ [ "item_permissions_sql", "security_8php.html#a9355488460ab11d6058656ff919e5cf9", null ],
+ [ "permissions_sql", "security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f", null ],
+ [ "public_permissions_sql", "security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01", null ],
+ [ "stream_perms_api_uids", "security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809", null ]
+]; \ No newline at end of file
diff --git a/doc/html/session_8php.html b/doc/html/session_8php.html
new file mode 100644
index 000000000..26dce80b2
--- /dev/null
+++ b/doc/html/session_8php.html
@@ -0,0 +1,317 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/session.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('session_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">session.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a4c0ead624f95483e386bc80abf570a8f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="session_8php.html#a4c0ead624f95483e386bc80abf570a8f">new_cookie</a> ($time)</td></tr>
+<tr class="separator:a4c0ead624f95483e386bc80abf570a8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26fa1042356d555023cbf15ddd4f8507"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="session_8php.html#a26fa1042356d555023cbf15ddd4f8507">ref_session_open</a> ($s, $<a class="el" href="php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b">n</a>)</td></tr>
+<tr class="separator:a26fa1042356d555023cbf15ddd4f8507"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f0f50576360d9ba52d29364e0b83a8e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e">ref_session_read</a> ($id)</td></tr>
+<tr class="separator:a7f0f50576360d9ba52d29364e0b83a8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac4461c1984543d3553e73dba2771568f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">ref_session_write</a> ($id, $data)</td></tr>
+<tr class="separator:ac4461c1984543d3553e73dba2771568f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e1c616e02b863d5450317d101366bb7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="session_8php.html#a5e1c616e02b863d5450317d101366bb7">ref_session_close</a> ()</td></tr>
+<tr class="separator:a5e1c616e02b863d5450317d101366bb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af230b86bfff7db66c3bdd7e0bbc24052"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052">ref_session_destroy</a> ($id)</td></tr>
+<tr class="separator:af230b86bfff7db66c3bdd7e0bbc24052"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac95373f4966862a028033dd2f94d4da1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="session_8php.html#ac95373f4966862a028033dd2f94d4da1">ref_session_gc</a> ($expire)</td></tr>
+<tr class="separator:ac95373f4966862a028033dd2f94d4da1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a62e4a6cb26b4bb1b8ddd8277b26090eb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="session_8php.html#a62e4a6cb26b4bb1b8ddd8277b26090eb">$session_exists</a> = 0</td></tr>
+<tr class="separator:a62e4a6cb26b4bb1b8ddd8277b26090eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0100a2642a5268594bbd5742a03d885"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="session_8php.html#af0100a2642a5268594bbd5742a03d885">$session_expire</a> = 180000</td></tr>
+<tr class="separator:af0100a2642a5268594bbd5742a03d885"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96b09cc763572f45280786a7b33feb7e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="session_8php.html#a96b09cc763572f45280786a7b33feb7e">$gc_probability</a> = 50</td></tr>
+<tr class="separator:a96b09cc763572f45280786a7b33feb7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a4c0ead624f95483e386bc80abf570a8f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">new_cookie </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$time</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a">nuke_session()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5e1c616e02b863d5450317d101366bb7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ref_session_close </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af230b86bfff7db66c3bdd7e0bbc24052"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ref_session_destroy </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac95373f4966862a028033dd2f94d4da1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ref_session_gc </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$expire</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a26fa1042356d555023cbf15ddd4f8507"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ref_session_open </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$n</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7f0f50576360d9ba52d29364e0b83a8e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ref_session_read </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac4461c1984543d3553e73dba2771568f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ref_session_write </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a96b09cc763572f45280786a7b33feb7e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$gc_probability = 50</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a62e4a6cb26b4bb1b8ddd8277b26090eb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$session_exists = 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e">ref_session_read()</a>, and <a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">ref_session_write()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af0100a2642a5268594bbd5742a03d885"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$session_expire = 180000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">ref_session_write()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/session_8php.js b/doc/html/session_8php.js
new file mode 100644
index 000000000..5d69851d0
--- /dev/null
+++ b/doc/html/session_8php.js
@@ -0,0 +1,13 @@
+var session_8php =
+[
+ [ "new_cookie", "session_8php.html#a4c0ead624f95483e386bc80abf570a8f", null ],
+ [ "ref_session_close", "session_8php.html#a5e1c616e02b863d5450317d101366bb7", null ],
+ [ "ref_session_destroy", "session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052", null ],
+ [ "ref_session_gc", "session_8php.html#ac95373f4966862a028033dd2f94d4da1", null ],
+ [ "ref_session_open", "session_8php.html#a26fa1042356d555023cbf15ddd4f8507", null ],
+ [ "ref_session_read", "session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e", null ],
+ [ "ref_session_write", "session_8php.html#ac4461c1984543d3553e73dba2771568f", null ],
+ [ "$gc_probability", "session_8php.html#a96b09cc763572f45280786a7b33feb7e", null ],
+ [ "$session_exists", "session_8php.html#a62e4a6cb26b4bb1b8ddd8277b26090eb", null ],
+ [ "$session_expire", "session_8php.html#af0100a2642a5268594bbd5742a03d885", null ]
+]; \ No newline at end of file
diff --git a/doc/html/settings_8php.html b/doc/html/settings_8php.html
new file mode 100644
index 000000000..9b6afedab
--- /dev/null
+++ b/doc/html/settings_8php.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/settings.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('settings_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">settings.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a39abc76ff5459c57e3b957664f273f18"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="settings_8php.html#a39abc76ff5459c57e3b957664f273f18">get_theme_config_file</a> ($theme)</td></tr>
+<tr class="separator:a39abc76ff5459c57e3b957664f273f18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a4cde287482fced008583f54ba2a722"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a3a4cde287482fced008583f54ba2a722"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5aebccb006bee1300078576baaf5582"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:ae5aebccb006bee1300078576baaf5582"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa7ee94d88ac088edb04ccf3a26de3586"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post</a> (&amp;$a)</td></tr>
+<tr class="separator:aa7ee94d88ac088edb04ccf3a26de3586"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a39abc76ff5459c57e3b957664f273f18"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_theme_config_file </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$theme</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae5aebccb006bee1300078576baaf5582"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">settings_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3a4cde287482fced008583f54ba2a722"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">settings_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa7ee94d88ac088edb04ccf3a26de3586"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">settings_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/settings_8php.js b/doc/html/settings_8php.js
new file mode 100644
index 000000000..facd5da67
--- /dev/null
+++ b/doc/html/settings_8php.js
@@ -0,0 +1,7 @@
+var settings_8php =
+[
+ [ "get_theme_config_file", "settings_8php.html#a39abc76ff5459c57e3b957664f273f18", null ],
+ [ "settings_aside", "settings_8php.html#ae5aebccb006bee1300078576baaf5582", null ],
+ [ "settings_init", "settings_8php.html#a3a4cde287482fced008583f54ba2a722", null ],
+ [ "settings_post", "settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586", null ]
+]; \ No newline at end of file
diff --git a/doc/html/setup_8php.html b/doc/html/setup_8php.html
new file mode 100644
index 000000000..6289f702b
--- /dev/null
+++ b/doc/html/setup_8php.html
@@ -0,0 +1,479 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/setup.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('setup_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">setup.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a267555abd17290e659b4bf44b885e4e0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a267555abd17290e659b4bf44b885e4e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a13cf286774149a0a7bd8adb8179cec75"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a13cf286774149a0a7bd8adb8179cec75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8652788e8589778c5f81634a9d5b9429"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#a8652788e8589778c5f81634a9d5b9429">get_db_errno</a> ()</td></tr>
+<tr class="separator:a8652788e8589778c5f81634a9d5b9429"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88247384a96e14516f474d7af6a465c1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a88247384a96e14516f474d7af6a465c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae8e4d9279a61de74d5f39962cb7b6ca1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#ae8e4d9279a61de74d5f39962cb7b6ca1">check_add</a> (&amp;$checks, $title, $status, $required, $help)</td></tr>
+<tr class="separator:ae8e4d9279a61de74d5f39962cb7b6ca1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14d208682a88632290c895d20da6e7d6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php</a> (&amp;$phpath, &amp;$checks)</td></tr>
+<tr class="separator:a14d208682a88632290c895d20da6e7d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3bbb111780da70ba35cc23a306f2c76"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76">check_keys</a> (&amp;$checks)</td></tr>
+<tr class="separator:aa3bbb111780da70ba35cc23a306f2c76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69a450e06dd3771fb51d3e4b0266a35e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e">check_funcs</a> (&amp;$checks)</td></tr>
+<tr class="separator:a69a450e06dd3771fb51d3e4b0266a35e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ad92c0857d1dadd6b60a9a557159c9f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f">check_htconfig</a> (&amp;$checks)</td></tr>
+<tr class="separator:a5ad92c0857d1dadd6b60a9a557159c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd8b0b3ade1507c45325caf377bf459d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#afd8b0b3ade1507c45325caf377bf459d">check_smarty3</a> (&amp;$checks)</td></tr>
+<tr class="separator:afd8b0b3ade1507c45325caf377bf459d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c3f3b671381f6dccd924b8ecdfc56c4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess</a> (&amp;$checks)</td></tr>
+<tr class="separator:a0c3f3b671381f6dccd924b8ecdfc56c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe405d227ba7232971964a706d4f3bce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#abe405d227ba7232971964a706d4f3bce">manual_config</a> (&amp;$a)</td></tr>
+<tr class="separator:abe405d227ba7232971964a706d4f3bce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b375ddc555140236fc500135de99371"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#a2b375ddc555140236fc500135de99371">load_database_rem</a> ($v, $i)</td></tr>
+<tr class="separator:a2b375ddc555140236fc500135de99371"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2e0375a9ab87ebe6e78124ee125054a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database</a> ($db)</td></tr>
+<tr class="separator:ad2e0375a9ab87ebe6e78124ee125054a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea1ebdda58ec938f4e7b31aa5c5f6b58"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">what_next</a> ()</td></tr>
+<tr class="separator:aea1ebdda58ec938f4e7b31aa5c5f6b58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:addb24714bc2542aa4f4215e98fe48432"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#addb24714bc2542aa4f4215e98fe48432">$install_wizard_pass</a> =1</td></tr>
+<tr class="separator:addb24714bc2542aa4f4215e98fe48432"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ae8e4d9279a61de74d5f39962cb7b6ca1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_add </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$checks</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$title</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$status</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$required</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$help</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>checks : array passed to template title : string status : boolean required : boolean help : string optional </p>
+
+<p>Referenced by <a class="el" href="setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e">check_funcs()</a>, <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f">check_htconfig()</a>, <a class="el" href="setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76">check_keys()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, and <a class="el" href="setup_8php.html#afd8b0b3ade1507c45325caf377bf459d">check_smarty3()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a69a450e06dd3771fb51d3e4b0266a35e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_funcs </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$checks</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0c3f3b671381f6dccd924b8ecdfc56c4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_htaccess </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$checks</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5ad92c0857d1dadd6b60a9a557159c9f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_htconfig </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$checks</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa3bbb111780da70ba35cc23a306f2c76"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_keys </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$checks</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a14d208682a88632290c895d20da6e7d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_php </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$phpath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$checks</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afd8b0b3ade1507c45325caf377bf459d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_smarty3 </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$checks</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8652788e8589778c5f81634a9d5b9429"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_db_errno </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad2e0375a9ab87ebe6e78124ee125054a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">load_database </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$db</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2b375ddc555140236fc500135de99371"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">load_database_rem </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$v</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$i</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abe405d227ba7232971964a706d4f3bce"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">manual_config </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a88247384a96e14516f474d7af6a465c1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">setup_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a267555abd17290e659b4bf44b885e4e0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">setup_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a13cf286774149a0a7bd8adb8179cec75"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">setup_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aea1ebdda58ec938f4e7b31aa5c5f6b58"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">what_next </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="addb24714bc2542aa4f4215e98fe48432"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$install_wizard_pass =1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init()</a>, and <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/setup_8php.js b/doc/html/setup_8php.js
new file mode 100644
index 000000000..386036b13
--- /dev/null
+++ b/doc/html/setup_8php.js
@@ -0,0 +1,19 @@
+var setup_8php =
+[
+ [ "check_add", "setup_8php.html#ae8e4d9279a61de74d5f39962cb7b6ca1", null ],
+ [ "check_funcs", "setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e", null ],
+ [ "check_htaccess", "setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4", null ],
+ [ "check_htconfig", "setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f", null ],
+ [ "check_keys", "setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76", null ],
+ [ "check_php", "setup_8php.html#a14d208682a88632290c895d20da6e7d6", null ],
+ [ "check_smarty3", "setup_8php.html#afd8b0b3ade1507c45325caf377bf459d", null ],
+ [ "get_db_errno", "setup_8php.html#a8652788e8589778c5f81634a9d5b9429", null ],
+ [ "load_database", "setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a", null ],
+ [ "load_database_rem", "setup_8php.html#a2b375ddc555140236fc500135de99371", null ],
+ [ "manual_config", "setup_8php.html#abe405d227ba7232971964a706d4f3bce", null ],
+ [ "setup_content", "setup_8php.html#a88247384a96e14516f474d7af6a465c1", null ],
+ [ "setup_init", "setup_8php.html#a267555abd17290e659b4bf44b885e4e0", null ],
+ [ "setup_post", "setup_8php.html#a13cf286774149a0a7bd8adb8179cec75", null ],
+ [ "what_next", "setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58", null ],
+ [ "$install_wizard_pass", "setup_8php.html#addb24714bc2542aa4f4215e98fe48432", null ]
+]; \ No newline at end of file
diff --git a/doc/html/share_8php.html b/doc/html/share_8php.html
new file mode 100644
index 000000000..0ebf74ae1
--- /dev/null
+++ b/doc/html/share_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/share.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('share_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">share.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:afeb26046bdd02567ecd29ab5f188b249"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init</a> (&amp;$a)</td></tr>
+<tr class="separator:afeb26046bdd02567ecd29ab5f188b249"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="afeb26046bdd02567ecd29ab5f188b249"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">share_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/share_8php.js b/doc/html/share_8php.js
new file mode 100644
index 000000000..6f63d2afc
--- /dev/null
+++ b/doc/html/share_8php.js
@@ -0,0 +1,4 @@
+var share_8php =
+[
+ [ "share_init", "share_8php.html#afeb26046bdd02567ecd29ab5f188b249", null ]
+]; \ No newline at end of file
diff --git a/doc/html/siteinfo_8php.html b/doc/html/siteinfo_8php.html
new file mode 100644
index 000000000..a04ae5de8
--- /dev/null
+++ b/doc/html/siteinfo_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/siteinfo.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('siteinfo_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">siteinfo.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a3efbd0bd6564af19ec0a9ce0294e59d0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a3efbd0bd6564af19ec0a9ce0294e59d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70c09bfb6dd1c86a125a35f62ed53656"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a70c09bfb6dd1c86a125a35f62ed53656"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a70c09bfb6dd1c86a125a35f62ed53656"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">siteinfo_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3efbd0bd6564af19ec0a9ce0294e59d0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">siteinfo_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/siteinfo_8php.js b/doc/html/siteinfo_8php.js
new file mode 100644
index 000000000..f293cd4f6
--- /dev/null
+++ b/doc/html/siteinfo_8php.js
@@ -0,0 +1,5 @@
+var siteinfo_8php =
+[
+ [ "siteinfo_content", "siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656", null ],
+ [ "siteinfo_init", "siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0", null ]
+]; \ No newline at end of file
diff --git a/doc/html/smilies_8php.html b/doc/html/smilies_8php.html
new file mode 100644
index 000000000..ae04db800
--- /dev/null
+++ b/doc/html/smilies_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/smilies.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('smilies_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">smilies.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab43b1e9f33a700a830aff14c7b3a617f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f">smilies_content</a> (&amp;$a)</td></tr>
+<tr class="separator:ab43b1e9f33a700a830aff14c7b3a617f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ab43b1e9f33a700a830aff14c7b3a617f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">smilies_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/smilies_8php.js b/doc/html/smilies_8php.js
new file mode 100644
index 000000000..dc1c06b09
--- /dev/null
+++ b/doc/html/smilies_8php.js
@@ -0,0 +1,4 @@
+var smilies_8php =
+[
+ [ "smilies_content", "smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f", null ]
+]; \ No newline at end of file
diff --git a/doc/html/socgraph_8php.html b/doc/html/socgraph_8php.html
new file mode 100644
index 000000000..48ec56fb1
--- /dev/null
+++ b/doc/html/socgraph_8php.html
@@ -0,0 +1,430 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/socgraph.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('socgraph_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">socgraph.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aad9ee2421fd1ca405b241e8ed72d9aca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load</a> ($xchan=null, $url=null)</td></tr>
+<tr class="separator:aad9ee2421fd1ca405b241e8ed72d9aca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a887d576f21fd708132a06d0f72f90f84"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84">count_common_friends</a> ($uid, $xchan)</td></tr>
+<tr class="separator:a887d576f21fd708132a06d0f72f90f84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d34cd58025bcd9e575282f44db75918"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">common_friends</a> ($uid, $xchan, $start=0, $limit=100000000, $shuffle=false)</td></tr>
+<tr class="separator:a7d34cd58025bcd9e575282f44db75918"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af175807406d94407a5e11742a3287746"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socgraph_8php.html#af175807406d94407a5e11742a3287746">count_common_friends_zcid</a> ($uid, $zcid)</td></tr>
+<tr class="separator:af175807406d94407a5e11742a3287746"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac343a846241d36cdf046b08f3396cfe9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9">common_friends_zcid</a> ($uid, $zcid, $start=0, $limit=9999, $shuffle=false)</td></tr>
+<tr class="separator:ac343a846241d36cdf046b08f3396cfe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af29d056beec10b4e38e5209c92452894"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socgraph_8php.html#af29d056beec10b4e38e5209c92452894">count_all_friends</a> ($uid, $cid)</td></tr>
+<tr class="separator:af29d056beec10b4e38e5209c92452894"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16ac51c505d72987ed8d6d6aed0e8586"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586">all_friends</a> ($uid, $cid, $start=0, $limit=80)</td></tr>
+<tr class="separator:a16ac51c505d72987ed8d6d6aed0e8586"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76e6fca3d2bc842dcd9e710bb87c8329"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">suggestion_query</a> ($uid, $myxchan, $start=0, $limit=80)</td></tr>
+<tr class="separator:a76e6fca3d2bc842dcd9e710bb87c8329"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a790690bb1a1d02483fe31632a160144d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions</a> ()</td></tr>
+<tr class="separator:a790690bb1a1d02483fe31632a160144d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a16ac51c505d72987ed8d6d6aed0e8586"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">all_friends </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$cid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$start</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$limit</em> = <code>80</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7d34cd58025bcd9e575282f44db75918"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">common_friends </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$start</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$limit</em> = <code>100000000</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$shuffle</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, and <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac343a846241d36cdf046b08f3396cfe9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">common_friends_zcid </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$zcid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$start</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$limit</em> = <code>9999</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$shuffle</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af29d056beec10b4e38e5209c92452894"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">count_all_friends </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$cid</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a887d576f21fd708132a06d0f72f90f84"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">count_common_friends </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, and <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af175807406d94407a5e11742a3287746"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">count_common_friends_zcid </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$zcid</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aad9ee2421fd1ca405b241e8ed72d9aca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">poco_load </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em> = <code>null</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a76e6fca3d2bc842dcd9e710bb87c8329"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">suggestion_query </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$myxchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$start</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$limit</em> = <code>80</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a790690bb1a1d02483fe31632a160144d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_suggestions </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/socgraph_8php.js b/doc/html/socgraph_8php.js
new file mode 100644
index 000000000..1c326fcff
--- /dev/null
+++ b/doc/html/socgraph_8php.js
@@ -0,0 +1,12 @@
+var socgraph_8php =
+[
+ [ "all_friends", "socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586", null ],
+ [ "common_friends", "socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918", null ],
+ [ "common_friends_zcid", "socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9", null ],
+ [ "count_all_friends", "socgraph_8php.html#af29d056beec10b4e38e5209c92452894", null ],
+ [ "count_common_friends", "socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84", null ],
+ [ "count_common_friends_zcid", "socgraph_8php.html#af175807406d94407a5e11742a3287746", null ],
+ [ "poco_load", "socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca", null ],
+ [ "suggestion_query", "socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329", null ],
+ [ "update_suggestions", "socgraph_8php.html#a790690bb1a1d02483fe31632a160144d", null ]
+]; \ No newline at end of file
diff --git a/doc/html/starred_8php.html b/doc/html/starred_8php.html
new file mode 100644
index 000000000..f5cec3e80
--- /dev/null
+++ b/doc/html/starred_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/starred.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('starred_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">starred.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a63024fb418c678e49fd535e3752d349a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a63024fb418c678e49fd535e3752d349a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a63024fb418c678e49fd535e3752d349a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">starred_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/starred_8php.js b/doc/html/starred_8php.js
new file mode 100644
index 000000000..328089950
--- /dev/null
+++ b/doc/html/starred_8php.js
@@ -0,0 +1,4 @@
+var starred_8php =
+[
+ [ "starred_init", "starred_8php.html#a63024fb418c678e49fd535e3752d349a", null ]
+]; \ No newline at end of file
diff --git a/doc/html/style_8php.html b/doc/html/style_8php.html
new file mode 100644
index 000000000..93d2929a6
--- /dev/null
+++ b/doc/html/style_8php.html
@@ -0,0 +1,378 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: view/theme/redbasic/php/style.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('style_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">style.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a4131d1765ee4deb28e83fc4527943ee0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#a4131d1765ee4deb28e83fc4527943ee0">$line_height</a> = false</td></tr>
+<tr class="separator:a4131d1765ee4deb28e83fc4527943ee0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:addf42c3d02e53f8e4153f3bb9dabfcda"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda">$redbasic_font_size</a> = false</td></tr>
+<tr class="separator:addf42c3d02e53f8e4153f3bb9dabfcda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcfa918e05b5a98cbddc84bc3f1c15cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc">$resolution</a> = false</td></tr>
+<tr class="separator:adcfa918e05b5a98cbddc84bc3f1c15cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4086b1a341b7c8462a47fb1b25fd49ab"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab">$colour</a> = false</td></tr>
+<tr class="separator:a4086b1a341b7c8462a47fb1b25fd49ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb3046ad9c01b7d60cde20f58d77c548"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#acb3046ad9c01b7d60cde20f58d77c548">$shadows</a> = false</td></tr>
+<tr class="separator:acb3046ad9c01b7d60cde20f58d77c548"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a938168352fd3cdaa1c10c16a34f5938a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#a938168352fd3cdaa1c10c16a34f5938a">$navcolour</a> = false</td></tr>
+<tr class="separator:a938168352fd3cdaa1c10c16a34f5938a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a232513bf4339fe34908c4c63cb93168b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#a232513bf4339fe34908c4c63cb93168b">$nav_bg_1</a> = &quot;f88&quot;</td></tr>
+<tr class="separator:a232513bf4339fe34908c4c63cb93168b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03a72942b7428fd9af1224770d20a8ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#a03a72942b7428fd9af1224770d20a8ba">$nav_bg_2</a> = &quot;b00&quot;</td></tr>
+<tr class="separator:a03a72942b7428fd9af1224770d20a8ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc190405dda0a23a80551dee11c74c0c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#acc190405dda0a23a80551dee11c74c0c">$nav_bg_3</a> = &quot;f00&quot;</td></tr>
+<tr class="separator:acc190405dda0a23a80551dee11c74c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef266cfcb27c6ddb3292584c945bab33"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#aef266cfcb27c6ddb3292584c945bab33">$nav_bg_4</a> = &quot;b00&quot;</td></tr>
+<tr class="separator:aef266cfcb27c6ddb3292584c945bab33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa658152b727ea1233f6df6ded6437dad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#aa658152b727ea1233f6df6ded6437dad">$displaystyle</a> = false</td></tr>
+<tr class="separator:aa658152b727ea1233f6df6ded6437dad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6628a80911a6b37b464ef110ac8f6e42"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#a6628a80911a6b37b464ef110ac8f6e42">$linkcolour</a> = false</td></tr>
+<tr class="separator:a6628a80911a6b37b464ef110ac8f6e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b942d36d8862908864e2ffa4521be70"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#a0b942d36d8862908864e2ffa4521be70">$shiny</a> = false</td></tr>
+<tr class="separator:a0b942d36d8862908864e2ffa4521be70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8749837e08dfb3372662af9c33fa2a2e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#a8749837e08dfb3372662af9c33fa2a2e">$site_line_height</a> = <a class="el" href="include_2config_8php.html#a5d19130818ea4c6b8726ab62cd989c15">get_config</a>(&quot;redbasic&quot;,&quot;line_height&quot;)</td></tr>
+<tr class="separator:a8749837e08dfb3372662af9c33fa2a2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45e6fafa363bc4586fa91dce1786be4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#a45e6fafa363bc4586fa91dce1786be4f">$site_redbasic_font_size</a> = <a class="el" href="include_2config_8php.html#a5d19130818ea4c6b8726ab62cd989c15">get_config</a>(&quot;redbasic&quot;, &quot;font_size&quot; )</td></tr>
+<tr class="separator:a45e6fafa363bc4586fa91dce1786be4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02d39b683a42fffbb27823d3860283bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#a02d39b683a42fffbb27823d3860283bd">$site_colour</a> = <a class="el" href="include_2config_8php.html#a5d19130818ea4c6b8726ab62cd989c15">get_config</a>(&quot;redbasic&quot;, &quot;colour&quot; )</td></tr>
+<tr class="separator:a02d39b683a42fffbb27823d3860283bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a473a25349f07563d6c56d14031f02a"><td class="memItemLeft" align="right" valign="top">if(<a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">local_user</a>()) if(!<a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled</a>(<a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">local_user</a>(),'expert')) <br class="typebreak"/>
+if($line_height===false) if($line_height===false) <br class="typebreak"/>
+if($redbasic_font_size===false) <br class="typebreak"/>
+if($redbasic_font_size===false) <br class="typebreak"/>
+if($colour===false) if($colour===false) <br class="typebreak"/>
+if($navcolour===&quot;black&quot;)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="style_8php.html#a0a473a25349f07563d6c56d14031f02a">if</a> (file_exists('view/theme/'.<a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme</a>(). '/css/style.css'))</td></tr>
+<tr class="separator:a0a473a25349f07563d6c56d14031f02a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a4086b1a341b7c8462a47fb1b25fd49ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$colour = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#ab5073653dfb9eb2216f8580098a87071">redbasic_form()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa658152b727ea1233f6df6ded6437dad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$displaystyle = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#ab5073653dfb9eb2216f8580098a87071">redbasic_form()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4131d1765ee4deb28e83fc4527943ee0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$line_height = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#ab5073653dfb9eb2216f8580098a87071">redbasic_form()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6628a80911a6b37b464ef110ac8f6e42"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$linkcolour = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#ab5073653dfb9eb2216f8580098a87071">redbasic_form()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a232513bf4339fe34908c4c63cb93168b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$nav_bg_1 = &quot;f88&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a03a72942b7428fd9af1224770d20a8ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$nav_bg_2 = &quot;b00&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acc190405dda0a23a80551dee11c74c0c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$nav_bg_3 = &quot;f00&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aef266cfcb27c6ddb3292584c945bab33"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$nav_bg_4 = &quot;b00&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a938168352fd3cdaa1c10c16a34f5938a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$navcolour = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#ab5073653dfb9eb2216f8580098a87071">redbasic_form()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="addf42c3d02e53f8e4153f3bb9dabfcda"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$redbasic_font_size = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adcfa918e05b5a98cbddc84bc3f1c15cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$resolution = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acb3046ad9c01b7d60cde20f58d77c548"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$shadows = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#ab5073653dfb9eb2216f8580098a87071">redbasic_form()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0b942d36d8862908864e2ffa4521be70"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$shiny = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#ab5073653dfb9eb2216f8580098a87071">redbasic_form()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a02d39b683a42fffbb27823d3860283bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$site_colour = <a class="el" href="include_2config_8php.html#a5d19130818ea4c6b8726ab62cd989c15">get_config</a>(&quot;redbasic&quot;, &quot;colour&quot; )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8749837e08dfb3372662af9c33fa2a2e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$site_line_height = <a class="el" href="include_2config_8php.html#a5d19130818ea4c6b8726ab62cd989c15">get_config</a>(&quot;redbasic&quot;,&quot;line_height&quot;)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a45e6fafa363bc4586fa91dce1786be4f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$site_redbasic_font_size = <a class="el" href="include_2config_8php.html#a5d19130818ea4c6b8726ab62cd989c15">get_config</a>(&quot;redbasic&quot;, &quot;font_size&quot; )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0a473a25349f07563d6c56d14031f02a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">if ($colour===&quot;dark&quot;) if (($redbasic_font_size &gt;=8.0)&amp;&amp;($redbasic_font_size&lt;=20.0)) if (($line_height &gt;=1.0)&amp;&amp;($line_height&lt;=2.0)) if($shadows===&quot;true&quot;)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/style_8php.js b/doc/html/style_8php.js
new file mode 100644
index 000000000..35e00198f
--- /dev/null
+++ b/doc/html/style_8php.js
@@ -0,0 +1,20 @@
+var style_8php =
+[
+ [ "$colour", "style_8php.html#a4086b1a341b7c8462a47fb1b25fd49ab", null ],
+ [ "$displaystyle", "style_8php.html#aa658152b727ea1233f6df6ded6437dad", null ],
+ [ "$line_height", "style_8php.html#a4131d1765ee4deb28e83fc4527943ee0", null ],
+ [ "$linkcolour", "style_8php.html#a6628a80911a6b37b464ef110ac8f6e42", null ],
+ [ "$nav_bg_1", "style_8php.html#a232513bf4339fe34908c4c63cb93168b", null ],
+ [ "$nav_bg_2", "style_8php.html#a03a72942b7428fd9af1224770d20a8ba", null ],
+ [ "$nav_bg_3", "style_8php.html#acc190405dda0a23a80551dee11c74c0c", null ],
+ [ "$nav_bg_4", "style_8php.html#aef266cfcb27c6ddb3292584c945bab33", null ],
+ [ "$navcolour", "style_8php.html#a938168352fd3cdaa1c10c16a34f5938a", null ],
+ [ "$redbasic_font_size", "style_8php.html#addf42c3d02e53f8e4153f3bb9dabfcda", null ],
+ [ "$resolution", "style_8php.html#adcfa918e05b5a98cbddc84bc3f1c15cc", null ],
+ [ "$shadows", "style_8php.html#acb3046ad9c01b7d60cde20f58d77c548", null ],
+ [ "$shiny", "style_8php.html#a0b942d36d8862908864e2ffa4521be70", null ],
+ [ "$site_colour", "style_8php.html#a02d39b683a42fffbb27823d3860283bd", null ],
+ [ "$site_line_height", "style_8php.html#a8749837e08dfb3372662af9c33fa2a2e", null ],
+ [ "$site_redbasic_font_size", "style_8php.html#a45e6fafa363bc4586fa91dce1786be4f", null ],
+ [ "if", "style_8php.html#a0a473a25349f07563d6c56d14031f02a", null ]
+]; \ No newline at end of file
diff --git a/doc/html/subthread_8php.html b/doc/html/subthread_8php.html
new file mode 100644
index 000000000..1f318b4e5
--- /dev/null
+++ b/doc/html/subthread_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/subthread.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('subthread_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">subthread.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a50368f3d825b77996030528e7fbfa3d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a50368f3d825b77996030528e7fbfa3d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a50368f3d825b77996030528e7fbfa3d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">subthread_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/subthread_8php.js b/doc/html/subthread_8php.js
new file mode 100644
index 000000000..93781b6dd
--- /dev/null
+++ b/doc/html/subthread_8php.js
@@ -0,0 +1,4 @@
+var subthread_8php =
+[
+ [ "subthread_content", "subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3", null ]
+]; \ No newline at end of file
diff --git a/doc/html/suggest_8php.html b/doc/html/suggest_8php.html
new file mode 100644
index 000000000..e9676b70d
--- /dev/null
+++ b/doc/html/suggest_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/suggest.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('suggest_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">suggest.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a696acf1dd8070e479adcc80c63c6718c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a696acf1dd8070e479adcc80c63c6718c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4df91c84594d51ba56b5918de414230d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="suggest_8php.html#a4df91c84594d51ba56b5918de414230d">suggest_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:a4df91c84594d51ba56b5918de414230d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58748a8235d4523f8333847f3e42dd91"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a58748a8235d4523f8333847f3e42dd91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a4df91c84594d51ba56b5918de414230d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">suggest_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a58748a8235d4523f8333847f3e42dd91"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">suggest_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a696acf1dd8070e479adcc80c63c6718c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">suggest_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/suggest_8php.js b/doc/html/suggest_8php.js
new file mode 100644
index 000000000..98b2888c5
--- /dev/null
+++ b/doc/html/suggest_8php.js
@@ -0,0 +1,6 @@
+var suggest_8php =
+[
+ [ "suggest_aside", "suggest_8php.html#a4df91c84594d51ba56b5918de414230d", null ],
+ [ "suggest_content", "suggest_8php.html#a58748a8235d4523f8333847f3e42dd91", null ],
+ [ "suggest_init", "suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c", null ]
+]; \ No newline at end of file
diff --git a/doc/html/sync_off.png b/doc/html/sync_off.png
new file mode 100644
index 000000000..3b443fc62
--- /dev/null
+++ b/doc/html/sync_off.png
Binary files differ
diff --git a/doc/html/sync_on.png b/doc/html/sync_on.png
new file mode 100644
index 000000000..e08320fb6
--- /dev/null
+++ b/doc/html/sync_on.png
Binary files differ
diff --git a/doc/html/system__unavailable_8php.html b/doc/html/system__unavailable_8php.html
new file mode 100644
index 000000000..812387b18
--- /dev/null
+++ b/doc/html/system__unavailable_8php.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/system_unavailable.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('system__unavailable_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">system_unavailable.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a73751a6bcc17ad3ca503496e2fb020fa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa">system_down</a> ()</td></tr>
+<tr class="separator:a73751a6bcc17ad3ca503496e2fb020fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a73751a6bcc17ad3ca503496e2fb020fa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">system_down </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0">system_unavailable()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/system__unavailable_8php.js b/doc/html/system__unavailable_8php.js
new file mode 100644
index 000000000..c92284b98
--- /dev/null
+++ b/doc/html/system__unavailable_8php.js
@@ -0,0 +1,4 @@
+var system__unavailable_8php =
+[
+ [ "system_down", "system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa", null ]
+]; \ No newline at end of file
diff --git a/doc/html/tab_a.png b/doc/html/tab_a.png
new file mode 100644
index 000000000..3b725c41c
--- /dev/null
+++ b/doc/html/tab_a.png
Binary files differ
diff --git a/doc/html/tab_b.png b/doc/html/tab_b.png
new file mode 100644
index 000000000..e2b4a8638
--- /dev/null
+++ b/doc/html/tab_b.png
Binary files differ
diff --git a/doc/html/tab_h.png b/doc/html/tab_h.png
new file mode 100644
index 000000000..fd5cb7054
--- /dev/null
+++ b/doc/html/tab_h.png
Binary files differ
diff --git a/doc/html/tab_s.png b/doc/html/tab_s.png
new file mode 100644
index 000000000..ab478c95b
--- /dev/null
+++ b/doc/html/tab_s.png
Binary files differ
diff --git a/doc/html/tabs.css b/doc/html/tabs.css
new file mode 100644
index 000000000..9cf578f23
--- /dev/null
+++ b/doc/html/tabs.css
@@ -0,0 +1,60 @@
+.tabs, .tabs2, .tabs3 {
+ background-image: url('tab_b.png');
+ width: 100%;
+ z-index: 101;
+ font-size: 13px;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+.tabs2 {
+ font-size: 10px;
+}
+.tabs3 {
+ font-size: 9px;
+}
+
+.tablist {
+ margin: 0;
+ padding: 0;
+ display: table;
+}
+
+.tablist li {
+ float: left;
+ display: table-cell;
+ background-image: url('tab_b.png');
+ line-height: 36px;
+ list-style: none;
+}
+
+.tablist a {
+ display: block;
+ padding: 0 20px;
+ font-weight: bold;
+ background-image:url('tab_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color: #283A5D;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+ outline: none;
+}
+
+.tabs3 .tablist a {
+ padding: 0 10px;
+}
+
+.tablist a:hover {
+ background-image: url('tab_h.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+ text-decoration: none;
+}
+
+.tablist li.current a {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
diff --git a/doc/html/tagger_8php.html b/doc/html/tagger_8php.html
new file mode 100644
index 000000000..61d449590
--- /dev/null
+++ b/doc/html/tagger_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/tagger.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('tagger_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">tagger.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a0e4a3eb177d1684553c547503d67161c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a0e4a3eb177d1684553c547503d67161c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a0e4a3eb177d1684553c547503d67161c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tagger_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/tagger_8php.js b/doc/html/tagger_8php.js
new file mode 100644
index 000000000..845567bb3
--- /dev/null
+++ b/doc/html/tagger_8php.js
@@ -0,0 +1,4 @@
+var tagger_8php =
+[
+ [ "tagger_content", "tagger_8php.html#a0e4a3eb177d1684553c547503d67161c", null ]
+]; \ No newline at end of file
diff --git a/doc/html/tagrm_8php.html b/doc/html/tagrm_8php.html
new file mode 100644
index 000000000..c539a2caf
--- /dev/null
+++ b/doc/html/tagrm_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/tagrm.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('tagrm_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">tagrm.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a1702f40aa53a2fa93deade1f609abe78"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a1702f40aa53a2fa93deade1f609abe78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfd4ea5b4d7fc6d9c9e042af5cd7d49a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content</a> (&amp;$a)</td></tr>
+<tr class="separator:adfd4ea5b4d7fc6d9c9e042af5cd7d49a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="adfd4ea5b4d7fc6d9c9e042af5cd7d49a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tagrm_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1702f40aa53a2fa93deade1f609abe78"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tagrm_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/tagrm_8php.js b/doc/html/tagrm_8php.js
new file mode 100644
index 000000000..2753559fd
--- /dev/null
+++ b/doc/html/tagrm_8php.js
@@ -0,0 +1,5 @@
+var tagrm_8php =
+[
+ [ "tagrm_content", "tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a", null ],
+ [ "tagrm_post", "tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78", null ]
+]; \ No newline at end of file
diff --git a/doc/html/taxonomy_8php.html b/doc/html/taxonomy_8php.html
new file mode 100644
index 000000000..03e168570
--- /dev/null
+++ b/doc/html/taxonomy_8php.html
@@ -0,0 +1,500 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/taxonomy.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('taxonomy_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">taxonomy.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a3299482ac20e9d79453048dd52881d37"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37">file_tag_encode</a> ($s)</td></tr>
+<tr class="separator:a3299482ac20e9d79453048dd52881d37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08df5164926d2b31b8e9fcfe919de2b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6">file_tag_decode</a> ($s)</td></tr>
+<tr class="separator:a08df5164926d2b31b8e9fcfe919de2b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a163b5131f388080b0fc82398d3a32fe1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query</a> ($table, $s, $type= 'file')</td></tr>
+<tr class="separator:a163b5131f388080b0fc82398d3a32fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7a913d19c77610da689be48fbbf6734c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c">term_query</a> ($table, $s, $type=<a class="el" href="boot_8php.html#a0c59dde058efebbc66520d136cbd1631">TERM_UNKNOWN</a>)</td></tr>
+<tr class="separator:a7a913d19c77610da689be48fbbf6734c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ba1339b2a7054971178ce194e4440fd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag</a> ($uid, $iid, $otype, $type, $term, $url= '')</td></tr>
+<tr class="separator:a4ba1339b2a7054971178ce194e4440fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0fb8cf0ac7bcbc8b27d856fe9bf69cd1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1">get_terms_oftype</a> ($arr, $type)</td></tr>
+<tr class="separator:a0fb8cf0ac7bcbc8b27d856fe9bf69cd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfead45e3b8a3dfb2b4a4b9281d0dbe1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display</a> ($term)</td></tr>
+<tr class="separator:adfead45e3b8a3dfb2b4a4b9281d0dbe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a061b3db9426d4b074395f5824062cad4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#a061b3db9426d4b074395f5824062cad4">tagadelic</a> ($uid, $count=0, $authors= '', $flags=0, $type=<a class="el" href="boot_8php.html#a2750985ec445617d7e82ae3098c91e3f">TERM_HASHTAG</a>)</td></tr>
+<tr class="separator:a061b3db9426d4b074395f5824062cad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaeded36bcc983b35d9205fe5b6c18c43"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43">tags_sort</a> ($a, $b)</td></tr>
+<tr class="separator:aaeded36bcc983b35d9205fe5b6c18c43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abdb698bc6921429df6d697f6c5dec96f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#abdb698bc6921429df6d697f6c5dec96f">tagblock</a> ($link, $uid, $count=0, $authors= '', $flags=0, $type=<a class="el" href="boot_8php.html#a2750985ec445617d7e82ae3098c91e3f">TERM_HASHTAG</a>)</td></tr>
+<tr class="separator:abdb698bc6921429df6d697f6c5dec96f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03f55ee46c5f496e42f3d29db8d09cce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs</a> ()</td></tr>
+<tr class="separator:a03f55ee46c5f496e42f3d29db8d09cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac12a651a42ed77f8dc7072c6168811a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2">obj_verb_selector</a> ()</td></tr>
+<tr class="separator:ac12a651a42ed77f8dc7072c6168811a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a08df5164926d2b31b8e9fcfe919de2b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">file_tag_decode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3299482ac20e9d79453048dd52881d37"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">file_tag_encode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a163b5131f388080b0fc82398d3a32fe1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">file_tag_file_query </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$table</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em> = <code>'file'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adfead45e3b8a3dfb2b4a4b9281d0dbe1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">format_term_for_display </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$term</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0fb8cf0ac7bcbc8b27d856fe9bf69cd1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_terms_oftype </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7">item_getfeedtags()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac12a651a42ed77f8dc7072c6168811a2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">obj_verb_selector </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a03f55ee46c5f496e42f3d29db8d09cce"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">obj_verbs </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>verbs: [0] = first person singular, e.g. "I want", [1] = 3rd person singular, e.g. "Bill wants" We use the first person form when creating an activity, but the third person for use in activities FIXME: There is no accounting for verb gender for languages where this is significant. We may eventually require <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs()</a> to provide full conjugations and specify which form to use in the $_REQUEST params to this module. </p>
+
+<p>Referenced by <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2">obj_verb_selector()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4ba1339b2a7054971178ce194e4440fd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">store_item_tag </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$iid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$otype</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$term</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a061b3db9426d4b074395f5824062cad4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tagadelic </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$count</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$authors</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$flags</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em> = <code><a class="el" href="boot_8php.html#a2750985ec445617d7e82ae3098c91e3f">TERM_HASHTAG</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="taxonomy_8php.html#abdb698bc6921429df6d697f6c5dec96f">tagblock()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abdb698bc6921429df6d697f6c5dec96f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tagblock </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$link</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$count</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$authors</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$flags</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em> = <code><a class="el" href="boot_8php.html#a2750985ec445617d7e82ae3098c91e3f">TERM_HASHTAG</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaeded36bcc983b35d9205fe5b6c18c43"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tags_sort </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$b</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7a913d19c77610da689be48fbbf6734c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">term_query </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$table</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em> = <code><a class="el" href="boot_8php.html#a0c59dde058efebbc66520d136cbd1631">TERM_UNKNOWN</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, and <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/taxonomy_8php.js b/doc/html/taxonomy_8php.js
new file mode 100644
index 000000000..53df8721b
--- /dev/null
+++ b/doc/html/taxonomy_8php.js
@@ -0,0 +1,15 @@
+var taxonomy_8php =
+[
+ [ "file_tag_decode", "taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6", null ],
+ [ "file_tag_encode", "taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37", null ],
+ [ "file_tag_file_query", "taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1", null ],
+ [ "format_term_for_display", "taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1", null ],
+ [ "get_terms_oftype", "taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1", null ],
+ [ "obj_verb_selector", "taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2", null ],
+ [ "obj_verbs", "taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce", null ],
+ [ "store_item_tag", "taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd", null ],
+ [ "tagadelic", "taxonomy_8php.html#a061b3db9426d4b074395f5824062cad4", null ],
+ [ "tagblock", "taxonomy_8php.html#abdb698bc6921429df6d697f6c5dec96f", null ],
+ [ "tags_sort", "taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43", null ],
+ [ "term_query", "taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c", null ]
+]; \ No newline at end of file
diff --git a/doc/html/template__processor_8php.html b/doc/html/template__processor_8php.html
new file mode 100644
index 000000000..d499ee3e3
--- /dev/null
+++ b/doc/html/template__processor_8php.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/template_processor.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('template__processor_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">template_processor.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTemplate.html">Template</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab2bcd8738f20f293636a6ae8e1099db5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5">template_escape</a> ($s)</td></tr>
+<tr class="separator:ab2bcd8738f20f293636a6ae8e1099db5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac635bb19a5f6eadd6b0cddefdd537c1e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e">template_unescape</a> ($s)</td></tr>
+<tr class="separator:ac635bb19a5f6eadd6b0cddefdd537c1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a797745996c7839a93b2ab1af456631ab"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="template__processor_8php.html#a797745996c7839a93b2ab1af456631ab">KEY_NOT_EXISTS</a> '^R_key_not_Exists^'</td></tr>
+<tr class="separator:a797745996c7839a93b2ab1af456631ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ab2bcd8738f20f293636a6ae8e1099db5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">template_escape </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classTemplate.html#aae9c4d761ea1298e745e8052d7910194">Template\_get_var()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, and <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac635bb19a5f6eadd6b0cddefdd537c1e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">template_unescape </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a797745996c7839a93b2ab1af456631ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const KEY_NOT_EXISTS '^R_key_not_Exists^'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classTemplate.html#aae9c4d761ea1298e745e8052d7910194">Template\_get_var()</a>, and <a class="el" href="classTemplate.html#abbc484016ddf5d818f55b823cae6feb0">Template\var_replace()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/template__processor_8php.js b/doc/html/template__processor_8php.js
new file mode 100644
index 000000000..23335a2cc
--- /dev/null
+++ b/doc/html/template__processor_8php.js
@@ -0,0 +1,7 @@
+var template__processor_8php =
+[
+ [ "Template", "classTemplate.html", "classTemplate" ],
+ [ "template_escape", "template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5", null ],
+ [ "template_unescape", "template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e", null ],
+ [ "KEY_NOT_EXISTS", "template__processor_8php.html#a797745996c7839a93b2ab1af456631ab", null ]
+]; \ No newline at end of file
diff --git a/doc/html/test_2php_2theme_8php.html b/doc/html/test_2php_2theme_8php.html
new file mode 100644
index 000000000..322ba3135
--- /dev/null
+++ b/doc/html/test_2php_2theme_8php.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: view/theme/test/php/theme.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('test_2php_2theme_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">theme.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ad4235a22a5389b2291cdee55677e3cc5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="test_2php_2theme_8php.html#ad4235a22a5389b2291cdee55677e3cc5">test_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ad4235a22a5389b2291cdee55677e3cc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:ae74b5c3ec259b616b5137f6cfc591fb5"><td class="memItemLeft" align="right" valign="top">$a&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="test_2php_2theme_8php.html#ae74b5c3ec259b616b5137f6cfc591fb5">theme_info</a> = array()</td></tr>
+<tr class="separator:ae74b5c3ec259b616b5137f6cfc591fb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ad4235a22a5389b2291cdee55677e3cc5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">test_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="ae74b5c3ec259b616b5137f6cfc591fb5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$a theme_info = array()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_b2f003339c516cc00c8cadcafbe82f13.html">view</a></li><li class="navelem"><a class="el" href="dir_8543001e5d25368a6edede3e63efb554.html">theme</a></li><li class="navelem"><a class="el" href="dir_8e4ceba158be32034f698ffd6810bb05.html">test</a></li><li class="navelem"><a class="el" href="dir_955ae6074e6c84afe72925e364242b14.html">php</a></li><li class="navelem"><a class="el" href="test_2php_2theme_8php.html">theme.php</a></li>
+ <li class="footer">Generated on Tue Feb 26 2013 15:43:22 for The Red Project by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/test_2php_2theme_8php.js b/doc/html/test_2php_2theme_8php.js
new file mode 100644
index 000000000..cac936eda
--- /dev/null
+++ b/doc/html/test_2php_2theme_8php.js
@@ -0,0 +1,5 @@
+var test_2php_2theme_8php =
+[
+ [ "test_init", "test_2php_2theme_8php.html#ad4235a22a5389b2291cdee55677e3cc5", null ],
+ [ "theme_info", "test_2php_2theme_8php.html#ae74b5c3ec259b616b5137f6cfc591fb5", null ]
+]; \ No newline at end of file
diff --git a/doc/html/test_8php.html b/doc/html/test_8php.html
new file mode 100644
index 000000000..64f4f7c3d
--- /dev/null
+++ b/doc/html/test_8php.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: mod/test.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('test_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">test.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aaff133c1f566a332b5a3ae41b70941f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="test_8php.html#aaff133c1f566a332b5a3ae41b70941f8">test_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aaff133c1f566a332b5a3ae41b70941f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aaff133c1f566a332b5a3ae41b70941f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">test_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_d41ce877eb409a4791b288730010abe2.html">mod</a></li><li class="navelem"><a class="el" href="test_8php.html">test.php</a></li>
+ <li class="footer">Generated on Tue Feb 26 2013 15:43:21 for The Red Project by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/test_8php.js b/doc/html/test_8php.js
new file mode 100644
index 000000000..3d877ee85
--- /dev/null
+++ b/doc/html/test_8php.js
@@ -0,0 +1,4 @@
+var test_8php =
+[
+ [ "test_content", "test_8php.html#aaff133c1f566a332b5a3ae41b70941f8", null ]
+]; \ No newline at end of file
diff --git a/doc/html/text_8php.html b/doc/html/text_8php.html
new file mode 100644
index 000000000..13c4489ef
--- /dev/null
+++ b/doc/html/text_8php.html
@@ -0,0 +1,1973 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/text.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('text_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">text.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a9c6ce4e12a4ac883c5e3f36fed6e1e09"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros</a> ($s, $r)</td></tr>
+<tr class="separator:a9c6ce4e12a4ac883c5e3f36fed6e1e09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d6a5ee1290de7a8b483fe78585daade"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a9d6a5ee1290de7a8b483fe78585daade">random_string</a> ($size=64, $type=<a class="el" href="text_8php.html#aad557c054cf2ed915633701018fc7e3f">RANDOM_STRING_HEX</a>)</td></tr>
+<tr class="separator:a9d6a5ee1290de7a8b483fe78585daade"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1af49756c8c71902a66c7e329c462beb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a1af49756c8c71902a66c7e329c462beb">notags</a> ($string)</td></tr>
+<tr class="separator:a1af49756c8c71902a66c7e329c462beb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa5148a0dfea2a1ca64c3d52f10aa2d64"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64">escape_tags</a> ($string)</td></tr>
+<tr class="separator:aa5148a0dfea2a1ca64c3d52f10aa2d64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4841df5beabdd1bdd1ed56781a915d61"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a4841df5beabdd1bdd1ed56781a915d61">purify_html</a> ($s)</td></tr>
+<tr class="separator:a4841df5beabdd1bdd1ed56781a915d61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27cd2c1b3bcb49a0cfb7249e851725ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca">autoname</a> ($len)</td></tr>
+<tr class="separator:a27cd2c1b3bcb49a0cfb7249e851725ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaed4413ed8918838b517e3b2fafaea0d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#aaed4413ed8918838b517e3b2fafaea0d">xmlify</a> ($str)</td></tr>
+<tr class="separator:aaed4413ed8918838b517e3b2fafaea0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1360fed7f918d859daaca1c9f384f9af"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a1360fed7f918d859daaca1c9f384f9af">unxmlify</a> ($s)</td></tr>
+<tr class="separator:a1360fed7f918d859daaca1c9f384f9af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe9f178d264d44a94dc1292aaf0fd585"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>(!function_exists('hex2bin'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">paginate</a> (&amp;$a)</td></tr>
+<tr class="separator:afe9f178d264d44a94dc1292aaf0fd585"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75c243e06341ec16bd5a44b9b1cacd85"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager</a> (&amp;$a, $i, $more= '', $less= '')</td></tr>
+<tr class="separator:a75c243e06341ec16bd5a44b9b1cacd85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4282a39492caa23ccbc2ce98e54f110"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ae4282a39492caa23ccbc2ce98e54f110">expand_acl</a> ($s)</td></tr>
+<tr class="separator:ae4282a39492caa23ccbc2ce98e54f110"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9fbeae13c9abd6e27cb4d8d1817f969c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c">sanitise_acl</a> (&amp;$item)</td></tr>
+<tr class="separator:a9fbeae13c9abd6e27cb4d8d1817f969c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a98fd99dee3da8cf4c148dc04efe782ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee">perms2str</a> ($p)</td></tr>
+<tr class="separator:a98fd99dee3da8cf4c148dc04efe782ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6b0aa8afbeab50d1a3058ad21acb74e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id</a> ()</td></tr>
+<tr class="separator:aa6b0aa8afbeab50d1a3058ad21acb74e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa5528f41533927e1bd2da3618a74a6d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#aa5528f41533927e1bd2da3618a74a6d7">photo_new_resource</a> ()</td></tr>
+<tr class="separator:aa5528f41533927e1bd2da3618a74a6d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95fd2f8f23a1948414a03ebc963bac57"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a95fd2f8f23a1948414a03ebc963bac57">attribute_contains</a> ($attr, $s)</td></tr>
+<tr class="separator:a95fd2f8f23a1948414a03ebc963bac57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a030fa5ecc64168af0c4f44897a9bce63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">logger</a> ($msg, $level=0)</td></tr>
+<tr class="separator:a030fa5ecc64168af0c4f44897a9bce63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a1f7c0e97f9ecbebf3e5834582b014c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c">dlogger</a> ($msg, $level=0)</td></tr>
+<tr class="separator:a0a1f7c0e97f9ecbebf3e5834582b014c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b0a799341b1fc4cba2c3ede3e3fc9b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6">profiler</a> ($t1, $t2, $label)</td></tr>
+<tr class="separator:a8b0a799341b1fc4cba2c3ede3e3fc9b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8a3e3a66a7b862d4510f145d2e13186"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#af8a3e3a66a7b862d4510f145d2e13186">activity_match</a> ($haystack, $needle)</td></tr>
+<tr class="separator:af8a3e3a66a7b862d4510f145d2e13186"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4659fbc4e54ddc700c3aa66b9092c623"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623">get_tags</a> ($s)</td></tr>
+<tr class="separator:a4659fbc4e54ddc700c3aa66b9092c623"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc998d2796a6b2a08e96f7cc061e7221"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#afc998d2796a6b2a08e96f7cc061e7221">qp</a> ($s)</td></tr>
+<tr class="separator:afc998d2796a6b2a08e96f7cc061e7221"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76d1b3435c067978d7b484c45f56472b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a76d1b3435c067978d7b484c45f56472b">get_mentions</a> ($item, $tags)</td></tr>
+<tr class="separator:a76d1b3435c067978d7b484c45f56472b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6432621d0fafcbcf3d3b9b49bef7784"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block</a> ()</td></tr>
+<tr class="separator:ad6432621d0fafcbcf3d3b9b49bef7784"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55ab893be57feda59c2a7ba1e58ff2d0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0">chanlink_hash</a> ($s)</td></tr>
+<tr class="separator:a55ab893be57feda59c2a7ba1e58ff2d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e8d6c402603be3a1256a16605e09c2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a2e8d6c402603be3a1256a16605e09c2a">chanlink_url</a> ($s)</td></tr>
+<tr class="separator:a2e8d6c402603be3a1256a16605e09c2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a85e3a4851c16674834010d8419a5d7ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a85e3a4851c16674834010d8419a5d7ca">chanlink_cid</a> ($d)</td></tr>
+<tr class="separator:a85e3a4851c16674834010d8419a5d7ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24d441d30df4b8e6bf6780bf62a5e2c6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6">magiclink_url</a> ($observer, $myaddr, $url)</td></tr>
+<tr class="separator:a24d441d30df4b8e6bf6780bf62a5e2c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a902f5fdba8646333e997898ac45ea3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">micropro</a> ($contact, $redirect=false, $class= '', $textmode=false)</td></tr>
+<tr class="separator:a2a902f5fdba8646333e997898ac45ea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a876e94892867019935b348b573299352"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search</a> ($s, $id='search-box', $url='/search', $save=false)</td></tr>
+<tr class="separator:a876e94892867019935b348b573299352"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6a3d80a6c6fb234fd0bac44203b828eb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb">valid_email</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="separator:a6a3d80a6c6fb234fd0bac44203b828eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11255c8c4e5245b6c24f97684826aa54"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a11255c8c4e5245b6c24f97684826aa54">linkify</a> ($s)</td></tr>
+<tr class="separator:a11255c8c4e5245b6c24f97684826aa54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa46f941155c2ac1155f2f17ffb0adb66"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66">get_poke_verbs</a> ()</td></tr>
+<tr class="separator:aa46f941155c2ac1155f2f17ffb0adb66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a736db13a966b8abaf8c9198faa35911a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a736db13a966b8abaf8c9198faa35911a">get_mood_verbs</a> ()</td></tr>
+<tr class="separator:a736db13a966b8abaf8c9198faa35911a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d225b253bb9e0f2498c11647d927b0b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies</a> ($s, $sample=false)</td></tr>
+<tr class="separator:a3d225b253bb9e0f2498c11647d927b0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44d460fcdee6247c67b9bef3ea15f3e6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6">smile_encode</a> ($m)</td></tr>
+<tr class="separator:a44d460fcdee6247c67b9bef3ea15f3e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca0f589be74fab1a460c57e88dad9779"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#aca0f589be74fab1a460c57e88dad9779">smile_decode</a> ($m)</td></tr>
+<tr class="separator:aca0f589be74fab1a460c57e88dad9779"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac19d2b33a58372a357a43d51eed19162"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ac19d2b33a58372a357a43d51eed19162">preg_heart</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="separator:ac19d2b33a58372a357a43d51eed19162"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63fb21c0bed2fc72eef2c1471ac42b63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63">day_translate</a> ($s)</td></tr>
+<tr class="separator:a63fb21c0bed2fc72eef2c1471ac42b63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4bbb7d00c05cd20b4e043424f322388f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a4bbb7d00c05cd20b4e043424f322388f">normalise_link</a> ($url)</td></tr>
+<tr class="separator:a4bbb7d00c05cd20b4e043424f322388f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47c1e4a5f3f53027daacd8a9db24f285"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285">link_compare</a> ($a, $b)</td></tr>
+<tr class="separator:a47c1e4a5f3f53027daacd8a9db24f285"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4df74296fbe55051ed3c035e55205e5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body</a> (&amp;$item, $attach=false)</td></tr>
+<tr class="separator:ae4df74296fbe55051ed3c035e55205e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe54312607d92f7ce9593f5760831f80"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#afe54312607d92f7ce9593f5760831f80">prepare_text</a> ($text, $content_type= 'text/<a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode</a>')</td></tr>
+<tr class="separator:afe54312607d92f7ce9593f5760831f80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a405afe814a23f3bd94d826101aa168ab"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a405afe814a23f3bd94d826101aa168ab">zidify_callback</a> ($match)</td></tr>
+<tr class="separator:a405afe814a23f3bd94d826101aa168ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4a4c3d4700bc219bb84f33b499314f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ab4a4c3d4700bc219bb84f33b499314f4">zidify_img_callback</a> ($match)</td></tr>
+<tr class="separator:ab4a4c3d4700bc219bb84f33b499314f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29988052f3944111def3b6aaf2c7a8f6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a29988052f3944111def3b6aaf2c7a8f6">zidify_links</a> ($s)</td></tr>
+<tr class="separator:a29988052f3944111def3b6aaf2c7a8f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d8c4a11e53461caca21181ebd72daca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a8d8c4a11e53461caca21181ebd72daca">feed_hublinks</a> ()</td></tr>
+<tr class="separator:a8d8c4a11e53461caca21181ebd72daca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89929fa6f70a8ba54d5273fcf622b665"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a89929fa6f70a8ba54d5273fcf622b665">feed_salmonlinks</a> ($nick)</td></tr>
+<tr class="separator:a89929fa6f70a8ba54d5273fcf622b665"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05b7f26dc2df78681f57eeade53040c6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a05b7f26dc2df78681f57eeade53040c6">get_plink</a> ($item)</td></tr>
+<tr class="separator:a05b7f26dc2df78681f57eeade53040c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29d6b804e368d3ef359ee295e96ed4c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7">unamp</a> ($s)</td></tr>
+<tr class="separator:a29d6b804e368d3ef359ee295e96ed4c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71f6952243d3fe1c5a8154f78027e29c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector</a> ()</td></tr>
+<tr class="separator:a71f6952243d3fe1c5a8154f78027e29c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae2126da85966da0e79c6bcbac63b0bda"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ae2126da85966da0e79c6bcbac63b0bda">return_bytes</a> ($size_str)</td></tr>
+<tr class="separator:ae2126da85966da0e79c6bcbac63b0bda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4f6881d7e13623f8eded6277595112a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ae4f6881d7e13623f8eded6277595112a">generate_user_guid</a> ()</td></tr>
+<tr class="separator:ae4f6881d7e13623f8eded6277595112a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a070384ec000fd65043fce11d5392d241"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a070384ec000fd65043fce11d5392d241">base64url_encode</a> ($s, $strip_padding=true)</td></tr>
+<tr class="separator:a070384ec000fd65043fce11d5392d241"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a13286f8a95d2de6b102966ecc270c8d6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a13286f8a95d2de6b102966ecc270c8d6">base64url_decode</a> ($s)</td></tr>
+<tr class="separator:a13286f8a95d2de6b102966ecc270c8d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe18627c4983ee5f7c940a0992818cd5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#afe18627c4983ee5f7c940a0992818cd5">cleardiv</a> ()</td></tr>
+<tr class="separator:afe18627c4983ee5f7c940a0992818cd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d2793d66db3345fd290b71e2eadf98e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a3d2793d66db3345fd290b71e2eadf98e">bb_translate_video</a> ($s)</td></tr>
+<tr class="separator:a3d2793d66db3345fd290b71e2eadf98e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a138a3a611fa7f4f3630674145fc826bf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a138a3a611fa7f4f3630674145fc826bf">html2bb_video</a> ($s)</td></tr>
+<tr class="separator:a138a3a611fa7f4f3630674145fc826bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acedb584f65114a33f389efb796172a91"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#acedb584f65114a33f389efb796172a91">array_xmlify</a> ($val)</td></tr>
+<tr class="separator:acedb584f65114a33f389efb796172a91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad855a32bee22c3f3b9734e3a334b96f2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2">reltoabs</a> ($text, $base)</td></tr>
+<tr class="separator:ad855a32bee22c3f3b9734e3a334b96f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1dbf2e37e8069bea2c0f557fdbf203e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e">item_post_type</a> ($item)</td></tr>
+<tr class="separator:ac1dbf2e37e8069bea2c0f557fdbf203e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adba17ec946f4285285dc100f7860bf51"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#adba17ec946f4285285dc100f7860bf51">normalise_openid</a> ($s)</td></tr>
+<tr class="separator:adba17ec946f4285285dc100f7860bf51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a740ad03e00459039a2c0992246c4e727"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a740ad03e00459039a2c0992246c4e727">undo_post_tagging</a> ($s)</td></tr>
+<tr class="separator:a740ad03e00459039a2c0992246c4e727"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afdc69fe3f6c09e35e46304dcea63ae28"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28">fix_mce_lf</a> ($s)</td></tr>
+<tr class="separator:afdc69fe3f6c09e35e46304dcea63ae28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e7698aca48982512594b274543c3b9b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a4e7698aca48982512594b274543c3b9b">protect_sprintf</a> ($s)</td></tr>
+<tr class="separator:a4e7698aca48982512594b274543c3b9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1557112a774ec00fa06ed6b6f6495506"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a1557112a774ec00fa06ed6b6f6495506">is_a_date_arg</a> ($s)</td></tr>
+<tr class="separator:a1557112a774ec00fa06ed6b6f6495506"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2690ad67bb6fb97ef69de3e8d23f2728"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728">legal_webbie</a> ($s)</td></tr>
+<tr class="separator:a2690ad67bb6fb97ef69de3e8d23f2728"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c65597bb4aed3a039eb795ff540e5e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie</a> ($arr)</td></tr>
+<tr class="separator:a0c65597bb4aed3a039eb795ff540e5e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a436a8de00c942364c2d0fcfc7e1f4b5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a">ids_to_querystr</a> ($arr, $idx= 'id')</td></tr>
+<tr class="separator:a436a8de00c942364c2d0fcfc7e1f4b5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36a2e5d418ee81140f25c4233cfecd1f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query</a> (&amp;$items, $abook=true)</td></tr>
+<tr class="separator:a36a2e5d418ee81140f25c4233cfecd1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a543447c5ed766535221e2d9636b379ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query</a> (&amp;$item)</td></tr>
+<tr class="separator:a543447c5ed766535221e2d9636b379ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace3c98538c63e09b70a363210b414112"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ace3c98538c63e09b70a363210b414112">find_xchan_in_array</a> ($xchan, $arr)</td></tr>
+<tr class="separator:ace3c98538c63e09b70a363210b414112"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3972701c5c83624ec4e2d06242f614e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a3972701c5c83624ec4e2d06242f614e7">get_rel_link</a> ($j, $rel)</td></tr>
+<tr class="separator:a3972701c5c83624ec4e2d06242f614e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e510c53624933ce9b7d6715784894db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a1e510c53624933ce9b7d6715784894db">magic_link</a> ($s)</td></tr>
+<tr class="separator:a1e510c53624933ce9b7d6715784894db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8796f6a9ca592ecdce7b3afc3462aa13"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">stringify_array_elms</a> (&amp;$arr, $escape=false)</td></tr>
+<tr class="separator:a8796f6a9ca592ecdce7b3afc3462aa13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae17b39d5e321debd3ad16dcbbde842b8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8">jindent</a> ($json)</td></tr>
+<tr class="separator:ae17b39d5e321debd3ad16dcbbde842b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:aad557c054cf2ed915633701018fc7e3f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#aad557c054cf2ed915633701018fc7e3f">RANDOM_STRING_HEX</a> 0x00</td></tr>
+<tr class="separator:aad557c054cf2ed915633701018fc7e3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ffd79c60cc87cec24ef76447b905187"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a2ffd79c60cc87cec24ef76447b905187">RANDOM_STRING_TEXT</a> 0x01</td></tr>
+<tr class="separator:a2ffd79c60cc87cec24ef76447b905187"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af8a3e3a66a7b862d4510f145d2e13186"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">activity_match </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$haystack</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$needle</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item\add_child()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e">item_post_type()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, and <a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">visible_activity()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a75c243e06341ec16bd5a44b9b1cacd85"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">alt_pager </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$i</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$more</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$less</em> = <code>''</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, and <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acedb584f65114a33f389efb796172a91"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">array_xmlify </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$val</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>apply <a class="el" href="text_8php.html#aaed4413ed8918838b517e3b2fafaea0d">xmlify()</a> to all values of array $val, recursively </p>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template()</a>, and <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a95fd2f8f23a1948414a03ebc963bac57"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">attribute_contains </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$attr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a27cd2c1b3bcb49a0cfb7249e851725ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">autoname </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$len</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>generate a string that's random, but usually pronounceable. used to generate initial passwords </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$len</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, and <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a13286f8a95d2de6b102966ecc270c8d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">base64url_decode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">aes_unencapsulate()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="text_8php.html#aca0f589be74fab1a460c57e88dad9779">smile_decode()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a070384ec000fd65043fce11d5392d241"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">base64url_encode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$strip_padding</em> = <code>true</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="text_8php.html#a9d6a5ee1290de7a8b483fe78585daade">random_string()</a>, <a class="el" href="text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6">smile_encode()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>, <a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot_new_uid()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3d2793d66db3345fd290b71e2eadf98e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bb_translate_video </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a85e3a4851c16674834010d8419a5d7ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chanlink_cid </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$d</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a55ab893be57feda59c2a7ba1e58ff2d0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chanlink_hash </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, and <a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">micropro()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2e8d6c402603be3a1256a16605e09c2a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chanlink_url </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8">Item\check_wall_to_wall()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init()</a>, and <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0c65597bb4aed3a039eb795ff540e5e3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_webbie </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, and <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afe18627c4983ee5f7c940a0992818cd5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">cleardiv </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, and <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad6432621d0fafcbcf3d3b9b49bef7784"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">contact_block </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a63fb21c0bed2fc72eef2c1471ac42b63"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">day_translate </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">cal()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">format_event_html()</a>, <a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, and <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0a1f7c0e97f9ecbebf3e5834582b014c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dlogger </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$msg</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$level</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa5148a0dfea2a1ca64c3d52f10aa2d64"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">escape_tags </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$string</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>use this on "body" or "content" input where angle chars shouldn't be removed, and allow them to be safely displayed. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$string</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249">printable()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae4282a39492caa23ccbc2ce98e54f110"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">expand_acl </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67">enumerate_permissions()</a>, and <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8d8c4a11e53461caca21181ebd72daca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">feed_hublinks </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>return atom link elements for all of our hubs </p>
+
+</div>
+</div>
+<a class="anchor" id="a89929fa6f70a8ba54d5273fcf622b665"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">feed_salmonlinks </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$nick</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ace3c98538c63e09b70a363210b414112"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">find_xchan_in_array </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, and <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afdc69fe3f6c09e35e46304dcea63ae28"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">fix_mce_lf </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, and <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae4f6881d7e13623f8eded6277595112a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">generate_user_guid </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a76d1b3435c067978d7b484c45f56472b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_mentions </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$tags</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a736db13a966b8abaf8c9198faa35911a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_mood_verbs </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, and <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a05b7f26dc2df78681f57eeade53040c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_plink </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, and <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa46f941155c2ac1155f2f17ffb0adb66"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_poke_verbs </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, and <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3972701c5c83624ec4e2d06242f614e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_rel_link </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$j</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$rel</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, and <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4659fbc4e54ddc700c3aa66b9092c623"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_tags </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, and <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a138a3a611fa7f4f3630674145fc826bf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">html2bb_video </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, and <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a436a8de00c942364c2d0fcfc7e1f4b5a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ids_to_querystr </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$idx</em> = <code>'id'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1557112a774ec00fa06ed6b6f6495506"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">is_a_date_arg </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa6b0aa8afbeab50d1a3058ad21acb74e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">item_message_id </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, and <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac1dbf2e37e8069bea2c0f557fdbf203e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">item_post_type </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae17b39d5e321debd3ad16dcbbde842b8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">jindent </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$json</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Indents a flat JSON string to make it more human-readable.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$json</td><td>The original JSON string to process.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string Indented version of the original JSON string. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a71f6952243d3fe1c5a8154f78027e29c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">lang_selector </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2690ad67bb6fb97ef69de3e8d23f2728"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">legal_webbie </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, and <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a47c1e4a5f3f53027daacd8a9db24f285"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">link_compare </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$b</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Compare two URLs to see if they are the same, but ignore slight but hopefully insignificant differences such as if one is https and the other isn't, or if one is www.something and the other isn't - and also ignore case differences.</p>
+<p>Return true if the URLs match, otherwise false. </p>
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, and <a class="el" href="boot_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a11255c8c4e5245b6c24f97684826aa54"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">linkify </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Function: linkify</p>
+<p>Replace naked text hyperlink with HTML formatted hyperlink </p>
+
+<p>Referenced by <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a030fa5ecc64168af0c4f44897a9bce63"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">logger </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$msg</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$level</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item\add_child()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call()</a>, <a class="el" href="include_2api_8php.html#a72bfecac1970bc29b853073e816388ff">api_channel_stream()</a>, <a class="el" href="include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53">api_export_basic()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="text_8php.html#a13286f8a95d2de6b102966ecc270c8d6">base64url_decode()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa">channel_remove()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks_run()</a>, <a class="el" href="datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226">datetime_convert()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0">email_send()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0">fetch_lrdd_template()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="classConversation.html#a2a96b7a6573ae53db861624659e831cb">Conversation\get_template_data()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="photo__driver_8php.html#a7273b82b017fd96d29b2c57bab03aea6">guess_image_type()</a>, <a class="el" href="boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84">head_set_icon()</a>, <a class="el" href="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">http_status_exit()</a>, <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">install_plugin()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="items_8php.html#af94c281016c6c912d06e064113336c5c">limit_body_size()</a>, <a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">load_plugin()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1">FKOAuthDataStore\lookup_consumer()</a>, <a class="el" href="classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab">FKOAuthDataStore\lookup_token()</a>, <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f">mini_group_select()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a">new_keypair()</a>, <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore\new_request_token()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">parse_xml_string()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql\q()</a>, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli\q()</a>, <a class="el" href="dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f">q()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">reload_plugins()</a>, <a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">Item\remove_child()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">remove_queue_item()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="classenotify.html#afbc088860f534c6c05788b48cfc262c6">enotify\send()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>, <a class="el" href="plugin_8php.html#a90538627db68605aeb6db17a8ead6523">unload_plugin()</a>, <a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">update_imported_item()</a>, <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">update_queue_time()</a>, <a class="el" href="include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5">webfinger()</a>, <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">webfinger_dfrn()</a>, <a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">xml2array()</a>, <a class="el" href="include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6">xml_status()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#a77720d6b59894e9b609af89c310c8a4d">zot_finger()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1e510c53624933ce9b7d6715784894db"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">magic_link </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a24d441d30df4b8e6bf6780bf62a5e2c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">magiclink_url </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$myaddr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">item_redir_and_replace_images()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2a902f5fdba8646333e997898ac45ea3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">micropro </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$contact</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$redirect</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$class</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$textmode</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4bbb7d00c05cd20b4e043424f322388f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">normalise_link </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285">link_compare()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adba17ec946f4285285dc100f7860bf51"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">normalise_openid </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1af49756c8c71902a66c7e329c462beb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">notags </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$string</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>This is our primary input filter.</p>
+<p>The high bit hack only involved some old IE browser, forget which (IE5/Mac?) that had an XSS attack vector due to stripping the high-bit on an 8-bit character after cleansing, and angle chars with the high bit set could get through as markup.</p>
+<p>This is now disabled because it was interfering with some legitimate unicode sequences and hopefully there aren't a lot of those browsers left.</p>
+<p>Use this on any text input where angle chars are not valid or permitted They will be replaced with safer brackets. This may be filtered further if these are not allowed either.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$string</td><td>Input string </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string Filtered string </dd></dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">profile_tabs()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c">sanitise_acl()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, and <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afe9f178d264d44a94dc1292aaf0fd585"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> (!function_exists('hex2bin')) paginate </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind_content()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30">nogroup_content()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a98fd99dee3da8cf4c148dc04efe782ee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">perms2str </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa5528f41533927e1bd2da3618a74a6d7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">photo_new_resource </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, and <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac19d2b33a58372a357a43d51eed19162"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">preg_heart </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae4df74296fbe55051ed3c035e55205e5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">prepare_body </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$attach</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0">email_send()</a>, and <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afe54312607d92f7ce9593f5760831f80"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">prepare_text </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$content_type</em> = <code>'text/<a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode</a>'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, and <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8b0a799341b1fc4cba2c3ede3e3fc9b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">profiler </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$t1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$t2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$label</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, and <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4e7698aca48982512594b274543c3b9b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">protect_sprintf </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">public_permissions_sql()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, and <a class="el" href="taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c">term_query()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4841df5beabdd1bdd1ed56781a915d61"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">purify_html </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, and <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afc998d2796a6b2a08e96f7cc061e7221"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">qp </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9d6a5ee1290de7a8b483fe78585daade"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">random_string </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$size</em> = <code>64</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em> = <code><a class="el" href="text_8php.html#aad557c054cf2ed915633701018fc7e3f">RANDOM_STRING_HEX</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="text_8php.html#ae4f6881d7e13623f8eded6277595112a">generate_user_guid()</a>, <a class="el" href="include_2group_8php.html#a0a515d42ec78aa0066aac4c278ead5b0">group_add()</a>, <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad855a32bee22c3f3b9734e3a334b96f2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">reltoabs </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$base</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9c6ce4e12a4ac883c5e3f36fed6e1e09"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">replace_macros </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$r</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>This is our template processor</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string&#160;|&#160;<a class="el" href="classFriendicaSmarty.html">FriendicaSmarty</a></td><td class="paramname">$s</td><td>the string requiring macro substitution, or an instance of <a class="el" href="classFriendicaSmarty.html">FriendicaSmarty</a> </td></tr>
+ <tr><td class="paramtype">array</td><td class="paramname">$r</td><td>key value pairs (search =&gt; replace) </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string substituted string </dd></dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="datetime_8php.html#a03900dcf0f9e3c58793a031673a70326">field_timezone()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget()</a>, <a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message_aside()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">micropro()</a>, <a class="el" href="include_2group_8php.html#ab4d9e5b59f48787cb01baae5dc6c381f">mini_group_select()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, <a class="el" href="nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30">nogroup_content()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch_init()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="acl__selectors_8php.html#a51f2ec7a143d5a5b38e35efd5f3d6e2c">populate_acl()</a>, <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">profile_tabs()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef">rmagic_content()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, and <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae2126da85966da0e79c6bcbac63b0bda"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">return_bytes </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$size_str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9fbeae13c9abd6e27cb4d8d1817f969c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">sanitise_acl </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a876e94892867019935b348b573299352"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">search </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$id</em> = <code>'search-box'</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em> = <code>'/search'</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$save</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, and <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aca0f589be74fab1a460c57e88dad9779"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">smile_decode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a44d460fcdee6247c67b9bef3ea15f3e6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">smile_encode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3d225b253bb9e0f2498c11647d927b0b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">smilies </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sample</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Function: smilies</p>
+<p>Description: Replaces text emoticons with graphical images</p>
+<p>: string $s</p>
+<p>Returns string</p>
+<p>It is expected that this function will be called using HTML text. We will escape text between HTML pre and code blocks from being processed.</p>
+<p>At a higher level, the bbcode [nosmile] tag can be used to prevent this function from being executed by the <a class="el" href="text_8php.html#afe54312607d92f7ce9593f5760831f80">prepare_text()</a> routine when preparing bbcode source for HTML display </p>
+
+<p>Referenced by <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, and <a class="el" href="smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f">smilies_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8796f6a9ca592ecdce7b3afc3462aa13"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">stringify_array_elms </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$escape</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="taxonomy_8php.html#a061b3db9426d4b074395f5824062cad4">tagadelic()</a>, and <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a29d6b804e368d3ef359ee295e96ed4c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unamp </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a740ad03e00459039a2c0992246c4e727"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">undo_post_tagging </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, and <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1360fed7f918d859daaca1c9f384f9af"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unxmlify </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, and <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6a3d80a6c6fb234fd0bac44203b828eb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">valid_email </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, and <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a543447c5ed766535221e2d9636b379ee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xchan_mail_query </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a36a2e5d418ee81140f25c4233cfecd1f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xchan_query </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$items</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$abook</em> = <code>true</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaed4413ed8918838b517e3b2fafaea0d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xmlify </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>escape text ($str) for XML transport </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$str</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string Escaped text. </dd></dl>
+
+<p>Referenced by <a class="el" href="text_8php.html#acedb584f65114a33f389efb796172a91">array_xmlify()</a>, <a class="el" href="items_8php.html#a016dd86c827d08db89061ea81d15c6cb">atom_author()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee">construct_activity_object()</a>, <a class="el" href="items_8php.html#aa579bc4445d60098b1410961ca8e96b7">construct_activity_target()</a>, <a class="el" href="items_8php.html#aa723c0571e314a1853a24c5854b4f54f">encode_rel_links()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="items_8php.html#a09d425596b9f8663472cf7474ad36d96">item_getfeedattach()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, and <a class="el" href="include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6">xml_status()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a405afe814a23f3bd94d826101aa168ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zidify_callback </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$match</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p><a class="el" href="text_8php.html#a405afe814a23f3bd94d826101aa168ab">zidify_callback()</a> and <a class="el" href="text_8php.html#a29988052f3944111def3b6aaf2c7a8f6">zidify_links()</a> work together to turn any HTML a tags with class="zrl" into zid links These will typically be generated by a bbcode '[zrl]' tag. This is done inside <a class="el" href="text_8php.html#afe54312607d92f7ce9593f5760831f80">prepare_text()</a> rather than <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a> because the latter is used for general purpose conversions and the former is used only when preparing text for immediate display.</p>
+<p>Issues: Currently the order of HTML parameters in the text is somewhat rigid and inflexible. We assume it looks like <a href="xxxxxxxxxx" class="zrl">and will not work if zrl and href appear in a different order. </a></p>
+
+</div>
+</div>
+<a class="anchor" id="ab4a4c3d4700bc219bb84f33b499314f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zidify_img_callback </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$match</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a29988052f3944111def3b6aaf2c7a8f6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zidify_links </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="aad557c054cf2ed915633701018fc7e3f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const RANDOM_STRING_HEX 0x00</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2ffd79c60cc87cec24ef76447b905187"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const RANDOM_STRING_TEXT 0x01</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, and <a class="el" href="text_8php.html#a9d6a5ee1290de7a8b483fe78585daade">random_string()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/text_8php.js b/doc/html/text_8php.js
new file mode 100644
index 000000000..8a58abf15
--- /dev/null
+++ b/doc/html/text_8php.js
@@ -0,0 +1,81 @@
+var text_8php =
+[
+ [ "activity_match", "text_8php.html#af8a3e3a66a7b862d4510f145d2e13186", null ],
+ [ "alt_pager", "text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85", null ],
+ [ "array_xmlify", "text_8php.html#acedb584f65114a33f389efb796172a91", null ],
+ [ "attribute_contains", "text_8php.html#a95fd2f8f23a1948414a03ebc963bac57", null ],
+ [ "autoname", "text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca", null ],
+ [ "base64url_decode", "text_8php.html#a13286f8a95d2de6b102966ecc270c8d6", null ],
+ [ "base64url_encode", "text_8php.html#a070384ec000fd65043fce11d5392d241", null ],
+ [ "bb_translate_video", "text_8php.html#a3d2793d66db3345fd290b71e2eadf98e", null ],
+ [ "chanlink_cid", "text_8php.html#a85e3a4851c16674834010d8419a5d7ca", null ],
+ [ "chanlink_hash", "text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0", null ],
+ [ "chanlink_url", "text_8php.html#a2e8d6c402603be3a1256a16605e09c2a", null ],
+ [ "check_webbie", "text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3", null ],
+ [ "cleardiv", "text_8php.html#afe18627c4983ee5f7c940a0992818cd5", null ],
+ [ "contact_block", "text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784", null ],
+ [ "day_translate", "text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63", null ],
+ [ "dlogger", "text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c", null ],
+ [ "escape_tags", "text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64", null ],
+ [ "expand_acl", "text_8php.html#ae4282a39492caa23ccbc2ce98e54f110", null ],
+ [ "feed_hublinks", "text_8php.html#a8d8c4a11e53461caca21181ebd72daca", null ],
+ [ "feed_salmonlinks", "text_8php.html#a89929fa6f70a8ba54d5273fcf622b665", null ],
+ [ "find_xchan_in_array", "text_8php.html#ace3c98538c63e09b70a363210b414112", null ],
+ [ "fix_mce_lf", "text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28", null ],
+ [ "generate_user_guid", "text_8php.html#ae4f6881d7e13623f8eded6277595112a", null ],
+ [ "get_mentions", "text_8php.html#a76d1b3435c067978d7b484c45f56472b", null ],
+ [ "get_mood_verbs", "text_8php.html#a736db13a966b8abaf8c9198faa35911a", null ],
+ [ "get_plink", "text_8php.html#a05b7f26dc2df78681f57eeade53040c6", null ],
+ [ "get_poke_verbs", "text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66", null ],
+ [ "get_rel_link", "text_8php.html#a3972701c5c83624ec4e2d06242f614e7", null ],
+ [ "get_tags", "text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623", null ],
+ [ "html2bb_video", "text_8php.html#a138a3a611fa7f4f3630674145fc826bf", null ],
+ [ "ids_to_querystr", "text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a", null ],
+ [ "is_a_date_arg", "text_8php.html#a1557112a774ec00fa06ed6b6f6495506", null ],
+ [ "item_message_id", "text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e", null ],
+ [ "item_post_type", "text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e", null ],
+ [ "jindent", "text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8", null ],
+ [ "lang_selector", "text_8php.html#a71f6952243d3fe1c5a8154f78027e29c", null ],
+ [ "legal_webbie", "text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728", null ],
+ [ "link_compare", "text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285", null ],
+ [ "linkify", "text_8php.html#a11255c8c4e5245b6c24f97684826aa54", null ],
+ [ "logger", "text_8php.html#a030fa5ecc64168af0c4f44897a9bce63", null ],
+ [ "magic_link", "text_8php.html#a1e510c53624933ce9b7d6715784894db", null ],
+ [ "magiclink_url", "text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6", null ],
+ [ "micropro", "text_8php.html#a2a902f5fdba8646333e997898ac45ea3", null ],
+ [ "normalise_link", "text_8php.html#a4bbb7d00c05cd20b4e043424f322388f", null ],
+ [ "normalise_openid", "text_8php.html#adba17ec946f4285285dc100f7860bf51", null ],
+ [ "notags", "text_8php.html#a1af49756c8c71902a66c7e329c462beb", null ],
+ [ "paginate", "text_8php.html#afe9f178d264d44a94dc1292aaf0fd585", null ],
+ [ "perms2str", "text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee", null ],
+ [ "photo_new_resource", "text_8php.html#aa5528f41533927e1bd2da3618a74a6d7", null ],
+ [ "preg_heart", "text_8php.html#ac19d2b33a58372a357a43d51eed19162", null ],
+ [ "prepare_body", "text_8php.html#ae4df74296fbe55051ed3c035e55205e5", null ],
+ [ "prepare_text", "text_8php.html#afe54312607d92f7ce9593f5760831f80", null ],
+ [ "profiler", "text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6", null ],
+ [ "protect_sprintf", "text_8php.html#a4e7698aca48982512594b274543c3b9b", null ],
+ [ "purify_html", "text_8php.html#a4841df5beabdd1bdd1ed56781a915d61", null ],
+ [ "qp", "text_8php.html#afc998d2796a6b2a08e96f7cc061e7221", null ],
+ [ "random_string", "text_8php.html#a9d6a5ee1290de7a8b483fe78585daade", null ],
+ [ "reltoabs", "text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2", null ],
+ [ "replace_macros", "text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09", null ],
+ [ "return_bytes", "text_8php.html#ae2126da85966da0e79c6bcbac63b0bda", null ],
+ [ "sanitise_acl", "text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c", null ],
+ [ "search", "text_8php.html#a876e94892867019935b348b573299352", null ],
+ [ "smile_decode", "text_8php.html#aca0f589be74fab1a460c57e88dad9779", null ],
+ [ "smile_encode", "text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6", null ],
+ [ "smilies", "text_8php.html#a3d225b253bb9e0f2498c11647d927b0b", null ],
+ [ "stringify_array_elms", "text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13", null ],
+ [ "unamp", "text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7", null ],
+ [ "undo_post_tagging", "text_8php.html#a740ad03e00459039a2c0992246c4e727", null ],
+ [ "unxmlify", "text_8php.html#a1360fed7f918d859daaca1c9f384f9af", null ],
+ [ "valid_email", "text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb", null ],
+ [ "xchan_mail_query", "text_8php.html#a543447c5ed766535221e2d9636b379ee", null ],
+ [ "xchan_query", "text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f", null ],
+ [ "xmlify", "text_8php.html#aaed4413ed8918838b517e3b2fafaea0d", null ],
+ [ "zidify_callback", "text_8php.html#a405afe814a23f3bd94d826101aa168ab", null ],
+ [ "zidify_img_callback", "text_8php.html#ab4a4c3d4700bc219bb84f33b499314f4", null ],
+ [ "zidify_links", "text_8php.html#a29988052f3944111def3b6aaf2c7a8f6", null ],
+ [ "RANDOM_STRING_HEX", "text_8php.html#aad557c054cf2ed915633701018fc7e3f", null ],
+ [ "RANDOM_STRING_TEXT", "text_8php.html#a2ffd79c60cc87cec24ef76447b905187", null ]
+]; \ No newline at end of file
diff --git a/doc/html/theme_2redstrap_2php_2default_8php.html b/doc/html/theme_2redstrap_2php_2default_8php.html
new file mode 100644
index 000000000..021a442d1
--- /dev/null
+++ b/doc/html/theme_2redstrap_2php_2default_8php.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redstrap/php/default.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('theme_2redstrap_2php_2default_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">default.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a23bc1996b18e69c1a3ab44536613a762"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="theme_2redstrap_2php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762">if</a> (<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td></tr>
+<tr class="separator:a23bc1996b18e69c1a3ab44536613a762"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a23bc1996b18e69c1a3ab44536613a762"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/theme_2redstrap_2php_2default_8php.js b/doc/html/theme_2redstrap_2php_2default_8php.js
new file mode 100644
index 000000000..2de3bcbba
--- /dev/null
+++ b/doc/html/theme_2redstrap_2php_2default_8php.js
@@ -0,0 +1,4 @@
+var theme_2redstrap_2php_2default_8php =
+[
+ [ "if", "theme_2redstrap_2php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762", null ]
+]; \ No newline at end of file
diff --git a/doc/html/theme_2redstrap_2php_2theme__init_8php.html b/doc/html/theme_2redstrap_2php_2theme__init_8php.html
new file mode 100644
index 000000000..01523bbaf
--- /dev/null
+++ b/doc/html/theme_2redstrap_2php_2theme__init_8php.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redstrap/php/theme_init.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('theme_2redstrap_2php_2theme__init_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">theme_init.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/theme_8php.html b/doc/html/theme_8php.html
new file mode 100644
index 000000000..4d2c3a1e3
--- /dev/null
+++ b/doc/html/theme_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: view/theme/redbasic/php/theme.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('theme_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">theme.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af6eb813e9fc7e2d76ac1b82bc5c0ed9b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b">redbasic_init</a> (&amp;$a)</td></tr>
+<tr class="separator:af6eb813e9fc7e2d76ac1b82bc5c0ed9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af6eb813e9fc7e2d76ac1b82bc5c0ed9b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">redbasic_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/theme_8php.js b/doc/html/theme_8php.js
new file mode 100644
index 000000000..2a9bf5efa
--- /dev/null
+++ b/doc/html/theme_8php.js
@@ -0,0 +1,4 @@
+var theme_8php =
+[
+ [ "redbasic_init", "theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b", null ]
+]; \ No newline at end of file
diff --git a/doc/html/theme__init_8php.html b/doc/html/theme__init_8php.html
new file mode 100644
index 000000000..a537c18e1
--- /dev/null
+++ b/doc/html/theme__init_8php.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: view/php/theme_init.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('theme__init_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">theme_init.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/thing_8php.html b/doc/html/thing_8php.html
new file mode 100644
index 000000000..1ef632d27
--- /dev/null
+++ b/doc/html/thing_8php.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/thing.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('thing_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">thing.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a8be23b1d475ec3d9291999221c674c80"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a8be23b1d475ec3d9291999221c674c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24a35f1e64029a67fdbea94a776ae04b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a24a35f1e64029a67fdbea94a776ae04b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a24a35f1e64029a67fdbea94a776ae04b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">thing_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8be23b1d475ec3d9291999221c674c80"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">thing_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>verbs: [0] = first person singular, e.g. "I want", [1] = 3rd person singular, e.g. "Bill wants" We use the first person form when creating an activity, but the third person for use in activities FIXME: There is no accounting for verb gender for languages where this is significant. We may eventually require <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs()</a> to provide full conjugations and specify which form to use in the $_REQUEST params to this module.</p>
+<p>The site administrator can do things that normals cannot. This is restricted because it will likely cause an activitystreams protocol violation and the activity might choke in some other network and result in unnecessary support requests. It isn't because we're trying to be heavy-handed about what you can and can't do.</p>
+<p>Things, objects: We do not provide definite (a, an) or indefinite (the) articles or singular/plural designators That needs to be specified in your thing. e.g. Mike has "a carrot", Greg wants "balls", Bob likes "the Boston Red Sox".</p>
+<p>Future work on this module might produce more complex activities with targets, e.g. Phillip likes Karen's moustache and to describe other non-thing objects like channels, such as Karl wants Susan - where Susan represents a channel profile.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/thing_8php.js b/doc/html/thing_8php.js
new file mode 100644
index 000000000..9fe6a8ff6
--- /dev/null
+++ b/doc/html/thing_8php.js
@@ -0,0 +1,5 @@
+var thing_8php =
+[
+ [ "thing_content", "thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b", null ],
+ [ "thing_init", "thing_8php.html#a8be23b1d475ec3d9291999221c674c80", null ]
+]; \ No newline at end of file
diff --git a/doc/html/toggle__mobile_8php.html b/doc/html/toggle__mobile_8php.html
new file mode 100644
index 000000000..afecb5ca9
--- /dev/null
+++ b/doc/html/toggle__mobile_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/toggle_mobile.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('toggle__mobile_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">toggle_mobile.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aca53ade8971802b45c31e722b22c6254"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254">toggle_mobile_init</a> (&amp;$a)</td></tr>
+<tr class="separator:aca53ade8971802b45c31e722b22c6254"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aca53ade8971802b45c31e722b22c6254"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">toggle_mobile_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/toggle__mobile_8php.js b/doc/html/toggle__mobile_8php.js
new file mode 100644
index 000000000..81ee78e90
--- /dev/null
+++ b/doc/html/toggle__mobile_8php.js
@@ -0,0 +1,4 @@
+var toggle__mobile_8php =
+[
+ [ "toggle_mobile_init", "toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254", null ]
+]; \ No newline at end of file
diff --git a/doc/html/tpldebug_8php.html b/doc/html/tpldebug_8php.html
new file mode 100644
index 000000000..d0384c0f7
--- /dev/null
+++ b/doc/html/tpldebug_8php.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/tpldebug.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('tpldebug_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">tpldebug.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a44778457a6c02554812fbfad19d32ba3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5">foreach</a>($files as $file)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3">print_template</a> ($s)</td></tr>
+<tr class="separator:a44778457a6c02554812fbfad19d32ba3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:afbc7aadb3f7ff1edf0aaaa326a42179c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a>($<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a> &gt; 1)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c">else</a></td></tr>
+<tr class="separator:afbc7aadb3f7ff1edf0aaaa326a42179c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5358407d65f2ca826f96356a6642d149"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149">$files</a> = glob('include/*.php')</td></tr>
+<tr class="separator:a5358407d65f2ca826f96356a6642d149"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a44778457a6c02554812fbfad19d32ba3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5">foreach</a> ($files as $file) print_template </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a5358407d65f2ca826f96356a6642d149"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5">foreach</a> ($files as $file) $files = glob('include/*.php')</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afbc7aadb3f7ff1edf0aaaa326a42179c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="redstrap_2php_2style_8php.html#a0c4684da834439885ae2285649d1aaea">if</a> ($<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a> &gt; 1) else</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Initial value:</b><div class="fragment"><div class="line">{</div>
+<div class="line"></div>
+<div class="line"></div>
+<div class="line"> echo <span class="stringliteral">&#39;boot.php: templates&#39;</span> . <span class="stringliteral">&quot;\n&quot;</span></div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/tpldebug_8php.js b/doc/html/tpldebug_8php.js
new file mode 100644
index 000000000..2391d96cc
--- /dev/null
+++ b/doc/html/tpldebug_8php.js
@@ -0,0 +1,6 @@
+var tpldebug_8php =
+[
+ [ "print_template", "tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3", null ],
+ [ "$files", "tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149", null ],
+ [ "else", "tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c", null ]
+]; \ No newline at end of file
diff --git a/doc/html/typo_8php.html b/doc/html/typo_8php.html
new file mode 100644
index 000000000..d574879e4
--- /dev/null
+++ b/doc/html/typo_8php.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/typo.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('typo_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">typo.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:acebf83966ef6d7e5645a6b62ba368f9f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="typo_8php.html#acebf83966ef6d7e5645a6b62ba368f9f">$a</a> = new <a class="el" href="classApp.html">App</a>()</td></tr>
+<tr class="separator:acebf83966ef6d7e5645a6b62ba368f9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9590b15215a21e9b42eb546aeef79704"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="typo_8php.html#a9590b15215a21e9b42eb546aeef79704">$files</a> = glob('include/*.php')</td></tr>
+<tr class="separator:a9590b15215a21e9b42eb546aeef79704"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a329c9c12217d2c8660c47bbc7c8df4c5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5">foreach</a> ($files as $file) = glob('mod/*.php')</td></tr>
+<tr class="separator:a329c9c12217d2c8660c47bbc7c8df4c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b709c1d79631ebc8320b41bda028b54"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="typo_8php.html#a1b709c1d79631ebc8320b41bda028b54">$dirs</a> = glob('addon/*')</td></tr>
+<tr class="separator:a1b709c1d79631ebc8320b41bda028b54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ecd17ac846be1b35f3662f5c12ab6bd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c">else</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="typo_8php.html#a3ecd17ac846be1b35f3662f5c12ab6bd">$phpath</a> = 'php'</td></tr>
+<tr class="separator:a3ecd17ac846be1b35f3662f5c12ab6bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="acebf83966ef6d7e5645a6b62ba368f9f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$a = new <a class="el" href="classApp.html">App</a>()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty\__construct()</a>, <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item\__construct()</a>, <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine\__construct()</a>, <a class="el" href="classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228">Template\_replcb_if()</a>, <a class="el" href="classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677">Template\_replcb_inc()</a>, <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="profile__advanced_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694">allowed_email()</a>, <a class="el" href="include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7">allowed_url()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad">api_account_verify_credentials()</a>, <a class="el" href="include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18">api_albums()</a>, <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template()</a>, <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="include_2api_8php.html#a970b02c06dea8b229aa3d5fff9cf4705">api_direct_messages_all()</a>, <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, <a class="el" href="include_2api_8php.html#a9160288b7ac220635942d8dc209b78c3">api_direct_messages_conversation()</a>, <a class="el" href="include_2api_8php.html#ad2b0192f3006918bea895de8074bf8d2">api_direct_messages_inbox()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#a58cf4c02ef435996f5c3bc4283d3968d">api_direct_messages_sentbox()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#ab1ecb58954f722444bfe03233345cb1b">api_followers_ids()</a>, <a class="el" href="include_2api_8php.html#a18cab7c6391df5c421753463f5d2a879">api_format_as()</a>, <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#acafd2899309a005fcb725289173dc7fe">api_friends_ids()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1">api_item_get_user()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api_photos()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api_rss_extra()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="include_2api_8php.html#a6951c690d87775eb37e569c66011988e">api_statuses_followers()</a>, <a class="el" href="include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e">api_statuses_friends()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="text_8php.html#a95fd2f8f23a1948414a03ebc963bac57">attribute_contains()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">cal()</a>, <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="Contact_8php.html#ad46ff6764f12b6d3ab45c49b797f98aa">channel_remove()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="security_8php.html#a9c6180e82150a5a9af91a1255d096b5c">check_form_security_token()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="boot_8php.html#ab79b8b4555cae20d03f8200666d89d63">clean_urls()</a>, <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</a>, <a class="el" href="common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a">common_aside()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside()</a>, <a class="el" href="connections_8php.html#a15af118efee9c948b6f8294e54a73bb2">connections_clone()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="conversation_8php.html#a1e97305a441dc143edbe09e17d1ceda1">conversation()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198">crepair_init()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">current_theme_url()</a>, <a class="el" href="include_2config_8php.html#a549910227348003efc3c05c9105c42da">del_config()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory_aside()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf">directory_init()</a>, <a class="el" href="dirfind_8php.html#af22b0283f928c4c32e62248a5ae67cee">dirfind_content()</a>, <a class="el" href="dirfind_8php.html#ac689a812c84f161b3a0d42349f83981c">dirfind_init()</a>, <a class="el" href="dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752">dirsearch_init()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c">dlogger()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850">ev_compare()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="text_8php.html#ae4282a39492caa23ccbc2ce98e54f110">expand_acl()</a>, <a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="include_2network_8php.html#a37ddeb88a3fd1dee9e8339723f9edf9a">fetch_url()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2">BaseObject\get_app()</a>, <a class="el" href="boot_8php.html#a0e6db7e365f2b041a828b93786f694bc">get_app()</a>, <a class="el" href="language_8php.html#a980dee1d8715a98ab02e36b59facf8ed">get_best_language()</a>, <a class="el" href="boot_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config()</a>, <a class="el" href="boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="security_8php.html#acd06ef411116115c2f0a92633700db8a">get_form_security_token()</a>, <a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">FriendicaSmartyEngine\get_intltext_template()</a>, <a class="el" href="plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295">get_intltext_template()</a>, <a class="el" href="plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4">get_markup_template()</a>, <a class="el" href="boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90">get_max_import_size()</a>, <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig()</a>, <a class="el" href="text_8php.html#a05b7f26dc2df78681f57eeade53040c6">get_plink()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="plugin_8php.html#a48047edfbef770125a5508dcc2f9282f">get_theme_screenshot()</a>, <a class="el" href="include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e">get_xconfig()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c">group_aside()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="photo__driver_8php.html#a7273b82b017fd96d29b2c57bab03aea6">guess_image_type()</a>, <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag()</a>, <a class="el" href="hcard_8php.html#a956c7cae2009652a37900306e5b7b73d">hcard_aside()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77">head_get_icon()</a>, <a class="el" href="boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84">head_set_icon()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info()</a>, <a class="el" href="intro_8php.html#abc3abf25da64f98f215126eb08c7936b">intro_aside()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">is_site_admin()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285">link_compare()</a>, <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">load_hooks()</a>, <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig()</a>, <a class="el" href="language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05">load_translation_table()</a>, <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">logger()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="setup_8php.html#abe405d227ba7232971964a706d4f3bce">manual_config()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message_aside()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a">nav_set_selected()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="items_8php.html#a53eb3d27e1c55083be93a32f392d54e7">new_follower()</a>, <a class="el" href="nogroup_8php.html#a52085b183f97c552f1db5c4926e8ec30">nogroup_content()</a>, <a class="el" href="nogroup_8php.html#a099cb353bf62e8453069ce107b763212">nogroup_init()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch_init()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">paginate()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="language_8php.html#a78bd204955ec4cc3a9ac651285a1689d">pop_lang()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="include_2network_8php.html#aa44d9e33a579d930e9e79c4ebb3d6b5e">post_url()</a>, <a class="el" href="text_8php.html#ac19d2b33a58372a357a43d51eed19162">preg_heart()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e">profile_aside()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="boot_8php.html#a5b45d647da3743a7fc8c6223350b4d67">profile_create_sidebar()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="boot_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3">profile_photo_aside()</a>, <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="boot_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273">profile_tabs()</a>, <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles_aside()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc">profperm_aside()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm_init()</a>, <a class="el" href="language_8php.html#ac9142ef1d01a235c760deb0f16643f5a">push_lang()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form()</a>, <a class="el" href="redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b">redbasic_init()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="redstrap_2php_2theme_8php.html#a4dac61d466b4261deca2846f548e484a">redstrap_init()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</a>, <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, <a class="el" href="search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7">search_post()</a>, <a class="el" href="include_2message_8php.html#ac382fdcdf990dcfa8f6528ab8fd280bd">send_message()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">set_xconfig()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings_init()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a4df91c84594d51ba56b5918de414230d">suggest_aside()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43">tags_sort()</a>, <a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">terminate_friendship()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>, <a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">theme_include()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865">timezone_cmp()</a>, <a class="el" href="toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254">toggle_mobile_init()</a>, <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1">update_community_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections_aside()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">what_next()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda">z_path()</a>, <a class="el" href="boot_8php.html#add517a0958ac684792c62142a3877f81">z_root()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="boot_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1b709c1d79631ebc8320b41bda028b54"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$dirs = glob('addon/*')</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9590b15215a21e9b42eb546aeef79704"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$files = glob('include/*.php')</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3ecd17ac846be1b35f3662f5c12ab6bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c">else</a> $phpath = 'php'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, and <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a329c9c12217d2c8660c47bbc7c8df4c5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">foreach = glob('mod/*.php')</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/typo_8php.js b/doc/html/typo_8php.js
new file mode 100644
index 000000000..83a7f7010
--- /dev/null
+++ b/doc/html/typo_8php.js
@@ -0,0 +1,8 @@
+var typo_8php =
+[
+ [ "$a", "typo_8php.html#acebf83966ef6d7e5645a6b62ba368f9f", null ],
+ [ "$dirs", "typo_8php.html#a1b709c1d79631ebc8320b41bda028b54", null ],
+ [ "$files", "typo_8php.html#a9590b15215a21e9b42eb546aeef79704", null ],
+ [ "$phpath", "typo_8php.html#a3ecd17ac846be1b35f3662f5c12ab6bd", null ],
+ [ "foreach", "typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5", null ]
+]; \ No newline at end of file
diff --git a/doc/html/typohelper_8php.html b/doc/html/typohelper_8php.html
new file mode 100644
index 000000000..694dc6711
--- /dev/null
+++ b/doc/html/typohelper_8php.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/typohelper.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('typohelper_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">typohelper.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a7542d95618011800c61773127fa625cf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="typohelper_8php.html#a7542d95618011800c61773127fa625cf">$str</a></td></tr>
+<tr class="separator:a7542d95618011800c61773127fa625cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6fd357fb5b2a3ba8aab9e8b98c6a805"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805">EOT</a></td></tr>
+<tr class="separator:ab6fd357fb5b2a3ba8aab9e8b98c6a805"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a7542d95618011800c61773127fa625cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$str</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Initial value:</b><div class="fragment"><div class="line">= &lt;&lt;&lt; <a class="code" href="typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805">EOT</a></div>
+<div class="line"> error_reporting(E_ERROR | E_WARNING | E_PARSE )</div>
+</div><!-- fragment -->
+<p>Referenced by <a class="el" href="include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25">api_date()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e">dbesc()</a>, <a class="el" href="classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e">dba_mysql\escape()</a>, <a class="el" href="classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64">dba_mysqli\escape()</a>, <a class="el" href="plugin_8php.html#af92789f559b89a380e49d303218aeeca">head_get_css()</a>, <a class="el" href="plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1">head_get_js()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos_album_get_db_idstr()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">stream_perms_api_uids()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, and <a class="el" href="text_8php.html#aaed4413ed8918838b517e3b2fafaea0d">xmlify()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab6fd357fb5b2a3ba8aab9e8b98c6a805"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">EOT</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, and <a class="el" href="system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa">system_down()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/typohelper_8php.js b/doc/html/typohelper_8php.js
new file mode 100644
index 000000000..7fb5a8d08
--- /dev/null
+++ b/doc/html/typohelper_8php.js
@@ -0,0 +1,5 @@
+var typohelper_8php =
+[
+ [ "$str", "typohelper_8php.html#a7542d95618011800c61773127fa625cf", null ],
+ [ "EOT", "typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805", null ]
+]; \ No newline at end of file
diff --git a/doc/html/uexport_8php.html b/doc/html/uexport_8php.html
new file mode 100644
index 000000000..539b75123
--- /dev/null
+++ b/doc/html/uexport_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/uexport.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('uexport_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">uexport.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a118920137dedebe0581623a2e57e7b0d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a118920137dedebe0581623a2e57e7b0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a118920137dedebe0581623a2e57e7b0d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uexport_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/uexport_8php.js b/doc/html/uexport_8php.js
new file mode 100644
index 000000000..05a236df8
--- /dev/null
+++ b/doc/html/uexport_8php.js
@@ -0,0 +1,4 @@
+var uexport_8php =
+[
+ [ "uexport_init", "uexport_8php.html#a118920137dedebe0581623a2e57e7b0d", null ]
+]; \ No newline at end of file
diff --git a/doc/html/update__channel_8php.html b/doc/html/update__channel_8php.html
new file mode 100644
index 000000000..f1f1df780
--- /dev/null
+++ b/doc/html/update__channel_8php.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/update_channel.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('update__channel_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">update_channel.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aca52a9da500f0db2f0a8666af5bc06ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aca52a9da500f0db2f0a8666af5bc06ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aca52a9da500f0db2f0a8666af5bc06ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_channel_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Module: update_profile Purpose: AJAX synchronisation of profile page </p>
+<p>We can remove this hack once Internet Explorer recognises HTML5 natively</p>
+<p>Grab the page inner contents by calling the content function from the profile module directly, but move any image src attributes to another attribute name. This is because some browsers will prefetch all the images for the page even if we don't need them. The only ones we need to fetch are those for new page additions, which we'll discover on the client side and then swap the image back.</p>
+<p>reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/update__channel_8php.js b/doc/html/update__channel_8php.js
new file mode 100644
index 000000000..94dbeff08
--- /dev/null
+++ b/doc/html/update__channel_8php.js
@@ -0,0 +1,4 @@
+var update__channel_8php =
+[
+ [ "update_channel_content", "update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba", null ]
+]; \ No newline at end of file
diff --git a/doc/html/update__community_8php.html b/doc/html/update__community_8php.html
new file mode 100644
index 000000000..8c8827419
--- /dev/null
+++ b/doc/html/update__community_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/update_community.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('update__community_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">update_community.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:abdcc5c4ecebbe0b5fcba2755c69cb3b1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1">update_community_content</a> (&amp;$a)</td></tr>
+<tr class="separator:abdcc5c4ecebbe0b5fcba2755c69cb3b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="abdcc5c4ecebbe0b5fcba2755c69cb3b1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_community_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/update__community_8php.js b/doc/html/update__community_8php.js
new file mode 100644
index 000000000..eda76aa18
--- /dev/null
+++ b/doc/html/update__community_8php.js
@@ -0,0 +1,4 @@
+var update__community_8php =
+[
+ [ "update_community_content", "update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1", null ]
+]; \ No newline at end of file
diff --git a/doc/html/update__display_8php.html b/doc/html/update__display_8php.html
new file mode 100644
index 000000000..4ececcb64
--- /dev/null
+++ b/doc/html/update__display_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/update_display.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('update__display_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">update_display.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aa36ac524059e209d5d75a03c16206246"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aa36ac524059e209d5d75a03c16206246"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa36ac524059e209d5d75a03c16206246"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_display_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/update__display_8php.js b/doc/html/update__display_8php.js
new file mode 100644
index 000000000..05acc47d5
--- /dev/null
+++ b/doc/html/update__display_8php.js
@@ -0,0 +1,4 @@
+var update__display_8php =
+[
+ [ "update_display_content", "update__display_8php.html#aa36ac524059e209d5d75a03c16206246", null ]
+]; \ No newline at end of file
diff --git a/doc/html/update__network_8php.html b/doc/html/update__network_8php.html
new file mode 100644
index 000000000..87ef35d5e
--- /dev/null
+++ b/doc/html/update__network_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/update_network.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('update__network_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">update_network.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a8abf5b9f65af6a27ee2f9d7207ed1b41"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a8abf5b9f65af6a27ee2f9d7207ed1b41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a8abf5b9f65af6a27ee2f9d7207ed1b41"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_network_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/update__network_8php.js b/doc/html/update__network_8php.js
new file mode 100644
index 000000000..54bc186a3
--- /dev/null
+++ b/doc/html/update__network_8php.js
@@ -0,0 +1,4 @@
+var update__network_8php =
+[
+ [ "update_network_content", "update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41", null ]
+]; \ No newline at end of file
diff --git a/doc/html/update__search_8php.html b/doc/html/update__search_8php.html
new file mode 100644
index 000000000..3a85e55f8
--- /dev/null
+++ b/doc/html/update__search_8php.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/update_search.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('update__search_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">update_search.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ace4c3a23fa7d6922399e27c297a6ba52"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content</a> (&amp;$a)</td></tr>
+<tr class="separator:ace4c3a23fa7d6922399e27c297a6ba52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ace4c3a23fa7d6922399e27c297a6ba52"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_search_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Module: update_profile Purpose: AJAX synchronisation of search page </p>
+<p>We can remove this hack once Internet Explorer recognises HTML5 natively</p>
+<p>Grab the page inner contents by calling the content function from the profile module directly, but move any image src attributes to another attribute name. This is because some browsers will prefetch all the images for the page even if we don't need them. The only ones we need to fetch are those for new page additions, which we'll discover on the client side and then swap the image back.</p>
+<p>reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/update__search_8php.js b/doc/html/update__search_8php.js
new file mode 100644
index 000000000..8eb5c446d
--- /dev/null
+++ b/doc/html/update__search_8php.js
@@ -0,0 +1,4 @@
+var update__search_8php =
+[
+ [ "update_search_content", "update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52", null ]
+]; \ No newline at end of file
diff --git a/doc/html/updatetpl_8py.html b/doc/html/updatetpl_8py.html
new file mode 100644
index 000000000..365993ea3
--- /dev/null
+++ b/doc/html/updatetpl_8py.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: util/updatetpl.py File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('updatetpl_8py.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">updatetpl.py File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceupdatetpl"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceupdatetpl.html">updatetpl</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac9d11279fed403a329a719298feafc4f"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceupdatetpl.html#ac9d11279fed403a329a719298feafc4f">updatetpl.help</a></td></tr>
+<tr class="separator:ac9d11279fed403a329a719298feafc4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:ae694f5e1f25f8a92a945eb90c432dfe6"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceupdatetpl.html#ae694f5e1f25f8a92a945eb90c432dfe6">updatetpl.path</a> = ''</td></tr>
+<tr class="separator:ae694f5e1f25f8a92a945eb90c432dfe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a988d937ed5d5c2b592b763036af5cf94"><td class="memItemLeft" align="right" valign="top">list&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceupdatetpl.html#a988d937ed5d5c2b592b763036af5cf94">updatetpl.excludepaths</a> = ['css', 'img', 'js', 'php', 'theme']</td></tr>
+<tr class="separator:a988d937ed5d5c2b592b763036af5cf94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52a85ffa6b6d63d840b185a133478c12"><td class="memItemLeft" align="right" valign="top">list&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceupdatetpl.html#a52a85ffa6b6d63d840b185a133478c12">updatetpl.tplpaths</a> = []</td></tr>
+<tr class="separator:a52a85ffa6b6d63d840b185a133478c12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab42dd79af65ee82201fd6f04715f62f6"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceupdatetpl.html#ab42dd79af65ee82201fd6f04715f62f6">updatetpl.names</a> = os.listdir(path + 'view/')</td></tr>
+<tr class="separator:ab42dd79af65ee82201fd6f04715f62f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79c20eb62d568c999b56eb08530355d3"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceupdatetpl.html#a79c20eb62d568c999b56eb08530355d3">updatetpl.fnull</a> = open(os.devnull, &quot;w&quot;)</td></tr>
+<tr class="separator:a79c20eb62d568c999b56eb08530355d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/updatetpl_8py.js b/doc/html/updatetpl_8py.js
new file mode 100644
index 000000000..38f8a5299
--- /dev/null
+++ b/doc/html/updatetpl_8py.js
@@ -0,0 +1,9 @@
+var updatetpl_8py =
+[
+ [ "help", "updatetpl_8py.html#ac9d11279fed403a329a719298feafc4f", null ],
+ [ "excludepaths", "updatetpl_8py.html#a988d937ed5d5c2b592b763036af5cf94", null ],
+ [ "fnull", "updatetpl_8py.html#a79c20eb62d568c999b56eb08530355d3", null ],
+ [ "names", "updatetpl_8py.html#ab42dd79af65ee82201fd6f04715f62f6", null ],
+ [ "path", "updatetpl_8py.html#ae694f5e1f25f8a92a945eb90c432dfe6", null ],
+ [ "tplpaths", "updatetpl_8py.html#a52a85ffa6b6d63d840b185a133478c12", null ]
+]; \ No newline at end of file
diff --git a/doc/html/view_2theme_2redbasic_2php_2config_8php.html b/doc/html/view_2theme_2redbasic_2php_2config_8php.html
new file mode 100644
index 000000000..bdafb003d
--- /dev/null
+++ b/doc/html/view_2theme_2redbasic_2php_2config_8php.html
@@ -0,0 +1,254 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redbasic/php/config.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('view_2theme_2redbasic_2php_2config_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">config.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aa7d5739b72efef9822535b2b32d5364d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aa7d5739b72efef9822535b2b32d5364d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad29461920cf03b9ce1428e21eb1f4ba6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">theme_post</a> (&amp;$a)</td></tr>
+<tr class="separator:ad29461920cf03b9ce1428e21eb1f4ba6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29a6e1ef07465d1617d836b859b3b2b2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2">redbasic_form</a> (&amp;$a, $font_size, $line_height, $colour, $shadow, $navcolour, $opaquenav, $displaystyle, $linkcolour, $iconset, $shiny, $colour_scheme, $radius)</td></tr>
+<tr class="separator:a29a6e1ef07465d1617d836b859b3b2b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a29a6e1ef07465d1617d836b859b3b2b2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">redbasic_form </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$font_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$line_height</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$colour</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$shadow</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$navcolour</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$opaquenav</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$displaystyle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$linkcolour</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$iconset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$shiny</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$colour_scheme</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$radius</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa7d5739b72efef9822535b2b32d5364d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">theme_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Theme settings </p>
+
+</div>
+</div>
+<a class="anchor" id="ad29461920cf03b9ce1428e21eb1f4ba6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">theme_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/view_2theme_2redbasic_2php_2config_8php.js b/doc/html/view_2theme_2redbasic_2php_2config_8php.js
new file mode 100644
index 000000000..18852d340
--- /dev/null
+++ b/doc/html/view_2theme_2redbasic_2php_2config_8php.js
@@ -0,0 +1,6 @@
+var view_2theme_2redbasic_2php_2config_8php =
+[
+ [ "redbasic_form", "view_2theme_2redbasic_2php_2config_8php.html#a29a6e1ef07465d1617d836b859b3b2b2", null ],
+ [ "theme_content", "view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d", null ],
+ [ "theme_post", "view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6", null ]
+]; \ No newline at end of file
diff --git a/doc/html/view_2theme_2redstrap_2php_2config_8php.html b/doc/html/view_2theme_2redstrap_2php_2config_8php.html
new file mode 100644
index 000000000..018994597
--- /dev/null
+++ b/doc/html/view_2theme_2redstrap_2php_2config_8php.html
@@ -0,0 +1,238 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redstrap/php/config.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('view_2theme_2redstrap_2php_2config_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">config.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aa7d5739b72efef9822535b2b32d5364d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="view_2theme_2redstrap_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aa7d5739b72efef9822535b2b32d5364d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad29461920cf03b9ce1428e21eb1f4ba6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="view_2theme_2redstrap_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">theme_post</a> (&amp;$a)</td></tr>
+<tr class="separator:ad29461920cf03b9ce1428e21eb1f4ba6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af58e97b437c1e98a5e434886494cc70e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="view_2theme_2redstrap_2php_2config_8php.html#af58e97b437c1e98a5e434886494cc70e">redbasic_form</a> (&amp;$a, $font_size, $line_height, $colour, $shadow, $navcolour, $opaquenav, $displaystyle, $linkcolour, $iconset, $shiny)</td></tr>
+<tr class="separator:af58e97b437c1e98a5e434886494cc70e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af58e97b437c1e98a5e434886494cc70e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">redbasic_form </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$font_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$line_height</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$colour</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$shadow</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$navcolour</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$opaquenav</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$displaystyle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$linkcolour</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$iconset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$shiny</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa7d5739b72efef9822535b2b32d5364d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">theme_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Theme settings </p>
+
+</div>
+</div>
+<a class="anchor" id="ad29461920cf03b9ce1428e21eb1f4ba6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">theme_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/view_2theme_2redstrap_2php_2config_8php.js b/doc/html/view_2theme_2redstrap_2php_2config_8php.js
new file mode 100644
index 000000000..e209d2eea
--- /dev/null
+++ b/doc/html/view_2theme_2redstrap_2php_2config_8php.js
@@ -0,0 +1,6 @@
+var view_2theme_2redstrap_2php_2config_8php =
+[
+ [ "redbasic_form", "view_2theme_2redstrap_2php_2config_8php.html#af58e97b437c1e98a5e434886494cc70e", null ],
+ [ "theme_content", "view_2theme_2redstrap_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d", null ],
+ [ "theme_post", "view_2theme_2redstrap_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6", null ]
+]; \ No newline at end of file
diff --git a/doc/html/view_8php.html b/doc/html/view_8php.html
new file mode 100644
index 000000000..b4498a4f9
--- /dev/null
+++ b/doc/html/view_8php.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/view.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('view_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">view.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac168f6c61a91ba2063f13b441c0ae96e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e">view_init</a> ($a)</td></tr>
+<tr class="separator:ac168f6c61a91ba2063f13b441c0ae96e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ac168f6c61a91ba2063f13b441c0ae96e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">view_init </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>load view/theme/$current_theme/style.php with friendica contex </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/view_8php.js b/doc/html/view_8php.js
new file mode 100644
index 000000000..d40a196cb
--- /dev/null
+++ b/doc/html/view_8php.js
@@ -0,0 +1,4 @@
+var view_8php =
+[
+ [ "view_init", "view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e", null ]
+]; \ No newline at end of file
diff --git a/doc/html/viewconnections_8php.html b/doc/html/viewconnections_8php.html
new file mode 100644
index 000000000..c4598e8b7
--- /dev/null
+++ b/doc/html/viewconnections_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/viewconnections.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('viewconnections_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">viewconnections.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a00163d50b17568f7b0e48b1ca9ab7330"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a00163d50b17568f7b0e48b1ca9ab7330"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae330cea4cddd091559659f8b469617b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections_aside</a> (&amp;$a)</td></tr>
+<tr class="separator:ae330cea4cddd091559659f8b469617b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6c4d983e97b3a8a879567ff76507776"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content</a> (&amp;$a)</td></tr>
+<tr class="separator:ab6c4d983e97b3a8a879567ff76507776"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ae330cea4cddd091559659f8b469617b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">viewconnections_aside </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab6c4d983e97b3a8a879567ff76507776"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">viewconnections_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a00163d50b17568f7b0e48b1ca9ab7330"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">viewconnections_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/viewconnections_8php.js b/doc/html/viewconnections_8php.js
new file mode 100644
index 000000000..5b9ec8153
--- /dev/null
+++ b/doc/html/viewconnections_8php.js
@@ -0,0 +1,6 @@
+var viewconnections_8php =
+[
+ [ "viewconnections_aside", "viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6", null ],
+ [ "viewconnections_content", "viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776", null ],
+ [ "viewconnections_init", "viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330", null ]
+]; \ No newline at end of file
diff --git a/doc/html/viewsrc_8php.html b/doc/html/viewsrc_8php.html
new file mode 100644
index 000000000..4c209fba5
--- /dev/null
+++ b/doc/html/viewsrc_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/viewsrc.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('viewsrc_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">viewsrc.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a6eff3d0c1d7d14b335c4edb785cd60a4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a6eff3d0c1d7d14b335c4edb785cd60a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a6eff3d0c1d7d14b335c4edb785cd60a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">viewsrc_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/viewsrc_8php.js b/doc/html/viewsrc_8php.js
new file mode 100644
index 000000000..0f5ac6b8c
--- /dev/null
+++ b/doc/html/viewsrc_8php.js
@@ -0,0 +1,4 @@
+var viewsrc_8php =
+[
+ [ "viewsrc_content", "viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4", null ]
+]; \ No newline at end of file
diff --git a/doc/html/wall__attach_8php.html b/doc/html/wall__attach_8php.html
new file mode 100644
index 000000000..6f6abd199
--- /dev/null
+++ b/doc/html/wall__attach_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/wall_attach.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('wall__attach_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">wall_attach.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7385e970e93228d082f0fd7254f6e653"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a7385e970e93228d082f0fd7254f6e653"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a7385e970e93228d082f0fd7254f6e653"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">wall_attach_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/wall__attach_8php.js b/doc/html/wall__attach_8php.js
new file mode 100644
index 000000000..c0281be85
--- /dev/null
+++ b/doc/html/wall__attach_8php.js
@@ -0,0 +1,4 @@
+var wall__attach_8php =
+[
+ [ "wall_attach_post", "wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653", null ]
+]; \ No newline at end of file
diff --git a/doc/html/wall__upload_8php.html b/doc/html/wall__upload_8php.html
new file mode 100644
index 000000000..dd8bc42df
--- /dev/null
+++ b/doc/html/wall__upload_8php.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/wall_upload.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('wall__upload_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">wall_upload.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7cbe204244cf9e0380ee932263a74d8f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a7cbe204244cf9e0380ee932263a74d8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a7cbe204244cf9e0380ee932263a74d8f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">wall_upload_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, and <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/wall__upload_8php.js b/doc/html/wall__upload_8php.js
new file mode 100644
index 000000000..86f363be5
--- /dev/null
+++ b/doc/html/wall__upload_8php.js
@@ -0,0 +1,4 @@
+var wall__upload_8php =
+[
+ [ "wall_upload_post", "wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f", null ]
+]; \ No newline at end of file
diff --git a/doc/html/webfinger_8php.html b/doc/html/webfinger_8php.html
new file mode 100644
index 000000000..8ef8f3ae1
--- /dev/null
+++ b/doc/html/webfinger_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/webfinger.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('webfinger_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">webfinger.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a17dd28db6d390194bf9ecb809739d1d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3">webfinger_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a17dd28db6d390194bf9ecb809739d1d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a17dd28db6d390194bf9ecb809739d1d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">webfinger_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/webfinger_8php.js b/doc/html/webfinger_8php.js
new file mode 100644
index 000000000..f34d3bd88
--- /dev/null
+++ b/doc/html/webfinger_8php.js
@@ -0,0 +1,4 @@
+var webfinger_8php =
+[
+ [ "webfinger_content", "webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3", null ]
+]; \ No newline at end of file
diff --git a/doc/html/webpages_8php.html b/doc/html/webpages_8php.html
new file mode 100644
index 000000000..37fcfdd29
--- /dev/null
+++ b/doc/html/webpages_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/webpages.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('webpages_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">webpages.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af9ad0b65eba79acead3fa32b43d888b7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init</a> (&amp;$a)</td></tr>
+<tr class="separator:af9ad0b65eba79acead3fa32b43d888b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3b7397d4abc153e3d2147740ee1a41d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content</a> (&amp;$a)</td></tr>
+<tr class="separator:af3b7397d4abc153e3d2147740ee1a41d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af3b7397d4abc153e3d2147740ee1a41d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">webpages_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af9ad0b65eba79acead3fa32b43d888b7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">webpages_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/webpages_8php.js b/doc/html/webpages_8php.js
new file mode 100644
index 000000000..961f9a5e8
--- /dev/null
+++ b/doc/html/webpages_8php.js
@@ -0,0 +1,5 @@
+var webpages_8php =
+[
+ [ "webpages_content", "webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d", null ],
+ [ "webpages_init", "webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7", null ]
+]; \ No newline at end of file
diff --git a/doc/html/wfinger_8php.html b/doc/html/wfinger_8php.html
new file mode 100644
index 000000000..bdede93d8
--- /dev/null
+++ b/doc/html/wfinger_8php.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/wfinger.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('wfinger_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">wfinger.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae21e50c8d0a5f3c9be9f43a4e519acd3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ae21e50c8d0a5f3c9be9f43a4e519acd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ae21e50c8d0a5f3c9be9f43a4e519acd3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">wfinger_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/wfinger_8php.js b/doc/html/wfinger_8php.js
new file mode 100644
index 000000000..b40fe5d03
--- /dev/null
+++ b/doc/html/wfinger_8php.js
@@ -0,0 +1,4 @@
+var wfinger_8php =
+[
+ [ "wfinger_init", "wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3", null ]
+]; \ No newline at end of file
diff --git a/doc/html/xchan_8php.html b/doc/html/xchan_8php.html
new file mode 100644
index 000000000..d9113c36b
--- /dev/null
+++ b/doc/html/xchan_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/xchan.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('xchan_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">xchan.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a9853348bf1a35c644460221ba75edc2d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a9853348bf1a35c644460221ba75edc2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a9853348bf1a35c644460221ba75edc2d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xchan_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/xchan_8php.js b/doc/html/xchan_8php.js
new file mode 100644
index 000000000..65ea176d4
--- /dev/null
+++ b/doc/html/xchan_8php.js
@@ -0,0 +1,4 @@
+var xchan_8php =
+[
+ [ "xchan_content", "xchan_8php.html#a9853348bf1a35c644460221ba75edc2d", null ]
+]; \ No newline at end of file
diff --git a/doc/html/xrd_8php.html b/doc/html/xrd_8php.html
new file mode 100644
index 000000000..5f3219297
--- /dev/null
+++ b/doc/html/xrd_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/xrd.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('xrd_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">xrd.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aee3cf087968e4a0ff3a87de16eb23270"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init</a> (&amp;$a)</td></tr>
+<tr class="separator:aee3cf087968e4a0ff3a87de16eb23270"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aee3cf087968e4a0ff3a87de16eb23270"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xrd_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/xrd_8php.js b/doc/html/xrd_8php.js
new file mode 100644
index 000000000..01f00aa54
--- /dev/null
+++ b/doc/html/xrd_8php.js
@@ -0,0 +1,4 @@
+var xrd_8php =
+[
+ [ "xrd_init", "xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270", null ]
+]; \ No newline at end of file
diff --git a/doc/html/zfinger_8php.html b/doc/html/zfinger_8php.html
new file mode 100644
index 000000000..a6d87856e
--- /dev/null
+++ b/doc/html/zfinger_8php.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/zfinger.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('zfinger_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">zfinger.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a8139b83a22ef98869adc10aa224027a0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a8139b83a22ef98869adc10aa224027a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a8139b83a22ef98869adc10aa224027a0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zfinger_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/zfinger_8php.js b/doc/html/zfinger_8php.js
new file mode 100644
index 000000000..9bee68767
--- /dev/null
+++ b/doc/html/zfinger_8php.js
@@ -0,0 +1,4 @@
+var zfinger_8php =
+[
+ [ "zfinger_init", "zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0", null ]
+]; \ No newline at end of file
diff --git a/doc/html/zot_8php.html b/doc/html/zot_8php.html
new file mode 100644
index 000000000..74e453f0c
--- /dev/null
+++ b/doc/html/zot_8php.html
@@ -0,0 +1,914 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/zot.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('zot_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">zot.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab22d67660702056bf3f4696dcebf5ce7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot_new_uid</a> ($channel_nick)</td></tr>
+<tr class="separator:ab22d67660702056bf3f4696dcebf5ce7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acdea9362d78a63dce948fdf0ea73ef0e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#acdea9362d78a63dce948fdf0ea73ef0e">zot_get_hubloc</a> ($arr, $primary=false)</td></tr>
+<tr class="separator:acdea9362d78a63dce948fdf0ea73ef0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3862b3161b2c8557dc1a95020179bd81"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet</a> ($channel, $type= 'notify', $recipients=null, $remote_key=null, $secret=null)</td></tr>
+<tr class="separator:a3862b3161b2c8557dc1a95020179bd81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3e9b99ddb11353f37f265a05bb42142"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142">zot_zot</a> ($url, $data)</td></tr>
+<tr class="separator:ab3e9b99ddb11353f37f265a05bb42142"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77720d6b59894e9b609af89c310c8a4d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a77720d6b59894e9b609af89c310c8a4d">zot_finger</a> ($webbie, $channel)</td></tr>
+<tr class="separator:a77720d6b59894e9b609af89c310c8a4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b23bfb31d4491231e1e73bdc077240d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh</a> ($them, $channel=null)</td></tr>
+<tr class="separator:a7b23bfb31d4491231e1e73bdc077240d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55056e863a7860bc0cf922e78fcce073"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub</a> ($arr)</td></tr>
+<tr class="separator:a55056e863a7860bc0cf922e78fcce073"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5bcdfef419b16075a0eca990956223dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub</a> ($arr)</td></tr>
+<tr class="separator:a5bcdfef419b16075a0eca990956223dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0227978011d8601494a7651fa26acf0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan</a> ($arr)</td></tr>
+<tr class="separator:ab0227978011d8601494a7651fa26acf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a928f5643ca66ae9635d85aeb2be62e03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response</a> ($hub, $arr, $outq)</td></tr>
+<tr class="separator:a928f5643ca66ae9635d85aeb2be62e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61cdc1ec843663c423ed2d8160ae5aea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch</a> ($arr)</td></tr>
+<tr class="separator:a61cdc1ec843663c423ed2d8160ae5aea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22e3f9b97b7969ddbe43ccf0db93a19c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import</a> ($arr)</td></tr>
+<tr class="separator:a22e3f9b97b7969ddbe43ccf0db93a19c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a083aec6c900d244e1bfc1406f9461465"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips</a> ($msg)</td></tr>
+<tr class="separator:a083aec6c900d244e1bfc1406f9461465"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a703f528ade8382cf374e4119bd6f7859"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips</a> ($msg)</td></tr>
+<tr class="separator:a703f528ade8382cf374e4119bd6f7859"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37ec13b18057634eadb071f05297f5e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery</a> ($sender, $arr, $deliveries, $relay)</td></tr>
+<tr class="separator:a37ec13b18057634eadb071f05297f5e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad25a3fe0e1566121d6fb8222979bc10"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag</a> ($sender, $arr, $uid)</td></tr>
+<tr class="separator:aad25a3fe0e1566121d6fb8222979bc10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31aad56acf8ff8f2353e6ff8595544df"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">update_imported_item</a> ($sender, $item, $uid)</td></tr>
+<tr class="separator:a31aad56acf8ff8f2353e6ff8595544df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfeb9400ae6b726beec89f8f1e8fde72"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item</a> ($sender, $item, $uid)</td></tr>
+<tr class="separator:adfeb9400ae6b726beec89f8f1e8fde72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6ae96db8cbbdbb10e6876d206bbf7cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery</a> ($sender, $arr, $deliveries)</td></tr>
+<tr class="separator:aa6ae96db8cbbdbb10e6876d206bbf7cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9a57b40669351c9791126b925cb7ef3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery</a> ($sender, $arr, $deliveries)</td></tr>
+<tr class="separator:a9a57b40669351c9791126b925cb7ef3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c9e0b243ba29a7b0c050bd0b86eee32"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">import_directory_profile</a> ($hash, $profile)</td></tr>
+<tr class="separator:a3c9e0b243ba29a7b0c050bd0b86eee32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3bf11286c2619b4ca28e49d5b5ab374a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a">import_directory_keywords</a> ($hash, $keywords)</td></tr>
+<tr class="separator:a3bf11286c2619b4ca28e49d5b5ab374a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a666d3efcac00ec1b4a4537a60655f2ab"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a666d3efcac00ec1b4a4537a60655f2ab">update_modtime</a> ($hash)</td></tr>
+<tr class="separator:a666d3efcac00ec1b4a4537a60655f2ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2657e141d62d5f67ad3c87651b585299"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site</a> ($arr, $pubkey)</td></tr>
+<tr class="separator:a2657e141d62d5f67ad3c87651b585299"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac34e479d27f32b82dd6b33542f81a6a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet</a> ($uid=0, $packet=null)</td></tr>
+<tr class="separator:ac34e479d27f32b82dd6b33542f81a6a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac301c67864917c35922257950ae0f95c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery</a> ($sender, $arr, $deliveries)</td></tr>
+<tr class="separator:ac301c67864917c35922257950ae0f95c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a703f528ade8382cf374e4119bd6f7859"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">allowed_public_recips </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$msg</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac34e479d27f32b82dd6b33542f81a6a7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">build_sync_packet </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$packet</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Send a zot packet to all hubs where this channel is duplicated, refreshing such things as personal settings, channel permissions, address book updates, etc. </p>
+
+<p>Referenced by <a class="el" href="connections_8php.html#a15af118efee9c948b6f8294e54a73bb2">connections_clone()</a>, and <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adfeb9400ae6b726beec89f8f1e8fde72"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">delete_imported_item </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sender</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3bf11286c2619b4ca28e49d5b5ab374a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">import_directory_keywords </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$keywords</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">import_directory_profile()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3c9e0b243ba29a7b0c050bd0b86eee32"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">import_directory_profile </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$profile</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, and <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2657e141d62d5f67ad3c87651b585299"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">import_site </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pubkey</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab0227978011d8601494a7651fa26acf0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">import_xchan </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac301c67864917c35922257950ae0f95c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">process_channel_sync_delivery </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sender</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$deliveries</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a37ec13b18057634eadb071f05297f5e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">process_delivery </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sender</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$deliveries</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$relay</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa6ae96db8cbbdbb10e6876d206bbf7cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">process_mail_delivery </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sender</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$deliveries</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9a57b40669351c9791126b925cb7ef3b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">process_profile_delivery </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sender</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$deliveries</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c">zot_import()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a083aec6c900d244e1bfc1406f9461465"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">public_recips </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$msg</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aad25a3fe0e1566121d6fb8222979bc10"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">remove_community_tag </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sender</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a31aad56acf8ff8f2353e6ff8595544df"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_imported_item </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sender</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a666d3efcac00ec1b4a4537a60655f2ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_modtime </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hash</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32">import_directory_profile()</a>, and <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3862b3161b2c8557dc1a95020179bd81"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_build_packet </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em> = <code>'notify'</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$recipients</em> = <code>null</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$remote_key</em> = <code>null</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$secret</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, and <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a61cdc1ec843663c423ed2d8160ae5aea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_fetch </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>: zot_fetch</p>
+<p>We received a notification packet (in <a class="el" href="post_8php.html">mod/post.php</a>) that a message is waiting for us, and we've verified the sender. Now send back a pickup message, using our message tracking ID ($arr['secret']), which we will sign. The entire pickup message is encrypted with the remote site's public key. If everything checks out on the remote end, we will receive back a packet containing one or more messages, which will be processed before returning. </p>
+
+<p>Referenced by <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a77720d6b59894e9b609af89c310c8a4d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_finger </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$webbie</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>: zot_finger</p>
+<p>Look up information about channel </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname"></td><td>string $webbie does not have to be host qualified e.g. 'foo' is treated as 'foo' </td></tr>
+ <tr><td class="paramname"></td><td>array $channel (optional), if supplied permissions will be enumerated specifically for $channel</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>: array =&gt; see z_post_url and <a class="el" href="zfinger_8php.html">mod/zfinger.php</a> </dd></dl>
+
+<p>Referenced by <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2follow_8php.html#a6553a7650fae55f95660510d90983144">new_contact()</a>, <a class="el" href="socgraph_8php.html#aad9ee2421fd1ca405b241e8ed72d9aca">poco_load()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, and <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acdea9362d78a63dce948fdf0ea73ef0e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_get_hubloc </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$primary</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Given an array of zot hashes, return all distinct hubs If primary is true, return only primary hubs Result is ordered by url to assist in batching. Return only the first primary hub as there should only be one. </p>
+
+<p>Referenced by <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a55056e863a7860bc0cf922e78fcce073"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_gethub </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>: zot_gethub</p>
+<p>A guid and a url, both signed by the sender, distinguish a known sender at a known location This function looks these up to see if the channel is known. If not, we will need to verify it. </p>
+<dl class="section return"><dt>Returns</dt><dd>: array =&gt; hubloc record </dd></dl>
+
+<p>Referenced by <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, and <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a22e3f9b97b7969ddbe43ccf0db93a19c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_import </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>zot_import</p>
+<p>Process an incoming array of messages which were obtained via pickup, and import, update, delete as directed.</p>
+<p>The message types handled here are 'activity' (e.g. posts), 'mail' and 'profile' </p>
+
+<p>Referenced by <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, and <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab22d67660702056bf3f4696dcebf5ce7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_new_uid </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_nick</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>zot_new_uid($channel_nick) = unique nickname of controlling entity </p>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a928f5643ca66ae9635d85aeb2be62e03"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_process_response </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hub</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$outq</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, and <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7b23bfb31d4491231e1e73bdc077240d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_refresh </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$them</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>: zot_refresh</p>
+<p>zot_refresh is typically invoked when somebody has changed permissions of a channel and they are notified to fetch new permissions via a finger operation. This may result in a new connection (abook entry) being added to a local channel and it may result in auto-permissions being granted. </p>
+
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5bcdfef419b16075a0eca990956223dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_register_hub </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab3e9b99ddb11353f37f265a05bb42142"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_zot </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>: zot_zot </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname"></td><td>string $url </td></tr>
+ <tr><td class="paramname"></td><td>array $data</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>: array =&gt; see z_post_url for returned data format </dd></dl>
+
+<p>Referenced by <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, and <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/zot_8php.js b/doc/html/zot_8php.js
new file mode 100644
index 000000000..d360beef1
--- /dev/null
+++ b/doc/html/zot_8php.js
@@ -0,0 +1,29 @@
+var zot_8php =
+[
+ [ "allowed_public_recips", "zot_8php.html#a703f528ade8382cf374e4119bd6f7859", null ],
+ [ "build_sync_packet", "zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7", null ],
+ [ "delete_imported_item", "zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72", null ],
+ [ "import_directory_keywords", "zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a", null ],
+ [ "import_directory_profile", "zot_8php.html#a3c9e0b243ba29a7b0c050bd0b86eee32", null ],
+ [ "import_site", "zot_8php.html#a2657e141d62d5f67ad3c87651b585299", null ],
+ [ "import_xchan", "zot_8php.html#ab0227978011d8601494a7651fa26acf0", null ],
+ [ "process_channel_sync_delivery", "zot_8php.html#ac301c67864917c35922257950ae0f95c", null ],
+ [ "process_delivery", "zot_8php.html#a37ec13b18057634eadb071f05297f5e1", null ],
+ [ "process_mail_delivery", "zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc", null ],
+ [ "process_profile_delivery", "zot_8php.html#a9a57b40669351c9791126b925cb7ef3b", null ],
+ [ "public_recips", "zot_8php.html#a083aec6c900d244e1bfc1406f9461465", null ],
+ [ "remove_community_tag", "zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10", null ],
+ [ "update_imported_item", "zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df", null ],
+ [ "update_modtime", "zot_8php.html#a666d3efcac00ec1b4a4537a60655f2ab", null ],
+ [ "zot_build_packet", "zot_8php.html#a3862b3161b2c8557dc1a95020179bd81", null ],
+ [ "zot_fetch", "zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea", null ],
+ [ "zot_finger", "zot_8php.html#a77720d6b59894e9b609af89c310c8a4d", null ],
+ [ "zot_get_hubloc", "zot_8php.html#acdea9362d78a63dce948fdf0ea73ef0e", null ],
+ [ "zot_gethub", "zot_8php.html#a55056e863a7860bc0cf922e78fcce073", null ],
+ [ "zot_import", "zot_8php.html#a22e3f9b97b7969ddbe43ccf0db93a19c", null ],
+ [ "zot_new_uid", "zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7", null ],
+ [ "zot_process_response", "zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03", null ],
+ [ "zot_refresh", "zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d", null ],
+ [ "zot_register_hub", "zot_8php.html#a5bcdfef419b16075a0eca990956223dc", null ],
+ [ "zot_zot", "zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142", null ]
+]; \ No newline at end of file
diff --git a/doc/html/zotfeed_8php.html b/doc/html/zotfeed_8php.html
new file mode 100644
index 000000000..7cce145b0
--- /dev/null
+++ b/doc/html/zotfeed_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/zotfeed.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('zotfeed_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">zotfeed.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a24dfc23d366e7f840cf2847d0c1c8eac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a24dfc23d366e7f840cf2847d0c1c8eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a24dfc23d366e7f840cf2847d0c1c8eac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zotfeed_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/zotfeed_8php.js b/doc/html/zotfeed_8php.js
new file mode 100644
index 000000000..e13749e5b
--- /dev/null
+++ b/doc/html/zotfeed_8php.js
@@ -0,0 +1,4 @@
+var zotfeed_8php =
+[
+ [ "zotfeed_init", "zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac", null ]
+]; \ No newline at end of file
diff --git a/doc/html/zperms_8php.html b/doc/html/zperms_8php.html
new file mode 100644
index 000000000..b5d7369e2
--- /dev/null
+++ b/doc/html/zperms_8php.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Project: mod/zperms.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="r!-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Project
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('zperms_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">zperms.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a2f698dcd51150bda3146425f038da628"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zperms_8php.html#a2f698dcd51150bda3146425f038da628">zperms_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a2f698dcd51150bda3146425f038da628"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a2f698dcd51150bda3146425f038da628"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zperms_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>hmmm we probably shouldn't sign somebody else's hub. FIXME </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/zperms_8php.js b/doc/html/zperms_8php.js
new file mode 100644
index 000000000..42c93a5b3
--- /dev/null
+++ b/doc/html/zperms_8php.js
@@ -0,0 +1,4 @@
+var zperms_8php =
+[
+ [ "zperms_init", "zperms_8php.html#a2f698dcd51150bda3146425f038da628", null ]
+]; \ No newline at end of file
diff --git a/doc/install/sample-nginx.conf b/doc/install/sample-nginx.conf
new file mode 100644
index 000000000..718524ee3
--- /dev/null
+++ b/doc/install/sample-nginx.conf
@@ -0,0 +1,114 @@
+##
+# Red Nginx configuration
+# by Olaf Conradi
+#
+# On Debian based distributions you can add this file to
+# /etc/nginx/sites-available
+#
+# Then customize to your needs. To enable the configuration
+# symlink it to /etc/nginx/sites-enabled and reload Nginx
+# using /etc/init.d/nginx reload
+##
+
+##
+# You should look at the following URL's in order to grasp a solid understanding
+# of Nginx configuration files in order to fully unleash the power of Nginx.
+#
+# http://wiki.nginx.org/Pitfalls
+# http://wiki.nginx.org/QuickStart
+# http://wiki.nginx.org/Configuration
+##
+
+##
+# This configuration assumes your domain is example.net
+# You have a separate subdomain red.example.net
+# You want all red traffic to be https
+# You have an SSL certificate and key for your subdomain
+# You have PHP FastCGI Process Manager (php5-fpm) running on localhost
+# You have Red installed in /var/www/red
+##
+
+server {
+ server_name red.example.net;
+ index index.php;
+ root /var/www/red;
+ rewrite ^ https://red.example.net$request_uri? permanent;
+}
+
+##
+# Configure Red with SSL
+#
+# All requests are routed to the front controller
+# except for certain known file types like images, css, etc.
+# Those are served statically whenever possible with a
+# fall back to the front controller (needed for avatars, for example)
+##
+
+server {
+ listen 80;
+ listen 443 ssl;
+ ssl on;
+ server_name red.example.net;
+ ssl_certificate /etc/nginx/ssl/red.example.net.chain.pem;
+ ssl_certificate_key /etc/nginx/ssl/example.net.key;
+ ssl_session_timeout 5m;
+ ssl_protocols SSLv3 TLSv1;
+ ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
+ ssl_prefer_server_ciphers on;
+
+
+ index index.php;
+ charset utf-8;
+ root /var/www/red;
+ access_log /var/log/nginx/red.log main;
+ #Uncomment the following line to include a standard configuration file
+ #include standard.conf
+ # allow uploads up to 20MB in size
+ client_max_body_size 20m;
+ client_body_buffer_size 128k;
+
+ # rewrite to front controller as default rule
+ location / {
+ rewrite ^/(.*) /index.php?q=$uri&$args last;
+ }
+
+ # make sure webfinger and other well known services aren't blocked
+ # by denying dot files and rewrite request to the front controller
+ location ^~ /.well-known/ {
+ allow all;
+ rewrite ^/(.*) /index.php?q=$uri&$args last;
+ }
+
+ # statically serve these file types when possible
+ # otherwise fall back to front controller
+ # allow browser to cache them
+ # added .htm for advanced source code editor library
+ location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|svg)$ {
+ expires 30d;
+ try_files $uri /index.php?q=$uri&$args;
+ }
+
+ # block these file types
+ location ~* \.(tpl|md|tgz|log|out)$ {
+ deny all;
+ }
+
+ # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
+ location ~* \.php$ {
+ fastcgi_split_path_info ^(.+\.php)(/.+)$;
+ # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
+
+ # With php5-cgi alone:
+ # fastcgi_pass 127.0.0.1:9000;
+
+ # With php5-fpm:
+ fastcgi_pass unix:/var/run/php5-fpm.sock;
+ fastcgi_index index.php;
+ include fastcgi_params;
+ }
+
+ # deny access to all dot files
+ location ~ /\. {
+ deny all;
+ }
+}
diff --git a/doc/makingnewfriends.md b/doc/makingnewfriends.md
deleted file mode 100644
index 7eff1eda1..000000000
--- a/doc/makingnewfriends.md
+++ /dev/null
@@ -1,11 +0,0 @@
-This is your Suggested Friends page. If you get lost, you can <a href="help/makenewfriends">click this link</a> to bring yourself back here.
-
-This is a bit like the Friend Suggestions page of Facebook. Everybody on this list has agreed that they may be suggested as a friend. This means they're unlikely to refuse an introduction you send, and they want to meet new people too!
-
-See somebody you like the look of? Click the connect button beneath their photograph. This will bring you to the introductions page. Fill in the form as instructed, and add a small note (optional). Now, wait a bit and they'll accept your request - note that these are real people, and it might take a while. Now you've added one, you're probably lost. Click the link at the top of this page to go back to the suggested friends list and add some more.
-
-Feel uncomfortable adding people you don't know? Don't worry - that's where <a href="help/groupsandpages">Groups and Pages</a> come in!
-
-<iframe src="suggest" width="950" height="600"></iframe>
-
-
diff --git a/doc/network.md b/doc/network.md
deleted file mode 100644
index afb092395..000000000
--- a/doc/network.md
+++ /dev/null
@@ -1,9 +0,0 @@
-This is your Network Tab. If you get lost, you can <a href="help/network">click this link</a> to bring yourself back here.
-
-This is a bit like the Newsfeed at Facebook or the Stream at Diaspora. It's where all the posts from your contacts, groups, and feeds will appear. If you're new, you won't see anything in this page, unless you posted your status in the last step. If you've already added a few friends, you'll be able to see their posts. Here, you can comment, like, or dislike posts, or click on somebody's name to visit their profile page where you can write on their wall.
-
-Now we need to fill it up, the first step, is to <a href="help/peopleyouknow"> add people you already know from Facebook</a>.
-
-<iframe src="network" width="950" height="600"></iframe>
-
-
diff --git a/doc/peopleyouknow.md b/doc/peopleyouknow.md
deleted file mode 100644
index ae0c9ef59..000000000
--- a/doc/peopleyouknow.md
+++ /dev/null
@@ -1,13 +0,0 @@
-This is your connector settings page. If you get lost, you can <a href="help/network">click this link</a> to bring yourself back here.
-
-This is the bit that makes Friendica unique. You can connect to <i>anybody on the internet</i> from your Friendica account using this page! The available connectors varies depending on which plugins you have installed, but for now, we'll walk you through Facebook. Note that not all servers have the Facebook connector installed. If you can't find it in the list below, don't worry, we'll look at ways of connecting to more people in the following pages.
-
-The biggest of all social networks is Facebook. Fortunately, this connector is really easy. Scroll down the page, and click Facebook Connector Settings. Enter your Facebook user name and password and let the application (the connector) do everything the options suggest. You can <a href="https://github.com/friendica/friendica/wiki/How-to:-Friendica%E2%80%99s-Facebook-connector" target="_blank">fine tune this</a> or experiment with the other connectors too. If you need help, you can always ask at <a href="http://helpers.pyxis.uberspace.de/profile/helpers" target="_blank">Friendica Support</a> or <a href="help/Connectors" target="_blank">see the instructions here</a>.
-
-When you're ready, we can move on to <a href="help/makingnewfriends">making new friends</a>.
-
-
-
-<iframe src="settings/connectors" width="950" height="600"></iframe>
-
-
diff --git a/done b/done
index 3493971df..c3c7cc099 100644
--- a/done
+++ b/done
@@ -32,18 +32,15 @@ include/
? dba.php
? delivery.php
+ directory.php
-- email.php
+ enotify.php
+ event.php
+ expire.php
- fcontact.php
? follow.php
- gprobe.php
++ gprobe.php
+ group.php
- html2bbcode.php
- html2plain.php
+= html2bbcode.php
+= html2plain.php
+ identity.php
- iquery.php
? items.php
+ js_strings.php
+ language.php
@@ -63,13 +60,12 @@ include/
? queue_fn.php
? queue.php
- salmon.php
-= Scrape.php
+ security.php
? session.php
- socgraph.php
+? socgraph.php
= system_unavailable.php
= template_processor.php
- text.php
+? text.php
- user.php
+ zot.php
@@ -79,8 +75,8 @@ mod/
+ abook.php -> moved to connections.php
? acl.php
admin.php
- allfriends.php
- api.php
++ allfriends.php
++ api.php
+ apps.php
+ attach.php
- auth.php
@@ -132,7 +128,7 @@ mod/
photos.php
+ ping.php (needs more work)
+ poco.php
- poke.php
++ poke.php
? post.php
+ pretheme.php
+ probe.php
@@ -154,7 +150,7 @@ mod/
+ smilies.php
+ starred.php
subthread.php
- suggest.php
++ suggest.php
tagger.php
tagrm.php
? uexport.php
diff --git a/images/nosign.png b/images/nosign.png
new file mode 100644
index 000000000..e532371d8
--- /dev/null
+++ b/images/nosign.png
Binary files differ
diff --git a/images/r!-64.png b/images/r!-64.png
new file mode 100644
index 000000000..1fd1bc80c
--- /dev/null
+++ b/images/r!-64.png
Binary files differ
diff --git a/images/r!.png b/images/r!.png
new file mode 100644
index 000000000..07c423c49
--- /dev/null
+++ b/images/r!.png
Binary files differ
diff --git a/images/r!.xcf b/images/r!.xcf
new file mode 100644
index 000000000..ce9fad301
--- /dev/null
+++ b/images/r!.xcf
Binary files differ
diff --git a/images/red_antiprism.png b/images/red_antiprism.png
new file mode 100644
index 000000000..80637adf5
--- /dev/null
+++ b/images/red_antiprism.png
Binary files differ
diff --git a/images/red_antiprism.xcf b/images/red_antiprism.xcf
new file mode 100644
index 000000000..bd3dd826c
--- /dev/null
+++ b/images/red_antiprism.xcf
Binary files differ
diff --git a/images/rhash-16.png b/images/rhash-16.png
new file mode 100644
index 000000000..23dd9e4b3
--- /dev/null
+++ b/images/rhash-16.png
Binary files differ
diff --git a/images/rhash-32.png b/images/rhash-32.png
new file mode 100644
index 000000000..564556d48
--- /dev/null
+++ b/images/rhash-32.png
Binary files differ
diff --git a/images/rhash-64.png b/images/rhash-64.png
new file mode 100644
index 000000000..2e8396760
--- /dev/null
+++ b/images/rhash-64.png
Binary files differ
diff --git a/images/rhash.xcf b/images/rhash.xcf
new file mode 100644
index 000000000..960552290
--- /dev/null
+++ b/images/rhash.xcf
Binary files differ
diff --git a/include/BaseObject.php b/include/BaseObject.php
index 200831e15..4bfac5fa0 100644
--- a/include/BaseObject.php
+++ b/include/BaseObject.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
if(class_exists('BaseObject'))
return;
diff --git a/include/Contact.php b/include/Contact.php
index 36f4cbcf7..b9ad1e4cb 100644
--- a/include/Contact.php
+++ b/include/Contact.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function abook_connections($channel_id, $sql_conditions = '') {
@@ -43,6 +43,8 @@ function channelx_by_n($id) {
function vcard_from_xchan($xchan, $observer = null, $mode = '') {
+ $a = get_app();
+
$connect = false;
if(local_user()) {
$r = q("select * from abook where abook_xchan = '%s' and abook_channel = %d limit 1",
@@ -53,6 +55,9 @@ function vcard_from_xchan($xchan, $observer = null, $mode = '') {
$connect = t('Connect');
}
+ if(array_key_exists('channel_id',$xchan))
+ $a->profile_uid = $xchan['channel_id'];
+
$url = (($observer)
? z_root() . '/magic?f=&dest=' . $xchan['xchan_url'] . '&addr=' . $xchan['xchan_addr']
: $xchan['xchan_url']
@@ -76,6 +81,9 @@ function abook_toggle_flag($abook,$flag) {
intval($abook['abook_id']),
intval($abook['abook_channel'])
);
+ $a = get_app();
+ if($a->data['abook'])
+ $a->data['abook']['abook_flags'] = $a->data['abook']['abook_flags'] ^ $flag;
return $r;
}
@@ -107,6 +115,49 @@ function user_remove($uid) {
}
+function account_remove($account_id) {
+
+ if(! intval($account_id)) {
+ logger('account_remove: no account.');
+ return false;
+ }
+
+ // Don't let anybody nuke the only admin account.
+
+ $r = q("select account_id from account where (account_roles & %d)",
+ intval(ACCOUNT_ROLE_ADMIN)
+ );
+
+ if($r !== false && count($r) == 1 && $r[0]['account_id'] == $account_id) {
+ logger("Unable to remove the only remaining admin account");
+ return false;
+ }
+
+ $r = q("select * from account where account_id = %d limit 1",
+ intval($account_id)
+ );
+
+ if(! $r) {
+ logger('account_remove: No account with id: ' . $account_id);
+ return false;
+ }
+
+ $x = q("select channel_id from channel where channel_account_id = %d",
+ intval($account_id)
+ );
+ if($x) {
+ foreach($x as $xx) {
+ channel_remove($xx['channel_id']);
+ }
+ }
+
+ $r = q("delete from account where account_id = %d limit 1",
+ intval($account_id)
+ );
+
+ return $r;
+
+}
function channel_remove($channel_id) {
@@ -212,8 +263,6 @@ function remove_all_xchan_resources($xchan, $channel_id = 0) {
}
-
-
function contact_remove($channel_id, $abook_id) {
if((! $channel_id) || (! $abook_id))
@@ -242,31 +291,37 @@ function contact_remove($channel_id, $abook_id) {
if($abook['abook_flags'] & ABOOK_FLAG_SELF)
return false;
- q("delete from item where author_xchan = '%s' and uid = %d",
+
+ $r = q("select * from item where author_xchan = '%s' and uid = %d",
dbesc($abook['abook_xchan']),
intval($channel_id)
);
+ if($r) {
+ foreach($r as $rr) {
+ drop_item($rr,false);
+ }
+ }
- q("delete from abook where abook_id = %d and channel_id = %d limit 1",
+ q("delete from abook where abook_id = %d and abook_channel = %d limit 1",
intval($abook['abook_id']),
intval($channel_id)
);
-/*
-// FIXME
- q("DELETE FROM `photo` WHERE `contact-id` = %d ",
- intval($id)
- );
- q("DELETE FROM `mail` WHERE `contact-id` = %d ",
- intval($id)
+ $r = q("delete from event where event_xchan = '%s' and uid = %d",
+ dbesc($abook['abook_xchan']),
+ intval($channel_id)
);
- q("DELETE FROM `event` WHERE `cid` = %d ",
- intval($id)
+
+ $r = q("delete from group_member where xchan = '%s' and uid = %d",
+ dbesc($abook['abook_xchan']),
+ intval($channel_id)
);
- q("DELETE FROM `queue` WHERE `cid` = %d ",
- intval($id)
+
+ $r = q("delete from mail where ( from_xchan = '%s' or to_xchan = '%s' ) and channel_id = %d ",
+ dbesc($abook['abook_xchan']),
+ dbesc($abook['abook_xchan']),
+ intval($channel_id)
);
-*/
return true;
}
@@ -397,8 +452,8 @@ function contact_photo_menu($contact) {
function random_profile() {
- $r = q("select xchan_url from xchan where xchan_network = 'zot' order by rand() limit 1");
- if($r && count($r))
+ $r = q("select xchan_url from xchan where 1 order by rand() limit 1");
+ if($r)
return $r[0]['xchan_url'];
return '';
}
diff --git a/include/ConversationObject.php b/include/ConversationObject.php
index 37633369e..30026e908 100644
--- a/include/ConversationObject.php
+++ b/include/ConversationObject.php
@@ -1,4 +1,5 @@
-<?php
+<?php /** @file */
+
if(class_exists('Conversation'))
return;
@@ -10,12 +11,14 @@ require_once('include/text.php');
/**
* A list of threads
*
- * We should think about making this a SPL Iterator
*/
+
class Conversation extends BaseObject {
private $threads = array();
private $mode = null;
+ private $observer = null;
private $writable = false;
+ private $commentable = false;
private $profile_owner = 0;
private $preview = false;
@@ -33,8 +36,8 @@ class Conversation extends BaseObject {
$a = $this->get_app();
- $observer = $a->get_observer();
- $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
+ $this->observer = $a->get_observer();
+ $ob_hash = (($this->observer) ? $this->observer['xchan_hash'] : '');
switch($mode) {
case 'network':
@@ -46,7 +49,10 @@ class Conversation extends BaseObject {
$this->writable = perm_is_allowed($this->profile_owner,$ob_hash,'post_comments');
break;
case 'display':
- $this->profile_owner = $a->profile['uid'];
+ // in this mode we set profile_owner after initialisation (from conversation()) and then
+ // pull some trickery which allows us to re-invoke this function afterward
+ // it's an ugly hack so FIXME
+// $this->profile_owner = $a->profile['uid'];
$this->writable = perm_is_allowed($this->profile_owner,$ob_hash,'post_comments');
break;
case 'page':
@@ -75,6 +81,10 @@ class Conversation extends BaseObject {
return $this->writable;
}
+ public function is_commentable() {
+ return $this->commentable;
+ }
+
/**
* Check if page is a preview
*/
@@ -89,6 +99,18 @@ class Conversation extends BaseObject {
return $this->profile_owner;
}
+ public function set_profile_owner($uid) {
+ $this->profile_owner = $uid;
+ $mode = $this->get_mode();
+ $this->mode = null;
+ $this->set_mode($mode);
+ }
+
+ public function get_observer() {
+ return $this->observer;
+ }
+
+
/**
* Add a thread to the conversation
*
@@ -108,12 +130,30 @@ class Conversation extends BaseObject {
}
/*
- * Only add will be displayed
+ * Only add things that will be displayed
*/
- if(activity_match($item->get_data_value('verb'),ACTIVITY_LIKE) || activity_match($item->get_data_value('verb'),ACTIVITY_DISLIKE)) {
+
+ if(($item->get_data_value('id') != $item->get_data_value('parent')) && (activity_match($item->get_data_value('verb'),ACTIVITY_LIKE) || activity_match($item->get_data_value('verb'),ACTIVITY_DISLIKE))) {
return false;
}
+
+ if(local_user() && $item->get_data_value('uid') == local_user())
+ $this->commentable = true;
+
+ if($this->writable)
+ $this->commentable = true;
+
+ if($item->get_data_value('item_flags') & ITEM_NOCOMMENT) {
+ $this->commentable = false;
+ }
+ elseif(($this->observer) && (! $this->writable)) {
+ $this->commentable = can_comment_on_post($this->observer['xchan_hash'],$item->data);
+ }
+
+
+
+
$item->set_conversation($this);
$this->threads[] = $item;
return end($this->threads);
diff --git a/include/ITemplateEngine.php b/include/ITemplateEngine.php
new file mode 100755
index 000000000..53c1845f4
--- /dev/null
+++ b/include/ITemplateEngine.php
@@ -0,0 +1,11 @@
+<?php
+require_once 'boot.php';
+
+
+/**
+ * Interface for template engines
+ */
+interface ITemplateEngine {
+ public function replace_macros($s,$v);
+ public function get_markup_template($file, $root='');
+}
diff --git a/include/ItemObject.php b/include/ItemObject.php
index afa34abb1..8c8c0ee2a 100644
--- a/include/ItemObject.php
+++ b/include/ItemObject.php
@@ -1,8 +1,9 @@
-<?php
+<?php /** @file */
+
if(class_exists('Item'))
return;
-require_once('object/BaseObject.php');
+require_once('include/BaseObject.php');
require_once('include/text.php');
require_once('boot.php');
@@ -10,12 +11,10 @@ require_once('boot.php');
* An item
*/
class Item extends BaseObject {
- private $data = array();
+ public $data = array();
private $template = 'conv_item.tpl';
private $comment_box_template = 'comment_item.tpl';
private $toplevel = false;
- private $writable = false;
- private $commentable = false;
private $children = array();
private $parent = null;
private $conversation = null;
@@ -26,31 +25,15 @@ class Item extends BaseObject {
private $wall_to_wall = false;
private $threaded = false;
private $visiting = false;
- private $observer = null;
private $channel = null;
public function __construct($data) {
$a = $this->get_app();
$this->data = $data;
- $this->channel = $a->get_channel();
- $this->observer = $a->get_observer();
-
$this->toplevel = ($this->get_id() == $this->get_data_value('parent'));
- $this->writable = (((local_user()) && ($this->channel['channel_hash'] === $this->data['owner_xchan'])) ? true : false);
- $this->commentable = $this->writable;
-
- if(($this->observer) && (! $this->writable)) {
- $this->commentable = perm_is_allowed($this->data['uid'],$this->observer['xchan_hash'],'post_comments');
- }
-
-// logger('writable: ' . $this->writable);
-// logger('commentable: ' . $this->commentable . ' uid=' . $this->data['uid'] . ' observer=' . $this->observer['xchan_hash']);
-// if(get_config('system','thread_allow') && $a->theme_thread_allow && !$this->is_toplevel())
-// $this->threaded = true;
-
// Prepare the children
if(count($data['children'])) {
foreach($data['children'] as $item) {
@@ -84,7 +67,6 @@ class Item extends BaseObject {
$result = array();
$a = $this->get_app();
- $observer = $this->observer;
$item = $this->get_data();
$commentww = '';
@@ -98,6 +80,7 @@ class Item extends BaseObject {
$total_children = $this->count_descendants();
$conv = $this->get_conversation();
+ $observer = $conv->get_observer();
$lock = ((($item['item_private'] == 1) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid'])
|| strlen($item['deny_cid']) || strlen($item['deny_gid']))))
@@ -110,10 +93,9 @@ class Item extends BaseObject {
else
$edpost = false;
-// FIXME - this is wrong.
-// if(($this->get_data_value('uid') == local_user()) || $this->is_visiting())
-
- if($this->get_data_value('uid') == local_user())
+ if($observer['xchan_hash'] == $this->get_data_value('author_xchan')
+ || $observer['xchan_hash'] == $this->get_data_value('owner_xchan')
+ || $this->get_data_value('uid') == local_user())
$dropping = true;
if($dropping) {
@@ -122,7 +104,7 @@ class Item extends BaseObject {
'delete' => t('Delete'),
);
}
-
+// FIXME
if($observer_is_pageowner) {
$multidrop = array(
'select' => t('Select'),
@@ -138,9 +120,9 @@ class Item extends BaseObject {
$location = format_location($item);
- $showlike = ((x($alike,$item['uri'])) ? format_like($alike[$item['uri']],$alike[$item['uri'] . '-l'],'like',$item['uri']) : '');
- $showdislike = ((x($dlike,$item['uri']) && feature_enabled($conv->get_profile_owner(),'dislike'))
- ? format_like($dlike[$item['uri']],$dlike[$item['uri'] . '-l'],'dislike',$item['uri']) : '');
+ $showlike = ((x($alike,$item['mid'])) ? format_like($alike[$item['mid']],$alike[$item['mid'] . '-l'],'like',$item['mid']) : '');
+ $showdislike = ((x($dlike,$item['mid']) && feature_enabled($conv->get_profile_owner(),'dislike'))
+ ? format_like($dlike[$item['mid']],$dlike[$item['mid'] . '-l'],'dislike',$item['mid']) : '');
/*
* We should avoid doing this all the time, but it depends on the conversation mode
@@ -151,6 +133,7 @@ class Item extends BaseObject {
$this->check_wall_to_wall();
if($this->is_toplevel()) {
+ // FIXME check this permission
if($conv->get_profile_owner() == local_user()) {
// FIXME we don't need all this stuff, some can be done in the template
@@ -165,16 +148,20 @@ class Item extends BaseObject {
'starred' => t('starred'),
);
- $tagger = array(
- 'tagit' => t("add tag"),
- 'classtagger' => "",
- );
}
} else {
$indent = 'comment';
}
- if($this->is_writable()) {
+ // FIXME - check this permission
+ if($conv->get_profile_owner() == local_user()) {
+ $tagger = array(
+ 'tagit' => t("add tag"),
+ 'classtagger' => "",
+ );
+ }
+
+ if($conv->is_commentable()) {
$like = array( t("I like this \x28toggle\x29"), t("like"));
$dislike = array( t("I don't like this \x28toggle\x29"), t("dislike"));
if ($shareable)
@@ -214,8 +201,11 @@ class Item extends BaseObject {
'osparkle' => $osparkle,
'sparkle' => $sparkle,
'title' => $item['title'],
+ 'ago' => relative_date($item['created']),
+ 'app' => $item['app'],
+ 'str_app' => sprintf( t(' from %s'), $item['app']),
+ 'isotime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'c'),
'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'),
- 'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'lock' => $lock,
'location' => $location,
'indent' => $indent,
@@ -272,7 +262,7 @@ class Item extends BaseObject {
}
}
- $result['private'] = $item['private'];
+ $result['private'] = $item['item_private'];
$result['toplevel'] = ($this->is_toplevel() ? 'toplevel_item' : '');
if($this->is_threaded()) {
@@ -452,28 +442,6 @@ class Item extends BaseObject {
}
/**
- * Check if this is writable
- */
- private function is_writable() {
-
- return $this->writable;
-
-// $conv = $this->get_conversation();
-
-// return true;
-
-// if($conv) {
- // This will allow us to comment on wall-to-wall items owned by our friends
- // and community forums even if somebody else wrote the post.
-// return ($this->writable || ($this->is_visiting() && $conv->get_mode() == 'channel'));
-// }
- }
-
- private function is_commentable() {
- return $this->commentable;
- }
-
- /**
* Count the total of our descendants
*/
private function count_descendants() {
@@ -510,44 +478,43 @@ class Item extends BaseObject {
$comment_box = '';
$conv = $this->get_conversation();
- if(! $this->is_commentable())
+ if(! $conv->is_commentable())
return;
- if($conv->is_writable() || $this->is_writable()) {
- $template = get_markup_template($this->get_comment_box_template());
-
- $a = $this->get_app();
-
- $qc = ((local_user()) ? get_pconfig(local_user(),'system','qcomment') : null);
- $qcomment = (($qc) ? explode("\n",$qc) : null);
-
- $comment_box = replace_macros($template,array(
- '$return_path' => '',
- '$threaded' => $this->is_threaded(),
- '$jsreload' => (($conv->get_mode() === 'display') ? $_SESSION['return_url'] : ''),
- '$type' => (($conv->get_mode() === 'channel') ? 'wall-comment' : 'net-comment'),
- '$id' => $this->get_id(),
- '$parent' => $this->get_id(),
- '$qcomment' => $qcomment,
- '$profile_uid' => $conv->get_profile_owner(),
- '$mylink' => $this->observer['xchan_url'],
- '$mytitle' => t('This is you'),
- '$myphoto' => $this->observer['xchan_photo_s'],
- '$comment' => t('Comment'),
- '$submit' => t('Submit'),
- '$edbold' => t('Bold'),
- '$editalic' => t('Italic'),
- '$eduline' => t('Underline'),
- '$edquote' => t('Quote'),
- '$edcode' => t('Code'),
- '$edimg' => t('Image'),
- '$edurl' => t('Link'),
- '$edvideo' => t('Video'),
- '$preview' => ((feature_enabled($conv->get_profile_owner(),'preview')) ? t('Preview') : ''),
- '$indent' => $indent,
- '$sourceapp' => get_app()->sourcename
- ));
- }
+ $template = get_markup_template($this->get_comment_box_template());
+
+ $a = $this->get_app();
+ $observer = $conv->get_observer();
+
+ $qc = ((local_user()) ? get_pconfig(local_user(),'system','qcomment') : null);
+ $qcomment = (($qc) ? explode("\n",$qc) : null);
+
+ $comment_box = replace_macros($template,array(
+ '$return_path' => '',
+ '$threaded' => $this->is_threaded(),
+ '$jsreload' => (($conv->get_mode() === 'display') ? $_SESSION['return_url'] : ''),
+ '$type' => (($conv->get_mode() === 'channel') ? 'wall-comment' : 'net-comment'),
+ '$id' => $this->get_id(),
+ '$parent' => $this->get_id(),
+ '$qcomment' => $qcomment,
+ '$profile_uid' => $conv->get_profile_owner(),
+ '$mylink' => $observer['xchan_url'],
+ '$mytitle' => t('This is you'),
+ '$myphoto' => $observer['xchan_photo_s'],
+ '$comment' => t('Comment'),
+ '$submit' => t('Submit'),
+ '$edbold' => t('Bold'),
+ '$editalic' => t('Italic'),
+ '$eduline' => t('Underline'),
+ '$edquote' => t('Quote'),
+ '$edcode' => t('Code'),
+ '$edimg' => t('Image'),
+ '$edurl' => t('Link'),
+ '$edvideo' => t('Video'),
+ '$preview' => ((feature_enabled($conv->get_profile_owner(),'preview')) ? t('Preview') : ''),
+ '$indent' => $indent,
+ '$sourceapp' => get_app()->sourcename
+ ));
return $comment_box;
}
diff --git a/include/Photo.php b/include/Photo.php
deleted file mode 100644
index de3d30c39..000000000
--- a/include/Photo.php
+++ /dev/null
@@ -1,768 +0,0 @@
-<?php
-
-if(! class_exists("Photo")) {
-class Photo {
-
- private $image;
-
- /**
- * Put back gd stuff, not everybody have Imagick
- */
- private $imagick;
- private $width;
- private $height;
- private $valid;
- private $type;
- private $types;
-
- /**
- * supported mimetypes and corresponding file extensions
- */
- static function supportedTypes() {
- if(class_exists('Imagick')) {
- /**
- * Imagick::queryFormats won't help us a lot there...
- * At least, not yet, other parts of friendica uses this array
- */
- $t = array(
- 'image/jpeg' => 'jpg',
- 'image/png' => 'png',
- 'image/gif' => 'gif'
- );
- } else {
- $t = array();
- $t['image/jpeg'] ='jpg';
- if (imagetypes() & IMG_PNG) $t['image/png'] = 'png';
- }
-
- return $t;
- }
-
- public function __construct($data, $type=null) {
- $this->imagick = class_exists('Imagick');
- $this->types = $this->supportedTypes();
- if (!array_key_exists($type,$this->types)){
- $type='image/jpeg';
- }
- $this->type = $type;
-
- if($this->is_imagick()) {
- $this->image = new Imagick();
- $this->image->readImageBlob($data);
-
- /**
- * Setup the image to the format it will be saved to
- */
- $map = $this->get_FormatsMap();
- $format = $map[$type];
- $this->image->setFormat($format);
-
- // Always coalesce, if it is not a multi-frame image it won't hurt anyway
- $this->image = $this->image->coalesceImages();
-
- /**
- * setup the compression here, so we'll do it only once
- */
- switch($this->getType()){
- case "image/png":
- $quality = get_config('system','png_quality');
- if((! $quality) || ($quality > 9))
- $quality = PNG_QUALITY;
- /**
- * From http://www.imagemagick.org/script/command-line-options.php#quality:
- *
- * 'For the MNG and PNG image formats, the quality value sets
- * the zlib compression level (quality / 10) and filter-type (quality % 10).
- * The default PNG "quality" is 75, which means compression level 7 with adaptive PNG filtering,
- * unless the image has a color map, in which case it means compression level 7 with no PNG filtering'
- */
- $quality = $quality * 10;
- $this->image->setCompressionQuality($quality);
- break;
- case "image/jpeg":
- $quality = get_config('system','jpeg_quality');
- if((! $quality) || ($quality > 100))
- $quality = JPEG_QUALITY;
- $this->image->setCompressionQuality($quality);
- }
- } else {
- $this->valid = false;
- $this->image = @imagecreatefromstring($data);
- if($this->image !== FALSE) {
- $this->width = imagesx($this->image);
- $this->height = imagesy($this->image);
- $this->valid = true;
- imagealphablending($this->image, false);
- imagesavealpha($this->image, true);
- }
- }
- }
-
- public function __destruct() {
- if($this->image) {
- if($this->is_imagick()) {
- $this->image->clear();
- $this->image->destroy();
- return;
- }
- imagedestroy($this->image);
- }
- }
-
- public function is_imagick() {
- return $this->imagick;
- }
-
- /**
- * Maps Mime types to Imagick formats
- */
- public function get_FormatsMap() {
- $m = array(
- 'image/jpeg' => 'JPG',
- 'image/png' => 'PNG',
- 'image/gif' => 'GIF'
- );
- return $m;
- }
-
- public function is_valid() {
- if($this->is_imagick())
- return ($this->image !== FALSE);
- return $this->valid;
- }
-
- public function getWidth() {
- if(!$this->is_valid())
- return FALSE;
-
- if($this->is_imagick())
- return $this->image->getImageWidth();
- return $this->width;
- }
-
- public function getHeight() {
- if(!$this->is_valid())
- return FALSE;
-
- if($this->is_imagick())
- return $this->image->getImageHeight();
- return $this->height;
- }
-
- public function getImage() {
- if(!$this->is_valid())
- return FALSE;
-
- if($this->is_imagick()) {
- /* Clean it */
- $this->image = $this->image->deconstructImages();
- return $this->image;
- }
- return $this->image;
- }
-
- public function getType() {
- if(!$this->is_valid())
- return FALSE;
-
- return $this->type;
- }
-
- public function getExt() {
- if(!$this->is_valid())
- return FALSE;
-
- return $this->types[$this->getType()];
- }
-
- public function scaleImage($max) {
- if(!$this->is_valid())
- return FALSE;
-
- $width = $this->width;
- $height = $this->height;
-
- $dest_width = $dest_height = 0;
-
- if((! $width)|| (! $height))
- return FALSE;
-
- if($width > $max && $height > $max) {
-
- // very tall image (greater than 16:9)
- // constrain the width - let the height float.
-
- if((($height * 9) / 16) > $width) {
- $dest_width = $max;
- $dest_height = intval(( $height * $max ) / $width);
- }
-
- // else constrain both dimensions
-
- elseif($width > $height) {
- $dest_width = $max;
- $dest_height = intval(( $height * $max ) / $width);
- }
- else {
- $dest_width = intval(( $width * $max ) / $height);
- $dest_height = $max;
- }
- }
- else {
- if( $width > $max ) {
- $dest_width = $max;
- $dest_height = intval(( $height * $max ) / $width);
- }
- else {
- if( $height > $max ) {
-
- // very tall image (greater than 16:9)
- // but width is OK - don't do anything
-
- if((($height * 9) / 16) > $width) {
- $dest_width = $width;
- $dest_height = $height;
- }
- else {
- $dest_width = intval(( $width * $max ) / $height);
- $dest_height = $max;
- }
- }
- else {
- $dest_width = $width;
- $dest_height = $height;
- }
- }
- }
-
-
- if($this->is_imagick()) {
- /**
- * If it is not animated, there will be only one iteration here,
- * so don't bother checking
- */
- // Don't forget to go back to the first frame
- $this->image->setFirstIterator();
- do {
-
- // FIXME - implement horizantal bias for scaling as in followin GD functions
- // to allow very tall images to be constrained only horizontally.
-
- $this->image->scaleImage($dest_width, $dest_height);
- } while ($this->image->nextImage());
-
- // FIXME - also we need to copy the new dimensions to $this->height, $this->width as other functions
- // may rely on it.
-
- return;
- }
-
-
- $dest = imagecreatetruecolor( $dest_width, $dest_height );
- imagealphablending($dest, false);
- imagesavealpha($dest, true);
- if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
- imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
- if($this->image)
- imagedestroy($this->image);
- $this->image = $dest;
- $this->width = imagesx($this->image);
- $this->height = imagesy($this->image);
- }
-
- public function rotate($degrees) {
- if(!$this->is_valid())
- return FALSE;
-
- if($this->is_imagick()) {
- $this->image->setFirstIterator();
- do {
- $this->image->rotateImage(new ImagickPixel(), -$degrees); // ImageMagick rotates in the opposite direction of imagerotate()
- } while ($this->image->nextImage());
- return;
- }
-
- $this->image = imagerotate($this->image,$degrees,0);
- $this->width = imagesx($this->image);
- $this->height = imagesy($this->image);
- }
-
- public function flip($horiz = true, $vert = false) {
- if(!$this->is_valid())
- return FALSE;
-
- if($this->is_imagick()) {
- $this->image->setFirstIterator();
- do {
- if($horiz) $this->image->flipImage();
- if($vert) $this->image->flopImage();
- } while ($this->image->nextImage());
- return;
- }
-
- $w = imagesx($this->image);
- $h = imagesy($this->image);
- $flipped = imagecreate($w, $h);
- if($horiz) {
- for ($x = 0; $x < $w; $x++) {
- imagecopy($flipped, $this->image, $x, 0, $w - $x - 1, 0, 1, $h);
- }
- }
- if($vert) {
- for ($y = 0; $y < $h; $y++) {
- imagecopy($flipped, $this->image, 0, $y, 0, $h - $y - 1, $w, 1);
- }
- }
- $this->image = $flipped;
- }
-
- public function orient($filename) {
- // based off comment on http://php.net/manual/en/function.imagerotate.php
-
- if(!$this->is_valid())
- return FALSE;
-
- if( (! function_exists('exif_read_data')) || ($this->getType() !== 'image/jpeg') )
- return;
-
- $exif = @exif_read_data($filename);
- if($exif) {
- $ort = $exif['Orientation'];
-
- switch($ort)
- {
- case 1: // nothing
- break;
-
- case 2: // horizontal flip
- $this->flip();
- break;
-
- case 3: // 180 rotate left
- $this->rotate(180);
- break;
-
- case 4: // vertical flip
- $this->flip(false, true);
- break;
-
- case 5: // vertical flip + 90 rotate right
- $this->flip(false, true);
- $this->rotate(-90);
- break;
-
- case 6: // 90 rotate right
- $this->rotate(-90);
- break;
-
- case 7: // horizontal flip + 90 rotate right
- $this->flip();
- $this->rotate(-90);
- break;
-
- case 8: // 90 rotate left
- $this->rotate(90);
- break;
- }
- }
- }
-
-
-
- public function scaleImageUp($min) {
- if(!$this->is_valid())
- return FALSE;
-
-
- $width = $this->width;
- $height = $this->height;
-
- $dest_width = $dest_height = 0;
-
- if((! $width)|| (! $height))
- return FALSE;
-
- if($width < $min && $height < $min) {
- if($width > $height) {
- $dest_width = $min;
- $dest_height = intval(( $height * $min ) / $width);
- }
- else {
- $dest_width = intval(( $width * $min ) / $height);
- $dest_height = $min;
- }
- }
- else {
- if( $width < $min ) {
- $dest_width = $min;
- $dest_height = intval(( $height * $min ) / $width);
- }
- else {
- if( $height < $min ) {
- $dest_width = intval(( $width * $min ) / $height);
- $dest_height = $min;
- }
- else {
- $dest_width = $width;
- $dest_height = $height;
- }
- }
- }
-
- if($this->is_imagick())
- return $this->scaleImage($dest_width,$dest_height);
-
- $dest = imagecreatetruecolor( $dest_width, $dest_height );
- imagealphablending($dest, false);
- imagesavealpha($dest, true);
- if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
- imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
- if($this->image)
- imagedestroy($this->image);
- $this->image = $dest;
- $this->width = imagesx($this->image);
- $this->height = imagesy($this->image);
- }
-
-
-
- public function scaleImageSquare($dim) {
- if(!$this->is_valid())
- return FALSE;
-
- if($this->is_imagick()) {
- $this->image->setFirstIterator();
- do {
- $this->image->scaleImage($dim, $dim);
- } while ($this->image->nextImage());
- return;
- }
-
- $dest = imagecreatetruecolor( $dim, $dim );
- imagealphablending($dest, false);
- imagesavealpha($dest, true);
- if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
- imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dim, $dim, $this->width, $this->height);
- if($this->image)
- imagedestroy($this->image);
- $this->image = $dest;
- $this->width = imagesx($this->image);
- $this->height = imagesy($this->image);
- }
-
-
- public function cropImage($max,$x,$y,$w,$h) {
- if(!$this->is_valid())
- return FALSE;
-
- if($this->is_imagick()) {
- $this->image->setFirstIterator();
- do {
- $this->image->cropImage($w, $h, $x, $y);
- /**
- * We need to remove the canva,
- * or the image is not resized to the crop:
- * http://php.net/manual/en/imagick.cropimage.php#97232
- */
- $this->image->setImagePage(0, 0, 0, 0);
- } while ($this->image->nextImage());
- return $this->scaleImage($max);
- }
-
- $dest = imagecreatetruecolor( $max, $max );
- imagealphablending($dest, false);
- imagesavealpha($dest, true);
- if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
- imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $max, $max, $w, $h);
- if($this->image)
- imagedestroy($this->image);
- $this->image = $dest;
- $this->width = imagesx($this->image);
- $this->height = imagesy($this->image);
- }
-
- public function saveImage($path) {
- if(!$this->is_valid())
- return FALSE;
-
- $string = $this->imageString();
- file_put_contents($path, $string);
- }
-
- public function imageString() {
- if(!$this->is_valid())
- return FALSE;
-
- if($this->is_imagick()) {
- /* Clean it */
- $this->image = $this->image->deconstructImages();
- $string = $this->image->getImagesBlob();
- return $string;
- }
-
- $quality = FALSE;
-
- ob_start();
-
- switch($this->getType()){
- case "image/png":
- $quality = get_config('system','png_quality');
- if((! $quality) || ($quality > 9))
- $quality = PNG_QUALITY;
- imagepng($this->image,NULL, $quality);
- break;
- case "image/jpeg":
- $quality = get_config('system','jpeg_quality');
- if((! $quality) || ($quality > 100))
- $quality = JPEG_QUALITY;
- imagejpeg($this->image,NULL,$quality);
- }
- $string = ob_get_contents();
- ob_end_clean();
-
- return $string;
- }
-
-
-
- public function store($aid, $uid, $xchan, $rid, $filename, $album, $scale, $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '') {
-
- $x = q("select id from photo where `resource_id` = '%s' and uid = %d and `xchan` = '%s' and `scale` = %d limit 1",
- dbesc($rid),
- intval($uid),
- dbesc($xchan),
- intval($scale)
- );
- if(count($x)) {
- $r = q("UPDATE `photo`
- set `aid` = %d,
- `uid` = %d,
- `xchan` = '%s',
- `resource_id` = '%s',
- `created` = '%s',
- `edited` = '%s',
- `filename` = '%s',
- `type` = '%s',
- `album` = '%s',
- `height` = %d,
- `width` = %d,
- `data` = '%s',
- `size` = %d,
- `scale` = %d,
- `profile` = %d,
- `allow_cid` = '%s',
- `allow_gid` = '%s',
- `deny_cid` = '%s',
- `deny_gid` = '%s'
- where id = %d limit 1",
-
- intval($aid),
- intval($uid),
- dbesc($xchan),
- dbesc($rid),
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
- dbesc(basename($filename)),
- dbesc($this->getType()),
- dbesc($album),
- intval($this->getHeight()),
- intval($this->getWidth()),
- dbesc($this->imageString()),
- intval(strlen($this->imageString())),
- intval($scale),
- intval($profile),
- dbesc($allow_cid),
- dbesc($allow_gid),
- dbesc($deny_cid),
- dbesc($deny_gid),
- intval($x[0]['id'])
- );
- }
- else {
- $r = q("INSERT INTO `photo`
- ( `aid`, `uid`, `xchan`, `resource_id`, `created`, `edited`, `filename`, type, `album`, `height`, `width`, `data`, `size`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` )
- VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d, '%s', '%s', '%s', '%s' )",
- intval($aid),
- intval($uid),
- dbesc($xchan),
- dbesc($rid),
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
- dbesc(basename($filename)),
- dbesc($this->getType()),
- dbesc($album),
- intval($this->getHeight()),
- intval($this->getWidth()),
- dbesc($this->imageString()),
- intval(strlen($this->imageString())),
- intval($scale),
- intval($profile),
- dbesc($allow_cid),
- dbesc($allow_gid),
- dbesc($deny_cid),
- dbesc($deny_gid)
- );
- }
- return $r;
- }
-}}
-
-
-/**
- * Guess image mimetype from filename or from Content-Type header
- *
- * @arg $filename string Image filename
- * @arg $fromcurl boolean Check Content-Type header from curl request
- */
-function guess_image_type($filename, $fromcurl=false) {
- logger('Photo: guess_image_type: '.$filename . ($fromcurl?' from curl headers':''), LOGGER_DEBUG);
- $type = null;
- if ($fromcurl) {
- $a = get_app();
- $headers=array();
- $h = explode("\n",$a->get_curl_headers());
- foreach ($h as $l) {
- list($k,$v) = array_map("trim", explode(":", trim($l), 2));
- $headers[$k] = $v;
- }
- if (array_key_exists('Content-Type', $headers))
- $type = $headers['Content-Type'];
- }
- if (is_null($type)){
- // Guessing from extension? Isn't that... dangerous?
- if(class_exists('Imagick') && file_exists($filename) && is_readable($filename)) {
- /**
- * Well, this not much better,
- * but at least it comes from the data inside the image,
- * we won't be tricked by a manipulated extension
- */
- $image = new Imagick($filename);
- $type = $image->getImageMimeType();
- } else {
- $ext = pathinfo($filename, PATHINFO_EXTENSION);
- $types = Photo::supportedTypes();
- $type = "image/jpeg";
- foreach ($types as $m=>$e){
- if ($ext==$e) $type = $m;
- }
- }
- }
- logger('Photo: guess_image_type: type='.$type, LOGGER_DEBUG);
- return $type;
-
-}
-
-function import_profile_photo($photo,$xchan) {
-
- $a = get_app();
-
- logger('import_profile_photo: updating channel photo from ' . $photo . ' for ' . $xchan, LOGGER_DEBUG);
-
- $r = q("select resource_id from photo where xchan = '%s' and scale = 4 limit 1",
- dbesc($xchan)
- );
- if($r) {
- $hash = $r[0]['resource_id'];
- }
- else {
- $hash = photo_new_resource();
- }
-
- $photo_failure = false;
-
-
- $filename = basename($photo);
- $img_str = fetch_url($photo,true);
-
- $type = guess_image_type($photo,true);
- $img = new Photo($img_str, $type);
- if($img->is_valid()) {
-
- $img->scaleImageSquare(175);
-
- $r = $img->store(0, 0, $xchan, $hash, $filename, 'Contact Photos', 4 );
-
- if($r === false)
- $photo_failure = true;
-
- $img->scaleImage(80);
-
- $r = $img->store(0, 0, $xchan, $hash, $filename, 'Contact Photos', 5 );
-
- if($r === false)
- $photo_failure = true;
-
- $img->scaleImage(48);
-
- $r = $img->store(0, 0, $xchan, $hash, $filename, 'Contact Photos', 6 );
-
- if($r === false)
- $photo_failure = true;
-
- $photo = $a->get_baseurl() . '/photo/' . $hash . '-4';
- $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5';
- $micro = $a->get_baseurl() . '/photo/' . $hash . '-6';
- }
- else {
- logger('import_profile_photo: invalid image from ' . $photo);
- $photo_failure = true;
- }
- if($photo_failure) {
- $photo = $a->get_baseurl() . '/images/person-175.jpg';
- $thumb = $a->get_baseurl() . '/images/person-80.jpg';
- $micro = $a->get_baseurl() . '/images/person-48.jpg';
- $type = 'image/jpeg';
- }
-
- return(array($photo,$thumb,$micro,$type));
-
-}
-
-
-
-function import_channel_photo($photo,$type,$aid,$uid) {
-
- $a = get_app();
-
- logger('import_channel_photo: importing channel photo for ' . $uid, LOGGER_DEBUG);
-
- $hash = photo_new_resource();
-
- $photo_failure = false;
-
-
- $filename = $hash;
-
- $img = new Photo($photo, $type);
- if($img->is_valid()) {
-
- $img->scaleImageSquare(175);
-
- $r = $img->store($aid,$uid,'', $hash, $filename, t('Profile Photos'), 4, true);
-
- if($r === false)
- $photo_failure = true;
-
- $img->scaleImage(80);
-
- $r = $img->store($aid,$uid,'', $hash, $filename, t('Profile Photos'), 5, true);
-
- if($r === false)
- $photo_failure = true;
-
- $img->scaleImage(48);
-
- $r = $img->store($aid,$uid,'', $hash, $filename, t('Profile Photos'), 6, true);
-
- if($r === false)
- $photo_failure = true;
-
- }
- else {
- logger('import_channel_photo: invalid image.');
- $photo_failure = true;
- }
-
- return(($photo_failure)? false : true);
-
-}
diff --git a/include/ProtoDriver.php b/include/ProtoDriver.php
index a39881e9a..7585a0135 100644
--- a/include/ProtoDriver.php
+++ b/include/ProtoDriver.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
/*
* Abstraction class for dealing with alternate networks (which of course do not exist, hence the abstraction)
diff --git a/include/Scrape.php b/include/Scrape.php
deleted file mode 100644
index 806106ef1..000000000
--- a/include/Scrape.php
+++ /dev/null
@@ -1,712 +0,0 @@
-<?php
-
-require_once('library/HTML5/Parser.php');
-require_once('include/crypto.php');
-
-if(! function_exists('scrape_dfrn')) {
-function scrape_dfrn($url) {
-
- $a = get_app();
-
- $ret = array();
-
- logger('scrape_dfrn: url=' . $url);
-
- $s = fetch_url($url);
-
- if(! $s)
- return $ret;
-
- $headers = $a->get_curl_headers();
- logger('scrape_dfrn: headers=' . $headers, LOGGER_DEBUG);
-
-
- $lines = explode("\n",$headers);
- if(count($lines)) {
- foreach($lines as $line) {
- // don't try and run feeds through the html5 parser
- if(stristr($line,'content-type:') && ((stristr($line,'application/atom+xml')) || (stristr($line,'application/rss+xml'))))
- return ret;
- }
- }
-
- try {
- $dom = HTML5_Parser::parse($s);
- } catch (DOMException $e) {
- logger('scrape_dfrn: parse error: ' . $e);
- }
-
- if(! $dom)
- return $ret;
-
- $items = $dom->getElementsByTagName('link');
-
- // get DFRN link elements
-
- foreach($items as $item) {
- $x = $item->getAttribute('rel');
- if(($x === 'alternate') && ($item->getAttribute('type') === 'application/atom+xml'))
- $ret['feed_atom'] = $item->getAttribute('href');
- if(substr($x,0,5) == "dfrn-") {
- $ret[$x] = $item->getAttribute('href');
- }
- if($x === 'lrdd') {
- $decoded = urldecode($item->getAttribute('href'));
- if(preg_match('/acct:([^@]*)@/',$decoded,$matches))
- $ret['nick'] = $matches[1];
- }
- }
-
- // Pull out hCard profile elements
-
- $largest_photo = 0;
-
- $items = $dom->getElementsByTagName('*');
- foreach($items as $item) {
- if(attribute_contains($item->getAttribute('class'), 'vcard')) {
- $level2 = $item->getElementsByTagName('*');
- foreach($level2 as $x) {
- if(attribute_contains($x->getAttribute('class'),'fn')) {
- $ret['fn'] = $x->textContent;
- }
- if((attribute_contains($x->getAttribute('class'),'photo'))
- || (attribute_contains($x->getAttribute('class'),'avatar'))) {
- $size = intval($x->getAttribute('width'));
- // dfrn prefers 175, so if we find this, we set largest_size so it can't be topped.
- if(($size > $largest_photo) || ($size == 175) || (! $largest_photo)) {
- $ret['photo'] = $x->getAttribute('src');
- $largest_photo = (($size == 175) ? 9999 : $size);
- }
- }
- if(attribute_contains($x->getAttribute('class'),'key')) {
- $ret['key'] = $x->textContent;
- }
- }
- }
- }
-
- return $ret;
-}}
-
-
-
-
-
-
-if(! function_exists('validate_dfrn')) {
-function validate_dfrn($a) {
- $errors = 0;
- if(! x($a,'key'))
- $errors ++;
- if(! x($a,'dfrn-request'))
- $errors ++;
- if(! x($a,'dfrn-confirm'))
- $errors ++;
- if(! x($a,'dfrn-notify'))
- $errors ++;
- if(! x($a,'dfrn-poll'))
- $errors ++;
- return $errors;
-}}
-
-if(! function_exists('scrape_meta')) {
-function scrape_meta($url) {
-
- $a = get_app();
-
- $ret = array();
-
- logger('scrape_meta: url=' . $url);
-
- $s = fetch_url($url);
-
- if(! $s)
- return $ret;
-
- $headers = $a->get_curl_headers();
- logger('scrape_meta: headers=' . $headers, LOGGER_DEBUG);
-
- $lines = explode("\n",$headers);
- if(count($lines)) {
- foreach($lines as $line) {
- // don't try and run feeds through the html5 parser
- if(stristr($line,'content-type:') && ((stristr($line,'application/atom+xml')) || (stristr($line,'application/rss+xml'))))
- return ret;
- }
- }
-
- try {
- $dom = HTML5_Parser::parse($s);
- } catch (DOMException $e) {
- logger('scrape_meta: parse error: ' . $e);
- }
-
- if(! $dom)
- return $ret;
-
- $items = $dom->getElementsByTagName('meta');
-
- // get DFRN link elements
-
- foreach($items as $item) {
- $x = $item->getAttribute('name');
- if(substr($x,0,5) == "dfrn-")
- $ret[$x] = $item->getAttribute('content');
- }
-
- return $ret;
-}}
-
-
-if(! function_exists('scrape_vcard')) {
-function scrape_vcard($url) {
-
- $a = get_app();
-
- $ret = array();
-
- logger('scrape_vcard: url=' . $url);
-
- $s = fetch_url($url);
-
- if(! $s)
- return $ret;
-
- $headers = $a->get_curl_headers();
- $lines = explode("\n",$headers);
- if(count($lines)) {
- foreach($lines as $line) {
- // don't try and run feeds through the html5 parser
- if(stristr($line,'content-type:') && ((stristr($line,'application/atom+xml')) || (stristr($line,'application/rss+xml'))))
- return ret;
- }
- }
-
- try {
- $dom = HTML5_Parser::parse($s);
- } catch (DOMException $e) {
- logger('scrape_vcard: parse error: ' . $e);
- }
-
- if(! $dom)
- return $ret;
-
- // Pull out hCard profile elements
-
- $largest_photo = 0;
-
- $items = $dom->getElementsByTagName('*');
- foreach($items as $item) {
- if(attribute_contains($item->getAttribute('class'), 'vcard')) {
- $level2 = $item->getElementsByTagName('*');
- foreach($level2 as $x) {
- if(attribute_contains($x->getAttribute('class'),'fn'))
- $ret['fn'] = $x->textContent;
- if((attribute_contains($x->getAttribute('class'),'photo'))
- || (attribute_contains($x->getAttribute('class'),'avatar'))) {
- $size = intval($x->getAttribute('width'));
- if(($size > $largest_photo) || (! $largest_photo)) {
- $ret['photo'] = $x->getAttribute('src');
- $largest_photo = $size;
- }
- }
- if((attribute_contains($x->getAttribute('class'),'nickname'))
- || (attribute_contains($x->getAttribute('class'),'uid'))) {
- $ret['nick'] = $x->textContent;
- }
- }
- }
- }
-
- return $ret;
-}}
-
-
-if(! function_exists('scrape_feed')) {
-function scrape_feed($url) {
-
- $a = get_app();
-
- $ret = array();
- $s = fetch_url($url);
-
- $headers = $a->get_curl_headers();
- $code = $a->get_curl_code();
-
- logger('scrape_feed: returns: ' . $code . ' headers=' . $headers, LOGGER_DEBUG);
-
- if(! $s) {
- logger('scrape_feed: no data returned for ' . $url);
- return $ret;
- }
-
-
- $lines = explode("\n",$headers);
- if(count($lines)) {
- foreach($lines as $line) {
- if(stristr($line,'content-type:')) {
- if(stristr($line,'application/atom+xml') || stristr($s,'<feed')) {
- $ret['feed_atom'] = $url;
- return $ret;
- }
- if(stristr($line,'application/rss+xml') || stristr($s,'<rss')) {
- $ret['feed_rss'] = $url;
- return $ret;
- }
- }
- }
- // perhaps an RSS version 1 feed with a generic or incorrect content-type?
- if(stristr($s,'</item>')) {
- $ret['feed_rss'] = $url;
- return $ret;
- }
- }
-
- try {
- $dom = HTML5_Parser::parse($s);
- } catch (DOMException $e) {
- logger('scrape_feed: parse error: ' . $e);
- }
-
- if(! $dom) {
- logger('scrape_feed: failed to parse.');
- return $ret;
- }
-
-
- $head = $dom->getElementsByTagName('base');
- if($head) {
- foreach($head as $head0) {
- $basename = $head0->getAttribute('href');
- break;
- }
- }
- if(! $basename)
- $basename = implode('/', array_slice(explode('/',$url),0,3)) . '/';
-
- $items = $dom->getElementsByTagName('link');
-
- // get Atom/RSS link elements, take the first one of either.
-
- if($items) {
- foreach($items as $item) {
- $x = $item->getAttribute('rel');
- if(($x === 'alternate') && ($item->getAttribute('type') === 'application/atom+xml')) {
- if(! x($ret,'feed_atom'))
- $ret['feed_atom'] = $item->getAttribute('href');
- }
- if(($x === 'alternate') && ($item->getAttribute('type') === 'application/rss+xml')) {
- if(! x($ret,'feed_rss'))
- $ret['feed_rss'] = $item->getAttribute('href');
- }
- }
- }
-
- // Drupal and perhaps others only provide relative URL's. Turn them into absolute.
-
- if(x($ret,'feed_atom') && (! strstr($ret['feed_atom'],'://')))
- $ret['feed_atom'] = $basename . $ret['feed_atom'];
- if(x($ret,'feed_rss') && (! strstr($ret['feed_rss'],'://')))
- $ret['feed_rss'] = $basename . $ret['feed_rss'];
-
- return $ret;
-}}
-
-
-/**
- *
- * Probe a network address to discover what kind of protocols we need to communicate with it.
- *
- * Warning: this function is a bit touchy and there are some subtle dependencies within the logic flow.
- * Edit with care.
- *
- */
-
-/**
- *
- * PROBE_DIASPORA has a bias towards returning Diaspora information
- * while PROBE_NORMAL has a bias towards dfrn/zot - in the case where
- * an address (such as a Friendica address) supports more than one type
- * of network.
- *
- */
-
-
-define ( 'PROBE_NORMAL', 0);
-
-function probe_url($url, $mode = PROBE_NORMAL) {
- require_once('include/email.php');
-
- $result = array();
-
- if(! $url)
- return $result;
-
- $network = null;
- $has_lrdd = false;
- $email_conversant = false;
-
- $twitter = ((strpos($url,'twitter.com') !== false) ? true : false);
- $lastfm = ((strpos($url,'last.fm/user') !== false) ? true : false);
-
- $at_addr = ((strpos($url,'@') !== false) ? true : false);
-
- if((! $twitter) && (! $lastfm)) {
-
- if(strpos($url,'mailto:') !== false && $at_addr) {
- $url = str_replace('mailto:','',$url);
- $links = array();
- }
- else
- $links = lrdd($url);
-
- if(count($links)) {
- $has_lrdd = true;
-
- logger('probe_url: found lrdd links: ' . print_r($links,true), LOGGER_DATA);
- foreach($links as $link) {
- if($link['@attributes']['rel'] === NAMESPACE_ZOT)
- $zot = unamp($link['@attributes']['href']);
- if($link['@attributes']['rel'] === NAMESPACE_DFRN)
- $dfrn = unamp($link['@attributes']['href']);
- if($link['@attributes']['rel'] === 'salmon')
- $notify = unamp($link['@attributes']['href']);
- if($link['@attributes']['rel'] === NAMESPACE_FEED)
- $poll = unamp($link['@attributes']['href']);
- if($link['@attributes']['rel'] === 'http://microformats.org/profile/hcard')
- $hcard = unamp($link['@attributes']['href']);
- if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page')
- $profile = unamp($link['@attributes']['href']);
- if($link['@attributes']['rel'] === 'http://portablecontacts.net/spec/1.0')
- $poco = unamp($link['@attributes']['href']);
-
- }
-
- // Status.Net can have more than one profile URL. We need to match the profile URL
- // to a contact on incoming messages to prevent spam, and we won't know which one
- // to match. So in case of two, one of them is stored as an alias. Only store URL's
- // and not webfinger user@host aliases. If they've got more than two non-email style
- // aliases, let's hope we're lucky and get one that matches the feed author-uri because
- // otherwise we're screwed.
-
- foreach($links as $link) {
- if($link['@attributes']['rel'] === 'alias') {
- if(strpos($link['@attributes']['href'],'@') === false) {
- if(isset($profile)) {
- if($link['@attributes']['href'] !== $profile)
- $alias = unamp($link['@attributes']['href']);
- }
- else
- $profile = unamp($link['@attributes']['href']);
- }
- }
- }
- }
- elseif($mode == PROBE_NORMAL) {
-
- // Check email
-
- $orig_url = $url;
- if((strpos($orig_url,'@')) && validate_email($orig_url)) {
- $x = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1",
- intval(local_user())
- );
- $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1",
- intval(local_user())
- );
- if(count($x) && count($r)) {
- $mailbox = construct_mailbox_name($r[0]);
- $password = '';
- openssl_private_decrypt(hex2bin($r[0]['pass']),$password,$x[0]['prvkey']);
- $mbox = email_connect($mailbox,$r[0]['user'],$password);
- if(! $mbox)
- logger('probe_url: email_connect failed.');
- unset($password);
- }
- if($mbox) {
- $msgs = email_poll($mbox,$orig_url);
- logger('probe_url: searching ' . $orig_url . ', ' . count($msgs) . ' messages found.', LOGGER_DEBUG);
- if(count($msgs)) {
- $addr = $orig_url;
- $network = NETWORK_MAIL;
- $name = substr($url,0,strpos($url,'@'));
- $phost = substr($url,strpos($url,'@')+1);
- $profile = 'http://' . $phost;
- // fix nick character range
- $vcard = array('fn' => $name, 'nick' => $name, 'photo' => avatar_img($url));
- $notify = 'smtp ' . random_string();
- $poll = 'email ' . random_string();
- $priority = 0;
- $x = email_msg_meta($mbox,$msgs[0]);
- if(stristr($x[0]->from,$orig_url))
- $adr = imap_rfc822_parse_adrlist($x[0]->from,'');
- elseif(stristr($x[0]->to,$orig_url))
- $adr = imap_rfc822_parse_adrlist($x[0]->to,'');
- if(isset($adr)) {
- foreach($adr as $feadr) {
- if((strcasecmp($feadr->mailbox,$name) == 0)
- &&(strcasecmp($feadr->host,$phost) == 0)
- && (strlen($feadr->personal))) {
-
- $personal = imap_mime_header_decode($feadr->personal);
- $vcard['fn'] = "";
- foreach($personal as $perspart)
- if ($perspart->charset != "default")
- $vcard['fn'] .= iconv($perspart->charset, 'UTF-8//IGNORE', $perspart->text);
- else
- $vcard['fn'] .= $perspart->text;
-
- $vcard['fn'] = notags($vcard['fn']);
- }
- }
- }
- }
- imap_close($mbox);
- }
- }
- }
- }
-
- if($mode == PROBE_NORMAL) {
- if(strlen($zot)) {
- $s = fetch_url($zot);
- if($s) {
- $j = json_decode($s);
- if($j) {
- $network = NETWORK_ZOT;
- $vcard = array(
- 'fn' => $j->fullname,
- 'nick' => $j->nickname,
- 'photo' => $j->photo
- );
- $profile = $j->url;
- $notify = $j->post;
- $pubkey = $j->pubkey;
- $poll = 'N/A';
- }
- }
- }
-
- if(strlen($dfrn)) {
- $ret = scrape_dfrn(($hcard) ? $hcard : $dfrn);
- if(is_array($ret) && x($ret,'dfrn-request')) {
- $network = NETWORK_DFRN;
- $request = $ret['dfrn-request'];
- $confirm = $ret['dfrn-confirm'];
- $notify = $ret['dfrn-notify'];
- $poll = $ret['dfrn-poll'];
-
- $vcard = array();
- $vcard['fn'] = $ret['fn'];
- $vcard['nick'] = $ret['nick'];
- $vcard['photo'] = $ret['photo'];
- }
- }
- }
-
- if($network !== NETWORK_ZOT && $network !== NETWORK_DFRN && $network !== NETWORK_MAIL) {
- if($has_lrdd)
- $network = NETWORK_OSTATUS;
- $priority = 0;
-
- if($hcard && ! $vcard) {
- $vcard = scrape_vcard($hcard);
-
- // Google doesn't use absolute url in profile photos
-
- if((x($vcard,'photo')) && substr($vcard['photo'],0,1) == '/') {
- $h = @parse_url($hcard);
- if($h)
- $vcard['photo'] = $h['scheme'] . '://' . $h['host'] . $vcard['photo'];
- }
-
- logger('probe_url: scrape_vcard: ' . print_r($vcard,true), LOGGER_DATA);
- }
-
- if($diaspora && $addr) {
- // Diaspora returns the name as the nick. As the nick will never be updated,
- // let's use the Diaspora nickname (the first part of the handle) as the nick instead
- $addr_parts = explode('@', $addr);
- $vcard['nick'] = $addr_parts[0];
- }
-
- if($twitter) {
- logger('twitter: setup');
- $tid = basename($url);
- $tapi = 'https://api.twitter.com/1/statuses/user_timeline.rss';
- if(intval($tid))
- $poll = $tapi . '?user_id=' . $tid;
- else
- $poll = $tapi . '?screen_name=' . $tid;
- $profile = 'http://twitter.com/#!/' . $tid;
- //$vcard['photo'] = 'https://api.twitter.com/1/users/profile_image/' . $tid;
- $vcard['photo'] = 'https://api.twitter.com/1/users/profile_image?screen_name=' . $tid . '&size=bigger';
- $vcard['nick'] = $tid;
- $vcard['fn'] = $tid;
- }
-
- if($lastfm) {
- $profile = $url;
- $poll = str_replace(array('www.','last.fm/'),array('','ws.audioscrobbler.com/1.0/'),$url) . '/recenttracks.rss';
- $vcard['nick'] = basename($url);
- $vcard['fn'] = $vcard['nick'] . t(' on Last.fm');
- $network = NETWORK_FEED;
- }
-
- if(! x($vcard,'fn'))
- if(x($vcard,'nick'))
- $vcard['fn'] = $vcard['nick'];
-
- $check_feed = false;
-
- if($twitter || ! $poll)
- $check_feed = true;
- if((! isset($vcard)) || (! x($vcard,'fn')) || (! $profile))
- $check_feed = true;
- if(($at_addr) && (! count($links)))
- $check_feed = false;
-
- if($check_feed) {
-
- $feedret = scrape_feed(($poll) ? $poll : $url);
- logger('probe_url: scrape_feed ' . (($poll)? $poll : $url) . ' returns: ' . print_r($feedret,true), LOGGER_DATA);
- if(count($feedret) && ($feedret['feed_atom'] || $feedret['feed_rss'])) {
- $poll = ((x($feedret,'feed_atom')) ? unamp($feedret['feed_atom']) : unamp($feedret['feed_rss']));
- if(! x($vcard))
- $vcard = array();
- }
-
- if(x($feedret,'photo') && (! x($vcard,'photo')))
- $vcard['photo'] = $feedret['photo'];
- require_once('library/simplepie/simplepie.inc');
- $feed = new SimplePie();
- $xml = fetch_url($poll);
-
- logger('probe_url: fetch feed: ' . $poll . ' returns: ' . $xml, LOGGER_DATA);
- $a = get_app();
-
- logger('probe_url: scrape_feed: headers: ' . $a->get_curl_headers(), LOGGER_DATA);
-
- $feed->set_raw_data($xml);
-
- $feed->init();
- if($feed->error())
- logger('probe_url: scrape_feed: Error parsing XML: ' . $feed->error());
-
-
- if(! x($vcard,'photo'))
- $vcard['photo'] = $feed->get_image_url();
- $author = $feed->get_author();
-
- if($author) {
- $vcard['fn'] = unxmlify(trim($author->get_name()));
- if(! $vcard['fn'])
- $vcard['fn'] = trim(unxmlify($author->get_email()));
- if(strpos($vcard['fn'],'@') !== false)
- $vcard['fn'] = substr($vcard['fn'],0,strpos($vcard['fn'],'@'));
- $email = unxmlify($author->get_email());
- if(! $profile && $author->get_link())
- $profile = trim(unxmlify($author->get_link()));
- if(! $vcard['photo']) {
- $rawtags = $feed->get_feed_tags( SIMPLEPIE_NAMESPACE_ATOM_10, 'author');
- if($rawtags) {
- $elems = $rawtags[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10];
- if((x($elems,'link')) && ($elems['link'][0]['attribs']['']['rel'] === 'photo'))
- $vcard['photo'] = $elems['link'][0]['attribs']['']['href'];
- }
- }
- }
- else {
- $item = $feed->get_item(0);
- if($item) {
- $author = $item->get_author();
- if($author) {
- $vcard['fn'] = trim(unxmlify($author->get_name()));
- if(! $vcard['fn'])
- $vcard['fn'] = trim(unxmlify($author->get_email()));
- if(strpos($vcard['fn'],'@') !== false)
- $vcard['fn'] = substr($vcard['fn'],0,strpos($vcard['fn'],'@'));
- $email = unxmlify($author->get_email());
- if(! $profile && $author->get_link())
- $profile = trim(unxmlify($author->get_link()));
- }
- if(! $vcard['photo']) {
- $rawmedia = $item->get_item_tags('http://search.yahoo.com/mrss/','thumbnail');
- if($rawmedia && $rawmedia[0]['attribs']['']['url'])
- $vcard['photo'] = unxmlify($rawmedia[0]['attribs']['']['url']);
- }
- if(! $vcard['photo']) {
- $rawtags = $item->get_item_tags( SIMPLEPIE_NAMESPACE_ATOM_10, 'author');
- if($rawtags) {
- $elems = $rawtags[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10];
- if((x($elems,'link')) && ($elems['link'][0]['attribs']['']['rel'] === 'photo'))
- $vcard['photo'] = $elems['link'][0]['attribs']['']['href'];
- }
- }
- }
- }
-
- if((! $vcard['photo']) && strlen($email))
- $vcard['photo'] = avatar_img($email);
- if($poll === $profile)
- $lnk = $feed->get_permalink();
- if(isset($lnk) && strlen($lnk))
- $profile = $lnk;
-
- if(! (x($vcard,'fn')))
- $vcard['fn'] = notags($feed->get_title());
- if(! (x($vcard,'fn')))
- $vcard['fn'] = notags($feed->get_description());
-
- if(strpos($vcard['fn'],'Twitter / ') !== false) {
- $vcard['fn'] = substr($vcard['fn'],strpos($vcard['fn'],'/')+1);
- $vcard['fn'] = trim($vcard['fn']);
- }
- if(! x($vcard,'nick')) {
- $vcard['nick'] = strtolower(notags(unxmlify($vcard['fn'])));
- if(strpos($vcard['nick'],' '))
- $vcard['nick'] = trim(substr($vcard['nick'],0,strpos($vcard['nick'],' ')));
- }
- if(! $network)
- $network = NETWORK_FEED;
- if(! $priority)
- $priority = 2;
- }
- }
-
- if(! x($vcard,'photo')) {
- $a = get_app();
- $vcard['photo'] = $a->get_baseurl() . '/images/person-175.jpg' ;
- }
-
- if(! $profile)
- $profile = $url;
-
- // No human could be associated with this link, use the URL as the contact name
-
- if(($network === NETWORK_FEED) && ($poll) && (! x($vcard,'fn')))
- $vcard['fn'] = $url;
-
- $vcard['fn'] = notags($vcard['fn']);
- $vcard['nick'] = str_replace(' ','',notags($vcard['nick']));
-
- $result['name'] = $vcard['fn'];
- $result['nick'] = $vcard['nick'];
- $result['url'] = $profile;
- $result['addr'] = $addr;
- $result['batch'] = $batch;
- $result['notify'] = $notify;
- $result['poll'] = $poll;
- $result['request'] = $request;
- $result['confirm'] = $confirm;
- $result['poco'] = $poco;
- $result['photo'] = $vcard['photo'];
- $result['priority'] = $priority;
- $result['network'] = $network;
- $result['alias'] = $alias;
- $result['pubkey'] = $pubkey;
-
- logger('probe_url: ' . print_r($result,true), LOGGER_DEBUG);
-
- return $result;
-}
diff --git a/include/account.php b/include/account.php
index a31dbba4b..b7fd3ef28 100644
--- a/include/account.php
+++ b/include/account.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('include/config.php');
require_once('include/network.php');
@@ -26,7 +26,7 @@ function check_account_email($email) {
$r = q("select account_email from account where account_email = '%s' limit 1",
dbesc($email)
);
- if(count($r)) {
+ if($r) {
$result['message'] .= t('Your email address is already registered at this site.');
}
}
@@ -80,14 +80,14 @@ function check_account_invite($invite_code) {
function check_account_admin($arr) {
if(is_site_admin())
return true;
- $admin_mail = trim(get_config('system','admin_email'));
+ $admin_email = trim(get_config('system','admin_email'));
if(strlen($admin_email) && $admin_email === trim($arr['email']))
return true;
return false;
}
function account_total() {
- $r = q("select account_id from account where 1");
+ $r = q("select account_id from account where true");
if(is_array($r))
return count($r);
return false;
@@ -107,7 +107,8 @@ function create_account($arr) {
$parent = ((x($arr,'parent')) ? intval($arr['parent']) : 0 );
$flags = ((x($arr,'account_flags')) ? intval($arr['account_flags']) : ACCOUNT_OK);
$roles = ((x($arr,'account_roles')) ? intval($arr['account_roles']) : 0 );
-
+ $expires = ((x($arr,'expires')) ? intval($arr['expires']) : '0000-00-00 00:00:00');
+
$default_service_class = get_config('system','default_service_class');
if($default_service_class === false)
$default_service_class = '';
@@ -129,7 +130,7 @@ function create_account($arr) {
// allow the admin_email account to be admin, but only if it's the first account.
$c = account_total();
- if((c === 0) && (check_account_admin($arr)))
+ if(($c === 0) && (check_account_admin($arr)))
$roles |= ACCOUNT_ROLE_ADMIN;
@@ -281,7 +282,7 @@ function send_reg_approval_email($arr) {
function send_verification_email($email,$password) {
$email_msg = replace_macros(get_intltext_template('register_open_eml.tpl'), array(
- '$sitename' => get_config('config','sitename'),
+ '$sitename' => get_config('system','sitename'),
'$siteurl' => z_root(),
'$email' => $email,
'$password' => t('your registration password'),
diff --git a/include/acl_selectors.php b/include/acl_selectors.php
index f4dacb74a..033186151 100644
--- a/include/acl_selectors.php
+++ b/include/acl_selectors.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
/**
*
*/
@@ -229,41 +229,6 @@ function populate_acl($user = null,$celeb = false) {
array_walk($deny_cid,'fixacl');
array_walk($deny_gid,'fixacl');
}
-
- /*$o = '';
- $o .= '<div id="acl-wrapper">';
- $o .= '<div id="acl-permit-outer-wrapper">';
- $o .= '<div id="acl-permit-text">' . t('Visible To:') . '</div><div id="jot-public">' . t('everybody') . '</div>';
- $o .= '<div id="acl-permit-text-end"></div>';
- $o .= '<div id="acl-permit-wrapper">';
- $o .= '<div id="group_allow_wrapper">';
- $o .= '<label id="acl-allow-group-label" for="group_allow" >' . t('Groups') . '</label>';
- $o .= group_select('group_allow','group_allow',$allow_gid);
- $o .= '</div>';
- $o .= '<div id="contact_allow_wrapper">';
- $o .= '<label id="acl-allow-contact-label" for="contact_allow" >' . t('Contacts') . '</label>';
- $o .= contact_select('contact_allow','contact_allow',$allow_cid,4,false,$celeb,true);
- $o .= '</div>';
- $o .= '</div>' . "\r\n";
- $o .= '<div id="acl-allow-end"></div>' . "\r\n";
- $o .= '</div>';
- $o .= '<div id="acl-deny-outer-wrapper">';
- $o .= '<div id="acl-deny-text">' . t('Except For:') . '</div>';
- $o .= '<div id="acl-deny-text-end"></div>';
- $o .= '<div id="acl-deny-wrapper">';
- $o .= '<div id="group_deny_wrapper" >';
- $o .= '<label id="acl-deny-group-label" for="group_deny" >' . t('Groups') . '</label>';
- $o .= group_select('group_deny','group_deny', $deny_gid);
- $o .= '</div>';
- $o .= '<div id="contact_deny_wrapper" >';
- $o .= '<label id="acl-deny-contact-label" for="contact_deny" >' . t('Contacts') . '</label>';
- $o .= contact_select('contact_deny','contact_deny', $deny_cid,4,false, $celeb,true);
- $o .= '</div>';
- $o .= '</div>' . "\r\n";
- $o .= '<div id="acl-deny-end"></div>' . "\r\n";
- $o .= '</div>';
- $o .= '</div>' . "\r\n";
- $o .= '<div id="acl-wrapper-end"></div>' . "\r\n";*/
$tpl = get_markup_template("acl_selector.tpl");
$o = replace_macros($tpl, array(
diff --git a/include/activities.php b/include/activities.php
index ced9f3d18..10a01792f 100644
--- a/include/activities.php
+++ b/include/activities.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function profile_activity($changed, $value) {
$a = get_app();
@@ -17,7 +17,7 @@ function profile_activity($changed, $value) {
return;
$arr = array();
- $arr['uri'] = $arr['parent_uri'] = item_message_id();
+ $arr['mid'] = $arr['parent_mid'] = item_message_id();
$arr['uid'] = local_user();
$arr['aid'] = $self['channel_account_id'];
$arr['owner_xchan'] = $arr['author_xchan'] = $self['xchan_hash'];
diff --git a/include/api.php b/include/api.php
index 4d74eb298..a49258d18 100644
--- a/include/api.php
+++ b/include/api.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once("bbcode.php");
require_once("datetime.php");
@@ -6,6 +6,7 @@ require_once("conversation.php");
require_once("oauth.php");
require_once("html2plain.php");
require_once('include/security.php');
+require_once('include/photos.php');
/*
*
@@ -96,6 +97,16 @@ require_once('include/security.php');
}
}
+ if(x($_SERVER,'HTTP_AUTHORIZATION')) {
+ $userpass = base64_decode(substr($_SERVER["HTTP_AUTHORIZATION"],6)) ;
+ if(strlen($userpass)) {
+ list($name, $password) = explode(':', $userpass);
+ $_SERVER['PHP_AUTH_USER'] = $name;
+ $_SERVER['PHP_AUTH_PW'] = $password;
+ }
+ }
+
+
if (!isset($_SERVER['PHP_AUTH_USER'])) {
logger('API_login: ' . print_r($_SERVER,true), LOGGER_DEBUG);
header('WWW-Authenticate: Basic realm="Red"');
@@ -220,7 +231,7 @@ require_once('include/security.php');
'updated' => api_date(null),
'atom_updated' => datetime_convert('UTC','UTC','now',ATOM_TIME),
'language' => $user_info['language'],
- 'logo' => $a->get_baseurl()."/images/friendica-32.png",
+ 'logo' => $a->get_baseurl()."/images/rhash-64.png",
);
return $arr;
@@ -515,6 +526,40 @@ require_once('include/security.php');
json_return_and_die(identity_basic_export(api_user()));
}
api_register_func('api/export/basic','api_export_basic', true);
+ api_register_func('api/red/channel/export/basic','api_export_basic', true);
+
+
+ function api_channel_stream(&$a, $type) {
+ if(api_user() === false) {
+ logger('api_channel_stream: no user');
+ return false;
+ }
+
+ if($_SERVER['REQUEST_METHOD'] == 'POST') {
+ json_return_and_die(post_activity_item($_REQUEST));
+ }
+ else {
+ // fetch stream
+
+ }
+ }
+ api_register_func('api/red/channel/stream','api_channel_stream', true);
+
+
+ function api_albums(&$a,$type) {
+ json_return_and_die(photos_albums_list($a->get_channel(),$a->get_observer()));
+ }
+ api_register_func('api/red/albums','api_albums', true);
+
+ function api_photos(&$a,$type) {
+ $album = $_REQUEST['album'];
+ json_return_and_die(photos_list_photos($a->get_channel(),$a->get_observer()),$album);
+ }
+ api_register_func('api/red/photos','api_photos', true);
+
+
+
+
@@ -565,6 +610,15 @@ require_once('include/security.php');
return false;
}
+ logger('api_statuses_update: REQUEST ' . print_r($_REQUEST,true));
+ logger('api_statuses_update: FILES ' . print_r($_FILES,true));
+
+
+ // set this so that the item_post() function is quiet and doesn't redirect or emit json
+
+ $_REQUEST['api_source'] = true;
+
+
$user_info = api_get_user($a);
// convert $_POST array items to the form we use for web posts.
@@ -599,7 +653,7 @@ require_once('include/security.php');
if(ctype_digit($parent))
$_REQUEST['parent'] = $parent;
else
- $_REQUEST['parent_uri'] = $parent;
+ $_REQUEST['parent_mid'] = $parent;
if(requestdata('lat') && requestdata('long'))
$_REQUEST['coord'] = sprintf("%s %s",requestdata('lat'),requestdata('long'));
@@ -610,7 +664,9 @@ require_once('include/security.php');
$_REQUEST['type'] = 'net-comment';
else {
$_REQUEST['type'] = 'wall';
+
if(x($_FILES,'media')) {
+ $_FILES['userfile'] = $_FILES['media'];
// upload the image if we have one
$_REQUEST['silent']='1'; //tell wall_upload function to return img info instead of echo
require_once('mod/wall_upload.php');
@@ -620,9 +676,6 @@ require_once('include/security.php');
}
}
- // set this so that the item_post() function is quiet and doesn't redirect or emit json
-
- $_REQUEST['api_source'] = true;
// call out normal post function
@@ -892,7 +945,7 @@ require_once('include/security.php');
and item_private = 0
and uid in ( " . stream_perms_api_uids() . " )
$sql_extra
- AND id > %d group by uri
+ AND id > %d group by mid
order by received desc LIMIT %d, %d ",
intval($since_id),
intval($start),
@@ -991,7 +1044,7 @@ require_once('include/security.php');
if(perm_is_allowed($r[0]['uid'],$observer['xchan_hash'],'view_stream')) {
if ($r[0]['body'] != "") {
- $_REQUEST['body'] = html_entity_decode("&#x2672; ", ENT_QUOTES, 'UTF-8')."[url=".$r[0]['reply_url']."]".$r[0]['reply_author']."[/url] \n".$r[0]['body'];
+ $_REQUEST['body'] = html_entity_decode("&#x2672; ", ENT_QUOTES, 'UTF-8')."[zrl=".$r[0]['reply_url']."]".$r[0]['reply_author']."[/zrl] \n".$r[0]['body'];
$_REQUEST['profile_uid'] = api_user();
$_REQUEST['type'] = 'wall';
$_REQUEST['api_source'] = true;
@@ -1404,7 +1457,7 @@ require_once('include/security.php');
$status2 = array(
'updated' => api_date($item['edited']),
'published' => api_date($item['created']),
- 'message_id' => $item['uri'],
+ 'message_id' => $item['mid'],
'url' => $item['plink'],
'coordinates' => $item['coord'],
'place' => $item['location'],
@@ -1452,7 +1505,7 @@ require_once('include/security.php');
return api_apply_template('test', $type, array('$ok' => $ok));
}
- api_register_func('api/help/test','api_help_test',true);
+ api_register_func('api/help/test','api_help_test',false);
/**
* https://dev.twitter.com/docs/api/1/get/statuses/friends
@@ -1483,17 +1536,17 @@ require_once('include/security.php');
// For Red, the closest thing we can do to figure out if you're friends is if both of you are sending each other your streams.
// This won't work if either of you send your stream to everybody on the network
if($qtype == 'friends')
- $sql_extra = sprintf(" AND ( their_perms & %d ) and ( my_perms & %d ) ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
+ $sql_extra = sprintf(" AND ( abook_their_perms & %d ) and ( abook_my_perms & %d ) ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
if($qtype == 'followers')
- $sql_extra = sprintf(" AND ( my_perms & %d ) and not ( their_perms & %d ) ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
+ $sql_extra = sprintf(" AND ( abook_my_perms & %d ) and not ( abook_their_perms & %d ) ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
- $r = q("SELECT id FROM abook where abook_flags = 0 and abook_channel = %d $sql_extra",
+ $r = q("SELECT abook_id FROM abook where abook_flags = 0 and abook_channel = %d $sql_extra",
intval(api_user())
);
$ret = array();
foreach($r as $cid){
- $ret[] = api_get_user($a, $cid['id']);
+ $ret[] = api_get_user($a, $cid['abook_id']);
}
@@ -1524,7 +1577,7 @@ require_once('include/security.php');
$name = get_config('system','sitename');
$server = $a->get_hostname();
- $logo = $a->get_baseurl() . '/images/fred-64.png';
+ $logo = $a->get_baseurl() . '/images/rhash-64.png';
$email = get_config('system','admin_email');
$closed = ((get_config('system','register_policy') == REGISTER_CLOSED) ? 'true' : 'false');
$private = ((get_config('system','block_public')) ? 'true' : 'false');
@@ -1541,8 +1594,8 @@ require_once('include/security.php');
'private' => $private, 'textlimit' => $textlimit, 'sslserver' => $sslserver, 'ssl' => $ssl,
'shorturllength' => '30',
'friendica' => array(
- 'FRIENDICA_PLATFORM' => FRIENDICA_PLATFORM,
- 'FRIENDICA_VERSION' => FRIENDICA_VERSION,
+ 'RED_PLATFORM' => RED_PLATFORM,
+ 'RED_VERSION' => RED_VERSION,
'ZOT_REVISION' => ZOT_REVISION,
'DB_UPDATE_VERSION' => DB_UPDATE_VERSION
)
@@ -1577,12 +1630,12 @@ require_once('include/security.php');
if($type === 'xml') {
header("Content-type: application/xml");
- echo '<?xml version="1.0" encoding="UTF-8"?>' . "\r\n" . '<version>' . FRIENDICA_VERSION . '</version>' . "\r\n";
+ echo '<?xml version="1.0" encoding="UTF-8"?>' . "\r\n" . '<version>' . RED_VERSION . '</version>' . "\r\n";
killme();
}
elseif($type === 'json') {
header("Content-type: application/json");
- echo '"' . FRIENDICA_VERSION . '"';
+ echo '"' . RED_VERSION . '"';
killme();
}
}
@@ -1599,11 +1652,11 @@ require_once('include/security.php');
// This won't work if either of you send your stream to everybody on the network
if($qtype == 'friends')
- $sql_extra = sprintf(" AND ( their_perms & %d ) and ( my_perms & %d ) ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
+ $sql_extra = sprintf(" AND ( abook_their_perms & %d ) and ( abook_my_perms & %d ) ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
if($qtype == 'followers')
- $sql_extra = sprintf(" AND ( my_perms & %d ) and not ( their_perms & %d ) ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
+ $sql_extra = sprintf(" AND ( abook_my_perms & %d ) and not ( abook_their_perms & %d ) ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
- $r = q("SELECT id FROM abook where abook_flags = 0 and abook_channel = %d $sql_extra",
+ $r = q("SELECT abook_id FROM abook where abook_flags = 0 and abook_channel = %d $sql_extra",
intval(api_user())
);
@@ -1612,14 +1665,14 @@ require_once('include/security.php');
header("Content-type: application/xml");
echo '<?xml version="1.0" encoding="UTF-8"?>' . "\r\n" . '<ids>' . "\r\n";
foreach($r as $rr)
- echo '<id>' . $rr['id'] . '</id>' . "\r\n";
+ echo '<id>' . $rr['abook_id'] . '</id>' . "\r\n";
echo '</ids>' . "\r\n";
killme();
}
elseif($type === 'json') {
$ret = array();
header("Content-type: application/json");
- foreach($r as $rr) $ret[] = $rr['id'];
+ foreach($r as $rr) $ret[] = $rr['abook_id'];
echo json_encode($ret);
killme();
}
@@ -1653,10 +1706,10 @@ require_once('include/security.php');
$replyto = '';
$sub = '';
if (x($_REQUEST,'replyto')) {
- $r = q('SELECT `parent_uri`, `title` FROM `mail` WHERE `uid`=%d AND `id`=%d',
+ $r = q('SELECT `parent_mid`, `title` FROM `mail` WHERE `uid`=%d AND `id`=%d',
intval(api_user()),
intval($_REQUEST['replyto']));
- $replyto = $r[0]['parent_uri'];
+ $replyto = $r[0]['parent_mid'];
$sub = $r[0]['title'];
}
else {
@@ -1708,7 +1761,7 @@ require_once('include/security.php');
$sql_extra = "`from-url`='".dbesc( $profile_url )."'";
}
elseif ($box=="conversation") {
- $sql_extra = "`parent_uri`='".dbesc( $_GET["uri"] ) ."'";
+ $sql_extra = "`parent_mid`='".dbesc( $_GET["uri"] ) ."'";
}
elseif ($box=="all") {
$sql_extra = "true";
diff --git a/include/attach.php b/include/attach.php
index 64d6a1689..46d406f4b 100644
--- a/include/attach.php
+++ b/include/attach.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
/*
* File/attach API with the potential for revision control.
@@ -10,6 +10,7 @@
*/
require_once('include/permissions.php');
+require_once('include/security.php');
function z_mime_content_type($filename) {
@@ -192,13 +193,13 @@ function attach_by_hash($hash,$rev = 0) {
$sql_extra = permissions_sql($r[0]['uid']);
// Now we'll see if we can access the attachment
-
+dbg(1);
$r = q("SELECT * FROM attach WHERE hash = '%s' and uid = %d $sql_extra LIMIT 1",
dbesc($hash),
intval($r[0]['uid'])
);
-
+dbg(0);
if(! $r) {
$ret['message'] = t('Permission denied.');
return $ret;
@@ -439,4 +440,64 @@ function attach_store($channel,$observer_hash,$options = '',$arr = null) {
$ret['success'] = true;
$ret['data'] = $r[0];
return $ret;
+}
+
+
+/**
+ * Read a virtual directory and return contents, checking permissions of all parent components.
+ * @function z_readdir
+ * @param integer $channel_id
+ * @param string $observer_hash
+ * @param string $pathname
+ * @param string $parent_hash (optional)
+ *
+ * @returns array $ret
+ * $ret['success'] = boolean true or false
+ * $ret['message'] = error message if success is false
+ * $ret['data'] = array of attach DB entries without data component
+ */
+
+function z_readdir($channel_id,$observer_hash,$pathname, $parent_hash = '') {
+
+ $ret = array('success' => false);
+ if(! perm_is_allowed($r[0]['uid'],get_observer_hash(),'view_storage')) {
+ $ret['message'] = t('Permission denied.');
+ return $ret;
+ }
+
+
+ if(strpos($pathname,'/')) {
+ $paths = explode('/',$pathname);
+ if(count($paths) > 1) {
+ $curpath = array_shift($paths);
+
+ $r = q("select hash, id from attach where uid = %d and filename = '%s' and (flags & %d ) " . permissions_sql($channel_id) . " limit 1",
+ intval($channel_id),
+ dbesc($curpath),
+ intval(ATTACH_FLAG_DIR)
+ );
+ if(! $r) {
+ $ret['message'] = t('Path not available.');
+ return $ret;
+ }
+
+ return z_readdir($channel_id,$observer_hash,implode('/',$paths),$r[0]['hash']);
+ }
+ }
+ else
+ $paths = array($pathname);
+
+ $r = q("select id, aid, uid, hash, filename, filetype, filesize, revision, folder, flags, created, edited, allow_cid, allow_gid, deny_cid, deny_gid from attach where id = %d and folder = '%s' and filename = '%s' and (flags & %d ) " . permissions_sql($channel_id),
+ intval($channel_id),
+ dbesc($parent_hash),
+ dbesc($paths[0]),
+ intval(ATTACH_FLAG_DIR)
+ );
+ if(! $r) {
+ $ret['message'] = t('Path not available.');
+ return $ret;
+ }
+ $ret['success'] = true;
+ $ret['data'] = $r;
+ return $ret;
} \ No newline at end of file
diff --git a/include/auth.php b/include/auth.php
index 14751f5a2..c86a54fb1 100644
--- a/include/auth.php
+++ b/include/auth.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('include/security.php');
@@ -67,6 +67,21 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p
}
if(x($_SESSION,'visitor_id') && (! x($_SESSION,'uid'))) {
+ // if our authenticated guest is allowed to take control of the admin channel, make it so.
+ $admins = get_config('system','remote_admin');
+ if($admins && is_array($admins) && in_array($_SESSION['visitor_id'],$admins)) {
+ $x = q("select * from account where account_email = '%s' and account_email != '' and ( account_flags & %d ) limit 1",
+ dbesc(get_config('system','admin_email')),
+ intval(ACCOUNT_ROLE_ADMIN)
+ );
+ if($x) {
+ new_cookie(60*60*24); // one day
+ $_SESSION['last_login_date'] = datetime_convert();
+ unset($_SESSION['visitor_id']); // no longer a visitor
+ authenticate_success($x[0], true, true);
+ }
+ }
+
$r = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash where hubloc_hash = '%s' limit 1",
dbesc($_SESSION['visitor_id'])
);
@@ -198,13 +213,3 @@ else {
authenticate_success($record, true, true);
}
}
-
-
-function new_cookie($time) {
- $old_sid = session_id();
- session_set_cookie_params("$time");
- session_regenerate_id(false);
-
- q("UPDATE session SET sid = '%s' WHERE sid = '%s'", dbesc(session_id()), dbesc($old_sid));
-}
-
diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php
index ee070b4fe..8d3089a29 100644
--- a/include/bb2diaspora.php
+++ b/include/bb2diaspora.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once("include/oembed.php");
require_once("include/event.php");
diff --git a/include/bbcode.php b/include/bbcode.php
index d43929ef5..a0a53a310 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once("include/oembed.php");
require_once('include/event.php');
@@ -91,7 +91,7 @@ function bb_replace_images($body, $images) {
// We're depending on the property of 'foreach' (specified on the PHP website) that
// it loops over the array starting from the first element and going sequentially
// to the last element
- $newbody = str_replace('[$#saved_image' . $cnt . '#$]', '<img src="' . $image .'" alt="' . t('Image/photo') . '" />', $newbody);
+ $newbody = str_replace('[$#saved_image' . $cnt . '#$]', '<img class="zrl" src="' . $image .'" alt="' . t('Image/photo') . '" />', $newbody);
$cnt++;
}
@@ -99,13 +99,110 @@ function bb_replace_images($body, $images) {
}}
+function bb_ShareAttributes($match) {
+
+ $attributes = $match[1];
+
+ $author = "";
+ preg_match("/author='(.*?)'/ism", $attributes, $matches);
+ if ($matches[1] != "")
+ $author = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
+
+ preg_match('/author="(.*?)"/ism', $attributes, $matches);
+ if ($matches[1] != "")
+ $author = $matches[1];
+
+ $link = "";
+ preg_match("/link='(.*?)'/ism", $attributes, $matches);
+ if ($matches[1] != "")
+ $link = $matches[1];
+
+ preg_match('/link="(.*?)"/ism', $attributes, $matches);
+ if ($matches[1] != "")
+ $link = $matches[1];
+
+ $avatar = "";
+ preg_match("/avatar='(.*?)'/ism", $attributes, $matches);
+ if ($matches[1] != "")
+ $avatar = $matches[1];
+
+ preg_match('/avatar="(.*?)"/ism', $attributes, $matches);
+ if ($matches[1] != "")
+ $avatar = $matches[1];
+
+ $profile = "";
+ preg_match("/profile='(.*?)'/ism", $attributes, $matches);
+ if ($matches[1] != "")
+ $profile = $matches[1];
+
+ preg_match('/profile="(.*?)"/ism', $attributes, $matches);
+ if ($matches[1] != "")
+ $profile = $matches[1];
+
+ $posted = "";
+ preg_match("/posted='(.*?)'/ism", $attributes, $matches);
+ if ($matches[1] != "")
+ $posted = $matches[1];
+
+ preg_match('/posted="(.*?)"/ism', $attributes, $matches);
+ if ($matches[1] != "")
+ $posted = $matches[1];
+
+ // FIXME - this should really be a wall-item-ago so it will get updated on the client
+ $reldate = (($posted) ? relative_date($posted) : '');
+
+ $headline = '<div class="shared_header">';
+
+ if ($avatar != "")
+ $headline .= '<img src="' . $avatar . '" alt="' . $author . '" height="32" width="32" />';
+
+ // Bob Smith wrote the following post 2 hours ago
+
+ $fmt = sprintf( t('%1$s wrote the following %2$s %3$s'),
+ '<a href="' . zid($profile) . '" >' . $author . '</a>',
+ '<a href="' . zid($link) . '" >' . t('post') . '</a>',
+ $reldate
+ );
+
+ $headline .= '<span>' . $fmt . '</span></div>';
+
+ $text = $headline . '<div class="reshared-content">' . trim($match[2]) . '</div>';
+
+ return($text);
+}
+
+function bb_ShareAttributesSimple($match) {
+
+ $attributes = $match[1];
+
+ $author = "";
+ preg_match("/author='(.*?)'/ism", $attributes, $matches);
+ if ($matches[1] != "")
+ $author = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
+
+ preg_match('/author="(.*?)"/ism', $attributes, $matches);
+ if ($matches[1] != "")
+ $author = $matches[1];
+
+ $profile = "";
+ preg_match("/profile='(.*?)'/ism", $attributes, $matches);
+ if ($matches[1] != "")
+ $profile = $matches[1];
+
+ preg_match('/profile="(.*?)"/ism', $attributes, $matches);
+ if ($matches[1] != "")
+ $profile = $matches[1];
+
+ $text = "<br />".html_entity_decode("&#x2672; ", ENT_QUOTES, 'UTF-8').' <a href="'.$profile.'">'.$author."</a>: div class=\"reshared-content\">" .$match[2]."</div>";
+
+ return($text);
+}
// BBcode 2 HTML was written by WAY2WEB.net
- // extended to work with Mistpark/Friendica - Mike Macgirvin
+ // extended to work with Mistpark/Friendica/Red - Mike Macgirvin
function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
-
$a = get_app();
// Extract the private images which use data url's since preg has issues with
@@ -122,10 +219,15 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = preg_replace("/(\s*)\[\/(\w*)\]/ism", '[/$2]$1', $Text);
// Hide all [noparse] contained bbtags by spacefying them
-
- $Text = preg_replace_callback("/\[noparse\](.*?)\[\/noparse\]/ism", 'bb_spacefy',$Text);
- $Text = preg_replace_callback("/\[nobb\](.*?)\[\/nobb\]/ism", 'bb_spacefy',$Text);
- $Text = preg_replace_callback("/\[pre\](.*?)\[\/pre\]/ism", 'bb_spacefy',$Text);
+ if (strpos($Text,'[noparse]') !== false) {
+ $Text = preg_replace_callback("/\[noparse\](.*?)\[\/noparse\]/ism", 'bb_spacefy',$Text);
+ }
+ if (strpos($Text,'[nobb]') !== false) {
+ $Text = preg_replace_callback("/\[nobb\](.*?)\[\/nobb\]/ism", 'bb_spacefy',$Text);
+ }
+ if (strpos($Text,'[pre]') !== false) {
+ $Text = preg_replace_callback("/\[pre\](.*?)\[\/pre\]/ism", 'bb_spacefy',$Text);
+ }
@@ -142,9 +244,6 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = str_replace("<", "&lt;", $Text);
$Text = str_replace(">", "&gt;", $Text);
- // This only matters when looking for tags - otherwise has no meaning
-
- $Text = str_replace(array('[share]','[/share]'), array('',''), $Text);
// Convert new line chars to html <br /> tags
@@ -169,66 +268,84 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
// Perform URL Search
- $Text = preg_replace("/([^\]\=]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1<a href="$2" >$2</a>', $Text);
-
- if ($tryoembed)
- $Text = preg_replace_callback("/\[bookmark\=([^\]]*)\].*?\[\/bookmark\]/ism",'tryoembed',$Text);
-
- $Text = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",'[url=$1]$2[/url]',$Text);
-
- if ($tryoembed)
- $Text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism",'tryoembed',$Text);
-
- $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '<a href="$1" >$1</a>', $Text);
- $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<a href="$1" >$2</a>', $Text);
- //$Text = preg_replace("/\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[\/url\]/ism", '<a href="$1" target="_blank">$2</a>', $Text);
+ $urlchars = '[a-zA-Z0-9\:\/\-\?\&\;\.\=\@\_\~\#\%\$\!\+\,]';
+ if (strpos($Text,'http') !== false) {
+ $Text = preg_replace("/([^\]\='".'"'."]|^)(https?\:\/\/$urlchars+)/ism", '$1<a href="$2" >$2</a>', $Text);
+ }
+ if (strpos($Text,'[/share]') !== false) {
+ $Text = preg_replace_callback("/\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributes",$Text);
+ }
+ if($tryoembed) {
+ if (strpos($Text,'[/url]') !== false) {
+ $Text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism",'tryoembed',$Text);
+ }
+ }
+ if (strpos($Text,'[/url]') !== false) {
+ $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '<a href="$1" >$1</a>', $Text);
+ $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<a href="$1" >$2</a>', $Text);
+ }
+ if (strpos($Text,'[/zrl]') !== false) {
+ $Text = preg_replace("/\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '<a class="zrl" href="$1" >$1</a>', $Text);
+ $Text = preg_replace("/\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '<a class="zrl" href="$1" >$2</a>', $Text);
+ }
// Perform MAIL Search
- $Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '<a href="mailto:$1">$1</a>', $Text);
- $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '<a href="mailto:$1">$2</a>', $Text);
-
+ if (strpos($Text,'[/mail]') !== false) {
+ $Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '<a href="mailto:$1">$1</a>', $Text);
+ $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '<a href="mailto:$1">$2</a>', $Text);
+ }
// Check for bold text
- $Text = preg_replace("(\[b\](.*?)\[\/b\])ism",'<strong>$1</strong>',$Text);
-
+ if (strpos($Text,'[b]') !== false) {
+ $Text = preg_replace("(\[b\](.*?)\[\/b\])ism",'<strong>$1</strong>',$Text);
+ }
// Check for Italics text
- $Text = preg_replace("(\[i\](.*?)\[\/i\])ism",'<em>$1</em>',$Text);
-
+ if (strpos($Text,'[i]') !== false) {
+ $Text = preg_replace("(\[i\](.*?)\[\/i\])ism",'<em>$1</em>',$Text);
+ }
// Check for Underline text
- $Text = preg_replace("(\[u\](.*?)\[\/u\])ism",'<u>$1</u>',$Text);
-
+ if (strpos($Text,'[u]') !== false) {
+ $Text = preg_replace("(\[u\](.*?)\[\/u\])ism",'<u>$1</u>',$Text);
+ }
// Check for strike-through text
- $Text = preg_replace("(\[s\](.*?)\[\/s\])ism",'<strike>$1</strike>',$Text);
-
+ if (strpos($Text,'[s]') !== false) {
+ $Text = preg_replace("(\[s\](.*?)\[\/s\])ism",'<strike>$1</strike>',$Text);
+ }
// Check for over-line text
- $Text = preg_replace("(\[o\](.*?)\[\/o\])ism",'<span class="overline">$1</span>',$Text);
-
+ if (strpos($Text,'[o]') !== false) {
+ $Text = preg_replace("(\[o\](.*?)\[\/o\])ism",'<span class="overline">$1</span>',$Text);
+ }
// Check for colored text
- $Text = preg_replace("(\[color=(.*?)\](.*?)\[\/color\])ism","<span style=\"color: $1;\">$2</span>",$Text);
-
+ if (strpos($Text,'[/color]') !== false) {
+ $Text = preg_replace("(\[color=(.*?)\](.*?)\[\/color\])ism","<span style=\"color: $1;\">$2</span>",$Text);
+ }
// Check for sized text
- // [size=50] --> font-size: 50px (with the unit).
- $Text = preg_replace("(\[size=(\d*?)\](.*?)\[\/size\])ism","<span style=\"font-size: $1px;\">$2</span>",$Text);
- $Text = preg_replace("(\[size=(.*?)\](.*?)\[\/size\])ism","<span style=\"font-size: $1;\">$2</span>",$Text);
-
+ // [size=50] --> font-size: 50px (with the unit).
+ if (strpos($Text,'[/size]') !== false) {
+ $Text = preg_replace("(\[size=(\d*?)\](.*?)\[\/size\])ism","<span style=\"font-size: $1px;\">$2</span>",$Text);
+ $Text = preg_replace("(\[size=(.*?)\](.*?)\[\/size\])ism","<span style=\"font-size: $1;\">$2</span>",$Text);
+ }
// Check for centered text
+ if (strpos($Text,'[/center]') !== false) {
$Text = preg_replace("(\[center\](.*?)\[\/center\])ism","<div style=\"text-align:center;\">$1</div>",$Text);
-
+ }
// Check for list text
$Text = str_replace("[*]", "<li>", $Text);
// Check for style sheet commands
- $Text = preg_replace("(\[style=(.*?)\](.*?)\[\/style\])ism","<span style=\"$1;\">$2</span>",$Text);
-
+ if (strpos($Text,'[/style]') !== false) {
+ $Text = preg_replace("(\[style=(.*?)\](.*?)\[\/style\])ism","<span style=\"$1;\">$2</span>",$Text);
+ }
// Check for CSS classes
- $Text = preg_replace("(\[class=(.*?)\](.*?)\[\/class\])ism","<span class=\"$1\">$2</span>",$Text);
-
+ if (strpos($Text,'[/class]') !== false) {
+ $Text = preg_replace("(\[class=(.*?)\](.*?)\[\/class\])ism","<span class=\"$1\">$2</span>",$Text);
+ }
// handle nested lists
$endlessloop = 0;
while ((((strpos($Text, "[/list]") !== false) && (strpos($Text, "[list") !== false)) ||
- ((strpos($Text, "[/ol]") !== false) && (strpos($Text, "[ol]") !== false)) ||
- ((strpos($Text, "[/ul]") !== false) && (strpos($Text, "[ul]") !== false)) ||
- ((strpos($Text, "[/li]") !== false) && (strpos($Text, "[li]") !== false))) && (++$endlessloop < 20)) {
+ ((strpos($Text, "[/ol]") !== false) && (strpos($Text, "[ol]") !== false)) ||
+ ((strpos($Text, "[/ul]") !== false) && (strpos($Text, "[ul]") !== false)) ||
+ ((strpos($Text, "[/li]") !== false) && (strpos($Text, "[li]") !== false))) && (++$endlessloop < 20)) {
$Text = preg_replace("/\[list\](.*?)\[\/list\]/ism", '<ul class="listbullet" style="list-style-type: circle;">$1</ul>' ,$Text);
$Text = preg_replace("/\[list=\](.*?)\[\/list\]/ism", '<ul class="listnone" style="list-style-type: none;">$1</ul>' ,$Text);
$Text = preg_replace("/\[list=1\](.*?)\[\/list\]/ism", '<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>' ,$Text);
@@ -240,15 +357,20 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = preg_replace("/\[ol\](.*?)\[\/ol\]/ism", '<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>' ,$Text);
$Text = preg_replace("/\[li\](.*?)\[\/li\]/ism", '<li>$1</li>' ,$Text);
}
-
- $Text = preg_replace("/\[th\](.*?)\[\/th\]/sm", '<th>$1</th>' ,$Text);
- $Text = preg_replace("/\[td\](.*?)\[\/td\]/sm", '<td>$1</td>' ,$Text);
- $Text = preg_replace("/\[tr\](.*?)\[\/tr\]/sm", '<tr>$1</tr>' ,$Text);
- $Text = preg_replace("/\[table\](.*?)\[\/table\]/sm", '<table>$1</table>' ,$Text);
-
- $Text = preg_replace("/\[table border=1\](.*?)\[\/table\]/sm", '<table border="1" >$1</table>' ,$Text);
- $Text = preg_replace("/\[table border=0\](.*?)\[\/table\]/sm", '<table border="0" >$1</table>' ,$Text);
-
+ if (strpos($Text,'[th]') !== false) {
+ $Text = preg_replace("/\[th\](.*?)\[\/th\]/sm", '<th>$1</th>' ,$Text);
+ }
+ if (strpos($Text,'[td]') !== false) {
+ $Text = preg_replace("/\[td\](.*?)\[\/td\]/sm", '<td>$1</td>' ,$Text);
+ }
+ if (strpos($Text,'[tr]') !== false) {
+ $Text = preg_replace("/\[tr\](.*?)\[\/tr\]/sm", '<tr>$1</tr>' ,$Text);
+ }
+ if (strpos($Text,'[table]') !== false) {
+ $Text = preg_replace("/\[table\](.*?)\[\/table\]/sm", '<table>$1</table>' ,$Text);
+ $Text = preg_replace("/\[table border=1\](.*?)\[\/table\]/sm", '<table border="1" >$1</table>' ,$Text);
+ $Text = preg_replace("/\[table border=0\](.*?)\[\/table\]/sm", '<table border="0" >$1</table>' ,$Text);
+ }
$Text = str_replace('[hr]','<hr />', $Text);
// This is actually executed in prepare_body()
@@ -256,14 +378,16 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = str_replace('[nosmile]','',$Text);
// Check for font change text
- $Text = preg_replace("/\[font=(.*?)\](.*?)\[\/font\]/sm","<span style=\"font-family: $1;\">$2</span>",$Text);
-
+ if (strpos($Text,'[/font]') !== false) {
+ $Text = preg_replace("/\[font=(.*?)\](.*?)\[\/font\]/sm","<span style=\"font-family: $1;\">$2</span>",$Text);
+ }
// Declare the format for [code] layout
$CodeLayout = '<code>$1</code>';
// Check for [code] text
- $Text = preg_replace("/\[code\](.*?)\[\/code\]/ism","$CodeLayout", $Text);
-
+ if (strpos($Text,'[code]') !== false) {
+ $Text = preg_replace("/\[code\](.*?)\[\/code\]/ism","$CodeLayout", $Text);
+ }
// Declare the format for [spoiler] layout
$SpoilerLayout = '<blockquote class="spoiler">$1</blockquote>';
@@ -281,8 +405,8 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$endlessloop = 0;
while ((strpos($Text, "[/spoiler]")!== false) and (strpos($Text, "[spoiler=") !== false) and (++$endlessloop < 20))
$Text = preg_replace("/\[spoiler=[\"\']*(.*?)[\"\']*\](.*?)\[\/spoiler\]/ism",
- "<br /><strong class=".'"spoiler"'.">" . $t_wrote . "</strong><blockquote class=".'"spoiler"'.">$2</blockquote>",
- $Text);
+ "<br /><strong class=".'"spoiler"'.">" . $t_wrote . "</strong><blockquote class=".'"spoiler"'.">$2</blockquote>",
+ $Text);
// Declare the format for [quote] layout
$QuoteLayout = '<blockquote>$1</blockquote>';
@@ -301,71 +425,98 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$endlessloop = 0;
while ((strpos($Text, "[/quote]")!== false) and (strpos($Text, "[quote=") !== false) and (++$endlessloop < 20))
$Text = preg_replace("/\[quote=[\"\']*(.*?)[\"\']*\](.*?)\[\/quote\]/ism",
- "<br /><strong class=".'"author"'.">" . $t_wrote . "</strong><blockquote>$2</blockquote>",
- $Text);
+ "<br /><strong class=".'"author"'.">" . $t_wrote . "</strong><blockquote>$2</blockquote>",
+ $Text);
// [img=widthxheight]image source[/img]
//$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '<img src="$3" style="height: $2px; width: $1px;" >', $Text);
- $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '<img src="$3" style="width: $1px;" >', $Text);
-
+ if (strpos($Text,'[/img]') !== false) {
+ $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '<img src="$3" style="width: $1px;" >', $Text);
+ }
+ if (strpos($Text,'[/zmg]') !== false) {
+ $Text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*)\](.*?)\[\/zmg\]/ism", '<img class="zrl" src="$3" style="width: $1px;" >', $Text);
+ }
// Images
// [img]pathtoimage[/img]
- $Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
-
-
- $Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />', $Text);
- $Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text);
+ if (strpos($Text,'[/img]') !== false) {
+ $Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
+ }
+ if (strpos($Text,'[/zmg]') !== false) {
+ $Text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '<img class="zrl" src="$1" alt="' . t('Image/photo') . '" />', $Text);
+ }
+ if (strpos($Text,'[crypt]') !== false) {
+ $Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />', $Text);
+ $Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text);
+ }
// Try to Oembed
if ($tryoembed) {
- $Text = preg_replace("/\[video\](.*?\.(ogg|ogv|oga|ogm|webm|mp4))\[\/video\]/ism", '<video src="$1" controls="controls" width="' . $a->videowidth . '" height="' . $a->videoheight . '"><a href="$1">$1</a></video>', $Text);
- $Text = preg_replace("/\[audio\](.*?\.(ogg|ogv|oga|ogm|webm|mp4|mp3))\[\/audio\]/ism", '<audio src="$1" controls="controls"><a href="$1">$1</a></audio>', $Text);
+ if (strpos($Text,'[/video]') !== false) {
+ $Text = preg_replace("/\[video\](.*?\.(ogg|ogv|oga|ogm|webm|mp4))\[\/video\]/ism", '<video src="$1" controls="controls" width="' . $a->videowidth . '" height="' . $a->videoheight . '"><a href="$1">$1</a></video>', $Text);
+ }
+ if (strpos($Text,'[/audio]') !== false) {
+ $Text = preg_replace("/\[audio\](.*?\.(ogg|ogv|oga|ogm|webm|mp4|mp3))\[\/audio\]/ism", '<audio src="$1" controls="controls"><a href="$1">$1</a></audio>', $Text);
+ }
+ if (strpos($Text,'[/video]') !== false) {
+ $Text = preg_replace_callback("/\[video\](.*?)\[\/video\]/ism", 'tryoembed', $Text);
+ }
+ if (strpos($Text,'[/audio]') !== false) {
+ $Text = preg_replace_callback("/\[audio\](.*?)\[\/audio\]/ism", 'tryoembed', $Text);
+ }
+ }
- $Text = preg_replace_callback("/\[video\](.*?)\[\/video\]/ism", 'tryoembed', $Text);
- $Text = preg_replace_callback("/\[audio\](.*?)\[\/audio\]/ism", 'tryoembed', $Text);
- } else {
- $Text = preg_replace("/\[video\](.*?)\[\/video\]/", '$1', $Text);
- $Text = preg_replace("/\[audio\](.*?)\[\/audio\]/", '$1', $Text);
+ // if video couldn't be embedded, link to it instead.
+ if (strpos($Text,'[/video]') !== false) {
+ $Text = preg_replace("/\[video\](.*?)\[\/video\]/", '<a href="$1">$1</a>', $Text);
+ }
+ if (strpos($Text,'[/audio]') !== false) {
+ $Text = preg_replace("/\[audio\](.*?)\[\/audio\]/", '<a href="$1">$1</a>', $Text);
}
- // html5 video and audio
+ // html5 video and audio
- if ($tryoembed)
- $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '<iframe src="$1" width="' . $a->videowidth . '" height="' . $a->videoheight . '"><a href="$1">$1</a></iframe>', $Text);
- else
- $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '<a href="$1">$1</a>', $Text);
+ if ($tryoembed){
+ if (strpos($Text,'[/iframe]') !== false) {
+ $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '<iframe src="$1" width="' . $a->videowidth . '" height="' . $a->videoheight . '"><a href="$1">$1</a></iframe>', $Text);
+ }
+ }
+ else {
+ if (strpos($Text,'[/iframe]') !== false) {
+ $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '<a href="$1">$1</a>', $Text);
+ }
+ }
// Youtube extensions
- if ($tryoembed) {
- $Text = preg_replace_callback("/\[youtube\](https?:\/\/www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", 'tryoembed', $Text);
- $Text = preg_replace_callback("/\[youtube\](www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", 'tryoembed', $Text);
- $Text = preg_replace_callback("/\[youtube\](https?:\/\/youtu.be\/.*?)\[\/youtube\]/ism",'tryoembed',$Text);
+ if (strpos($Text,'[youtube]') !== false) {
+ if ($tryoembed) {
+ $Text = preg_replace_callback("/\[youtube\](https?:\/\/www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", 'tryoembed', $Text);
+ $Text = preg_replace_callback("/\[youtube\](www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", 'tryoembed', $Text);
+ $Text = preg_replace_callback("/\[youtube\](https?:\/\/youtu.be\/.*?)\[\/youtube\]/ism",'tryoembed',$Text);
+ }
+ $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text);
+ $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text);
+ $Text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text);
+
+ if ($tryoembed)
+ $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '<iframe width="' . $a->videowidth . '" height="' . $a->videoheight . '" src="http://www.youtube.com/embed/$1" frameborder="0" ></iframe>', $Text);
+ else
+ $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", "http://www.youtube.com/watch?v=$1", $Text);
}
+ if (strpos($Text,'[vimeo]') !== false) {
+ if ($tryoembed) {
+ $Text = preg_replace_callback("/\[vimeo\](https?:\/\/player.vimeo.com\/video\/[0-9]+).*?\[\/vimeo\]/ism",'tryoembed',$Text);
+ $Text = preg_replace_callback("/\[vimeo\](https?:\/\/vimeo.com\/[0-9]+).*?\[\/vimeo\]/ism",'tryoembed',$Text);
+ }
- $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text);
- $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text);
- $Text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text);
-
- if ($tryoembed)
- $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '<iframe width="' . $a->videowidth . '" height="' . $a->videoheight . '" src="http://www.youtube.com/embed/$1" frameborder="0" ></iframe>', $Text);
- else
- $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", "http://www.youtube.com/watch?v=$1", $Text);
-
+ $Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text);
+ $Text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text);
- if ($tryoembed) {
- $Text = preg_replace_callback("/\[vimeo\](https?:\/\/player.vimeo.com\/video\/[0-9]+).*?\[\/vimeo\]/ism",'tryoembed',$Text);
- $Text = preg_replace_callback("/\[vimeo\](https?:\/\/vimeo.com\/[0-9]+).*?\[\/vimeo\]/ism",'tryoembed',$Text);
+ if ($tryoembed)
+ $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '<iframe width="' . $a->videowidth . '" height="' . $a->videoheight . '" src="http://player.vimeo.com/video/$1" frameborder="0" ></iframe>', $Text);
+ else
+ $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", "http://vimeo.com/$1", $Text);
}
-
- $Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text);
- $Text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text);
-
- if ($tryoembed)
- $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '<iframe width="' . $a->videowidth . '" height="' . $a->videoheight . '" src="http://player.vimeo.com/video/$1" frameborder="0" ></iframe>', $Text);
- else
- $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", "http://vimeo.com/$1", $Text);
-
// $Text = preg_replace("/\[youtube\](.*?)\[\/youtube\]/", '<object width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/$1" ><param name="movie" value="http://www.youtube.com/v/$1"></param><!--[if IE]><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" width="425" height="350" /><![endif]--></object>', $Text);
@@ -393,11 +544,15 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
// Unhide all [noparse] contained bbtags unspacefying them
// and triming the [noparse] tag.
-
- $Text = preg_replace_callback("/\[noparse\](.*?)\[\/noparse\]/ism", 'bb_unspacefy_and_trim',$Text);
- $Text = preg_replace_callback("/\[nobb\](.*?)\[\/nobb\]/ism", 'bb_unspacefy_and_trim',$Text);
- $Text = preg_replace_callback("/\[pre\](.*?)\[\/pre\]/ism", 'bb_unspacefy_and_trim',$Text);
-
+ if (strpos($Text,'[noparse]') !== false) {
+ $Text = preg_replace_callback("/\[noparse\](.*?)\[\/noparse\]/ism", 'bb_unspacefy_and_trim',$Text);
+ }
+ if (strpos($Text,'[nobb]') !== false) {
+ $Text = preg_replace_callback("/\[nobb\](.*?)\[\/nobb\]/ism", 'bb_unspacefy_and_trim',$Text);
+ }
+ if (strpos($Text,'[pre]') !== false) {
+ $Text = preg_replace_callback("/\[pre\](.*?)\[\/pre\]/ism", 'bb_unspacefy_and_trim',$Text);
+ }
$Text = preg_replace('/\[\&amp\;([#a-z0-9]+)\;\]/','&$1;',$Text);
@@ -411,22 +566,22 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
// Clean up the HTML by loading and saving the HTML with the DOM
// Only do it when it has to be done - for performance reasons
- if (!$tryoembed) {
- $doc = new DOMDocument();
- $doc->preserveWhiteSpace = false;
+// if (!$tryoembed) {//
+// $doc = new DOMDocument();
+// $doc->preserveWhiteSpace = false;
- $Text = mb_convert_encoding($Text, 'HTML-ENTITIES', "UTF-8");
+// $Text = mb_convert_encoding($Text, 'HTML-ENTITIES', "UTF-8");
- $doctype = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">';
- @$doc->loadHTML($doctype."<html><body>".$Text."</body></html>");
+// $doctype = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">';
+// @$doc->loadHTML($doctype."<html><body>".$Text."</body></html>");
- $Text = $doc->saveHTML();
- $Text = str_replace(array("<html><body>", "</body></html>", $doctype), array("", "", ""), $Text);
+// $Text = $doc->saveHTML();
+// $Text = str_replace(array("<html><body>", "</body></html>", $doctype), array("", "", ""), $Text);
- $Text = str_replace('<br></li>','</li>', $Text);
+// $Text = str_replace('<br></li>','</li>', $Text);
- $Text = mb_convert_encoding($Text, "UTF-8", 'HTML-ENTITIES');
- }
+// $Text = mb_convert_encoding($Text, "UTF-8", 'HTML-ENTITIES');
+// }
call_hooks('bbcode',$Text);
diff --git a/include/cache.php b/include/cache.php
index 567046f7a..b546cd0e9 100644
--- a/include/cache.php
+++ b/include/cache.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
/**
* cache api
diff --git a/include/cli_startup.php b/include/cli_startup.php
index d9f6ecb8e..6bd4e7520 100644
--- a/include/cli_startup.php
+++ b/include/cli_startup.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('boot.php');
@@ -14,14 +14,13 @@ function cli_startup() {
if(is_null($db)) {
@include(".htconfig.php");
- require_once("dba.php");
- $db = new dba($db_host, $db_user, $db_pass, $db_data);
- unset($db_host, $db_user, $db_pass, $db_data);
+ require_once('include/dba/dba_driver.php');
+ $db = dba_factory($db_host, $db_port, $db_user, $db_pass, $db_data);
+ unset($db_host, $db_port, $db_user, $db_pass, $db_data);
};
require_once('include/session.php');
- load_config('config');
load_config('system');
$a->set_baseurl(get_config('system','baseurl'));
diff --git a/include/cli_suggest.php b/include/cli_suggest.php
new file mode 100644
index 000000000..321ffd2e0
--- /dev/null
+++ b/include/cli_suggest.php
@@ -0,0 +1,22 @@
+<?php /** @file */
+
+require_once('boot.php');
+require_once('include/cli_startup.php');
+require_once('include/socgraph.php');
+
+
+function cli_suggest_run($argv, $argc){
+
+ cli_startup();
+
+ $a = get_app();
+
+ update_suggestions();
+
+}
+
+if (array_search(__file__,get_included_files())===0){
+ cli_suggest_run($argv,$argc);
+ killme();
+}
+
diff --git a/include/config.php b/include/config.php
index 44606e329..38840f5e4 100644
--- a/include/config.php
+++ b/include/config.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
/**
*
@@ -15,24 +15,26 @@
// retrieve a "family" of config variables from database to cached storage
-if(! function_exists('load_config')) {
function load_config($family) {
global $a;
- $r = q("SELECT * FROM `config` WHERE `cat` = '%s'", dbesc($family));
- if(count($r)) {
- foreach($r as $rr) {
- $k = $rr['k'];
- if ($family === 'config') {
- $a->config[$k] = $rr['v'];
- } else {
- $a->config[$family][$k] = $rr['v'];
+
+ if(! array_key_exists($family,$a->config))
+ $a->config[$family] = array();
+
+ if(! array_key_exists('config_loaded',$a->config[$family])) {
+
+ $r = q("SELECT * FROM config WHERE cat = '%s'", dbesc($family));
+ if($r !== false) {
+ if($r) {
+ foreach($r as $rr) {
+ $k = $rr['k'];
+ $a->config[$family][$k] = $rr['v'];
+ }
}
+ $a->config[$family]['config_loaded'] = true;
}
- } else if ($family != 'config') {
- // Negative caching
- $a->config[$family] = "!<unset>!";
- }
-}}
+ }
+}
// get a particular config variable given the family name
// and key. Returns false if not set.
@@ -42,55 +44,50 @@ function load_config($family) {
// local config cache, pull it into the cache so we don't have
// to hit the DB again for this item.
-if(! function_exists('get_config')) {
-function get_config($family, $key, $instore = false) {
+
+function get_config($family, $key) {
global $a;
- if(! $instore) {
- // Looking if the whole family isn't set
- if(isset($a->config[$family])) {
- if($a->config[$family] === '!<unset>!') {
- return false;
- }
- }
+ if((! array_key_exists($family,$a->config)) || (! array_key_exists('config_loaded',$a->config[$family])))
+ load_config($family);
- if(isset($a->config[$family][$key])) {
- if($a->config[$family][$key] === '!<unset>!') {
- return false;
- }
- return $a->config[$family][$key];
+ if(array_key_exists('config_loaded',$a->config[$family])) {
+ if(! array_key_exists($key,$a->config[$family])) {
+ return false;
}
+ return ((preg_match('|^a:[0-9]+:{.*}$|s', $a->config[$family][$key]))
+ ? unserialize($a->config[$family][$key])
+ : $a->config[$family][$key]
+ );
}
- $ret = q("SELECT `v` FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1",
+ return false;
+}
+
+function get_config_from_storage($family,$key) {
+ $ret = q("select * from config where cat = '%s' and k = '%s' limit 1",
dbesc($family),
dbesc($key)
);
- if(count($ret)) {
- // manage array value
- $val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
- $a->config[$family][$key] = $val;
- return $val;
- }
- else {
- $a->config[$family][$key] = '!<unset>!';
- }
- return false;
-}}
+ return $ret;
+}
+
+
// Store a config value ($value) in the category ($family)
// under the key ($key)
// Return the value, or false if the database update failed
-if(! function_exists('set_config')) {
function set_config($family,$key,$value) {
global $a;
// manage array value
- $dbvalue = (is_array($value)?serialize($value):$value);
- $dbvalue = (is_bool($dbvalue) ? intval($dbvalue) : $dbvalue);
- if(get_config($family,$key,true) === false) {
+ $dbvalue = ((is_array($value)) ? serialize($value) : $value);
+ $dbvalue = ((is_bool($dbvalue)) ? intval($dbvalue) : $dbvalue);
+
+ if(get_config($family,$key) === false || (! get_config_from_storage($family,$key))) {
$a->config[$family][$key] = $value;
- $ret = q("INSERT INTO `config` ( `cat`, `k`, `v` ) VALUES ( '%s', '%s', '%s' ) ",
+
+ $ret = q("INSERT INTO config ( cat, k, v ) VALUES ( '%s', '%s', '%s' ) ",
dbesc($family),
dbesc($key),
dbesc($dbvalue)
@@ -100,7 +97,7 @@ function set_config($family,$key,$value) {
return $ret;
}
- $ret = q("UPDATE `config` SET `v` = '%s' WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1",
+ $ret = q("UPDATE config SET v = '%s' WHERE cat = '%s' AND k = '%s' LIMIT 1",
dbesc($dbvalue),
dbesc($family),
dbesc($key)
@@ -111,129 +108,255 @@ function set_config($family,$key,$value) {
if($ret)
return $value;
return $ret;
-}}
-
+}
-if(! function_exists('load_pconfig')) {
-function load_pconfig($uid,$family) {
+function del_config($family,$key) {
global $a;
- $r = q("SELECT * FROM `pconfig` WHERE `cat` = '%s' AND `uid` = %d",
+ if(array_key_exists($family,$a->config) && array_key_exists($key,$a->config[$family]))
+ unset($a->config[$family][$key]);
+ $ret = q("DELETE FROM config WHERE cat = '%s' AND k = '%s' LIMIT 1",
dbesc($family),
+ dbesc($key)
+ );
+ return $ret;
+}
+
+
+function load_pconfig($uid,$family = '') {
+ global $a;
+
+ if($uid === false)
+ return false;
+
+ if(! array_key_exists($uid,$a->config))
+ $a->config[$uid] = array();
+
+ // family is no longer used - load entire user config
+
+ $r = q("SELECT * FROM `pconfig` WHERE `uid` = %d",
intval($uid)
);
- if(count($r)) {
+
+ if($r) {
foreach($r as $rr) {
$k = $rr['k'];
- $a->config[$uid][$family][$k] = $rr['v'];
+ $c = $rr['cat'];
+ if(! array_key_exists($c,$a->config[$uid])) {
+ $a->config[$uid][$c] = array();
+ $a->config[$uid][$c]['config_loaded'] = true;
+ }
+ $a->config[$uid][$c][$k] = $rr['v'];
}
- } else if ($family != 'config') {
- // Negative caching
- $a->config[$uid][$family] = "!<unset>!";
- }
-}}
+ }
+}
+
-if(! function_exists('get_pconfig')) {
function get_pconfig($uid,$family, $key, $instore = false) {
global $a;
- if(! $instore) {
- // Looking if the whole family isn't set
- if(isset($a->config[$uid][$family])) {
- if($a->config[$uid][$family] === '!<unset>!') {
- return false;
- }
- }
+ if($uid === false)
+ return false;
- if(isset($a->config[$uid][$family][$key])) {
- if($a->config[$uid][$family][$key] === '!<unset>!') {
- return false;
- }
- return $a->config[$uid][$family][$key];
- }
+ if(! array_key_exists($uid,$a->config))
+ load_pconfig($uid);
+
+ if((! array_key_exists($family,$a->config[$uid])) || (! array_key_exists($key,$a->config[$uid][$family])))
+ return false;
+
+ return ((preg_match('|^a:[0-9]+:{.*}$|s', $a->config[$uid][$family][$key]))
+ ? unserialize($a->config[$uid][$family][$key])
+ : $a->config[$uid][$family][$key]
+ );
+}
+
+function set_pconfig($uid,$family,$key,$value) {
+
+ global $a;
+
+
+ // manage array value
+ $dbvalue = ((is_array($value)) ? serialize($value) : $value);
+ $dbvalue = ((is_bool($dbvalue)) ? intval($dbvalue) : $dbvalue);
+
+ if(get_pconfig($uid,$family,$key) === false) {
+ if(! array_key_exists($uid,$a->config))
+ $a->config[$uid] = array();
+ if(! array_key_exists($family,$a->config[$uid]))
+ $a->config[$uid][$family] = array();
+
+ // keep a separate copy for all variables which were
+ // set in the life of this page. We need this to
+ // synchronise channel clones.
+
+ if(! array_key_exists('transient',$a->config[$uid]))
+ $a->config[$uid]['transient'] = array();
+ if(! array_key_exists($family,$a->config[$uid]['transient']))
+ $a->config[$uid]['transient'][$family] = array();
+
+ $a->config[$uid][$family][$key] = $value;
+ $a->config[$uid]['transient'][$family][$key] = $value;
+
+ $ret = q("INSERT INTO pconfig ( uid, cat, k, v ) VALUES ( %d, '%s', '%s', '%s' ) ",
+ intval($uid),
+ dbesc($family),
+ dbesc($key),
+ dbesc($dbvalue)
+ );
+ if($ret)
+ return $value;
+ return $ret;
}
- $ret = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1",
+ $ret = q("UPDATE pconfig SET v = '%s' WHERE uid = %d and cat = '%s' AND k = '%s' LIMIT 1",
+ dbesc($dbvalue),
intval($uid),
dbesc($family),
dbesc($key)
);
- if(count($ret)) {
- $val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
- $a->config[$uid][$family][$key] = $val;
- return $val;
- }
- else {
- $a->config[$uid][$family][$key] = '!<unset>!';
- }
- return false;
-}}
+ // keep a separate copy for all variables which were
+ // set in the life of this page. We need this to
+ // synchronise channel clones.
-if(! function_exists('del_config')) {
-function del_config($family,$key) {
+ if(! array_key_exists('transient',$a->config[$uid]))
+ $a->config[$uid]['transient'] = array();
+ if(! array_key_exists($family,$a->config[$uid]['transient']))
+ $a->config[$uid]['transient'][$family] = array();
+
+ $a->config[$uid][$family][$key] = $value;
+ $a->config[$uid]['transient'][$family][$key] = $value;
+
+ if($ret)
+ return $value;
+ return $ret;
+}
+
+
+function del_pconfig($uid,$family,$key) {
global $a;
- if(x($a->config[$family],$key))
- unset($a->config[$family][$key]);
- $ret = q("DELETE FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1",
+ if(x($a->config[$uid][$family],$key))
+ unset($a->config[$uid][$family][$key]);
+ $ret = q("DELETE FROM pconfig WHERE uid = %d AND cat = '%s' AND k = '%s' LIMIT 1",
+ intval($uid),
dbesc($family),
dbesc($key)
);
return $ret;
-}}
+}
+
+function load_xconfig($xchan,$family = '') {
+ global $a;
-// Same as above functions except these are for personal config storage and take an
-// additional $uid argument.
+ if(! $xchan)
+ return false;
-if(! function_exists('set_pconfig')) {
-function set_pconfig($uid,$family,$key,$value) {
+ if(! array_key_exists($xchan,$a->config))
+ $a->config[$xchan] = array();
+
+ // family is no longer used. Entire config is loaded
+
+ $r = q("SELECT * FROM `xconfig` WHERE `xchan` = '%s'",
+ dbesc($xchan)
+ );
+
+ if($r) {
+ foreach($r as $rr) {
+ $k = $rr['k'];
+ $c = $rr['cat'];
+ if(! array_key_exists($c,$a->config[$xchan])) {
+ $a->config[$xchan][$c] = array();
+ $a->config[$xchan][$c]['config_loaded'] = true;
+ }
+ $a->config[$xchan][$c][$k] = $rr['v'];
+ }
+ }
+
+}
+
+
+
+
+function get_xconfig($xchan,$family, $key) {
global $a;
- // manage array value
- $dbvalue = (is_array($value)?serialize($value):$value);
+ if(! $xchan)
+ return false;
- if(get_pconfig($uid,$family,$key,true) === false) {
- $a->config[$uid][$family][$key] = $value;
- $ret = q("INSERT INTO `pconfig` ( `uid`, `cat`, `k`, `v` ) VALUES ( %d, '%s', '%s', '%s' ) ",
- intval($uid),
+ if(! array_key_exists($xchan,$a->config))
+ load_xconfig($xchan);
+
+ if((! array_key_exists($family,$a->config[$xchan])) || (! array_key_exists($key,$a->config[$xchan][$family])))
+ return false;
+
+ return ((preg_match('|^a:[0-9]+:{.*}$|s', $a->config[$xchan][$family][$key]))
+ ? unserialize($a->config[$xchan][$family][$key])
+ : $a->config[$xchan][$family][$key]
+ );
+
+}
+
+
+function set_xconfig($xchan,$family,$key,$value) {
+
+ global $a;
+
+ // manage array value
+ $dbvalue = ((is_array($value)) ? serialize($value) : $value);
+ $dbvalue = ((is_bool($dbvalue)) ? intval($dbvalue) : $dbvalue);
+
+ if(get_xconfig($xchan,$family,$key) === false) {
+ if(! array_key_exists($xchan,$a->config))
+ $a->config[$xchan] = array();
+ if(! array_key_exists($family,$a->config[$xchan]))
+ $a->config[$xchan][$family] = array();
+
+ $a->config[$xchan][$family][$key] = $value;
+ $ret = q("INSERT INTO xconfig ( xchan, cat, k, v ) VALUES ( '%s', '%s', '%s', '%s' ) ",
+ dbesc($xchan),
dbesc($family),
dbesc($key),
dbesc($dbvalue)
);
- if($ret)
+ if($ret)
return $value;
return $ret;
}
- $ret = q("UPDATE `pconfig` SET `v` = '%s' WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1",
+
+ $ret = q("UPDATE xconfig SET v = '%s' WHERE xchan = '%s' and cat = '%s' AND k = '%s' LIMIT 1",
dbesc($dbvalue),
- intval($uid),
+ dbesc($xchan),
dbesc($family),
dbesc($key)
);
- $a->config[$uid][$family][$key] = $value;
+ $a->config[$xchan][$family][$key] = $value;
if($ret)
return $value;
return $ret;
-}}
-if(! function_exists('del_pconfig')) {
-function del_pconfig($uid,$family,$key) {
+}
+
+
+function del_xconfig($xchan,$family,$key) {
global $a;
- if(x($a->config[$uid][$family],$key))
- unset($a->config[$uid][$family][$key]);
- $ret = q("DELETE FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1",
- intval($uid),
+ if(x($a->config[$xchan][$family],$key))
+ unset($a->config[$xchan][$family][$key]);
+ $ret = q("DELETE FROM `xconfig` WHERE `xchan` = '%s' AND `cat` = '%s' AND `k` = '%s' LIMIT 1",
+ dbesc($xchan),
dbesc($family),
dbesc($key)
);
return $ret;
-}}
+}
+
+
+
diff --git a/include/contact_selectors.php b/include/contact_selectors.php
index 76d005305..b56a77937 100644
--- a/include/contact_selectors.php
+++ b/include/contact_selectors.php
@@ -1,21 +1,19 @@
-<?php
+<?php /** @file */
-function contact_profile_assign($current,$foreign_net) {
+function contact_profile_assign($current) {
$o = '';
- $disabled = (($foreign_net) ? ' disabled="true" ' : '');
+ $o .= "<select id=\"contact-profile-selector\" name=\"profile-assign\" />\r\n";
- $o .= "<select id=\"contact-profile-selector\" $disabled name=\"profile-assign\" />\r\n";
+ $r = q("SELECT profile_guid, profile_name FROM `profile` WHERE `uid` = %d",
+ intval($_SESSION['uid']));
- $r = q("SELECT `id`, `profile_name` FROM `profile` WHERE `uid` = %d",
- intval($_SESSION['uid']));
-
- if(count($r)) {
+ if($r) {
foreach($r as $rr) {
- $selected = (($rr['id'] == $current) ? " selected=\"selected\" " : "");
- $o .= "<option value=\"{$rr['id']}\" $selected >{$rr['profile_name']}</option>\r\n";
+ $selected = (($rr['profile_guid'] == $current) ? " selected=\"selected\" " : "");
+ $o .= "<option value=\"{$rr['profile_guid']}\" $selected >{$rr['profile_name']}</option>\r\n";
}
}
$o .= "</select>\r\n";
diff --git a/include/contact_widgets.php b/include/contact_widgets.php
index 54e2ad967..ca212796f 100644
--- a/include/contact_widgets.php
+++ b/include/contact_widgets.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function follow_widget() {
diff --git a/include/conversation.php b/include/conversation.php
index 368a0b0df..d80ff2cc7 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('include/items.php');
@@ -6,7 +6,7 @@ require_once('include/items.php');
// is identical to the code in mod/message.php for 'item_extract_images' and
// 'item_redir_and_replace_images'
-if(! function_exists('item_extract_images')) {
+
function item_extract_images($body) {
$saved_image = array();
@@ -46,9 +46,9 @@ function item_extract_images($body) {
$new_body = $new_body . $orig_body;
return array('body' => $new_body, 'images' => $saved_image);
-}}
+}
+
-if(! function_exists('item_redir_and_replace_images')) {
function item_redir_and_replace_images($body, $images, $cid) {
$origbody = $body;
@@ -81,7 +81,7 @@ function item_redir_and_replace_images($body, $images, $cid) {
}
return $newbody;
-}}
+}
@@ -91,13 +91,9 @@ function item_redir_and_replace_images($body, $images, $cid) {
function localize_item(&$item){
- $extracted = item_extract_images($item['body']);
- if($extracted['images'])
- $item['body'] = item_redir_and_replace_images($extracted['body'], $extracted['images'], $item['contact-id']);
-
if (activity_match($item['verb'],ACTIVITY_LIKE) || activity_match($item['verb'],ACTIVITY_DISLIKE)){
-
- $obj= json_decode($item['object'],true);
+
+ $obj = json_decode_plus($item['object']);
if($obj['author'] && $obj['author']['link'])
$author_link = get_rel_link($obj['author']['link'],'alternate');
@@ -108,32 +104,52 @@ function localize_item(&$item){
$item_url = get_rel_link($obj['link'],'alternate');
+ $Bphoto = '';
+
+ switch($obj['type']) {
+ case ACTIVITY_OBJ_PHOTO:
+ $post_type = t('photo');
+ break;
+ case ACTIVITY_OBJ_EVENT:
+ $post_type = t('event');
+ break;
+ case ACTIVITY_OBJ_PERSON:
+ $post_type = t('channel');
+ $author_name = $obj['title'];
+ if($obj['link']) {
+ $author_link = get_rel_link($obj['link'],'alternate');
+ $Bphoto = get_rel_link($obj['link'],'photo');
+ }
+ break;
+ case ACTIVITY_OBJ_THING:
+ $post_type = $obj['title'];
+ if($obj['owner']) {
+ if(array_key_exists('name',$obj['owner']))
+ $obj['owner']['name'];
+ if(array_key_exists('link',$obj['owner']))
+ $author_link = get_rel_link($obj['owner']['link'],'alternate');
+ }
+ if($obj['link']) {
+ $Bphoto = get_rel_link($obj['link'],'photo');
+ }
+ break;
+
+ case ACTIVITY_OBJ_NOTE:
+ default:
+ $post_type = t('status');
+ if($obj->id != $item['mid'])
+ $post_type = t('comment');
+ break;
+ }
// If we couldn't parse something useful, don't bother translating.
// We need something better than zid here, probably magic_link(), but it needs writing
if($author_link && $author_name && $item_url) {
-
- $author = '[url=' . chanlink_url($item['author']['xchan_url']) . ']' . $item['author']['xchan_name'] . '[/url]';
- $objauthor = '[url=' . chanlink_url($author_link) . ']' . $author_name . '[/url]';
+ $author = '[zrl=' . chanlink_url($item['author']['xchan_url']) . ']' . $item['author']['xchan_name'] . '[/zrl]';
+ $objauthor = '[zrl=' . chanlink_url($author_link) . ']' . $author_name . '[/zrl]';
- switch($obj->type) {
- case ACTIVITY_OBJ_PHOTO:
- $post_type = t('photo');
- break;
- case ACTIVITY_OBJ_EVENT:
- $post_type = t('event');
- break;
- case ACTIVITY_OBJ_NOTE:
- default:
- if(! ($item_flags & ITEM_THREAD_TOP))
- $post_type = t('comment');
- else
- $post_type = t('status');
- break;
- }
-
- $plink = '[url=' . zid($item_url) . ']' . $post_type . '[/url]';
+ $plink = '[zrl=' . zid($item_url) . ']' . $post_type . '[/zrl]';
if(activity_match($item['verb'],ACTIVITY_LIKE)) {
$bodyverb = t('%1$s likes %2$s\'s %3$s');
@@ -142,6 +158,8 @@ function localize_item(&$item){
$bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s');
}
$item['body'] = $item['localize'] = sprintf($bodyverb, $author, $objauthor, $plink);
+ if($Bphoto != "")
+ $item['body'] .= "\n\n\n" . '[zrl=' . chanlink_url($author_link) . '][zmg=80x80]' . $Bphoto . '[/zmg][/zrl]';
}
@@ -149,13 +167,14 @@ function localize_item(&$item){
if (activity_match($item['verb'],ACTIVITY_FRIEND)) {
- if ($item['obj_type']=="" || $item['obj_type']!== ACTIVITY_OBJ_PERSON) return;
+
+// if ($item['obj_type']=="" || $item['obj_type']!== ACTIVITY_OBJ_PERSON) return;
$Aname = $item['author']['xchan_name'];
$Alink = $item['author']['xchan_url'];
- $obj= json_decode($item['object'],true);
+ $obj= json_decode_plus($item['object']);
$Blink = $Bphoto = '';
@@ -166,9 +185,9 @@ function localize_item(&$item){
$Bname = $obj['title'];
- $A = '[url=' . chanlink_url($Alink) . ']' . $Aname . '[/url]';
- $B = '[url=' . chanlink_url($Blink) . ']' . $Bname . '[/url]';
- if ($Bphoto!="") $Bphoto = '[url=' . chanlink_url($Blink) . '][img=80x80]' . $Bphoto . '[/img][/url]';
+ $A = '[zrl=' . chanlink_url($Alink) . ']' . $Aname . '[/zrl]';
+ $B = '[zrl=' . chanlink_url($Blink) . ']' . $Bname . '[/zrl]';
+ if ($Bphoto!="") $Bphoto = '[zrl=' . chanlink_url($Blink) . '][zmg=80x80]' . $Bphoto . '[/zmg][/zrl]';
$item['body'] = $item['localize'] = sprintf( t('%1$s is now connected with %2$s'), $A, $B);
$item['body'] .= "\n\n\n" . $Bphoto;
@@ -184,7 +203,7 @@ function localize_item(&$item){
$Alink = $item['author']['xchan_url'];
- $obj= json_decode($item['object'],true);
+ $obj= json_decode_plus($item['object']);
$Blink = $Bphoto = '';
@@ -194,9 +213,9 @@ function localize_item(&$item){
}
$Bname = $obj['title'];
- $A = '[url=' . chanlink_url($Alink) . ']' . $Aname . '[/url]';
- $B = '[url=' . chanlink_url($Blink) . ']' . $Bname . '[/url]';
- if ($Bphoto!="") $Bphoto = '[url=' . chanlink_url($Blink) . '][img=80x80]' . $Bphoto . '[/img][/url]';
+ $A = '[zrl=' . chanlink_url($Alink) . ']' . $Aname . '[/zrl]';
+ $B = '[zrl=' . chanlink_url($Blink) . ']' . $Bname . '[/zrl]';
+ if ($Bphoto!="") $Bphoto = '[zrl=' . chanlink_url($Blink) . '][zmg=80x80]' . $Bphoto . '[/zmg][/zrl]';
// we can't have a translation string with three positions but no distinguishable text
// So here is the translate string.
@@ -221,7 +240,7 @@ function localize_item(&$item){
$Aname = $item['author']['xchan_name'];
$Alink = $item['author']['xchan_url'];
- $A = '[url=' . chanlink_url($Alink) . ']' . $Aname . '[/url]';
+ $A = '[zrl=' . chanlink_url($Alink) . ']' . $Aname . '[/zrl]';
$txt = t('%1$s is currently %2$s');
@@ -233,13 +252,13 @@ function localize_item(&$item){
if (activity_match($item['verb'],ACTIVITY_TAG)) {
$r = q("SELECT * from `item`,`contact` WHERE
- `item`.`contact-id`=`contact`.`id` AND `item`.`uri`='%s';",
- dbesc($item['parent_uri']));
+ `item`.`contact-id`=`contact`.`id` AND `item`.`mid`='%s';",
+ dbesc($item['parent_mid']));
if(count($r)==0) return;
$obj=$r[0];
- $author = '[url=' . zid($item['author-link']) . ']' . $item['author-name'] . '[/url]';
- $objauthor = '[url=' . zid($obj['author-link']) . ']' . $obj['author-name'] . '[/url]';
+ $author = '[zrl=' . zid($item['author-link']) . ']' . $item['author-name'] . '[/zrl]';
+ $objauthor = '[zrl=' . zid($obj['author-link']) . ']' . $obj['author-name'] . '[/zrl]';
switch($obj['verb']){
case ACTIVITY_POST:
@@ -254,17 +273,17 @@ function localize_item(&$item){
default:
if($obj['resource_id']){
$post_type = t('photo');
- $m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
+ $m=array(); preg_match("/\[[zu]rl=([^]]*)\]/", $obj['body'], $m);
$rr['plink'] = $m[1];
} else {
$post_type = t('status');
}
}
- $plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]';
+ $plink = '[zrl=' . $obj['plink'] . ']' . $post_type . '[/zrl]';
$parsedobj = parse_xml_string($xmlhead.$item['object']);
- $tag = sprintf('#[url=%s]%s[/url]', $parsedobj->id, $parsedobj->content);
+ $tag = sprintf('#[zrl=%s]%s[/zrl]', $parsedobj->id, $parsedobj->content);
$item['body'] = sprintf( t('%1$s tagged %2$s\'s %3$s with %4$s'), $author, $objauthor, $plink, $tag );
}
@@ -281,7 +300,7 @@ function localize_item(&$item){
$obj = parse_xml_string($xmlhead.$item['object']);
if(strlen($obj->id)) {
- $r = q("select * from item where uri = '%s' and uid = %d limit 1",
+ $r = q("select * from item where mid = '%s' and uid = %d limit 1",
dbesc($obj->id),
intval($item['uid'])
);
@@ -289,9 +308,9 @@ function localize_item(&$item){
$target = $r[0];
$Bname = $target['author-name'];
$Blink = $target['author-link'];
- $A = '[url=' . zid($Alink) . ']' . $Aname . '[/url]';
- $B = '[url=' . zid($Blink) . ']' . $Bname . '[/url]';
- $P = '[url=' . $target['plink'] . ']' . t('post/item') . '[/url]';
+ $A = '[zrl=' . zid($Alink) . ']' . $Aname . '[/zrl]';
+ $B = '[zrl=' . zid($Blink) . ']' . $Bname . '[/zrl]';
+ $P = '[zrl=' . $target['plink'] . ']' . t('post/item') . '[/zrl]';
$item['body'] = sprintf( t('%1$s marked %2$s\'s %3$s as favorite'), $A, $B, $P)."\n";
}
@@ -299,25 +318,26 @@ function localize_item(&$item){
}
*/
+/*
$matches = null;
- if(strpos($item['body'],'[url') !== false) {
- if(preg_match_all('/@\[url=(.*?)\]/is',$item['body'],$matches,PREG_SET_ORDER)) {
+ if(strpos($item['body'],'[zrl') !== false) {
+ if(preg_match_all('/@\[zrl=(.*?)\]/is',$item['body'],$matches,PREG_SET_ORDER)) {
foreach($matches as $mtch) {
if(! strpos($mtch[1],'zid='))
- $item['body'] = str_replace($mtch[0],'@[url=' . zid($mtch[1]). ']',$item['body']);
+ $item['body'] = str_replace($mtch[0],'@[zrl=' . zid($mtch[1]). ']',$item['body']);
}
}
}
- if(strpos($item['body'],'[img') !== false) {
+ if(strpos($item['body'],'[zmg') !== false) {
// add zid's to public images
- if(preg_match_all('/\[url=(.*?)\/photos\/(.*?)\/image\/(.*?)\]\[img(.*?)\]h(.*?)\[\/img\]\[\/url\]/is',$item['body'],$matches,PREG_SET_ORDER)) {
+ if(preg_match_all('/\[zrl=(.*?)\/photos\/(.*?)\/image\/(.*?)\]\[zmg(.*?)\]h(.*?)\[\/zmg\]\[\/zrl\]/is',$item['body'],$matches,PREG_SET_ORDER)) {
foreach($matches as $mtch) {
- $item['body'] = str_replace($mtch[0],'[url=' . zid( $mtch[1] . '/photos/' . $mtch[2] . '/image/' . $mtch[3]) . '][img' . $mtch[4] . ']h' . $mtch[5] . '[/img][/url]',$item['body']);
+ $item['body'] = str_replace($mtch[0],'[zrl=' . zid( $mtch[1] . '/photos/' . $mtch[2] . '/image/' . $mtch[3]) . '][zmg' . $mtch[4] . ']h' . $mtch[5] . '[/zmg][/zrl]',$item['body']);
}
}
}
-
+*/
// add sparkle links to appropriate permalinks
// $x = stristr($item['plink'],'/display/');
@@ -349,7 +369,9 @@ function count_descendants($item) {
function visible_activity($item) {
- if(activity_match($item['verb'],ACTIVITY_LIKE) || activity_match($item['verb'],ACTIVITY_DISLIKE))
+ // likes can apply to other things besides posts. Check if they are post children, in which case we handle them specially
+
+ if((activity_match($item['verb'],ACTIVITY_LIKE) || activity_match($item['verb'],ACTIVITY_DISLIKE)) && ($item['mid'] != $item['parent_mid']))
return false;
return true;
}
@@ -365,7 +387,7 @@ function visible_activity($item) {
*
*/
-if(!function_exists('conversation')) {
+
function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
$tstart = dba_timer();
@@ -374,6 +396,22 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
$ssl_state = ((local_user()) ? true : false);
+ if(local_user())
+ load_pconfig(local_user(),'');
+
+ $arr_blocked = null;
+
+ if(local_user()) {
+ $str_blocked = get_pconfig(local_user(),'system','blocked');
+ if($str_blocked) {
+ $arr_blocked = explode(',',$str_blocked);
+ for($x = 0; $x < count($arr_blocked); $x ++)
+ $arr_blocked[$x] = trim($arr_blocked[$x]);
+ }
+
+ }
+
+
$profile_owner = 0;
$page_writeable = false;
$live_update_div = '';
@@ -496,10 +534,24 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
// "New Item View" on network page or search page results
// - just loop through the items and format them minimally for display
+
//$tpl = get_markup_template('search_item.tpl');
$tpl = 'search_item.tpl';
foreach($items as $item) {
+
+ if($arr_blocked) {
+ $blocked = false;
+ foreach($arr_blocked as $b) {
+ if(($b) && ($item['author_xchan'] == $b)) {
+ $blocked = true;
+ break;
+ }
+ }
+ if($blocked)
+ continue;
+ }
+
$threadsid++;
$comment = '';
@@ -526,17 +578,6 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
$tags=array();
$hashtags = array();
$mentions = array();
- foreach(explode(',',$item['tag']) as $tag){
- $tag = trim($tag);
- if ($tag!="") {
- $t = bbcode($tag);
- $tags[] = $t;
- if($t[0] == '#')
- $hashtags[] = $t;
- elseif($t[0] == '@')
- $mentions[] = $t;
- }
- }
$sp = false;
$profile_link = best_link_url($item,$sp);
@@ -592,7 +633,6 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
$tmp_item = array(
'template' => $tpl,
'toplevel' => 'toplevel_item',
- 'tags' => $tags,
'id' => (($preview) ? 'P0' : $item['item_id']),
'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, $profile_url),
'profile_url' => $profile_link,
@@ -617,7 +657,8 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
'ago' => relative_date($item['created']),
'app' => $item['app'],
'str_app' => sprintf( t(' from %s'), $item['app']),
- 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'c'),
+ 'isotime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'c'),
+ 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'),
'location' => $location,
'indent' => '',
'owner_name' => $owner_name,
@@ -632,7 +673,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
'like' => '',
'dislike' => '',
'comment' => '',
- 'conv' => (($preview) ? '' : array('href'=> z_root() . '/display/' . $item['uri'], 'title'=> t('View in context'))),
+ 'conv' => (($preview) ? '' : array('href'=> z_root() . '/display/' . $item['mid'], 'title'=> t('View in context'))),
'previewing' => $previewing,
'wait' => t('Please wait'),
'thread_level' => 1,
@@ -649,13 +690,21 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
}
else
{
+
// Normal View
+// logger('conv: items: ' . print_r($items,true));
require_once('include/ConversationObject.php');
require_once('include/ItemObject.php');
$conv = new Conversation($mode, $preview);
+ // In the display mode we don't have a profile owner.
+
+ if($mode === 'display' && $items)
+ $conv->set_profile_owner($items[0]['uid']);
+
+
// get all the topmost parents
// this shouldn't be needed, as we should have only them in our array
// But for now, this array respects the old style, just in case
@@ -663,6 +712,18 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
$threads = array();
foreach($items as $item) {
+ if($arr_blocked) {
+ $blocked = false;
+ foreach($arr_blocked as $b) {
+ if(($b) && ($item['author_xchan'] == $b)) {
+ $blocked = true;
+ break;
+ }
+ }
+ if($blocked)
+ continue;
+ }
+
// Can we put this after the visibility check?
like_puller($a,$item,$alike,'like');
@@ -742,7 +803,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
return $o;
-}}
+}
function best_link_url($item) {
@@ -775,7 +836,7 @@ function best_link_url($item) {
}
-if(! function_exists('item_photo_menu')){
+
function item_photo_menu($item){
$a = get_app();
$contact = null;
@@ -842,9 +903,9 @@ function item_photo_menu($item){
elseif ($v!="") $o .= "<li><a href=\"$v\">$k</a></li>\n";
}
return $o;
-}}
+}
+
-if(! function_exists('like_puller')) {
function like_puller($a,$item,&$arr,$mode) {
$url = '';
@@ -861,7 +922,7 @@ function like_puller($a,$item,&$arr,$mode) {
$url = zid($url);
if(! $item['thr_parent'])
- $item['thr_parent'] = $item['parent_uri'];
+ $item['thr_parent'] = $item['parent_mid'];
if(! ((isset($arr[$item['thr_parent'] . '-l'])) && (is_array($arr[$item['thr_parent'] . '-l']))))
$arr[$item['thr_parent'] . '-l'] = array();
@@ -872,7 +933,7 @@ function like_puller($a,$item,&$arr,$mode) {
$arr[$item['thr_parent'] . '-l'][] = '<a href="'. $url . '"'. $sparkle .'>' . $item['author']['xchan_name'] . '</a>';
}
return;
-}}
+}
// Format the like/dislike text for a profile item
// $cnt = number of people who like/dislike the item
@@ -881,7 +942,7 @@ function like_puller($a,$item,&$arr,$mode) {
// $id = item id
// returns formatted text
-if(! function_exists('format_like')) {
+
function format_like($cnt,$arr,$type,$id) {
$o = '';
if($cnt == 1)
@@ -905,7 +966,7 @@ function format_like($cnt,$arr,$type,$id) {
$o .= "\t" . '<div id="' . $type . 'list-' . $id . '" style="display: none;" >' . $str . '</div>';
}
return $o;
-}}
+}
function status_editor($a,$x,$popup=false) {
@@ -948,6 +1009,9 @@ function status_editor($a,$x,$popup=false) {
'$return_path' => $a->query_string,
'$action' => $a->get_baseurl(true) . '/item',
'$share' => (x($x,'button') ? $x['button'] : t('Share')),
+ '$webpage' => (x($x,'webpage') ? '1' : ''),
+ '$placeholdpagetitle' => t('Page link title'),
+ '$pagetitle' => (x($x,'pagetitle') ? $x['pagetitle'] : ''),
'$upload' => t('Upload photo'),
'$shortupload' => t('upload photo'),
'$attach' => t('Attach file'),
@@ -982,6 +1046,7 @@ function status_editor($a,$x,$popup=false) {
'$emtitle' => t('Example: bob@example.com, mary@example.com'),
'$lockstate' => $x['lockstate'],
'$acl' => $x['acl'],
+ '$showacl' => ((array_key_exists('showacl',$x)) ? $x['showacl'] : 'yes'),
'$bang' => $x['bang'],
'$profile_uid' => $x['profile_uid'],
'$preview' => ((feature_enabled($x['profile_uid'],'preview')) ? t('Preview') : ''),
@@ -1004,12 +1069,12 @@ function get_item_children($arr, $parent) {
foreach($arr as $item) {
if($item['id'] != $item['parent']) {
if(get_config('system','thread_allow')) {
- // Fallback to parent_uri if thr_parent is not set
+ // Fallback to parent_mid if thr_parent is not set
$thr_parent = $item['thr_parent'];
if($thr_parent == '')
- $thr_parent = $item['parent_uri'];
+ $thr_parent = $item['parent_mid'];
- if($thr_parent == $parent['uri']) {
+ if($thr_parent == $parent['mid']) {
$item['children'] = get_item_children($arr, $item);
$children[] = $item;
}
@@ -1057,6 +1122,8 @@ function conv_sort($arr,$order) {
usort($parents,'sort_thr_created');
elseif(stristr($order,'commented'))
usort($parents,'sort_thr_commented');
+ elseif(stristr($order,'ascending'))
+ usort($parents,'sort_thr_created_rev');
if(count($parents))
foreach($parents as $i=>$_x)
diff --git a/include/cronhooks.php b/include/cronhooks.php
index 9ff8141c4..a314593d2 100644
--- a/include/cronhooks.php
+++ b/include/cronhooks.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('boot.php');
require_once('include/cli_startup.php');
diff --git a/include/crypto.php b/include/crypto.php
index a646910a1..a0268ef93 100644
--- a/include/crypto.php
+++ b/include/crypto.php
@@ -1,7 +1,4 @@
-<?php
-
-require_once('library/ASNValue.class.php');
-require_once('library/asn1.php');
+<?php /** @file */
function rsa_sign($data,$key,$alg = 'sha256') {
if(! $key)
@@ -20,164 +17,6 @@ function rsa_verify($data,$sig,$key,$alg = 'sha256') {
return $verify;
}
-
-function DerToPem($Der, $Private=false)
-{
- //Encode:
- $Der = base64_encode($Der);
- //Split lines:
- $lines = str_split($Der, 65);
- $body = implode("\n", $lines);
- //Get title:
- $title = $Private? 'RSA PRIVATE KEY' : 'PUBLIC KEY';
- //Add wrapping:
- $result = "-----BEGIN {$title}-----\n";
- $result .= $body . "\n";
- $result .= "-----END {$title}-----\n";
-
- return $result;
-}
-
-function DerToRsa($Der)
-{
- //Encode:
- $Der = base64_encode($Der);
- //Split lines:
- $lines = str_split($Der, 64);
- $body = implode("\n", $lines);
- //Get title:
- $title = 'RSA PUBLIC KEY';
- //Add wrapping:
- $result = "-----BEGIN {$title}-----\n";
- $result .= $body . "\n";
- $result .= "-----END {$title}-----\n";
-
- return $result;
-}
-
-
-function pkcs8_encode($Modulus,$PublicExponent) {
- //Encode key sequence
- $modulus = new ASNValue(ASNValue::TAG_INTEGER);
- $modulus->SetIntBuffer($Modulus);
- $publicExponent = new ASNValue(ASNValue::TAG_INTEGER);
- $publicExponent->SetIntBuffer($PublicExponent);
- $keySequenceItems = array($modulus, $publicExponent);
- $keySequence = new ASNValue(ASNValue::TAG_SEQUENCE);
- $keySequence->SetSequence($keySequenceItems);
- //Encode bit string
- $bitStringValue = $keySequence->Encode();
- $bitStringValue = chr(0x00) . $bitStringValue; //Add unused bits byte
- $bitString = new ASNValue(ASNValue::TAG_BITSTRING);
- $bitString->Value = $bitStringValue;
- //Encode body
- $bodyValue = "\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01\x05\x00" . $bitString->Encode();
- $body = new ASNValue(ASNValue::TAG_SEQUENCE);
- $body->Value = $bodyValue;
- //Get DER encoded public key:
- $PublicDER = $body->Encode();
- return $PublicDER;
-}
-
-
-function pkcs1_encode($Modulus,$PublicExponent) {
- //Encode key sequence
- $modulus = new ASNValue(ASNValue::TAG_INTEGER);
- $modulus->SetIntBuffer($Modulus);
- $publicExponent = new ASNValue(ASNValue::TAG_INTEGER);
- $publicExponent->SetIntBuffer($PublicExponent);
- $keySequenceItems = array($modulus, $publicExponent);
- $keySequence = new ASNValue(ASNValue::TAG_SEQUENCE);
- $keySequence->SetSequence($keySequenceItems);
- //Encode bit string
- $bitStringValue = $keySequence->Encode();
- return $bitStringValue;
-}
-
-
-function metopem($m,$e) {
- $der = pkcs8_encode($m,$e);
- $key = DerToPem($der,false);
- return $key;
-}
-
-
-function pubrsatome($key,&$m,&$e) {
- require_once('library/asn1.php');
-
- $lines = explode("\n",$key);
- unset($lines[0]);
- unset($lines[count($lines)]);
- $x = base64_decode(implode('',$lines));
-
- $r = ASN_BASE::parseASNString($x);
-
- $m = base64url_decode($r[0]->asnData[0]->asnData);
- $e = base64url_decode($r[0]->asnData[1]->asnData);
-}
-
-
-function rsatopem($key) {
- pubrsatome($key,$m,$e);
- return(metopem($m,$e));
-}
-
-function pemtorsa($key) {
- pemtome($key,$m,$e);
- return(metorsa($m,$e));
-}
-
-function pemtome($key,&$m,&$e) {
- $lines = explode("\n",$key);
- unset($lines[0]);
- unset($lines[count($lines)]);
- $x = base64_decode(implode('',$lines));
-
- $r = ASN_BASE::parseASNString($x);
-
- $m = base64url_decode($r[0]->asnData[1]->asnData[0]->asnData[0]->asnData);
- $e = base64url_decode($r[0]->asnData[1]->asnData[0]->asnData[1]->asnData);
-}
-
-function metorsa($m,$e) {
- $der = pkcs1_encode($m,$e);
- $key = DerToRsa($der);
- return $key;
-}
-
-function salmon_key($pubkey) {
- pemtome($pubkey,$m,$e);
- return 'RSA' . '.' . base64url_encode($m,true) . '.' . base64url_encode($e,true) ;
-}
-
-
-
-if(! function_exists('aes_decrypt')) {
-function aes_decrypt($val,$ky)
-{
- $key="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
- for($a=0;$a<strlen($ky);$a++)
- $key[$a%16]=chr(ord($key[$a%16]) ^ ord($ky[$a]));
- $mode = MCRYPT_MODE_ECB;
- $enc = MCRYPT_RIJNDAEL_128;
- $dec = @mcrypt_decrypt($enc, $key, $val, $mode, @mcrypt_create_iv( @mcrypt_get_iv_size($enc, $mode), MCRYPT_DEV_URANDOM ) );
- return rtrim($dec,(( ord(substr($dec,strlen($dec)-1,1))>=0 and ord(substr($dec, strlen($dec)-1,1))<=16)? chr(ord( substr($dec,strlen($dec)-1,1))):null));
-}}
-
-
-if(! function_exists('aes_encrypt')) {
-function aes_encrypt($val,$ky)
-{
- $key="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
- for($a=0;$a<strlen($ky);$a++)
- $key[$a%16]=chr(ord($key[$a%16]) ^ ord($ky[$a]));
- $mode=MCRYPT_MODE_ECB;
- $enc=MCRYPT_RIJNDAEL_128;
- $val=str_pad($val, (16*(floor(strlen($val) / 16)+(strlen($val) % 16==0?2:1))), chr(16-(strlen($val) % 16)));
- return mcrypt_encrypt($enc, $key, $val, $mode, mcrypt_create_iv( mcrypt_get_iv_size($enc, $mode), MCRYPT_DEV_URANDOM));
-}}
-
-
function pkcs5_pad ($text, $blocksize)
{
$pad = $blocksize - (strlen($text) % $blocksize);
@@ -211,11 +50,17 @@ function AES256CBC_decrypt($data,$key,$iv) {
}
function aes_encapsulate($data,$pubkey) {
+ if(! $pubkey)
+ logger('aes_encapsulate: no key. data: ' . $data);
$key = random_string(32,RANDOM_STRING_TEXT);
$iv = random_string(16,RANDOM_STRING_TEXT);
$result['data'] = base64url_encode(AES256CBC_encrypt($data,$key,$iv),true);
- openssl_public_encrypt($key,$k,$pubkey);
- $result['key'] = base64url_encode($k,true);
+ // log the offending call so we can track it down
+ if(! openssl_public_encrypt($key,$k,$pubkey)) {
+ $x = debug_backtrace();
+ logger('aes_encapsulate: RSA failed. ' . print_r($x[0],true));
+ }
+ $result['key'] = base64url_encode($k,true);
openssl_public_encrypt($iv,$i,$pubkey);
$result['iv'] = base64url_encode($i,true);
return $result;
diff --git a/include/datetime.php b/include/datetime.php
index a573e43a2..94c2e4f1c 100644
--- a/include/datetime.php
+++ b/include/datetime.php
@@ -1,8 +1,8 @@
-<?php
+<?php /** @file */
// two-level sort for timezones.
-if(! function_exists('timezone_cmp')) {
+
function timezone_cmp($a, $b) {
if(strstr($a,'/') && strstr($b,'/')) {
if ( t($a) == t($b)) return 0;
@@ -12,10 +12,10 @@ function timezone_cmp($a, $b) {
if(strstr($b,'/')) return 1;
if ( t($a) == t($b)) return 0;
return ( t($a) < t($b)) ? -1 : 1;
-}}
+}
// emit a timezone selector grouped (primarily) by continent
-if(! function_exists('select_timezone')) {
+
function select_timezone($current = 'America/Los_Angeles') {
$timezone_identifiers = DateTimeZone::listIdentifiers();
@@ -52,13 +52,13 @@ function select_timezone($current = 'America/Los_Angeles') {
}
$o .= '</optgroup></select>';
return $o;
-}}
+}
// return a select using 'field_select_raw' template, with timezones
// groupped (primarily) by continent
// arguments follow convetion as other field_* template array:
// 'name', 'label', $value, 'help'
-if (!function_exists('field_timezone')){
+
function field_timezone($name='timezone', $label='', $current = 'America/Los_Angeles', $help){
$options = select_timezone($current);
$options = str_replace('<select id="timezone_select" name="timezone">','', $options);
@@ -69,7 +69,7 @@ function field_timezone($name='timezone', $label='', $current = 'America/Los_Ang
'$field' => array($name, $label, $current, $help, $options),
));
-}}
+}
// General purpose date parse/convert function.
// $from = source timezone
@@ -77,7 +77,7 @@ function field_timezone($name='timezone', $label='', $current = 'America/Los_Ang
// $s = some parseable date/time string
// $fmt = output format
-if(! function_exists('datetime_convert')) {
+
function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d H:i:s") {
// Defaults to UTC if nothing is set, but throws an exception if set to empty string.
@@ -124,7 +124,7 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d
$d->setTimeZone($to_obj);
return($d->format($fmt));
-}}
+}
// wrapper for date selector, tailored for use in birthday fields
@@ -180,7 +180,7 @@ function datesel_format($f) {
// $m = already selected month
// $d = already selected day
-if(! function_exists('datesel')) {
+
function datesel($f,$pre,$ymin,$ymax,$allow_blank,$y,$m,$d) {
$o = '';
@@ -231,9 +231,9 @@ function datesel($f,$pre,$ymin,$ymax,$allow_blank,$y,$m,$d) {
$o .= "</select>";
return $o;
-}}
+}
+
-if(! function_exists('timesel')) {
function timesel($pre,$h,$m) {
$o = '';
@@ -250,7 +250,7 @@ function timesel($pre,$h,$m) {
$o .= "</select>";
return $o;
-}}
+}
@@ -264,7 +264,7 @@ function timesel($pre,$h,$m) {
// Results relative to current timezone
// Limited to range of timestamps
-if(! function_exists('relative_date')) {
+
function relative_date($posted_date,$format = null) {
$localtime = datetime_convert('UTC',date_default_timezone_get(),$posted_date);
@@ -300,7 +300,7 @@ function relative_date($posted_date,$format = null) {
return sprintf( $format,$r, (($r == 1) ? $str[0] : $str[1]));
}
}
-}}
+}
@@ -341,7 +341,7 @@ function age($dob,$owner_tz = '',$viewer_tz = '') {
// $month[1] = 'January';
// to match human usage.
-if(! function_exists('get_dim')) {
+
function get_dim($y,$m) {
$dim = array( 0,
@@ -353,7 +353,7 @@ function get_dim($y,$m) {
if(((($y % 4) == 0) && (($y % 100) != 0)) || (($y % 400) == 0))
return 29;
return $dim[2];
-}}
+}
// Returns the first day in month for a given month, year
@@ -361,11 +361,11 @@ function get_dim($y,$m) {
// returns 0 = Sunday through 6 = Saturday
// Months start at 1.
-if(! function_exists('get_first_dim')) {
+
function get_first_dim($y,$m) {
$d = sprintf('%04d-%02d-01 00:00', intval($y), intval($m));
return datetime_convert('UTC','UTC',$d,'w');
-}}
+}
// output a calendar for the given month, year.
// if $links are provided (array), e.g. $links[12] => 'http://mylink' ,
@@ -376,8 +376,6 @@ function get_first_dim($y,$m) {
// TODO: provide (prev,next) links, define class variations for different size calendars
-
-if(! function_exists('cal')) {
function cal($y = 0,$m = 0, $links = false, $class='') {
@@ -442,6 +440,6 @@ function cal($y = 0,$m = 0, $links = false, $class='') {
$o .= '</tr></table>'."\r\n";
return $o;
-}}
+}
diff --git a/include/dba.php b/include/dba.php
deleted file mode 100644
index d1502af12..000000000
--- a/include/dba.php
+++ /dev/null
@@ -1,289 +0,0 @@
-<?php
-
-require_once('include/datetime.php');
-
-/**
- *
- * MySQL database class
- *
- * For debugging, insert 'dbg(1);' anywhere in the program flow.
- * dbg(0); will turn it off. Logging is performed at LOGGER_DATA level.
- * When logging, all binary info is converted to text and html entities are escaped so that
- * the debugging stream is safe to view within both terminals and web pages.
- *
- */
-
-if(! class_exists('dba')) {
-class dba {
-
- private $debug = 0;
- private $db;
- public $mysqli = true;
- public $connected = false;
- public $error = false;
-
- function __construct($server,$user,$pass,$db,$install = false) {
-
- $server = trim($server);
- $user = trim($user);
- $pass = trim($pass);
- $db = trim($db);
-
- if (!(strlen($server) && strlen($user))){
- $this->connected = false;
- $this->db = null;
- return;
- }
-
- if($install) {
- if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
- if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
- $this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server);
- $this->connected = false;
- $this->db = null;
- return;
- }
- }
- }
-
- if(class_exists('mysqli')) {
- $this->db = @new mysqli($server,$user,$pass,$db);
- if(! mysqli_connect_errno()) {
- $this->connected = true;
- }
- }
- else {
- $this->mysqli = false;
- $this->db = mysql_connect($server,$user,$pass);
- if($this->db && mysql_select_db($db,$this->db)) {
- $this->connected = true;
- }
- }
- if(! $this->connected) {
- $this->db = null;
- if(! $install)
- system_unavailable();
- }
- }
-
- public function getdb() {
- return $this->db;
- }
-
- public function q($sql) {
- global $a;
-
- if((! $this->db) || (! $this->connected))
- return false;
-
- $this->error = '';
-
- if(x($a->config,'system') && x($a->config['system'],'db_log'))
- $stamp1 = microtime(true);
-
- if($this->mysqli)
- $result = @$this->db->query($sql);
- else
- $result = @mysql_query($sql,$this->db);
-
- if(x($a->config,'system') && x($a->config['system'],'db_log')) {
- $stamp2 = microtime(true);
- $duration = round($stamp2-$stamp1, 3);
- if ($duration > $a->config["system"]["db_loglimit"]) {
- $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
- @file_put_contents($a->config["system"]["db_log"], $duration."\t".
- basename($backtrace[1]["file"])."\t".
- $backtrace[1]["line"]."\t".$backtrace[2]["function"]."\t".
- substr($sql, 0, 2000)."\n", FILE_APPEND);
- }
- }
-
- if($this->mysqli) {
- if($this->db->errno)
- $this->error = $this->db->error;
- }
- elseif(mysql_errno($this->db))
- $this->error = mysql_error($this->db);
-
- if(strlen($this->error)) {
- logger('dba: ' . $this->error);
- }
-
- if($this->debug) {
-
- $mesg = '';
-
- if($result === false)
- $mesg = 'false';
- elseif($result === true)
- $mesg = 'true';
- else {
- if($this->mysqli)
- $mesg = $result->num_rows . ' results' . EOL;
- else
- $mesg = mysql_num_rows($result) . ' results' . EOL;
- }
-
- $str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg
- . (($this->error) ? ' error: ' . $this->error : '')
- . EOL;
-
- logger('dba: ' . $str );
- }
-
- /**
- * If dbfail.out exists, we will write any failed calls directly to it,
- * regardless of any logging that may or may nor be in effect.
- * These usually indicate SQL syntax errors that need to be resolved.
- */
-
- if($result === false) {
- logger('dba: ' . printable($sql) . ' returned false.' . "\n" . $this->error);
- if(file_exists('dbfail.out'))
- file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n" . $this->error . "\n", FILE_APPEND);
- }
-
- if(($result === true) || ($result === false))
- return $result;
-
- $r = array();
- if($this->mysqli) {
- if($result->num_rows) {
- while($x = $result->fetch_array(MYSQLI_ASSOC))
- $r[] = $x;
- $result->free_result();
- }
- }
- else {
- if(mysql_num_rows($result)) {
- while($x = mysql_fetch_array($result, MYSQL_ASSOC))
- $r[] = $x;
- mysql_free_result($result);
- }
- }
-
-
- if($this->debug)
- logger('dba: ' . printable(print_r($r, true)));
- return($r);
- }
-
- public function dbg($dbg) {
- $this->debug = $dbg;
- }
-
- public function escape($str) {
- if($this->db && $this->connected) {
- if($this->mysqli)
- return @$this->db->real_escape_string($str);
- else
- return @mysql_real_escape_string($str,$this->db);
- }
- }
-
- function __destruct() {
- if ($this->db)
- if($this->mysqli)
- $this->db->close();
- else
- mysql_close($this->db);
- }
-}}
-
-if(! function_exists('printable')) {
-function printable($s) {
- $s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s);
- $s = str_replace("\x00",'.',$s);
- if(x($_SERVER,'SERVER_NAME'))
- $s = escape_tags($s);
- return $s;
-}}
-
-// Procedural functions
-if(! function_exists('dbg')) {
-function dbg($state) {
- global $db;
- if($db)
- $db->dbg($state);
-}}
-
-if(! function_exists('dbesc')) {
-function dbesc($str) {
- global $db;
- if($db && $db->connected)
- return($db->escape($str));
- else
- return(str_replace("'","\\'",$str));
-}}
-
-
-
-// Function: q($sql,$args);
-// Description: execute SQL query with printf style args.
-// Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d",
-// 'user', 1);
-
-if(! function_exists('q')) {
-function q($sql) {
-
- global $db;
- $args = func_get_args();
- unset($args[0]);
-
- if($db && $db->connected) {
- $stmt = vsprintf($sql,$args);
- if($stmt === false)
- logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true));
- return $db->q($stmt);
- }
-
- /**
- *
- * This will happen occasionally trying to store the
- * session data after abnormal program termination
- *
- */
- logger('dba: no database: ' . print_r($args,true));
- return false;
-
-}}
-
-/**
- *
- * Raw db query, no arguments
- *
- */
-
-if(! function_exists('dbq')) {
-function dbq($sql) {
-
- global $db;
- if($db && $db->connected)
- $ret = $db->q($sql);
- else
- $ret = false;
- return $ret;
-}}
-
-
-// Caller is responsible for ensuring that any integer arguments to
-// dbesc_array are actually integers and not malformed strings containing
-// SQL injection vectors. All integer array elements should be specifically
-// cast to int to avoid trouble.
-
-
-if(! function_exists('dbesc_array_cb')) {
-function dbesc_array_cb(&$item, $key) {
- if(is_string($item))
- $item = dbesc($item);
-}}
-
-
-if(! function_exists('dbesc_array')) {
-function dbesc_array(&$arr) {
- if(is_array($arr) && count($arr)) {
- array_walk($arr,'dbesc_array_cb');
- }
-}}
-
-
diff --git a/include/dba/dba_driver.php b/include/dba/dba_driver.php
new file mode 100755
index 000000000..c829c3714
--- /dev/null
+++ b/include/dba/dba_driver.php
@@ -0,0 +1,167 @@
+<?php /** @file */
+
+function dba_factory($server, $port,$user,$pass,$db,$install = false) {
+ $dba = null;
+
+ if(class_exists('mysqli')) {
+ if (is_null($port)) $port = ini_get("mysqli.default_port");
+ require_once('include/dba/dba_mysqli.php');
+ $dba = new dba_mysqli($server, $port,$user,$pass,$db,$install);
+ }
+ else {
+ if (is_null($port)) $port = "3306";
+ require_once('include/dba/dba_mysql.php');
+ $dba = new dba_mysql($server, $port,$user,$pass,$db,$install);
+ }
+
+ return $dba;
+}
+
+
+abstract class dba_driver {
+
+ protected $debug = 0;
+ protected $db;
+ public $connected = false;
+ public $error = false;
+
+ abstract function connect($server, $port, $user,$pass,$db);
+ abstract function q($sql);
+ abstract function escape($str);
+ abstract function close();
+
+ function __construct($server, $port, $user,$pass,$db,$install = false) {
+ if(($install) && (! $this->install($server, $port, $user,$pass,$db))) {
+ return;
+ }
+ $this->connect($server, $port, $user,$pass,$db);
+ }
+
+
+ function install($server,$user,$pass,$db) {
+ if (!(strlen($server) && strlen($user))){
+ $this->connected = false;
+ $this->db = null;
+ return false;
+ }
+
+ if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
+ if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
+ $this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server);
+ $this->connected = false;
+ $this->db = null;
+ return false;
+ }
+ }
+ return true;
+ }
+
+
+ function dbg($dbg) {
+ $this->debug = $dbg;
+ }
+
+ function __destruct() {
+ if($this->db && $this->connected) {
+ $this->close();
+ }
+ }
+
+}
+
+
+
+function printable($s) {
+ $s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s);
+ $s = str_replace("\x00",'.',$s);
+ if(x($_SERVER,'SERVER_NAME'))
+ $s = escape_tags($s);
+ return $s;
+}
+
+// Procedural functions
+
+function dbg($state) {
+ global $db;
+ if($db)
+ $db->dbg($state);
+}
+
+
+function dbesc($str) {
+ global $db;
+ if($db && $db->connected)
+ return($db->escape($str));
+ else
+ return(str_replace("'","\\'",$str));
+}
+
+
+
+// Function: q($sql,$args);
+// Description: execute SQL query with printf style args.
+// Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d",
+// 'user', 1);
+
+
+function q($sql) {
+
+ global $db;
+ $args = func_get_args();
+ unset($args[0]);
+
+ if($db && $db->connected) {
+ $stmt = vsprintf($sql,$args);
+ if($stmt === false)
+ logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true));
+ return $db->q($stmt);
+ }
+
+ /**
+ *
+ * This will happen occasionally trying to store the
+ * session data after abnormal program termination
+ *
+ */
+ logger('dba: no database: ' . print_r($args,true));
+ return false;
+
+}
+
+/**
+ *
+ * Raw db query, no arguments
+ *
+ */
+
+
+function dbq($sql) {
+
+ global $db;
+ if($db && $db->connected)
+ $ret = $db->q($sql);
+ else
+ $ret = false;
+ return $ret;
+}
+
+
+// Caller is responsible for ensuring that any integer arguments to
+// dbesc_array are actually integers and not malformed strings containing
+// SQL injection vectors. All integer array elements should be specifically
+// cast to int to avoid trouble.
+
+
+
+function dbesc_array_cb(&$item, $key) {
+ if(is_string($item))
+ $item = dbesc($item);
+}
+
+
+
+function dbesc_array(&$arr) {
+ if(is_array($arr) && count($arr)) {
+ array_walk($arr,'dbesc_array_cb');
+ }
+}
diff --git a/include/dba/dba_mysql.php b/include/dba/dba_mysql.php
new file mode 100755
index 000000000..f5a2a47ba
--- /dev/null
+++ b/include/dba/dba_mysql.php
@@ -0,0 +1,63 @@
+<?php
+
+require_once('include/dba/dba_driver.php');
+
+
+class dba_mysql extends dba_driver {
+
+ function connect($server, $port, $user,$pass,$db) {
+ $this->db = mysql_connect($server.":".$port,$user,$pass);
+ if($this->db && mysql_select_db($db,$this->db)) {
+ $this->connected = true;
+ }
+ if($this->connected) {
+ return true;
+ }
+ return false;
+ }
+
+
+ function q($sql) {
+ if((! $this->db) || (! $this->connected))
+ return false;
+
+ $this->error = '';
+ $result = @mysql_query($sql,$this->db);
+
+
+ if(mysql_errno($this->db))
+ $this->error = mysql_error($this->db);
+
+ if($result === false || $this->error) {
+ logger('dba_mysql: ' . printable($sql) . ' returned false.' . "\n" . $this->error);
+ if(file_exists('dbfail.out'))
+ file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n" . $this->error . "\n", FILE_APPEND);
+ }
+
+ if(($result === true) || ($result === false))
+ return $result;
+
+ $r = array();
+ if(mysql_num_rows($result)) {
+ while($x = mysql_fetch_array($result,MYSQL_ASSOC))
+ $r[] = $x;
+ mysql_free_result($result);
+ if($this->debug)
+ logger('dba_mysql: ' . printable(print_r($r,true)));
+ }
+ return $r;
+ }
+
+ function escape($str) {
+ if($this->db && $this->connected) {
+ return @mysql_real_escape_string($str,$this->db);
+ }
+ }
+
+ function close() {
+ if($this->db)
+ mysql_close($this->db);
+ $this->connected = false;
+ }
+
+}
diff --git a/include/dba/dba_mysqli.php b/include/dba/dba_mysqli.php
new file mode 100755
index 000000000..f1a50cc3f
--- /dev/null
+++ b/include/dba/dba_mysqli.php
@@ -0,0 +1,76 @@
+<?php /** @file */
+
+require_once('include/dba/dba_driver.php');
+
+class dba_mysqli extends dba_driver {
+
+ function connect($server, $port, $user,$pass,$db) {
+ if($port)
+ $this->db = new mysqli($server,$user,$pass,$db, $port);
+ else
+ $this->db = new mysqli($server,$user,$pass,$db);
+
+ if(! mysqli_connect_errno()) {
+ $this->connected = true;
+ }
+ if($this->connected) {
+ return true;
+ }
+ $this->error = $this->db->connect_error;
+ return false;
+ }
+
+ function q($sql) {
+ if((! $this->db) || (! $this->connected))
+ return false;
+
+ $this->error = '';
+ $result = $this->db->query($sql);
+
+ if($this->db->errno)
+ $this->error = $this->db->error;
+
+
+ if($this->error) {
+ logger('dba_mysqli: ERROR: ' . printable($sql) . "\n" . $this->error);
+ if(file_exists('dbfail.out')) {
+ file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . "\n" . $this->error . "\n", FILE_APPEND);
+ }
+ }
+
+ if(($result === true) || ($result === false)) {
+ if($this->debug) {
+ logger('dba_mysqli: DEBUG: returns ' . (($result) ? 'true' : 'false'));
+ }
+ return $result;
+ }
+
+ if($this->debug) {
+ logger('dba_mysqli: DEBUG: ' . printable($sql) . ' returned ' . $result->num_rows . ' results.');
+ }
+
+ $r = array();
+ if($result->num_rows) {
+ while($x = $result->fetch_array(MYSQLI_ASSOC))
+ $r[] = $x;
+ $result->free_result();
+ if($this->debug) {
+ logger('dba_mysqli: ' . printable(print_r($r,true)));
+ }
+ }
+ return $r;
+ }
+
+ function escape($str) {
+ if($this->db && $this->connected) {
+ return @$this->db->real_escape_string($str);
+ }
+ }
+
+ function close() {
+ if($this->db)
+ $this->db->close();
+ $this->connected = flase;
+ }
+
+} \ No newline at end of file
diff --git a/include/deliver.php b/include/deliver.php
index 471ea580d..547d009cc 100644
--- a/include/deliver.php
+++ b/include/deliver.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('include/cli_startup.php');
require_once('include/zot.php');
@@ -23,11 +23,14 @@ function deliver_run($argv, $argc) {
if($r[0]['outq_posturl'] === z_root() . '/post') {
// local delivery
// we should probably batch these and save a few delivery processes
- $msg = array('body' => json_encode(array('pickup' => array(array('notify' => json_decode($r[0]['outq_notify'],true),'message' => json_decode($r[0]['outq_msg'],true))))));
- zot_import($msg);
- $r = q("delete from outq where outq_hash = '%s' limit 1",
- dbesc($argv[$x])
- );
+ // If there is no outq_msg, this is a refresh_all message which does not require local handling
+ if($r[0]['outq_msg']) {
+ $msg = array('body' => json_encode(array('pickup' => array(array('notify' => json_decode($r[0]['outq_notify'],true),'message' => json_decode($r[0]['outq_msg'],true))))));
+ zot_import($msg);
+ $r = q("delete from outq where outq_hash = '%s' limit 1",
+ dbesc($argv[$x])
+ );
+ }
}
else {
$result = zot_zot($r[0]['outq_posturl'],$r[0]['outq_notify']);
diff --git a/include/dir_fns.php b/include/dir_fns.php
index be1bcd503..0b678fd91 100644
--- a/include/dir_fns.php
+++ b/include/dir_fns.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('include/permissions.php');
@@ -6,11 +6,54 @@ function find_upstream_directory($dirmode) {
return '';
}
+
+function sync_directories($dirmode) {
+
+ if($dirmode == DIRECTORY_MODE_STANDALONE || $dirmode == DIRECTORY_MODE_NORMAL)
+ return;
+
+ $r = q("select * from site where (site_flags & %d) and site_url != '%s'",
+ intval(DIRECTORY_MODE_PRIMARY),
+ dbesc(z_root())
+ );
+
+ // If there are no directory servers, setup the fallback master
+
+ if((! $r) && (z_root() != DIRECTORY_FALLBACK_MASTER)) {
+ $r = array(
+ 'site_url' => DIRECTORY_FALLBACK_MASTER,
+ 'site_flags' => DIRECTORY_MODE_PRIMARY,
+ 'site_update' => '0000-00-00 00:00:00',
+ 'site_directory' => DIRECTORY_FALLBACK_MASTER . '/dirsearch'
+ );
+ $x = q("insert into site ( site_url, site_flags, site_update, site_directory )
+ values ( '%s', %d', '%s', '%s' ) ",
+ dbesc($r[0]['site_url']),
+ intval($r[0]['site_flags']),
+ dbesc($r[0]['site_update']),
+ dbesc($r[0]['site_directory'])
+ );
+
+ }
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
function syncdirs($uid) {
logger('syncdirs', LOGGER_DEBUG);
- $p = q("select channel.channel_hash, profile.* from profile left join channel on channel_id = uid where uid = %d and is_default = 1",
+ $p = q("select channel.channel_hash, channel_timezone, profile.* from profile left join channel on channel_id = uid where uid = %d and is_default = 1",
intval($uid)
);
@@ -21,6 +64,9 @@ function syncdirs($uid) {
$profile['description'] = $p[0]['pdesc'];
$profile['birthday'] = $p[0]['dob'];
+ if($age = age($p[0]['dob'],$p[0]['channel_timezone'],''))
+ $profile['age'] = $age;
+
$profile['gender'] = $p[0]['gender'];
$profile['marital'] = $p[0]['marital'];
$profile['sexual'] = $p[0]['sexual'];
@@ -39,6 +85,30 @@ function syncdirs($uid) {
$profile['keywords'] = $tags;
}
+ $hidden = (1 - intval($p[0]['publish']));
+
+ logger('hidden: ' . $hidden);
+
+ $r = q("select xchan_flags from xchan where xchan_hash = '%s' limit 1",
+ dbesc($p[0]['channel_hash'])
+ );
+
+ // Be careful - XCHAN_FLAGS_HIDDEN should evaluate to 1
+ if(($r[0]['xchan_flags'] & XCHAN_FLAGS_HIDDEN) != $hidden)
+ $new_flags = $r[0]['xchan_flags'] ^ XCHAN_FLAGS_HIDDEN;
+ else
+ $new_flags = $r[0]['xchan_flags'];
+
+ if($new_flags != $r[0]['xchan_flags']) {
+
+ $r = q("update xchan set xchan_flags = %d where xchan_hash = '%s' limit 1",
+ intval($new_flags),
+ dbesc($p[0]['channel_hash'])
+ );
+
+ }
+
+
if(perm_is_allowed($uid,'','view_profile')) {
import_directory_profile($hash,$profile);
diff --git a/include/directory.php b/include/directory.php
index b0b975358..c0a8928c0 100644
--- a/include/directory.php
+++ b/include/directory.php
@@ -1,4 +1,5 @@
-g<?php
+<?php /** @file */
+
require_once('boot.php');
require_once('include/zot.php');
require_once('include/cli_startup.php');
@@ -18,11 +19,6 @@ function directory_run($argv, $argc){
if($dirmode === false)
$dirmode = DIRECTORY_MODE_NORMAL;
- if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) {
- syncdirs($argv[1]);
- return;
- }
-
$x = q("select * from channel where channel_id = %d limit 1",
intval($argv[1])
);
@@ -31,26 +27,34 @@ function directory_run($argv, $argc){
$channel = $x[0];
- // is channel profile visible to the public?
- // FIXME - remove dir entry if permission is revoked
- if(! perm_is_allowed($channel['channel_id'],null,'view_profile'))
+ if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) {
+ syncdirs($argv[1]);
+
+ // Now update all the connections
+ proc_run('php','include/notifier.php','refresh_all',$channel['channel_id']);
return;
+ }
$directory = find_upstream_directory($dirmode);
if($directory) {
- $url = $directory['url'];
+ $url = $directory['url'] . '/post';
}
else {
$url = DIRECTORY_FALLBACK_MASTER . '/post';
}
+ // ensure the upstream directory is updated
+
$packet = zot_build_packet($channel,'refresh');
$z = zot_zot($url,$packet);
-
// re-queue if unsuccessful
+ // Now update all the connections
+
+ proc_run('php','include/notifier.php','refresh_all',$channel['channel_id']);
+
}
if (array_search(__file__,get_included_files())===0){
diff --git a/include/enotify.php b/include/enotify.php
index 32f4cc2e7..a15e42b73 100644
--- a/include/enotify.php
+++ b/include/enotify.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function notification($params) {
@@ -33,8 +33,8 @@ function notification($params) {
push_lang($recip['account_language']); // should probably have a channel language
- $banner = t('Red Notification');
- $product = FRIENDICA_PLATFORM;
+ $banner = t('Red Matrix Notification');
+ $product = RED_PLATFORM;
$siteurl = $a->get_baseurl(true);
$thanks = t('Thank You,');
$sitename = get_config('system','sitename');
@@ -51,13 +51,26 @@ function notification($params) {
$additional_mail_header = "";
if(array_key_exists('item',$params)) {
- $title = $params['item']['title'];
- $body = $params['item']['body'];
+ // if it's a normal item...
+ if(array_key_exists('verb',$params['item'])) {
+ require_once('include/conversation.php');
+ // localize_item() alters the original item so make a copy first
+ $i = $params['item'];
+ logger('calling localize');
+ localize_item($i);
+ $title = $i['title'];
+ $body = $i['body'];
+ }
+ else {
+ $title = $params['item']['title'];
+ $body = $params['item']['body'];
+ }
}
else {
$title = $body = '';
}
+
// e.g. "your post", "David's photo", etc.
$possess_desc = t('%s <!item_type!>');
@@ -66,7 +79,7 @@ function notification($params) {
$subject = sprintf( t('[Red:Notify] New mail received at %s'),$sitename);
$preamble = sprintf( t('%1$s sent you a new private message at %2$s.'),$sender['xchan_name'],$sitename);
- $epreamble = sprintf( t('%1$s sent you %2$s.'),'[url=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/url]', '[url=$itemlink]' . t('a private message') . '[/url]');
+ $epreamble = sprintf( t('%1$s sent you %2$s.'),'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]', '[zrl=$itemlink]' . t('a private message') . '[/zrl]');
$sitelink = t('Please visit %s to view and/or reply to your private messages.');
$tsitelink = sprintf( $sitelink, $siteurl . '/message/' . $params['item']['id'] );
$hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '/message/' . $params['item']['id'] . '">' . $sitename . '</a>');
@@ -87,7 +100,7 @@ function notification($params) {
intval($recip['channel_id'])
);
if($p) {
- logger('notification comment already notified');
+ logger('notification: comment already notified');
pop_lang();
return;
}
@@ -108,26 +121,28 @@ function notification($params) {
$item_post_type = item_post_type($p[0]);
+ $private = $p[0]['item_private'];
+
//$possess_desc = str_replace('<!item_type!>',$possess_desc);
// "a post"
- $dest_str = sprintf(t('%1$s commented on [url=%2$s]a %3$s[/url]'),
- '[url=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/url]',
+ $dest_str = sprintf(t('%1$s commented on [zrl=%2$s]a %3$s[/zrl]'),
+ '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$itemlink,
$item_post_type);
// "George Bull's post"
if($p)
- $dest_str = sprintf(t('%1$s commented on [url=%2$s]%3$s\'s %4$s[/url]'),
- '[url=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/url]',
+ $dest_str = sprintf(t('%1$s commented on [zrl=%2$s]%3$s\'s %4$s[/zrl]'),
+ '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$itemlink,
$p[0]['author']['xchan_name'],
$item_post_type);
// "your post"
if($p[0]['owner']['xchan_name'] == $p[0]['author']['xchan_name'] && ($p[0]['item_flags'] & ITEM_WALL))
- $dest_str = sprintf(t('%1$s commented on [url=%2$s]your %3$s[/url]'),
- '[url=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/url]',
+ $dest_str = sprintf(t('%1$s commented on [zrl=%2$s]your %3$s[/zrl]'),
+ '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$itemlink,
$item_post_type);
@@ -151,9 +166,11 @@ function notification($params) {
$preamble = sprintf( t('%1$s posted to your profile wall at %2$s') , $sender['xchan_name'], $sitename);
- $epreamble = sprintf( t('%1$s posted to [url=%2$s]your wall[/url]') ,
- '[url=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/url]',
+ $epreamble = sprintf( t('%1$s posted to [zrl=%2$s]your wall[/zrl]') ,
+ '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$params['link']);
+ // FIXME - check the item privacy
+ $private = false;
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@@ -162,10 +179,23 @@ function notification($params) {
}
if($params['type'] == NOTIFY_TAGSELF) {
+
+ $p = null;
+ $p = q("select id from notify where link = '%s' and uid = %d limit 1",
+ dbesc($params['link']),
+ intval($recip['channel_id'])
+ );
+ if($p) {
+ logger('enotify: tag: already notified about this post');
+ pop_lang();
+ return;
+ }
+
+
$subject = sprintf( t('[Red:Notify] %s tagged you') , $sender['xchan_name']);
$preamble = sprintf( t('%1$s tagged you at %2$s') , $sender['xchan_name'], $sitename);
- $epreamble = sprintf( t('%1$s [url=%2$s]tagged you[/url].') ,
- '[url=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/url]',
+ $epreamble = sprintf( t('%1$s [zrl=%2$s]tagged you[/zrl].') ,
+ '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$params['link']);
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
@@ -178,8 +208,8 @@ function notification($params) {
$subject = sprintf( t('[Red:Notify] %1$s poked you') , $sender['xchan_name']);
$preamble = sprintf( t('%1$s poked you at %2$s') , $sender['xchan_name'], $sitename);
- $epreamble = sprintf( t('%1$s [url=%2$s]poked you[/url].') ,
- '[url=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/url]',
+ $epreamble = sprintf( t('%1$s [zrl=%2$s]poked you[/zrl].') ,
+ '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$params['link']);
$subject = str_replace('poked', t($params['activity']), $subject);
@@ -195,8 +225,8 @@ function notification($params) {
if($params['type'] == NOTIFY_TAGSHARE) {
$subject = sprintf( t('[Red:Notify] %s tagged your post') , $sender['xchan_name']);
$preamble = sprintf( t('%1$s tagged your post at %2$s') , $sender['xchan_name'], $sitename);
- $epreamble = sprintf( t('%1$s tagged [url=%2$s]your post[/url]') ,
- '[url=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/url]',
+ $epreamble = sprintf( t('%1$s tagged [zrl=%2$s]your post[/zrl]') ,
+ '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$itemlink);
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
@@ -208,9 +238,9 @@ function notification($params) {
if($params['type'] == NOTIFY_INTRO) {
$subject = sprintf( t('[Red:Notify] Introduction received'));
$preamble = sprintf( t('You\'ve received an introduction from \'%1$s\' at %2$s'), $sender['xchan_name'], $sitename);
- $epreamble = sprintf( t('You\'ve received [url=%1$s]an introduction[/url] from %2$s.'),
+ $epreamble = sprintf( t('You\'ve received [zrl=%1$s]an introduction[/zrl] from %2$s.'),
$itemlink,
- '[url=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/url]');
+ '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]');
$body = sprintf( t('You may visit their profile at %s'),$sender['xchan_url']);
$sitelink = t('Please visit %s to approve or reject the introduction.');
@@ -222,10 +252,10 @@ function notification($params) {
if($params['type'] == NOTIFY_SUGGEST) {
$subject = sprintf( t('[Red:Notify] Friend suggestion received'));
$preamble = sprintf( t('You\'ve received a friend suggestion from \'%1$s\' at %2$s'), $sender['xchan_name'], $sitename);
- $epreamble = sprintf( t('You\'ve received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s.'),
+ $epreamble = sprintf( t('You\'ve received [zrl=%1$s]a friend suggestion[/zrl] for %2$s from %3$s.'),
$itemlink,
- '[url=' . $params['item']['url'] . ']' . $params['item']['name'] . '[/url]',
- '[url=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/url]');
+ '[zrl=' . $params['item']['url'] . ']' . $params['item']['name'] . '[/zrl]',
+ '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]');
$body = t('Name:') . ' ' . $params['item']['name'] . "\n";
$body .= t('Photo:') . ' ' . $params['item']['photo'] . "\n";
@@ -293,9 +323,16 @@ function notification($params) {
$datarray['type'] = $params['type'];
$datarray['verb'] = $params['verb'];
$datarray['otype'] = $params['otype'];
+ $datarray['abort'] = false;
call_hooks('enotify_store', $datarray);
+ if($datarray['abort']) {
+ pop_lang();
+ return;
+ }
+
+
// create notification entry in DB
$r = q("insert into notify (hash,name,url,photo,date,uid,link,parent,type,verb,otype)
@@ -341,10 +378,28 @@ function notification($params) {
logger('notification: sending notification email');
+
$textversion = strip_tags(html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r", "\\n"), "\n",
$body))),ENT_QUOTES,'UTF-8'));
+
$htmlversion = html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r","\\n\\n" ,"\\n"),
- "<br />\n",$body))));
+ "<br />\n",$body))), ENT_QUOTES,'UTF-8');
+
+
+ // use $_SESSION['zid_override'] to force zid() to use
+ // the recipient address instead of the current observer
+
+ $_SESSION['zid_override'] = $recip['channel_address'] . '@' . get_app()->get_hostname();
+ $_SESSION['zrl_override'] = z_root() . '/channel/' . $recip['channel_address'];
+
+ $textversion = zidify_links($textversion);
+ $htmlversion = zidify_links($htmlversion);
+
+ // unset when done to revert to normal behaviour
+
+ unset($_SESSION['zid_override']);
+ unset($_SESSION['zrl_override']);
+
$datarray = array();
$datarray['banner'] = $banner;
@@ -370,9 +425,28 @@ function notification($params) {
$datarray['textversion'] = $textversion;
$datarray['subject'] = $subject;
$datarray['headers'] = $additional_mail_header;
+ $datarray['email_secure'] = false;
call_hooks('enotify_mail', $datarray);
+ // Default to private - don't disclose message contents over insecure channels (such as email)
+ // Might be interesting to use GPG,PGP,S/MIME encryption instead
+ // but we'll save that for a clever plugin developer to implement
+
+ if(! $datarray['email_secure']) {
+ switch($params['type']) {
+ case NOTIFY_WALL:
+ case NOTIFY_COMMENT:
+ if(! $private)
+ break;
+ case NOTIFY_MAIL:
+ $datarray['textversion'] = $datarray['htmlversion'] = $datarray['title'] = '';
+ break;
+ default:
+ break;
+ }
+ }
+
// load the template for private message notifications
$tpl = get_markup_template('email_notify_html.tpl');
$email_html_body = replace_macros($tpl,array(
diff --git a/include/event.php b/include/event.php
index 8bf65016f..29ada2e96 100644
--- a/include/event.php
+++ b/include/event.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function format_event_html($ev) {
@@ -45,74 +45,6 @@ function format_event_html($ev) {
return $o;
}
-/*
-function parse_event($h) {
-
- require_once('include/Scrape.php');
- require_once('library/HTMLPurifier.auto.php');
- require_once('include/html2bbcode');
-
- $h = '<html><body>' . $h . '</body></html>';
-
- $ret = array();
-
-
- try {
- $dom = HTML5_Parser::parse($h);
- } catch (DOMException $e) {
- logger('parse_event: parse error: ' . $e);
- }
-
- if(! $dom)
- return $ret;
-
- $items = $dom->getElementsByTagName('*');
-
- foreach($items as $item) {
- if(attribute_contains($item->getAttribute('class'), 'vevent')) {
- $level2 = $item->getElementsByTagName('*');
- foreach($level2 as $x) {
- if(attribute_contains($x->getAttribute('class'),'dtstart') && $x->getAttribute('title')) {
- $ret['start'] = $x->getAttribute('title');
- if(! strpos($ret['start'],'Z'))
- $ret['adjust'] = true;
- }
- if(attribute_contains($x->getAttribute('class'),'dtend') && $x->getAttribute('title'))
- $ret['finish'] = $x->getAttribute('title');
-
- if(attribute_contains($x->getAttribute('class'),'description'))
- $ret['desc'] = $x->textContent;
- if(attribute_contains($x->getAttribute('class'),'location'))
- $ret['location'] = $x->textContent;
- }
- }
- }
-
- // sanitise
-
- if((x($ret,'desc')) && ((strpos($ret['desc'],'<') !== false) || (strpos($ret['desc'],'>') !== false))) {
- $config = HTMLPurifier_Config::createDefault();
- $config->set('Cache.DefinitionImpl', null);
- $purifier = new HTMLPurifier($config);
- $ret['desc'] = html2bbcode($purifier->purify($ret['desc']));
- }
-
- if((x($ret,'location')) && ((strpos($ret['location'],'<') !== false) || (strpos($ret['location'],'>') !== false))) {
- $config = HTMLPurifier_Config::createDefault();
- $config->set('Cache.DefinitionImpl', null);
- $purifier = new HTMLPurifier($config);
- $ret['location'] = html2bbcode($purifier->purify($ret['location']));
- }
-
- if(x($ret,'start'))
- $ret['start'] = datetime_convert('UTC','UTC',$ret['start']);
- if(x($ret,'finish'))
- $ret['finish'] = datetime_convert('UTC','UTC',$ret['finish']);
-
- return $ret;
-}
-*/
-
function format_event_bbcode($ev) {
$o = '';
@@ -237,6 +169,8 @@ function event_store($arr) {
return $r[0]['id'];
}
+ $event_hash = $r[0]['event_hash'];
+
// The event changed. Update it.
$r = q("UPDATE `event` SET
@@ -273,7 +207,7 @@ function event_store($arr) {
);
$r = q("SELECT * FROM item left join xchan on author_xchan = xchan_hash WHERE resource_id = '%s' AND resource_type = 'event' and uid = %d LIMIT 1",
- intval($r[0]['event_hash']),
+ dbesc($event_hash),
intval($arr['uid'])
);
@@ -328,11 +262,11 @@ function event_store($arr) {
$hash = random_string();
- if(! $arr['uri'])
- $arr['uri'] = item_message_id();
+ if(! $arr['mid'])
+ $arr['mid'] = item_message_id();
- $r = q("INSERT INTO event ( uid,aid,event_xchan,event_hash,created,edited,start,finish,summary, desc,location,type,
+ $r = q("INSERT INTO event ( uid,aid,event_xchan,event_hash,created,edited,start,finish,summary, `desc`,location,type,
adjust,nofinish,allow_cid,allow_gid,deny_cid,deny_gid)
VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s' ) ",
intval($arr['uid']),
@@ -382,8 +316,8 @@ function event_store($arr) {
$item_arr['uid'] = $arr['uid'];
$item_arr['author_xchan'] = $arr['event_xchan'];
- $item_arr['uri'] = $arr['uri'];
- $item_arr['parent_uri'] = $arr['uri'];
+ $item_arr['mid'] = $arr['mid'];
+ $item_arr['parent_mid'] = $arr['mid'];
$item_arr['item_flags'] = $item_flags;
diff --git a/include/expire.php b/include/expire.php
index 3a914a41d..f1002b890 100644
--- a/include/expire.php
+++ b/include/expire.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('boot.php');
require_once('include/cli_startup.php');
diff --git a/include/fcontact.php b/include/fcontact.php
deleted file mode 100644
index 8821a985f..000000000
--- a/include/fcontact.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-
-
-function fcontact_store($url,$name,$photo) {
-
- $nurl = str_replace(array('https:','//www.'), array('http:','//'), $url);
-
- $r = q("SELECT `id` FROM `fcontact` WHERE `url` = '%s' LIMIT 1",
- dbesc($nurl)
- );
-
- if(count($r))
- return $r[0]['id'];
-
- $r = q("INSERT INTO `fcontact` ( `url`, `name`, `photo` ) VALUES ( '%s', '%s', '%s' ) ",
- dbesc($nurl),
- dbesc($name),
- dbesc($photo)
- );
-
- if($r) {
- $r = q("SELECT `id` FROM `fcontact` WHERE `url` = '%s' LIMIT 1",
- dbesc($nurl)
- );
- if(count($r))
- return $r[0]['id'];
- }
-
- return 0;
-}
-
-function ffinder_store($uid,$cid,$fid) {
- $r = q("INSERT INTO `ffinder` ( `uid`, `cid`, `fid` ) VALUES ( %d, %d, %d ) ",
- intval($uid),
- intval($cid),
- intval($fid)
- );
- return $r;
-}
-
diff --git a/include/features.php b/include/features.php
index 094e96c78..da1322a14 100644
--- a/include/features.php
+++ b/include/features.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
/*
* Features management
@@ -22,6 +22,9 @@ function get_features() {
array('expire', t('Content Expiration'), t('Remove old posts/comments after a period of time')),
array('multi_profiles', t('Multiple Profiles'), t('Ability to create multiple profiles')),
array('webpages', t('Web Pages'), t('Provide managed web pages on your channel')),
+ array('prettyphoto', t('Enhanced Photo Albums'), t('Enable photo album with enhanced features')),
+ //FIXME - needs a description, but how the hell do we explain this to normals?
+ array('sendzid', t('Extended Identity Sharing'), t(' ')),
array('expert', t('Expert Mode'), t('Enable Expert Mode to provide advanced configuration options')),
@@ -55,6 +58,7 @@ function get_features() {
array('filing', t('Saved Folders'), t('Ability to file posts under folders')),
array('dislike', t('Dislike Posts'), t('Ability to dislike posts/comments')),
array('star_posts', t('Star Posts'), t('Ability to mark special posts with a star indicator')),
+ array('tagadelic', t('Tag Cloud'), t('Provide a personal tag cloud on your channel page')),
),
);
diff --git a/include/follow.php b/include/follow.php
index a094a979f..6b192234c 100644
--- a/include/follow.php
+++ b/include/follow.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
//
@@ -111,7 +111,10 @@ function new_contact($uid,$url,$channel,$interactive = false) {
if((local_user()) && $uid == local_user()) {
$aid = get_account_id();
- $hash = $a->observer['xchan_hash'];
+ $hash = get_observer_hash();
+ $ch = $a->get_channel();
+ $default_group = $ch['channel_default_group'];
+
}
else {
$r = q("select * from channel where channel_id = %d limit 1",
@@ -123,6 +126,7 @@ function new_contact($uid,$url,$channel,$interactive = false) {
}
$aid = $r[0]['channel_account_id'];
$hash = $r[0]['channel_hash'];
+ $default_group = $r[0]['channel_default_group'];
}
if($hash == $xchan_hash) {
@@ -160,62 +164,21 @@ function new_contact($uid,$url,$channel,$interactive = false) {
dbesc($xchan_hash),
intval($uid)
);
- if($r)
+ if($r) {
$result['abook'] = $r[0];
-
- // Then send a ping/message to the other side
-
-
-/*
-
- $r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `name`, `nick`, `photo`, `network`, `pubkey`, `rel`, `priority`,
- `writable`, `hidden`, `blocked`, `readonly`, `pending` )
- VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, 0, 0, 0) ",
- intval($uid),
- dbesc(datetime_convert()),
- dbesc($ret['url']),
- dbesc(normalise_link($ret['url'])),
- dbesc($ret['addr']),
- dbesc($ret['alias']),
- dbesc($ret['batch']),
- dbesc($ret['notify']),
- dbesc($ret['poll']),
- dbesc($ret['poco']),
- dbesc($ret['name']),
- dbesc($ret['nick']),
- dbesc($ret['photo']),
- dbesc($ret['network']),
- dbesc($ret['pubkey']),
- intval($new_relation),
- intval($ret['priority']),
- intval($writeable),
- intval($hidden)
- );
+ proc_run('php', 'include/notifier.php', 'permission_update', $result['abook']['abook_id']);
}
- $r = q("SELECT * FROM `contact` WHERE `url` = '%s' AND `uid` = %d LIMIT 1",
- dbesc($ret['url']),
- intval($uid)
- );
-
- if(! count($r)) {
- $result['message'] .= t('Unable to retrieve contact information.') . EOL;
- return $result;
- }
+ /** If there is a default group for this channel, add this member to it */
- $contact = $r[0];
- $contact_id = $r[0]['id'];
-
-
- $g = q("select def_gid from user where uid = %d limit 1",
- intval($uid)
- );
- if($g && intval($g[0]['def_gid'])) {
+ if($default_group) {
require_once('include/group.php');
- group_add_member($uid,'',$contact_id,$g[0]['def_gid']);
+ $g = group_rec_byhash($uid,$default_group);
+ if($g)
+ group_add_member($uid,'',$xchan_hash,$g['id']);
}
-*/
+ // Then send a ping/message to the other side
$result['success'] = true;
diff --git a/include/friendica_smarty.php b/include/friendica_smarty.php
index 2f4694c58..1e8ef5406 100644..100755
--- a/include/friendica_smarty.php
+++ b/include/friendica_smarty.php
@@ -1,7 +1,8 @@
-<?php
-
+<?php /** @file */
+require_once 'include/ITemplateEngine.php';
require_once("library/Smarty/libs/Smarty.class.php");
+
class FriendicaSmarty extends Smarty {
public $filename;
@@ -14,15 +15,17 @@ class FriendicaSmarty extends Smarty {
// setTemplateDir can be set to an array, which Smarty will parse in order.
// The order is thus very important here
- $template_dirs = array('theme' => "view/theme/$theme/tpl/smarty3/");
+ $template_dirs = array('theme' => "view/theme/$theme/tpl/");
if( x($a->theme_info,"extends") )
- $template_dirs = $template_dirs + array('extends' => "view/theme/".$a->theme_info["extends"]."/tpl/smarty3/");
- $template_dirs = $template_dirs + array('base' => 'view/tpl/smarty3/');
+ $template_dirs = $template_dirs + array('extends' => "view/theme/".$a->theme_info["extends"]."/tpl/");
+ $template_dirs = $template_dirs + array('base' => 'view/tpl/');
$this->setTemplateDir($template_dirs);
- $this->setCompileDir('view/tpl/smarty3/compiled/');
- $this->setConfigDir('view/tpl/smarty3/config/');
- $this->setCacheDir('view/tpl/smarty3/cache/');
+ $basecompiledir = $a->config['system']['smarty3_folder'];
+
+ $this->setCompileDir($basecompiledir.'/compiled/');
+ $this->setConfigDir($basecompiledir.'/config/');
+ $this->setCacheDir($basecompiledir.'/cache/');
$this->left_delimiter = $a->get_template_ldelim('smarty3');
$this->right_delimiter = $a->get_template_rdelim('smarty3');
@@ -41,3 +44,67 @@ class FriendicaSmarty extends Smarty {
+class FriendicaSmartyEngine implements ITemplateEngine {
+ static $name ="smarty3";
+
+ public function __construct(){
+ $a = get_app();
+ $basecompiledir = $a->config['system']['smarty3_folder'];
+ if (!$basecompiledir) $basecompiledir = dirname(__dir__)."/view/tpl/smarty3";
+ if (!is_dir($basecompiledir)) {
+ echo "<b>ERROR:</b> folder <tt>$basecompiledir</tt> does not exist."; killme();
+ }
+ if(!is_writable($basecompiledir)){
+ echo "<b>ERROR:</b> folder <tt>$basecompiledir</tt> must be writable by webserver."; killme();
+ }
+ $a->config['system']['smarty3_folder'] = $basecompiledir;
+ }
+
+ // ITemplateEngine interface
+ public function replace_macros($s, $r) {
+ $template = '';
+ if(gettype($s) === 'string') {
+ $template = $s;
+ $s = new FriendicaSmarty();
+ }
+ foreach($r as $key=>$value) {
+ if($key[0] === '$') {
+ $key = substr($key, 1);
+ }
+ $s->assign($key, $value);
+ }
+ return $s->parsed($template);
+ }
+
+ public function get_markup_template($file, $root=''){
+ $template_file = theme_include($file, $root);
+ if($template_file) {
+ $template = new FriendicaSmarty();
+ $template->filename = $template_file;
+
+ return $template;
+ }
+ return "";
+ }
+
+ public function get_intltext_template($file, $root='') {
+ $a = get_app();
+
+ if(file_exists("view/{$a->language}/$file"))
+ $template_file = "view/{$a->language}/$file";
+ elseif(file_exists("view/en/$file"))
+ $template_file = "view/en/$file";
+ else
+ $template_file = theme_include($file,$root);
+ if($template_file) {
+ $template = new FriendicaSmarty();
+ $template->filename = $template_file;
+
+ return $template;
+ }
+ return "";
+ }
+
+
+
+}
diff --git a/include/gprobe.php b/include/gprobe.php
index 2cc87d149..48c1c8e14 100644
--- a/include/gprobe.php
+++ b/include/gprobe.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('include/cli_startup.php');
require_once('include/zot.php');
diff --git a/include/group.php b/include/group.php
index 6042acbb4..ff17a726c 100644
--- a/include/group.php
+++ b/include/group.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function group_add($uid,$name) {
@@ -52,40 +52,43 @@ function group_add($uid,$name) {
function group_rmv($uid,$name) {
$ret = false;
if(x($uid) && x($name)) {
- $r = q("SELECT id FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
+ $r = q("SELECT id, hash FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
intval($uid),
dbesc($name)
);
- if(count($r))
+ if($r) {
$group_id = $r[0]['id'];
+ $group_hash = $r[0]['hash'];
+ }
+
if(! $group_id)
return false;
// remove group from default posting lists
- $r = q("SELECT channel_default_gid, channel_allow_gid, channel_deny_gid FROM channel WHERE channel_id = %d LIMIT 1",
+ $r = q("SELECT channel_default_group, channel_allow_gid, channel_deny_gid FROM channel WHERE channel_id = %d LIMIT 1",
intval($uid)
);
if($r) {
$user_info = $r[0];
$change = false;
- if($user_info['channel_default_gid'] == $group_id) {
- $user_info['channel_default_gid'] = 0;
+ if($user_info['channel_default_group'] == $group_hash) {
+ $user_info['channel_default_group'] = '';
$change = true;
}
if(strpos($user_info['channel_allow_gid'], '<' . $group_id . '>') !== false) {
- $user_info['channel_allow_gid'] = str_replace('<' . $group_id . '>', '', $user_info['channel_allow_gid']);
+ $user_info['channel_allow_gid'] = str_replace('<' . $group_hash . '>', '', $user_info['channel_allow_gid']);
$change = true;
}
if(strpos($user_info['channel_deny_gid'], '<' . $group_id . '>') !== false) {
- $user_info['channel_deny_gid'] = str_replace('<' . $group_id . '>', '', $user_info['channel_deny_gid']);
+ $user_info['channel_deny_gid'] = str_replace('<' . $group_hash . '>', '', $user_info['channel_deny_gid']);
$change = true;
}
if($change) {
- q("UPDATE channel SET channel_default_gid = %d, channel_allow_gid = '%s', channel_deny_gid = '%s'
+ q("UPDATE channel SET channel_default_group = '%s', channel_allow_gid = '%s', channel_deny_gid = '%s'
WHERE channel_id = %d",
- intval($user_info['channel_default_gid']),
+ intval($user_info['channel_default_group']),
dbesc($user_info['channel_allow_gid']),
dbesc($user_info['channel_deny_gid']),
intval($uid)
@@ -124,6 +127,19 @@ function group_byname($uid,$name) {
return false;
}
+
+function group_rec_byhash($uid,$hash) {
+ if((! $uid) || (! strlen($hash)))
+ return false;
+ $r = q("SELECT * FROM `group` WHERE `uid` = %d AND `hash` = '%s' LIMIT 1",
+ intval($uid),
+ dbesc($hash)
+ );
+ if($r)
+ return $r[0];
+ return false;
+}
+
function group_rmv_member($uid,$name,$member) {
$gid = group_byname($uid,$name);
if(! $gid)
@@ -171,9 +187,10 @@ function group_get_members($gid) {
if(intval($gid)) {
$r = q("SELECT * FROM `group_member`
LEFT JOIN abook ON abook_xchan = `group_member`.`xchan` left join xchan on xchan_hash = abook_xchan
- WHERE `gid` = %d AND `group_member`.`uid` = %d and not ( abook_flags & %d ) and not ( abook_flags & %d ) and not ( abook_flags & %d ) ORDER BY xchan_name ASC ",
+ WHERE `gid` = %d AND abook_channel = %d and `group_member`.`uid` = %d and not ( abook_flags & %d ) and not ( abook_flags & %d ) and not ( abook_flags & %d ) ORDER BY xchan_name ASC ",
intval($gid),
intval(local_user()),
+ intval(local_user()),
intval(ABOOK_FLAG_SELF),
intval(ABOOK_FLAG_BLOCKED),
intval(ABOOK_FLAG_PENDING)
@@ -221,7 +238,7 @@ function group_side($every="contacts",$each="group",$edit = false, $group_id = 0
$groups = array();
$groups[] = array(
- 'text' => t('All Connections'),
+ 'text' => t('All Channels'),
'id' => 0,
'selected' => (($group_id == 0) ? 'group-selected' : ''),
'href' => $every,
@@ -279,12 +296,14 @@ function group_side($every="contacts",$each="group",$edit = false, $group_id = 0
function expand_groups($a) {
if(! (is_array($a) && count($a)))
return array();
- stringify_array_elms($groups);
- $groups = implode(',', $a);
+ $x = $a;
+ stringify_array_elms($x);
+ $groups = implode(',', $x);
$groups = dbesc($groups);
- $r = q("SELECT xchan FROM `group_member` WHERE `gid` IN ( $groups )");
+ if($groups)
+ $r = q("SELECT xchan FROM group_member WHERE gid IN ( $groups )");
$ret = array();
- if(count($r))
+ if($r)
foreach($r as $rr)
$ret[] = $rr['xchan'];
return $ret;
diff --git a/include/html2bbcode.php b/include/html2bbcode.php
index 985c36eaa..9bb755da5 100644
--- a/include/html2bbcode.php
+++ b/include/html2bbcode.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
/*
html2bbcode.php
Converter for HTML to BBCode
diff --git a/include/html2plain.php b/include/html2plain.php
index b8c9c440d..2f5be7f69 100644
--- a/include/html2plain.php
+++ b/include/html2plain.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once "html2bbcode.php";
function breaklines($line, $level, $wraplength = 75)
@@ -219,4 +219,4 @@ function html2plain($html, $wraplength = 75, $compact = false)
return(trim($message));
}
-?>
+
diff --git a/include/identity.php b/include/identity.php
index 62092443e..8f8a71fee 100644
--- a/include/identity.php
+++ b/include/identity.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('include/zot.php');
require_once('include/crypto.php');
@@ -44,6 +44,29 @@ function validate_channelname($name) {
}
+// Create the system channel for directory synchronisation - this has no account attached
+
+
+function create_dir_account() {
+ create_account(array(
+ 'account_id' => 'xxx', // This will create an identity with an (integer) account_id of 0, but account_id is required
+ 'nickname' => 'dir',
+ 'name' => 'Directory',
+ 'pageflags' => PAGE_DIRECTORY_CHANNEL|PAGE_HIDDEN,
+ 'publish' => 0
+ ));
+}
+
+
+function channel_total() {
+ $r = q("select channel_id from channel where true");
+ if(is_array($r))
+ return count($r);
+ return false;
+}
+
+
+
// Required: name, nickname, account_id
// optional: pageflags
@@ -107,7 +130,7 @@ function create_identity($arr) {
dbesc($hash),
dbesc($key['prvkey']),
dbesc($key['pubkey']),
- intval(PAGE_NORMAL)
+ intval($pageflags)
);
$r = q("select * from channel where channel_account_id = %d
@@ -123,7 +146,8 @@ function create_identity($arr) {
$ret['channel'] = $r[0];
- set_default_login_identity($arr['account_id'],$ret['channel']['channel_id'],false);
+ if(intval($arr['account_id']))
+ set_default_login_identity($arr['account_id'],$ret['channel']['channel_id'],false);
// Ensure that there is a host keypair.
@@ -200,16 +224,18 @@ function create_identity($arr) {
intval(ABOOK_FLAG_SELF)
);
+ if(intval($ret['channel']['channel_account_id'])) {
- // Create a group with no members. This allows somebody to use it
- // right away as a default group for new contacts.
+ // Create a group with no members. This allows somebody to use it
+ // right away as a default group for new contacts.
- require_once('include/group.php');
- group_add($newuid, t('Friends'));
+ require_once('include/group.php');
+ group_add($newuid, t('Friends'));
- call_hooks('register_account', $newuid);
-
- proc_run('php','include/directory.php', $ret['channel']['channel_id']);
+ call_hooks('register_account', $newuid);
+
+ proc_run('php','include/directory.php', $ret['channel']['channel_id']);
+ }
$ret['success'] = true;
return $ret;
@@ -223,11 +249,13 @@ function set_default_login_identity($account_id,$channel_id,$force = true) {
$r = q("select account_default_channel from account where account_id = %d limit 1",
intval($account_id)
);
- if(($r) && (count($r)) && ((! intval($r[0]['account_default_channel'])) || $force)) {
- $r = q("update account set account_default_channel = %d where account_id = %d limit 1",
- intval($channel_id),
- intval($account_id)
- );
+ if($r) {
+ if((intval($r[0]['account_default_channel']) == 0) || ($force)) {
+ $r = q("update account set account_default_channel = %d where account_id = %d limit 1",
+ intval($channel_id),
+ intval($account_id)
+ );
+ }
}
}
@@ -239,7 +267,7 @@ function identity_basic_export($channel_id) {
$ret = array();
- $ret['compatibility'] = array('project' => FRIENDICA_PLATFORM, 'version' => FRIENDICA_VERSION, 'database' => DB_UPDATE_VERSION);
+ $ret['compatibility'] = array('project' => RED_PLATFORM, 'version' => RED_VERSION, 'database' => DB_UPDATE_VERSION);
$r = q("select * from channel where channel_id = %d limit 1",
intval($channel_id)
@@ -275,6 +303,26 @@ function identity_basic_export($channel_id) {
$ret['hubloc'] = $r;
}
+ $r = q("select * from `group` where uid = %d ",
+ intval($channel_id)
+ );
+
+ if($r)
+ $ret['group'] = $r;
+
+ $r = q("select * from group_member where uid = %d ",
+ intval($channel_id)
+ );
+ if($r)
+ $ret['group_member'] = $r;
+
+ $r = q("select * from pconfig where uid = %d",
+ intval($channel_id)
+ );
+ if($r)
+ $ret['config'] = $r;
+
+
$r = q("select type, data from photo where scale = 4 and profile = 1 and uid = %d limit 1",
intval($channel_id)
);
@@ -334,4 +382,4 @@ function identity_basic_import($arr, $seize_primary = false) {
return $ret;
-} \ No newline at end of file
+}
diff --git a/include/iquery.php b/include/iquery.php
deleted file mode 100644
index 0d51134a4..000000000
--- a/include/iquery.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-
-
-function network_query($a,$arr) {
-
-
- $parent_options = '';
- $child_options = '';
-
- $ordering = (($arr['order'] === 'post') ? "`created`" : "`commented`") . " DESC ";
-
- $itemspage = get_pconfig($arr['uid'],'system','itemspage');
- $a->set_pager_itemspage(((intval($itemspage)) ? $itemspage : 40));
-
- $pager_sql = ((intval($arr['update'])) ? '' : sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage'])));
-
- $arr['cmin'] = ((x($arr,'cmin')) ? $arr['cmin'] : 0);
- $arr['cmax'] = ((x($arr,'cmax')) ? $arr['cmax'] : 0);
-
- $simple_update = (($arr['update']) ? " and `item`.`unseen` = 1 " : '');
-
- if($arr['new']) {
-
- // "New Item View" - show all items unthreaded in reverse created date order
-
- $items = q("SELECT `item`.*, `item`.`id` AS `item_id`,
- `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`writable`,
- `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn_id`, `contact`.`self`,
- `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
- FROM `item`, `contact`
- WHERE `item`.`uid` = %d AND `item`.`visible` = 1
- AND `item`.`deleted` = 0 and `item`.`moderated` = 0
- $simple_update
- AND `contact`.`closeness` >= %d and `contact`.`closeness` <= %d
- AND `contact`.`id` = `item`.`contact-id`
- AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- $sql_extra $sql_nets
- ORDER BY `item`.`received` DESC $pager_sql ",
- intval($arr['uid']),
- intval($arr['cmin']),
- intval($arr['cmax'])
-
- );
-
- $items = fetch_post_tags($items);
- return $items;
-
- }
- if($update) {
- $r = q("SELECT `parent` AS `item_id`, `contact`.`uid` AS `contact_uid`
- FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
- WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND
- `contact`.`closeness` >= %d and `contact`.`closeness` <= %d
- (`item`.`deleted` = 0 OR item.verb = '" . ACTIVITY_LIKE ."' OR item.verb = '" . ACTIVITY_DISLIKE . "')
- and `item`.`moderated` = 0 $simple_update
- AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- $sql_extra3 $sql_extra $sql_nets ",
- intval($arr['uid']),
- intval($arr['cmin']),
- intval($arr['cmax'])
- );
- }
- else {
- $r = q("SELECT `item`.`id` AS `item_id`, `contact`.`uid` AS `contact_uid`
- FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
- WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
- AND `item`.`moderated` = 0 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- AND `contact`.`closeness` >= %d and `contact`.`closeness` <= %d
- AND `item`.`parent` = `item`.`id`
- $sql_extra3 $sql_extra $sql_nets
- ORDER BY `item`.$ordering $pager_sql ",
- intval($arr['uid']),
- intval($arr['cmin']),
- intval($arr['cmax'])
- );
- }
-
- // Then fetch all the children of the parents that are on this page
-
- $parents_arr = array();
- $parents_str = '';
-
- if(count($r)) {
- foreach($r as $rr)
- if(! in_array($rr['item_id'],$parents_arr))
- $parents_arr[] = $rr['item_id'];
- $parents_str = implode(', ', $parents_arr);
-
- $items = q("SELECT `item`.*, `item`.`id` AS `item_id`,
- `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`,
- `contact`.`rel`, `contact`.`writable`,
- `contact`.`network`, `contact`.`thumb`, `contact`.`self`,
- `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
- FROM `item`, `contact`
- WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
- AND `item`.`moderated` = 0 AND `contact`.`id` = `item`.`contact-id`
- AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- AND `item`.`parent` IN ( %s )
- $sql_extra ",
- intval($arr['uid']),
- dbesc($parents_str)
- );
-
- $items = fetch_post_tags($items);
-
- $items = conv_sort($items,$ordering);
- }
- else {
- $items = array();
- }
-
- return $items;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/include/items.php b/include/items.php
index 3fd43ca4e..b02e27ce0 100755
--- a/include/items.php
+++ b/include/items.php
@@ -1,9 +1,9 @@
-<?php
+<?php /** @file */
require_once('include/bbcode.php');
require_once('include/oembed.php');
require_once('include/crypto.php');
-require_once('include/Photo.php');
+require_once('include/photo/photo_driver.php');
require_once('include/permissions.php');
@@ -49,237 +49,254 @@ function collect_recipients($item,&$private) {
$recipients = check_list_permissions($item['uid'],$recipients,'view_stream');
+ // add ourself just in case we have nomadic clones that need to get a copy.
+
+ $recipients[] = $item['author_xchan'];
+ if($item['owner_xchan'] != $item['author_xchan'])
+ $recipients[] = $item['owner_xchan'];
return $recipients;
}
-function get_public_feed($channel,$params) {
-
- $type = 'xml';
- $begin = '0000-00-00 00:00:00';
- $end = '';
- $start = 0;
- $records = 40;
- $direction = 'desc';
-
- if(is_array($params)) {
- $type = ((x($params,'type')) ? $params['type'] : $type);
- $begin = ((x($params,'begin')) ? $params['begin'] : $begin);
- $end = ((x($params,'end')) ? $params['end'] : $end);
- $start = ((x($params,'start')) ? $params['start'] : $start);
- $records = ((x($params,'records')) ? $params['records'] : $records);
- $direction = ((x($params,'direction')) ? $params['direction'] : $direction);
- }
-
- switch($type) {
- case 'json':
- header("Content-type: application/atom+json");
+function can_comment_on_post($observer_xchan,$item) {
+ if(! $observer_xchan)
+ return false;
+ if($item['comment_policy'] === 'none')
+ return false;
+ switch($item['comment_policy']) {
+ case 'self':
+ if($observer_xchan === $item['author_xchan'] || $observer_xchan === $item['owner_xchan'])
+ return true;
+ break;
+ case 'public':
+ return false;
+ break;
+ case 'contacts':
+ case '':
+ if(($item['owner']['abook_xchan']) && ($item['owner']['abook_their_perms'] & PERMS_W_COMMENT))
+ return true;
break;
- case 'xml':
default:
- header("Content-type: application/atom+xml");
break;
}
+ if(strstr($item['comment_policy'],'network:') && strstr($item['comment_policy'],'red'))
+ return true;
+ if(strstr($item['comment_policy'],'site:') && strstr($item['comment_policy'],get_app()->get_hostname()))
+ return true;
+
+ return false;
+}
+/**
+ * @function red_zrl_callback
+ * preg_match function when fixing 'naked' links in mod item.php
+ * Check if we've got a hubloc for the site and use a zrl if we do, a url if we don't.
+ *
+ */
-
+function red_zrl_callback($matches) {
+ $m = @parse_url($matches[2]);
+ $zrl = false;
+ if($m['host']) {
+ $r = q("select hubloc_url from hubloc where hubloc_host = '%s' limit 1",
+ dbesc($m['host'])
+ );
+ if($r)
+ $zrl = true;
+ }
+ if($zrl)
+ return $matches[1] . '[zrl=' . $matches[2] . ']' . $matches[2] . '[/zrl]';
+ return $matches[0];
}
-function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) {
- $sitefeed = ((strlen($owner_nick)) ? false : true); // not yet implemented, need to rewrite huge chunks of following logic
- $public_feed = (($dfrn_id) ? false : true);
- $starred = false; // not yet implemented, possible security issues
- $converse = false;
+/**
+ * @function post_activity_item($arr)
+ *
+ * post an activity
+ *
+ * @param array $arr
+ *
+ * In its simplest form one needs only to set $arr['body'] to post a note to the logged in channel's wall.
+ * Much more complex activities can be created. Permissions are checked. No filtering, tag expansion
+ * or other processing is performed.
+ *
+ * @returns array
+ * 'success' => true or false
+ * 'activity' => the resulting activity if successful
+ */
- if($public_feed && $a->argc > 2) {
- for($x = 2; $x < $a->argc; $x++) {
- if($a->argv[$x] == 'converse')
- $converse = true;
- if($a->argv[$x] == 'starred')
- $starred = true;
- if($a->argv[$x] === 'category' && $a->argc > ($x + 1) && strlen($a->argv[$x+1]))
- $category = $a->argv[$x+1];
- }
- }
+function post_activity_item($arr) {
-
+ $ret = array('success' => false);
- // default permissions - anonymous user
+ $is_comment = false;
+ if((($arr['parent']) && $arr['parent'] != $arr['id']) || (($arr['parent_mid']) && $arr['parent_mid'] != $arr['mid']))
+ $is_comment = true;
- $sql_extra = " AND `allow_cid` = '' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' ";
+ if(! x($arr,'item_flags')) {
+ if($is_comment)
+ $arr['item_flags'] = ITEM_ORIGIN;
+ else
+ $arr['item_flags'] = ITEM_ORIGIN | ITEM_WALL | ITEM_THREAD_TOP;
+ }
- $r = q("SELECT `contact`.*, `user`.`uid` AS `user_uid`, `user`.`nickname`, `user`.`timezone`, `user`.`page-flags`
- FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid`
- WHERE `contact`.`self` = 1 AND `user`.`nickname` = '%s' LIMIT 1",
- dbesc($owner_nick)
- );
- if(! count($r))
- killme();
+ $channel = get_app()->get_channel();
+ $observer = get_app()->get_observer();
- $owner = $r[0];
- $owner_id = $owner['user_uid'];
- $owner_nick = $owner['nickname'];
+ $arr['aid'] = ((x($arr,'aid')) ? $arr['aid'] : $channel['channel_account_id']);
+ $arr['uid'] = ((x($arr,'uid')) ? $arr['uid'] : $channel['channel_id']);
- $birthday = feed_birthday($owner_id,$owner['timezone']);
+ if(! perm_is_allowed($arr['uid'],$observer['xchan_hash'],(($is_comment) ? 'post_comments' : 'post_wall'))) {
+ $ret['message'] = t('Permission denied');
+ return $ret;
+ }
- if(! $public_feed) {
+ if(array_key_exists('content_type',$arr) && $arr['content_type'] == 'text/html')
+ $arr['body'] = purify_html($arr['body']);
+ else
+ $arr['body'] = escape_tags($arr['body']);
- $sql_extra = '';
- switch($direction) {
- case (-1):
- $sql_extra = sprintf(" AND `issued_id` = '%s' ", dbesc($dfrn_id));
- $my_id = $dfrn_id;
- break;
- case 0:
- $sql_extra = sprintf(" AND `issued_id` = '%s' AND `duplex` = 1 ", dbesc($dfrn_id));
- $my_id = '1:' . $dfrn_id;
- break;
- case 1:
- $sql_extra = sprintf(" AND `dfrn_id` = '%s' AND `duplex` = 1 ", dbesc($dfrn_id));
- $my_id = '0:' . $dfrn_id;
- break;
- default:
- return false;
- break; // NOTREACHED
- }
- $r = q("SELECT * FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `contact`.`uid` = %d $sql_extra LIMIT 1",
- intval($owner_id)
- );
+ $arr['mid'] = ((x($arr,'mid')) ? $arr['mid'] : item_message_id());
+ $arr['parent_mid'] = ((x($arr,'parent_mid')) ? $arr['parent_mid'] : $arr['mid']);
+ $arr['thr_parent'] = ((x($arr,'thr_parent')) ? $arr['thr_parent'] : $arr['mid']);
- if(! count($r))
- killme();
+ $arr['owner_xchan'] = ((x($arr,'owner_xchan')) ? $arr['owner_xchan'] : $channel['channel_hash']);
+ $arr['author_xchan'] = ((x($arr,'author_xchan')) ? $arr['author_xchan'] : $observer['xchan_hash']);
- $contact = $r[0];
- require_once('include/security.php');
- $groups = init_groups_visitor($contact['id']);
+ $arr['verb'] = ((x($arr,'verb')) ? $arr['verb'] : ACTIVITY_POST);
+ $arr['obj_type'] = ((x($arr,'obj_type')) ? $arr['obj_type'] : ACTIVITY_OBJ_NOTE);
- if(count($groups)) {
- for($x = 0; $x < count($groups); $x ++)
- $groups[$x] = '<' . intval($groups[$x]) . '>' ;
- $gs = implode('|', $groups);
- }
- else
- $gs = '<<>>' ; // Impossible to match
-
- $sql_extra = sprintf("
- AND ( `allow_cid` = '' OR `allow_cid` REGEXP '<%d>' )
- AND ( `deny_cid` = '' OR NOT `deny_cid` REGEXP '<%d>' )
- AND ( `allow_gid` = '' OR `allow_gid` REGEXP '%s' )
- AND ( `deny_gid` = '' OR NOT `deny_gid` REGEXP '%s')
- ",
- intval($contact['id']),
- intval($contact['id']),
- dbesc($gs),
- dbesc($gs)
- );
- }
+ $arr['allow_cid'] = ((x($arr,'allow_cid')) ? $arr['allow_cid'] : $channel['channel_allow_cid']);
+ $arr['allow_gid'] = ((x($arr,'allow_gid')) ? $arr['allow_gid'] : $channel['channel_allow_gid']);
+ $arr['deny_cid'] = ((x($arr,'deny_cid')) ? $arr['deny_cid'] : $channel['channel_deny_cid']);
+ $arr['deny_gid'] = ((x($arr,'deny_gid')) ? $arr['deny_gid'] : $channel['channel_deny_gid']);
- if($public_feed)
- $sort = 'DESC';
- else
- $sort = 'ASC';
+ $arr['comment_policy'] = map_scope($channel['channel_w_comment']);
+
+ // for the benefit of plugins, we will behave as if this is an API call rather than a normal online post
+
+ $_REQUEST['api_source'] = 1;
- if(! strlen($last_update))
- $last_update = 'now -30 days';
+ call_hooks('post_local',$arr);
- if(isset($category)) {
- $sql_extra .= file_tag_file_query('item',$category,'category');
+ if(x($arr,'cancel')) {
+ logger('post_activity_item: post cancelled by plugin.');
+ return $ret;
}
- if($public_feed) {
- if(! $converse)
- $sql_extra .= " AND `contact`.`self` = 1 ";
+
+ $post_id = item_store($arr);
+
+ if($post_id) {
+ $arr['id'] = $post_id;
+ call_hooks('post_local_end', $arr);
+ proc_run('php','include/notifier.php','activity',$post_id);
+ $ret['success'] = true;
+ $r = q("select * from item where id = %d limit 1",
+ intval($post_id)
+ );
+ if($r)
+ $ret['activity'] = $r[0];
}
- $check_date = datetime_convert('UTC','UTC',$last_update,'Y-m-d H:i:s');
+ return $ret;
+
+}
- $r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
- `contact`.`name`, `contact`.`network`, `contact`.`photo`, `contact`.`url`,
- `contact`.`name_date`, `contact`.`uri_date`, `contact`.`avatar_date`,
- `contact`.`thumb`, `contact`.`dfrn_id`, `contact`.`self`,
- `contact`.`id` AS `contact-id`, `contact`.`uid` AS `contact-uid`,
- `sign`.`signed_text`, `sign`.`signature`, `sign`.`signer`
- FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
- LEFT JOIN `sign` ON `sign`.`iid` = `item`.`id`
- WHERE `item`.`uid` = %d AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`parent` != 0
- AND `item`.`wall` = 1 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- AND ( `item`.`edited` > '%s' OR `item`.`changed` > '%s' )
- $sql_extra
- ORDER BY `parent` %s, `created` ASC LIMIT 0, 300",
- intval($owner_id),
- dbesc($check_date),
- dbesc($check_date),
- dbesc($sort)
- );
- // Will check further below if this actually returned results.
- // We will provide an empty feed if that is the case.
+function get_public_feed($channel,$params) {
- $items = $r;
- $items = fetch_post_tags($items);
+ $type = 'xml';
+ $begin = '0000-00-00 00:00:00';
+ $end = '';
+ $start = 0;
+ $records = 40;
+ $direction = 'desc';
- $feed_template = get_markup_template(($dfrn_id) ? 'atom_feed_dfrn.tpl' : 'atom_feed.tpl');
+ if(! $params)
+ $params = array();
- $atom = '';
+ $params['type'] = ((x($params,'type')) ? $params['type'] : 'xml');
+ $params['begin'] = ((x($params,'begin')) ? $params['begin'] : '0000-00-00 00:00:00');
+ $params['end'] = ((x($params,'end')) ? $params['end'] : datetime_convert('UTC','UTC','now'));
+ $params['start'] = ((x($params,'start')) ? $params['start'] : 0);
+ $params['records'] = ((x($params,'records')) ? $params['records'] : 40);
+ $params['direction'] = ((x($params,'direction')) ? $params['direction'] : 'desc');
+
+ switch($params['type']) {
+ case 'json':
+ header("Content-type: application/atom+json");
+ break;
+ case 'xml':
+ default:
+ header("Content-type: application/atom+xml");
+ break;
+ }
- $hubxml = feed_hublinks();
+
+ return get_feed_for($channel,get_observer_hash(),$params);
+}
- $salmon = feed_salmonlinks($owner_nick);
+function get_feed_for($channel, $observer_hash, $params) {
- $atom .= replace_macros($feed_template, array(
- '$version' => xmlify(FRIENDICA_VERSION),
- '$feed_id' => xmlify($a->get_baseurl() . '/channel/' . $owner_nick),
- '$feed_title' => xmlify($owner['name']),
- '$feed_updated' => xmlify(datetime_convert('UTC', 'UTC', 'now' , ATOM_TIME)) ,
- '$hub' => $hubxml,
- '$salmon' => $salmon,
- '$name' => xmlify($owner['name']),
- '$profile_page' => xmlify($owner['url']),
- '$photo' => xmlify($owner['photo']),
- '$thumb' => xmlify($owner['thumb']),
- '$picdate' => xmlify(datetime_convert('UTC','UTC',$owner['avatar_date'] . '+00:00' , ATOM_TIME)) ,
- '$uridate' => xmlify(datetime_convert('UTC','UTC',$owner['uri_date'] . '+00:00' , ATOM_TIME)) ,
- '$namdate' => xmlify(datetime_convert('UTC','UTC',$owner['name_date'] . '+00:00' , ATOM_TIME)) ,
- '$birthday' => ((strlen($birthday)) ? '<dfrn:birthday>' . xmlify($birthday) . '</dfrn:birthday>' : ''),
- '$community' => (($owner['page-flags'] == PAGE_COMMUNITY) ? '<dfrn:community>1</dfrn:community>' : '')
- ));
+ if(! channel)
+ http_status_exit(401);
- call_hooks('atom_feed', $atom);
+ if(! perm_is_allowed($channel['channel_id'],$observer_hash,'view_stream'))
+ http_status_exit(403);
- if(! count($items)) {
+ $items = items_fetch(array(
+ 'wall' => '1',
+ 'datequery' => $params['begin'],
+ 'datequery2' => $params['end'],
+ 'start' => $params['start'], // FIXME
+ 'records' => $params['records'], // FIXME
+ 'direction' => $params['direction'], // FIXME
+ 'order' => 'post'
+ ), $channel, $observer_hash, CLIENT_MODE_NORMAL, get_app()->module);
- call_hooks('atom_feed_end', $atom);
- $atom .= '</feed>' . "\r\n";
- return $atom;
- }
+ $feed_template = get_markup_template('atom_feed.tpl');
- foreach($items as $item) {
+ $atom = '';
- // prevent private email from leaking.
- if($item['network'] === NETWORK_MAIL)
- continue;
+ $atom .= replace_macros($feed_template, array(
+ '$version' => xmlify(RED_VERSION),
+ '$red' => xmlify(RED_PLATFORM),
+ '$feed_id' => xmlify($channel['channel_url']),
+ '$feed_title' => xmlify($channel['channel_name']),
+ '$feed_updated' => xmlify(datetime_convert('UTC', 'UTC', 'now' , ATOM_TIME)) ,
+ '$hub' => '', // feed_hublinks(),
+ '$salmon' => '', // feed_salmonlinks($channel['channel_address']),
+ '$name' => xmlify($channel['channel_name']),
+ '$profile_page' => xmlify($channel['channel_url']),
+ '$mimephoto' => xmlify($channel['xchan_photo_mimetype']),
+ '$photo' => xmlify($channel['xchan_photo_l']),
+ '$thumb' => xmlify($channel['xchan_photo_m']),
+ '$picdate' => '',
+ '$uridate' => '',
+ '$namdate' => '',
+ '$birthday' => '',
+ '$community' => '',
+ ));
- // public feeds get html, our own nodes use bbcode
+ call_hooks('atom_feed', $atom);
- if($public_feed) {
- $type = 'html';
- // catch any email that's in a public conversation and make sure it doesn't leak
- if($item['private'])
+ if($items) {
+ $type = 'html';
+ foreach($items as $item) {
+ if($item['item_private'])
continue;
- }
- else {
- $type = 'text';
- }
- $atom .= atom_entry($item,$type,null,$owner,true);
+ $atom .= atom_entry($item,$type,null,$owner,true);
+ }
}
call_hooks('atom_feed_end', $atom);
@@ -300,8 +317,7 @@ function construct_activity_object($item) {
if($item['object']) {
$o = '<as:object>' . "\r\n";
- $r = parse_xml_string($item['object'],false);
-
+ $r = json_decode($item['object'],false);
if(! $r)
return '';
@@ -311,7 +327,8 @@ function construct_activity_object($item) {
$o .= '<id>' . xmlify($r->id) . '</id>' . "\r\n";
if($r->title)
$o .= '<title>' . xmlify($r->title) . '</title>' . "\r\n";
- if($r->link) {
+ if($r->links) {
+ // FIXME!!
if(substr($r->link,0,1) === '<') {
$r->link = preg_replace('/\<link(.*?)\"\>/','<link$1"/>',$r->link);
$o .= $r->link;
@@ -332,7 +349,7 @@ function construct_activity_target($item) {
if($item['target']) {
$o = '<as:target>' . "\r\n";
- $r = parse_xml_string($item['target'],false);
+ $r = json_decode($item['target'],false);
if(! $r)
return '';
if($r->type)
@@ -341,7 +358,8 @@ function construct_activity_target($item) {
$o .= '<id>' . xmlify($r->id) . '</id>' . "\r\n";
if($r->title)
$o .= '<title>' . xmlify($r->title) . '</title>' . "\r\n";
- if($r->link) {
+ if($r->links) {
+ // FIXME !!!
if(substr($r->link,0,1) === '<') {
if(strstr($r->link,'&') && (! strstr($r->link,'&amp;')))
$r->link = str_replace('&','&amp;', $r->link);
@@ -365,7 +383,7 @@ function construct_activity_target($item) {
* The purpose of this function is to apply system message length limits to
* imported messages without including any embedded photos in the length
*/
-if(! function_exists('limit_body_size')) {
+
function limit_body_size($body) {
$maxlen = get_max_import_size();
@@ -443,7 +461,7 @@ function limit_body_size($body) {
}
else
return $body;
-}}
+}
function title_is_body($title, $body) {
@@ -473,7 +491,6 @@ function title_is_body($title, $body) {
function get_item_elements($x) {
$arr = array();
-
$arr['body'] = (($x['body']) ? htmlentities($x['body'],ENT_COMPAT,'UTF-8',false) : '');
$arr['created'] = datetime_convert('UTC','UTC',$x['created']);
@@ -488,9 +505,14 @@ function get_item_elements($x) {
$arr['edited'] = datetime_convert();
$arr['title'] = (($x['title']) ? htmlentities($x['title'], ENT_COMPAT,'UTF-8',false) : '');
+
+ if(mb_strlen($arr['title']) > 255)
+ $arr['title'] = mb_substr($arr['title'],0,255);
+
+
$arr['app'] = (($x['app']) ? htmlentities($x['app'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['uri'] = (($x['message_id']) ? htmlentities($x['message_id'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['parent_uri'] = (($x['message_top']) ? htmlentities($x['message_top'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['mid'] = (($x['message_id']) ? htmlentities($x['message_id'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['parent_mid'] = (($x['message_top']) ? htmlentities($x['message_top'], ENT_COMPAT,'UTF-8',false) : '');
$arr['thr_parent'] = (($x['message_parent']) ? htmlentities($x['message_parent'], ENT_COMPAT,'UTF-8',false) : '');
$arr['plink'] = (($x['permalink']) ? htmlentities($x['permalink'], ENT_COMPAT,'UTF-8',false) : '');
@@ -500,7 +522,8 @@ function get_item_elements($x) {
$arr['mimetype'] = (($x['mimetype']) ? htmlentities($x['mimetype'], ENT_COMPAT,'UTF-8',false) : '');
$arr['obj_type'] = (($x['object_type']) ? htmlentities($x['object_type'], ENT_COMPAT,'UTF-8',false) : '');
$arr['tgt_type'] = (($x['target_type']) ? htmlentities($x['target_type'], ENT_COMPAT,'UTF-8',false) : '');
-
+ $arr['comment_policy'] = (($x['comment_scope']) ? htmlentities($x['comment_scope'], ENT_COMPAT,'UTF-8',false) : 'contacts');
+
$arr['object'] = activity_sanitise($x['object']);
$arr['target'] = activity_sanitise($x['target']);
@@ -509,6 +532,21 @@ function get_item_elements($x) {
$arr['item_private'] = ((array_key_exists('flags',$x) && is_array($x['flags']) && in_array('private',$x['flags'])) ? 1 : 0);
+ $arr['item_flags'] = 0;
+
+ // if it's a private post, encrypt it in the DB.
+ // We have to do that here because we need to cleanse the input and prevent bad stuff from getting in,
+ // and we need plaintext to do that.
+
+ if(intval($arr['item_private'])) {
+ $arr['item_flags'] = $arr['item_flags'] | ITEM_OBSCURED;
+ $key = get_config('system','pubkey');
+ if($arr['title'])
+ $arr['title'] = json_encode(aes_encapsulate($arr['title'],$key));
+ if($arr['body'])
+ $arr['body'] = json_encode(aes_encapsulate($arr['body'],$key));
+ }
+
if(array_key_exists('flags',$x) && in_array('deleted',$x['flags']))
$arr['item_restrict'] = ITEM_DELETED;
@@ -564,20 +602,32 @@ function encode_item($item) {
logger('encode_item: ' . print_r($item,true));
- $r = q("select channel_r_stream from channel where channel_id = %d limit 1",
+ $r = q("select channel_r_stream, channel_w_comment from channel where channel_id = %d limit 1",
intval($item['uid'])
);
- if($r)
+ if($r) {
$public_scope = $r[0]['channel_r_stream'];
- else
+ $comment_scope = $r[0]['channel_w_comment'];
+ }
+ else {
$public_scope = 0;
+ $comment_scope = 0;
+ }
$scope = map_scope($public_scope);
-
+ $c_scope = map_scope($comment_scope);
+
+ if(array_key_exists('item_flags',$item) && ($item['item_flags'] & ITEM_OBSCURED)) {
+ $key = get_config('system','prvkey');
+ if($item['title'])
+ $item['title'] = aes_unencapsulate(json_decode_plus($item['title']),$key);
+ if($item['body'])
+ $item['body'] = aes_unencapsulate(json_decode_plus($item['body']),$key);
+ }
if($item['item_restrict'] & ITEM_DELETED) {
- $x['message_id'] = $item['uri'];
+ $x['message_id'] = $item['mid'];
$x['created'] = $item['created'];
$x['flags'] = array('deleted');
$x['owner'] = encode_item_xchan($item['owner']);
@@ -585,8 +635,8 @@ function encode_item($item) {
return $x;
}
- $x['message_id'] = $item['uri'];
- $x['message_top'] = $item['parent_uri'];
+ $x['message_id'] = $item['mid'];
+ $x['message_top'] = $item['parent_mid'];
$x['message_parent'] = $item['thr_parent'];
$x['created'] = $item['created'];
$x['edited'] = $item['edited'];
@@ -605,17 +655,22 @@ function encode_item($item) {
$x['owner'] = encode_item_xchan($item['owner']);
$x['author'] = encode_item_xchan($item['author']);
if($item['object'])
- $x['object'] = json_decode($item['object'],true);
+ $x['object'] = json_decode_plus($item['object']);
if($item['target'])
- $x['target'] = json_decode($item['target'],true);
+ $x['target'] = json_decode_plus($item['target']);
if($item['attach'])
- $x['attach'] = json_decode($item['attach'],true);
+ $x['attach'] = json_decode_plus($item['attach']);
if($y = encode_item_flags($item))
$x['flags'] = $y;
if(! in_array('private',$y))
$x['public_scope'] = $scope;
+ if($item['item_flags'] & ITEM_NOCOMMENT)
+ $x['comment_scope'] = 'none';
+ else
+ $x['comment_scope'] = $c_scope;
+
if($item['term'])
$x['tags'] = encode_item_terms($item['term']);
@@ -763,16 +818,30 @@ function encode_mail($item) {
$x = array();
$x['type'] = 'mail';
- logger('encode_mail: ' . print_r($item,true));
+ if(array_key_exists('mail_flags',$item) && ($item['mail_flags'] & MAIL_OBSCURED)) {
+ $key = get_config('system','prvkey');
+ if($item['title'])
+ $item['title'] = aes_unencapsulate(json_decode_plus($item['title']),$key);
+ if($item['body'])
+ $item['body'] = aes_unencapsulate(json_decode_plus($item['body']),$key);
+ }
- $x['message_id'] = $item['uri'];
- $x['message_parent'] = $item['parent_uri'];
+ $x['message_id'] = $item['mid'];
+ $x['message_parent'] = $item['parent_mid'];
$x['created'] = $item['created'];
$x['title'] = $item['title'];
$x['body'] = $item['body'];
$x['from'] = encode_item_xchan($item['from']);
$x['to'] = encode_item_xchan($item['to']);
+ $x['flags'] = array();
+
+ if($item['mail_flags'] & MAIL_RECALLED) {
+ $x['flags'][] = 'recalled';
+ $x['title'] = '';
+ $x['body'] = '';
+ }
+
return $x;
}
@@ -782,16 +851,33 @@ function get_mail_elements($x) {
$arr = array();
- $arr['body'] = (($x['body']) ? htmlentities($x['body'],ENT_COMPAT,'UTF-8',false) : '');
+ $arr['body'] = (($x['body']) ? htmlentities($x['body'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['title'] = (($x['title'])? htmlentities($x['title'],ENT_COMPAT,'UTF-8',false) : '');
$arr['created'] = datetime_convert('UTC','UTC',$x['created']);
+ $arr['mail_flags'] = 0;
+
+ if($x['flags'] && is_array($x['flags'])) {
+ if(in_array('recalled',$x['flags'])) {
+ $arr['mail_flags'] |= MAIL_RECALLED;
+ }
+ }
+
+ $key = get_config('system','pubkey');
+ $arr['mail_flags'] |= MAIL_OBSCURED;
+ $arr['body'] = htmlentities($arr['body'],ENT_COMPAT,'UTF-8',false);
+ if($arr['body'])
+ $arr['body'] = json_encode(aes_encapsulate($arr['body'],$key));
+ $arr['title'] = htmlentities($arr['title'],ENT_COMPAT,'UTF-8',false);
+ if($arr['title'])
+ $arr['title'] = json_encode(aes_encapsulate($arr['title'],$key));
+
if($arr['created'] > datetime_convert())
$arr['created'] = datetime_convert();
- $arr['title'] = (($x['title']) ? htmlentities($x['title'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['uri'] = (($x['message_id']) ? htmlentities($x['message_id'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['parent_uri'] = (($x['message_parent']) ? htmlentities($x['message_parent'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['mid'] = (($x['message_id']) ? htmlentities($x['message_id'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['parent_mid'] = (($x['message_parent']) ? htmlentities($x['message_parent'], ENT_COMPAT,'UTF-8',false) : '');
if(import_author_xchan($x['from']))
@@ -822,6 +908,7 @@ function get_profile_elements($x) {
$arr['desc'] = (($x['title']) ? htmlentities($x['title'],ENT_COMPAT,'UTF-8',false) : '');
$arr['dob'] = datetime_convert('UTC','UTC',$x['birthday'],'Y-m-d');
+ $arr['age'] = (($x['age']) ? intval($x['age']) : 0);
$arr['gender'] = (($x['gender']) ? htmlentities($x['gender'], ENT_COMPAT,'UTF-8',false) : '');
$arr['marital'] = (($x['marital']) ? htmlentities($x['marital'], ENT_COMPAT,'UTF-8',false) : '');
@@ -841,8 +928,6 @@ function get_profile_elements($x) {
function get_atom_elements($feed,$item) {
- require_once('library/HTMLPurifier.auto.php');
- require_once('include/html2bbcode.php');
$best_photo = array();
@@ -857,13 +942,14 @@ function get_atom_elements($feed,$item) {
$res['author-name'] = unxmlify($feed->get_title());
$res['author-link'] = unxmlify($feed->get_permalink());
}
- $res['uri'] = unxmlify($item->get_id());
+ $res['mid'] = unxmlify($item->get_id());
$res['title'] = unxmlify($item->get_title());
$res['body'] = unxmlify($item->get_content());
$res['plink'] = unxmlify($item->get_link(0));
// removing the content of the title if its identically to the body
// This helps with auto generated titles e.g. from tumblr
+
if (title_is_body($res["title"], $res["body"]))
$res['title'] = "";
@@ -978,14 +1064,7 @@ function get_atom_elements($feed,$item) {
$res['body'] = oembed_html2bbcode($res['body']);
- $config = HTMLPurifier_Config::createDefault();
- $config->set('Cache.DefinitionImpl', null);
-
- // we shouldn't need a whitelist, because the bbcode converter
- // will strip out any unsupported tags.
-
- $purifier = new HTMLPurifier($config);
- $res['body'] = $purifier->purify($res['body']);
+ $res['body'] = purify_html($res['body']);
$res['body'] = @html2bbcode($res['body']);
@@ -1212,6 +1291,7 @@ function get_atom_elements($feed,$item) {
// This is some experimental stuff. By now retweets are shown with "RT:"
// But: There is data so that the message could be shown similar to native retweets
// There is some better way to parse this array - but it didn't worked for me.
+
$child = $item->feed->data["child"][SIMPLEPIE_NAMESPACE_ATOM_10]["feed"][0]["child"][SIMPLEPIE_NAMESPACE_ATOM_10]["entry"][0]["child"]["http://activitystrea.ms/spec/1.0/"][object][0]["child"];
if (is_array($child)) {
$message = $child["http://activitystrea.ms/spec/1.0/"]["object"][0]["child"][SIMPLEPIE_NAMESPACE_ATOM_10]["content"][0]["data"];
@@ -1238,12 +1318,6 @@ function get_atom_elements($feed,$item) {
call_hooks('parse_atom', $arr);
- //if (($res["title"] != "") or (strpos($res["body"], "RT @") > 0)) {
- //if (strpos($res["body"], "RT @") !== false) {
- // $debugfile = tempnam("/home/ike/log", "item-res2-");
- // file_put_contents($debugfile, serialize($arr));
- //}
-
return $res;
}
@@ -1275,24 +1349,63 @@ function item_store($arr,$force_parent = false) {
return 0;
}
- $arr['lang'] = detect_language($arr['body']);
+ // Don't let anybody set these, either intentionally or accidentally
- $allowed_languages = get_pconfig($arr['uid'],'system','allowed_languages');
+ if(array_key_exists('id',$arr))
+ unset($arr['id']);
+ if(array_key_exists('parent',$arr))
+ unset($arr['parent']);
+
+ $arr['mimetype'] = ((x($arr,'mimetype')) ? notags(trim($arr['mimetype'])) : 'text/bbcode');
+ $arr['title'] = ((x($arr,'title')) ? notags(trim($arr['title'])) : '');
+ $arr['body'] = ((x($arr,'body')) ? trim($arr['body']) : '');
+
+ $arr['allow_cid'] = ((x($arr,'allow_cid')) ? trim($arr['allow_cid']) : '');
+ $arr['allow_gid'] = ((x($arr,'allow_gid')) ? trim($arr['allow_gid']) : '');
+ $arr['deny_cid'] = ((x($arr,'deny_cid')) ? trim($arr['deny_cid']) : '');
+ $arr['deny_gid'] = ((x($arr,'deny_gid')) ? trim($arr['deny_gid']) : '');
+ $arr['item_private'] = ((x($arr,'item_private')) ? intval($arr['item_private']) : 0 );
+ $arr['item_flags'] = ((x($arr,'item_flags')) ? intval($arr['item_flags']) : 0 );
- if((is_array($allowed_languages)) && ($arr['lang']) && (! array_key_exists($arr['lang'],$allowed_languages))) {
- $translate = array('item' => $arr, 'from' => $arr['lang'], 'to' => $allowed_languages, 'translated' => false);
- call_hooks('item_translate', $translate);
- if((! $translate['translated']) && (intval(get_pconfig($arr['uid'],'system','reject_disallowed_languages')))) {
- logger('item_store: language ' . $arr['lang'] . ' not accepted for uid ' . $arr['uid']);
- return;
+ // this is a bit messy - we really need an input filter chain that temporarily undoes obscuring
+
+ if($arr['mimetype'] != 'text/html') {
+ if((strpos($arr['body'],'<') !== false) || (strpos($arr['body'],'>') !== false))
+ $arr['body'] = escape_tags($arr['body']);
+ if((strpos($arr['title'],'<') !== false) || (strpos($arr['title'],'>') !== false))
+ $arr['title'] = escape_tags($arr['title']);
+ }
+
+ // only detect language if we have text content, and if the post is private but not yet
+ // obscured, make it so.
+
+ if(! ($arr['item_flags'] & ITEM_OBSCURED)) {
+ $arr['lang'] = detect_language($arr['body']);
+
+ $allowed_languages = get_pconfig($arr['uid'],'system','allowed_languages');
+
+ if((is_array($allowed_languages)) && ($arr['lang']) && (! array_key_exists($arr['lang'],$allowed_languages))) {
+ $translate = array('item' => $arr, 'from' => $arr['lang'], 'to' => $allowed_languages, 'translated' => false);
+ call_hooks('item_translate', $translate);
+ if((! $translate['translated']) && (intval(get_pconfig($arr['uid'],'system','reject_disallowed_languages')))) {
+ logger('item_store: language ' . $arr['lang'] . ' not accepted for uid ' . $arr['uid']);
+ return;
+ }
+ $arr = $translate['item'];
}
- $arr = $translate['item'];
+ if($arr['item_private']) {
+ $key = get_config('system','pubkey');
+ $arr['item_flags'] = $arr['item_flags'] | ITEM_OBSCURED;
+ if($arr['title'])
+ $arr['title'] = json_encode(aes_encapsulate($arr['title'],$key));
+ if($arr['body'])
+ $arr['body'] = json_encode(aes_encapsulate($arr['body'],$key));
+ }
+
}
- // Shouldn't happen but we want to make absolutely sure it doesn't leak from a plugin.
- if((strpos($arr['body'],'<') !== false) || (strpos($arr['body'],'>') !== false))
- $arr['body'] = escape_tags($arr['body']);
+
if((x($arr,'object')) && is_array($arr['object'])) {
activity_sanitise($arr['object']);
@@ -1310,7 +1423,7 @@ function item_store($arr,$force_parent = false) {
}
$arr['aid'] = ((x($arr,'aid')) ? intval($arr['aid']) : 0);
- $arr['uri'] = ((x($arr,'uri')) ? notags(trim($arr['uri'])) : random_string());
+ $arr['mid'] = ((x($arr,'mid')) ? notags(trim($arr['mid'])) : random_string());
$arr['author_xchan'] = ((x($arr,'author_xchan')) ? notags(trim($arr['author_xchan'])) : '');
$arr['owner_xchan'] = ((x($arr,'owner_xchan')) ? notags(trim($arr['owner_xchan'])) : '');
$arr['created'] = ((x($arr,'created') !== false) ? datetime_convert('UTC','UTC',$arr['created']) : datetime_convert());
@@ -1319,38 +1432,44 @@ function item_store($arr,$force_parent = false) {
$arr['commented'] = datetime_convert();
$arr['received'] = datetime_convert();
$arr['changed'] = datetime_convert();
- $arr['mimetype'] = ((x($arr,'mimetype')) ? notags(trim($arr['mimetype'])) : 'text/bbcode');
- $arr['title'] = ((x($arr,'title')) ? notags(trim($arr['title'])) : '');
$arr['location'] = ((x($arr,'location')) ? notags(trim($arr['location'])) : '');
$arr['coord'] = ((x($arr,'coord')) ? notags(trim($arr['coord'])) : '');
- $arr['parent_uri'] = ((x($arr,'parent_uri')) ? notags(trim($arr['parent_uri'])) : '');
+ $arr['parent_mid'] = ((x($arr,'parent_mid')) ? notags(trim($arr['parent_mid'])) : '');
+ $arr['thr_parent'] = ((x($arr,'thr_parent')) ? notags(trim($arr['thr_parent'])) : $arr['parent_mid']);
$arr['verb'] = ((x($arr,'verb')) ? notags(trim($arr['verb'])) : '');
$arr['obj_type'] = ((x($arr,'obj_type')) ? notags(trim($arr['obj_type'])) : '');
$arr['object'] = ((x($arr,'object')) ? trim($arr['object']) : '');
$arr['tgt_type'] = ((x($arr,'tgt_type')) ? notags(trim($arr['tgt_type'])) : '');
$arr['target'] = ((x($arr,'target')) ? trim($arr['target']) : '');
$arr['plink'] = ((x($arr,'plink')) ? notags(trim($arr['plink'])) : '');
- $arr['allow_cid'] = ((x($arr,'allow_cid')) ? trim($arr['allow_cid']) : '');
- $arr['allow_gid'] = ((x($arr,'allow_gid')) ? trim($arr['allow_gid']) : '');
- $arr['deny_cid'] = ((x($arr,'deny_cid')) ? trim($arr['deny_cid']) : '');
- $arr['deny_gid'] = ((x($arr,'deny_gid')) ? trim($arr['deny_gid']) : '');
- $arr['item_private'] = ((x($arr,'item_private')) ? intval($arr['item_private']) : 0 );
- $arr['body'] = ((x($arr,'body')) ? trim($arr['body']) : '');
$arr['attach'] = ((x($arr,'attach')) ? notags(trim($arr['attach'])) : '');
$arr['app'] = ((x($arr,'app')) ? notags(trim($arr['app'])) : '');
$arr['item_restrict'] = ((x($arr,'item_restrict')) ? intval($arr['item_restrict']) : 0 );
- $arr['item_flags'] = ((x($arr,'item_flags')) ? intval($arr['item_flags']) : 0 );
+
+ $arr['comment_policy'] = ((x($arr,'comment_policy')) ? notags(trim($arr['comment_policy'])) : 'contacts' );
+
$arr['item_flags'] = $arr['item_flags'] | ITEM_UNSEEN;
-
- $arr['thr_parent'] = $arr['parent_uri'];
- $arr['llink'] = z_root() . '/display/' . $arr['uri'];
+ if($arr['comment_policy'] == 'none')
+ $arr['item_flags'] = $arr['item_flags'] | ITEM_NOCOMMENT;
+
+
+
+ // handle time travelers
+ // Allow a bit of fudge in case somebody just has a slightly slow/fast clock
+
+ $d1 = new DateTime('now +10 minutes', new DateTimeZone('UTC'));
+ $d2 = new DateTime($arr['created'] . '+00:00');
+ if($d2 > $d1)
+ $arr['item_restrict'] = $arr['item_restrict'] | ITEM_DELAYED_PUBLISH;
+
+ $arr['llink'] = z_root() . '/display/' . $arr['mid'];
if(! $arr['plink'])
$arr['plink'] = $arr['llink'];
- if($arr['parent_uri'] === $arr['uri']) {
+ if($arr['parent_mid'] === $arr['mid']) {
$parent_id = 0;
$parent_deleted = 0;
$allow_cid = $arr['allow_cid'];
@@ -1364,23 +1483,23 @@ function item_store($arr,$force_parent = false) {
// find the parent and snarf the item id and ACL's
// and anything else we need to inherit
- $r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d ORDER BY `id` ASC LIMIT 1",
- dbesc($arr['parent_uri']),
+ $r = q("SELECT * FROM `item` WHERE `mid` = '%s' AND `uid` = %d ORDER BY `id` ASC LIMIT 1",
+ dbesc($arr['parent_mid']),
intval($arr['uid'])
);
- if(count($r)) {
+ if($r) {
// is the new message multi-level threaded?
// even though we don't support it now, preserve the info
// and re-attach to the conversation parent.
- if($r[0]['uri'] != $r[0]['parent_uri']) {
- $arr['parent_uri'] = $r[0]['parent_uri'];
- $z = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `parent_uri` = '%s' AND `uid` = %d
+ if($r[0]['mid'] != $r[0]['parent_mid']) {
+ $arr['parent_mid'] = $r[0]['parent_mid'];
+ $z = q("SELECT * FROM `item` WHERE `mid` = '%s' AND `parent_mid` = '%s' AND `uid` = %d
ORDER BY `id` ASC LIMIT 1",
- dbesc($r[0]['parent_uri']),
- dbesc($r[0]['parent_uri']),
+ dbesc($r[0]['parent_mid']),
+ dbesc($r[0]['parent_mid']),
intval($arr['uid'])
);
if($z && count($z))
@@ -1412,22 +1531,8 @@ function item_store($arr,$force_parent = false) {
$arr['item_private'] = 0;
}
else {
-
- // Allow one to see reply tweets from status.net even when
- // we don't have or can't see the original post.
-
- if($force_parent) {
- logger('item_store: $force_parent=true, reply converted to top-level post.');
- $parent_id = 0;
- $arr['parent_uri'] = $arr['uri'];
- $arr['flags'] = $arr['flags'] | ITEM_THREAD_TOP;
- }
- else {
- logger('item_store: item parent was not found - ignoring item');
- return 0;
- }
-
- $parent_deleted = 0;
+ logger('item_store: item parent was not found - ignoring item');
+ return 0;
}
}
@@ -1435,8 +1540,8 @@ function item_store($arr,$force_parent = false) {
$arr['item_restrict'] = $arr['item_restrict'] | ITEM_DELETED;
- $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
- dbesc($arr['uri']),
+ $r = q("SELECT `id` FROM `item` WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
+ dbesc($arr['mid']),
intval($arr['uid'])
);
if($r) {
@@ -1471,8 +1576,8 @@ function item_store($arr,$force_parent = false) {
// find the item we just created
- $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' AND `uid` = %d ORDER BY `id` ASC ",
- $arr['uri'], // already dbesc'd
+ $r = q("SELECT `id` FROM `item` WHERE `mid` = '%s' AND `uid` = %d ORDER BY `id` ASC ",
+ $arr['mid'], // already dbesc'd
intval($arr['uid'])
);
@@ -1486,25 +1591,25 @@ function item_store($arr,$force_parent = false) {
}
if(count($r) > 1) {
logger('item_store: duplicated post occurred. Removing duplicates.');
- q("DELETE FROM `item` WHERE `uri` = '%s' AND `uid` = %d AND `id` != %d ",
- $arr['uri'],
+ q("DELETE FROM `item` WHERE `mid` = '%s' AND `uid` = %d AND `id` != %d ",
+ $arr['mid'],
intval($arr['uid']),
intval($current_post)
);
}
- if((! $parent_id) || ($arr['parent_uri'] === $arr['uri']))
+ if((! $parent_id) || ($arr['parent_mid'] === $arr['mid']))
$parent_id = $current_post;
if(strlen($allow_cid) || strlen($allow_gid) || strlen($deny_cid) || strlen($deny_gid))
$private = 1;
else
- $private = $arr['private'];
+ $private = $arr['item_private'];
// Set parent id - and also make sure to inherit the parent's ACL's.
- $r = q("UPDATE `item` SET `parent` = %d, `allow_cid` = '%s', `allow_gid` = '%s',
- `deny_cid` = '%s', `deny_gid` = '%s', `item_private` = %d WHERE `id` = %d LIMIT 1",
+ $r = q("UPDATE item SET parent = %d, allow_cid = '%s', allow_gid = '%s',
+ deny_cid = '%s', deny_gid = '%s', item_private = %d WHERE id = %d LIMIT 1",
intval($parent_id),
dbesc($allow_cid),
dbesc($allow_gid),
@@ -1520,7 +1625,7 @@ function item_store($arr,$force_parent = false) {
$arr['allow_gid'] = $allow_gid;
$arr['deny_cid'] = $deny_cid;
$arr['deny_gid'] = $deny_gid;
- $arr['private'] = $private;
+ $arr['item_private'] = $private;
// Store taxonomy
@@ -1544,7 +1649,7 @@ function item_store($arr,$force_parent = false) {
// update the commented timestamp on the parent
- q("UPDATE `item` set `commented` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1",
+ q("UPDATE item set commented = '%s', changed = '%s' WHERE id = %d LIMIT 1",
dbesc(datetime_convert()),
dbesc(datetime_convert()),
intval($parent_id)
@@ -1559,6 +1664,172 @@ function item_store($arr,$force_parent = false) {
}
+
+function item_store_update($arr,$force_parent = false) {
+
+ if(! intval($arr['uid'])) {
+ logger('item_store_update: no uid');
+ return 0;
+ }
+ if(! intval($arr['id'])) {
+ logger('item_store_update: no id');
+ return 0;
+ }
+
+ $orig_post_id = $arr['id'];
+ unset($arr['id']);
+ $uid = $arr['uid'];
+ unset($arr['uid']);
+
+
+ $arr['lang'] = detect_language($arr['body']);
+
+ $allowed_languages = get_pconfig($arr['uid'],'system','allowed_languages');
+
+ if((is_array($allowed_languages)) && ($arr['lang']) && (! array_key_exists($arr['lang'],$allowed_languages))) {
+ $translate = array('item' => $arr, 'from' => $arr['lang'], 'to' => $allowed_languages, 'translated' => false);
+ call_hooks('item_translate', $translate);
+ if((! $translate['translated']) && (intval(get_pconfig($arr['uid'],'system','reject_disallowed_languages')))) {
+ logger('item_store: language ' . $arr['lang'] . ' not accepted for uid ' . $arr['uid']);
+ return;
+ }
+ $arr = $translate['item'];
+ }
+
+ // Shouldn't happen but we want to make absolutely sure it doesn't leak from a plugin.
+
+ if((strpos($arr['body'],'<') !== false) || (strpos($arr['body'],'>') !== false))
+ $arr['body'] = escape_tags($arr['body']);
+
+ if((x($arr,'object')) && is_array($arr['object'])) {
+ activity_sanitise($arr['object']);
+ $arr['object'] = json_encode($arr['object']);
+ }
+
+ if((x($arr,'target')) && is_array($arr['target'])) {
+ activity_sanitise($arr['target']);
+ $arr['target'] = json_encode($arr['target']);
+ }
+
+ if((x($arr,'attach')) && is_array($arr['attach'])) {
+ activity_sanitise($arr['attach']);
+ $arr['attach'] = json_encode($arr['attach']);
+ }
+
+ $orig = q("select * from item where id = %d and uid = %d limit 1",
+ intval($orig_post_id),
+ intval($uid)
+ );
+ if(! $orig) {
+ logger('item_store_update: original post not found: ' . $orig_post_id);
+ return 0;
+ }
+
+ unset($arr['aid']);
+ unset($arr['mid']);
+ unset($arr['parent']);
+ unset($arr['parent_mid']);
+ unset($arr['created']);
+ unset($arr['author_xchan']);
+ unset($arr['owner_xchan']);
+ unset($arr['thr_parent']);
+ unset($arr['llink']);
+
+ $arr['edited'] = ((x($arr,'edited') !== false) ? datetime_convert('UTC','UTC',$arr['edited']) : datetime_convert());
+ $arr['expires'] = ((x($arr,'expires') !== false) ? datetime_convert('UTC','UTC',$arr['expires']) : $orig[0]['expires']);
+ $arr['commented'] = datetime_convert();
+ $arr['received'] = datetime_convert();
+ $arr['changed'] = datetime_convert();
+ $arr['mimetype'] = ((x($arr,'mimetype')) ? notags(trim($arr['mimetype'])) : 'text/bbcode');
+ $arr['title'] = ((x($arr,'title')) ? notags(trim($arr['title'])) : '');
+ $arr['location'] = ((x($arr,'location')) ? notags(trim($arr['location'])) : '');
+ $arr['coord'] = ((x($arr,'coord')) ? notags(trim($arr['coord'])) : '');
+ $arr['verb'] = ((x($arr,'verb')) ? notags(trim($arr['verb'])) : '');
+ $arr['obj_type'] = ((x($arr,'obj_type')) ? notags(trim($arr['obj_type'])) : '');
+ $arr['object'] = ((x($arr,'object')) ? trim($arr['object']) : '');
+ $arr['tgt_type'] = ((x($arr,'tgt_type')) ? notags(trim($arr['tgt_type'])) : '');
+ $arr['target'] = ((x($arr,'target')) ? trim($arr['target']) : '');
+ $arr['plink'] = ((x($arr,'plink')) ? notags(trim($arr['plink'])) : $orig[0]['plink']);
+ $arr['allow_cid'] = ((x($arr,'allow_cid')) ? trim($arr['allow_cid']) : $orig[0]['allow_cid']);
+ $arr['allow_gid'] = ((x($arr,'allow_gid')) ? trim($arr['allow_gid']) : $orig[0]['allow_gid']);
+ $arr['deny_cid'] = ((x($arr,'deny_cid')) ? trim($arr['deny_cid']) : $orig[0]['deny_cid']);
+ $arr['deny_gid'] = ((x($arr,'deny_gid')) ? trim($arr['deny_gid']) : $orig[0]['deny_gid']);
+ $arr['item_private'] = ((x($arr,'item_private')) ? intval($arr['item_private']) : $orig[0]['item_private']);
+ $arr['body'] = ((x($arr,'body')) ? trim($arr['body']) : '');
+ $arr['attach'] = ((x($arr,'attach')) ? notags(trim($arr['attach'])) : '');
+ $arr['app'] = ((x($arr,'app')) ? notags(trim($arr['app'])) : '');
+ $arr['item_restrict'] = ((x($arr,'item_restrict')) ? intval($arr['item_restrict']) : $orig[0]['item_restrict'] );
+ $arr['item_flags'] = ((x($arr,'item_flags')) ? intval($arr['item_flags']) : $orig[0]['item_flags'] );
+
+
+ call_hooks('post_remote_update',$arr);
+
+ if(x($arr,'cancel')) {
+ logger('item_store_update: post cancelled by plugin.');
+ return 0;
+ }
+
+ // pull out all the taxonomy stuff for separate storage
+
+ $terms = null;
+ if(array_key_exists('term',$arr)) {
+ $terms = $arr['term'];
+ unset($arr['term']);
+ }
+
+ dbesc_array($arr);
+
+ logger('item_store_update: ' . print_r($arr,true), LOGGER_DATA);
+
+ $str = '';
+ foreach($arr as $k => $v) {
+ if($str)
+ $str .= ",";
+ $str .= " `" . $k . "` = '" . $v . "' ";
+ }
+
+ $r = dbq("update `item` set " . $str . " where id = " . $orig_post_id . " limit 1");
+
+ if($r)
+ logger('item_store_update: updated item ' . $orig_post_id, LOGGER_DEBUG);
+ else {
+ logger('item_store_update: could not update item');
+ return 0;
+ }
+
+ $r = q("delete from term where oid = %d and otype = %d",
+ intval($orig_post_id),
+ intval(TERM_OBJ_POST)
+ );
+
+ if(($terms) && (is_array($terms))) {
+ foreach($terms as $t) {
+ q("insert into term (uid,oid,otype,type,term,url)
+ values(%d,%d,%d,%d,'%s','%s') ",
+ intval($uid),
+ intval($orig_post_id),
+ intval(TERM_OBJ_POST),
+ intval($t['type']),
+ dbesc($t['term']),
+ dbesc($t['url'])
+ );
+ }
+
+ $arr['term'] = $terms;
+ }
+
+ call_hooks('post_remote_update_end',$arr);
+
+ send_status_notifications($orig_post_id,$arr);
+
+ tag_deliver($uid,$orig_post_id);
+
+ return $orig_post_id;
+}
+
+
+
+
function send_status_notifications($post_id,$item) {
$notify = false;
@@ -1581,8 +1852,8 @@ function send_status_notifications($post_id,$item) {
// Was I involved in this conversation?
- $x = q("select * from item where parent_uri = '%s' and uid = %d",
- dbesc($item['parent_uri']),
+ $x = q("select * from item where parent_mid = '%s' and uid = %d",
+ dbesc($item['parent_mid']),
intval($item['uid'])
);
if($x) {
@@ -1604,11 +1875,11 @@ function send_status_notifications($post_id,$item) {
'from_xchan' => $item['author_xchan'],
'to_xchan' => $r[0]['channel_hash'],
'item' => $item,
- 'link' => get_app()->get_baseurl() . '/display/' . $item['uri'],
+ 'link' => get_app()->get_baseurl() . '/display/' . $item['mid'],
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $parent,
- 'parent_uri' => $item['parent_uri']
+ 'parent_mid' => $item['parent_mid']
));
return;
}
@@ -1633,7 +1904,9 @@ function get_item_contact($item,$contacts) {
function tag_deliver($uid,$item_id) {
- // look for mention tags and setup a second delivery chain for forum/community posts if appropriate
+ // Called when we deliver things that might be tagged in ways that require delivery processing.
+ // Handles community tagging of posts and also look for mention tags
+ // and sets up a second delivery chain if appropriate
$a = get_app();
@@ -1649,16 +1922,87 @@ function tag_deliver($uid,$item_id) {
intval($item_id),
intval($uid)
);
- if(! count($i))
+ if(! $i)
return;
$i = fetch_post_tags($i);
$item = $i[0];
+
+ if($item['obj_type'] === ACTIVITY_OBJ_TAGTERM) {
+
+ // We received a community tag activity for a post.
+ // See if we are the owner of the parent item and have given permission to tag our posts.
+ // If so tag the parent post.
+
+ logger('tag_deliver: community tag activity received');
+
+ if(($item['owner_xchan'] === $u[0]['channel_hash']) && (! get_pconfig($u[0]['channel_id'],'system','blocktags'))) {
+ $j_tgt = json_decode_plus($item['target']);
+ if($j_tgt && $j_tgt['id']) {
+ $p = q("select * from item where mid = '%s' and uid = %d limit 1",
+ dbesc($j_tgt['id']),
+ intval($u[0]['channel_id'])
+ );
+ if($p) {
+ $j_obj = json_decode_plus($item['object']);
+ logger('tag_deliver: tag object: ' . print_r($j_obj,true), LOGGER_DATA);
+ if($j_obj && $j_obj['id'] && $j_obj['title']) {
+ if(is_array($j_obj['link']))
+ $taglink = get_rel_link($j_obj['link'],'alternate');
+ store_item_tag($u[0]['channel_id'],$p[0]['id'],TERM_OBJ_POST,TERM_HASHTAG,$j_obj['title'],$j_obj['id']);
+ proc_run('php','include/notifier.php','edit_post',$p[0]['id']);
+ }
+ }
+ }
+ }
+ else
+ logger('tag_deliver: tag permission denied for ' . $u[0]['channel_address']);
+ }
+
+ // This might be a followup by the original post author to a tagged forum
+ // If so setup a second delivery chain
+
+ $r = null;
+
+ if( ! ($item['item_flags'] & ITEM_THREAD_TOP)) {
+ $x = q("select * from item where id = parent and parent = %d and uid = %d limit 1",
+ intval($item['parent']),
+ intval($uid)
+ );
+ if(($x) && ($x[0]['item_flags'] & ITEM_UPLINK) && ($x[0]['author_xchan'] == $item['author_xchan'])) {
+ logger('tag_deliver: creating second delivery chain for owner comment.');
+
+ // now change this copy of the post to a forum head message and deliver to all the tgroup members
+ // also reset all the privacy bits to the forum default permissions
+
+ $private = (($u[0]['allow_cid'] || $u[0]['allow_gid'] || $u[0]['deny_cid'] || $u[0]['deny_gid']) ? 1 : 0);
+
+ $flag_bits = ITEM_WALL|ITEM_ORIGIN;
+
+ $r = q("update item set item_flags = ( item_flags | %d ), owner_xchan = '%s', allow_cid = '%s', allow_gid = '%s',
+ deny_cid = '%s', deny_gid = '%s', item_private = %d where id = %d limit 1",
+ intval($flag_bits),
+ dbesc($u[0]['channel_hash']),
+ dbesc($u[0]['allow_cid']),
+ dbesc($u[0]['allow_gid']),
+ dbesc($u[0]['deny_cid']),
+ dbesc($u[0]['deny_gid']),
+ intval($private),
+ intval($item_id)
+ );
+ if($r)
+ proc_run('php','include/notifier.php','tgroup',$item_id);
+ else
+ logger('tag_deliver: failed to update item');
+ }
+ }
+
$terms = get_terms_oftype($item['term'],TERM_MENTION);
- logger('tag_deliver: post mentions: ' . print_r($terms,true), LOGGER_DATA);
+ if($terms)
+ logger('tag_deliver: post mentions: ' . print_r($terms,true), LOGGER_DATA);
$link = normalise_link($a->get_baseurl() . '/channel/' . $u[0]['channel_address']);
@@ -1687,7 +2031,7 @@ function tag_deliver($uid,$item_id) {
$body = preg_replace('/\[share(.*?)\[\/share\]/','',$item['body']);
- $pattern = '/@\[url\=' . preg_quote($term['url'],'/') . '\]' . preg_quote($u[0]['channel_name'],'/') . '\[\/url\]/';
+ $pattern = '/@\[zrl\=' . preg_quote($term['url'],'/') . '\]' . preg_quote($u[0]['channel_name'],'/') . '\[\/zrl\]/';
if(! preg_match($pattern,$body,$matches)) {
logger('tag_deliver: mention was in a reshare - ignoring');
@@ -1710,16 +2054,20 @@ function tag_deliver($uid,$item_id) {
));
- if(! perm_is_allowed($uid,$item['author_xchan'],'tag_deliver'))
+ if(! perm_is_allowed($uid,$item['author_xchan'],'tag_deliver')) {
+ logger('tag_delivery denied for uid ' . $uid . ' and xchan ' . $item['author_xchan']);
return;
+ }
// tgroup delivery - setup a second delivery chain
// prevent delivery looping - only proceed
// if the message originated elsewhere and is a top-level post
- if(($item['item_flags'] & ITEM_WALL) || ($item['item_flags'] & ITEM_ORIGIN) || (!($item['item_flags'] & ITEM_THREAD_TOP)) || ($item['id'] != $item['parent']))
+ if(($item['item_flags'] & ITEM_WALL) || ($item['item_flags'] & ITEM_ORIGIN) || (!($item['item_flags'] & ITEM_THREAD_TOP)) || ($item['id'] != $item['parent'])) {
+ logger('tag_deliver: item was local or a comment. rejected.');
return;
+ }
logger('tag_deliver: creating second delivery chain.');
@@ -1757,46 +2105,60 @@ function tgroup_check($uid,$item) {
$mention = false;
// check that the message originated elsewhere and is a top-level post
+ // or is a followup and we have already accepted the top level post
- if(($item['wall']) || ($item['origin']) || ($item['uri'] != $item['parent-uri']))
+ if($item['mid'] != $item['parent_mid']) {
+ $r = q("select id from item where mid = '%s' and uid = %d limit 1",
+ dbesc($item['parent_mid']),
+ intval($uid)
+ );
+ if($r)
+ return true;
+ return false;
+ }
+ if(! perm_is_allowed($uid,$item['author_xchan'],'tag_deliver'))
return false;
-
- $u = q("select * from user where uid = %d limit 1",
+ $u = q("select * from channel where channel_id = %d limit 1",
intval($uid)
);
- if(! count($u))
- return false;
-
- $community_page = (($u[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
- $prvgroup = (($u[0]['page-flags'] == PAGE_PRVGROUP) ? true : false);
+ if(! $u)
+ return false;
- $link = normalise_link($a->get_baseurl() . '/channel/' . $u[0]['nickname']);
+ $terms = get_terms_oftype($item['term'],TERM_MENTION);
- // Diaspora uses their own hardwired link URL in @-tags
- // instead of the one we supply with webfinger
+ if($terms)
+ logger('tgroup_check: post mentions: ' . print_r($terms,true), LOGGER_DATA);
- $dlink = normalise_link($a->get_baseurl() . '/u/' . $u[0]['nickname']);
+ $link = normalise_link($a->get_baseurl() . '/channel/' . $u[0]['channel_address']);
- $body = preg_replace("/\[share\](.*?)\[\/share\]/ism", '', $item['body']);
-
- $cnt = preg_match_all('/[\@\!]\[url\=(.*?)\](.*?)\[\/url\]/ism',$body,$matches,PREG_SET_ORDER);
- if($cnt) {
- foreach($matches as $mtch) {
- if(link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) {
+ if($terms) {
+ foreach($terms as $term) {
+ if(($term['term'] == $u[0]['channel_name']) && link_compare($term['url'],$link)) {
$mention = true;
- logger('tgroup_check: mention found: ' . $mtch[2]);
+ break;
}
}
- }
+ }
- if(! $mention)
+ if($mention) {
+ logger('tgroup_check: mention found for ' . $u[0]['channel_name']);
+ }
+ else
return false;
- if((! $community_page) && (! $prvgroup))
- return false;
+ // At this point we've determined that the person receiving this post was mentioned in it.
+ // Now let's check if this mention was inside a reshare so we don't spam a forum
+
+ $body = preg_replace('/\[share(.*?)\[\/share\]/','',$item['body']);
+
+ $pattern = '/@\[zrl\=' . preg_quote($term['url'],'/') . '\]' . preg_quote($u[0]['channel_name'],'/') . '\[\/zrl\]/';
+ if(! preg_match($pattern,$body,$matches)) {
+ logger('tgroup_check: mention was in a reshare - ignoring');
+ return false;
+ }
return true;
@@ -1815,23 +2177,23 @@ function mail_store($arr) {
$arr['body'] = escape_tags($arr['body']);
$arr['account_id'] = ((x($arr,'account_id')) ? intval($arr['account_id']) : 0);
- $arr['uri'] = ((x($arr,'uri')) ? notags(trim($arr['uri'])) : random_string());
+ $arr['mid'] = ((x($arr,'mid')) ? notags(trim($arr['mid'])) : random_string());
$arr['from_xchan'] = ((x($arr,'from_xchan')) ? notags(trim($arr['from_xchan'])) : '');
$arr['to_xchan'] = ((x($arr,'to_xchan')) ? notags(trim($arr['to_xchan'])) : '');
$arr['created'] = ((x($arr,'created') !== false) ? datetime_convert('UTC','UTC',$arr['created']) : datetime_convert());
$arr['title'] = ((x($arr,'title')) ? notags(trim($arr['title'])) : '');
- $arr['parent_uri'] = ((x($arr,'parent_uri')) ? notags(trim($arr['parent_uri'])) : '');
+ $arr['parent_mid'] = ((x($arr,'parent_mid')) ? notags(trim($arr['parent_mid'])) : '');
$arr['body'] = ((x($arr,'body')) ? trim($arr['body']) : '');
$arr['mail_flags'] = ((x($arr,'mail_flags')) ? intval($arr['mail_flags']) : 0 );
- if(! $arr['parent_uri']) {
+ if(! $arr['parent_mid']) {
logger('mail_store: missing parent');
- $arr['parent_uri'] = $arr['uri'];
+ $arr['parent_mid'] = $arr['mid'];
}
- $r = q("SELECT `id` FROM mail WHERE `uri` = '%s' AND channel_id = %d LIMIT 1",
- dbesc($arr['uri']),
+ $r = q("SELECT `id` FROM mail WHERE `mid` = '%s' AND channel_id = %d LIMIT 1",
+ dbesc($arr['mid']),
intval($arr['channel_id'])
);
if($r) {
@@ -1858,8 +2220,8 @@ function mail_store($arr) {
// find the item we just created
- $r = q("SELECT `id` FROM mail WHERE `uri` = '%s' AND `channel_id` = %d ORDER BY `id` ASC ",
- $arr['uri'], // already dbesc'd
+ $r = q("SELECT `id` FROM mail WHERE `mid` = '%s' AND `channel_id` = %d ORDER BY `id` ASC ",
+ $arr['mid'], // already dbesc'd
intval($arr['channel_id'])
);
@@ -1874,8 +2236,8 @@ function mail_store($arr) {
}
if(count($r) > 1) {
logger('mail_store: duplicated post occurred. Removing duplicates.');
- q("DELETE FROM mail WHERE `uri` = '%s' AND `channel_id` = %d AND `id` != %d ",
- $arr['uri'],
+ q("DELETE FROM mail WHERE `mid` = '%s' AND `channel_id` = %d AND `id` != %d ",
+ $arr['mid'],
intval($arr['channel_id']),
intval($current_post)
);
@@ -2177,7 +2539,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
if((is_array($contact)) && ($photo_timestamp) && (strlen($photo_url)) && ($photo_timestamp > $contact['avatar_date'])) {
logger('consume_feed: Updating photo for ' . $contact['name']);
- require_once("Photo.php");
+
$photo_failure = false;
$have_photo = false;
@@ -2198,7 +2560,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
$type = guess_image_type($photo_url,true);
- $img = new Photo($img_str, $type);
+ $img = photo_factory($img_str, $type);
if($img->is_valid()) {
if($have_photo) {
q("DELETE FROM `photo` WHERE `resource_id` = '%s' AND `contact-id` = %d AND `uid` = %d",
@@ -2273,7 +2635,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
*/
$bdtext = sprintf( t('%s\'s birthday'), $contact['name']);
- $bdtext2 = sprintf( t('Happy Birthday %s'), ' [url=' . $contact['url'] . ']' . $contact['name'] . '[/url]' ) ;
+ $bdtext2 = sprintf( t('Happy Birthday %s'), ' [zrl=' . $contact['url'] . ']' . $contact['name'] . '[/zrl]' ) ;
$r = q("INSERT INTO `event` (`uid`,`cid`,`created`,`edited`,`start`,`finish`,`summary`,`desc`,`type`)
@@ -2328,7 +2690,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
foreach($del_entries as $dentry) {
$deleted = false;
if(isset($dentry['attribs']['']['ref'])) {
- $uri = $dentry['attribs']['']['ref'];
+ $mid = $dentry['attribs']['']['ref'];
$deleted = true;
if(isset($dentry['attribs']['']['when'])) {
$when = $dentry['attribs']['']['when'];
@@ -2339,8 +2701,8 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
}
if($deleted && is_array($contact)) {
$r = q("SELECT `item`.*, `contact`.`self` FROM `item` left join `contact` on `item`.`contact-id` = `contact`.`id`
- WHERE `uri` = '%s' AND `item`.`uid` = %d AND `contact-id` = %d AND NOT `item`.`file` LIKE '%%[%%' LIMIT 1",
- dbesc($uri),
+ WHERE `mid` = '%s' AND `item`.`uid` = %d AND `contact-id` = %d AND NOT `item`.`file` LIKE '%%[%%' LIMIT 1",
+ dbesc($mid),
intval($importer['uid']),
intval($contact['id'])
);
@@ -2348,13 +2710,13 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
$item = $r[0];
if(! $item['deleted'])
- logger('consume_feed: deleting item ' . $item['id'] . ' uri=' . $item['uri'], LOGGER_DEBUG);
+ logger('consume_feed: deleting item ' . $item['id'] . ' mid=' . $item['mid'], LOGGER_DEBUG);
if(($item['verb'] === ACTIVITY_TAG) && ($item['obj_type'] === ACTIVITY_OBJ_TAGTERM)) {
$xo = parse_xml_string($item['object'],false);
$xt = parse_xml_string($item['target'],false);
if($xt->type === ACTIVITY_OBJ_NOTE) {
- $i = q("select * from `item` where uri = '%s' and uid = %d limit 1",
+ $i = q("select * from `item` where mid = '%s' and uid = %d limit 1",
dbesc($xt->id),
intval($importer['importer_uid'])
);
@@ -2385,23 +2747,23 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
}
}
- if($item['uri'] == $item['parent_uri']) {
+ if($item['mid'] == $item['parent_mid']) {
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s',
`body` = '', `title` = ''
- WHERE `parent_uri` = '%s' AND `uid` = %d",
+ WHERE `parent_mid` = '%s' AND `uid` = %d",
dbesc($when),
dbesc(datetime_convert()),
- dbesc($item['uri']),
+ dbesc($item['mid']),
intval($importer['uid'])
);
}
else {
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s',
`body` = '', `title` = ''
- WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($when),
dbesc(datetime_convert()),
- dbesc($uri),
+ dbesc($mid),
intval($importer['uid'])
);
}
@@ -2430,7 +2792,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
$rawthread = $item->get_item_tags( NAMESPACE_THREAD,'in-reply-to');
if(isset($rawthread[0]['attribs']['']['ref'])) {
$is_reply = true;
- $parent_uri = $rawthread[0]['attribs']['']['ref'];
+ $parent_mid = $rawthread[0]['attribs']['']['ref'];
}
if(($is_reply) && is_array($contact)) {
@@ -2462,7 +2824,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
}
- $r = q("SELECT `uid`, `edited`, `body` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ $r = q("SELECT `uid`, `edited`, `body` FROM `item` WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($item_id),
intval($importer['uid'])
);
@@ -2476,7 +2838,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
continue;
- $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($datarray['title']),
dbesc($datarray['body']),
dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
@@ -2489,19 +2851,19 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
}
- $datarray['parent_uri'] = $parent_uri;
+ $datarray['parent_mid'] = $parent_mid;
$datarray['uid'] = $importer['uid'];
$datarray['contact-id'] = $contact['id'];
if((activity_match($datarray['verb'],ACTIVITY_LIKE)) || (activity_match($datarray['verb'],ACTIVITY_DISLIKE))) {
$datarray['type'] = 'activity';
$datarray['gravity'] = GRAVITY_LIKE;
// only one like or dislike per person
- $r = q("select id from item where uid = %d and `contact-id` = %d and verb ='%s' and deleted = 0 and (`parent_uri` = '%s' OR `thr_parent` = '%s') limit 1",
+ $r = q("select id from item where uid = %d and `contact-id` = %d and verb ='%s' and deleted = 0 and (`parent_mid` = '%s' OR `thr_parent` = '%s') limit 1",
intval($datarray['uid']),
intval($datarray['contact-id']),
dbesc($datarray['verb']),
- dbesc($parent_uri),
- dbesc($parent_uri)
+ dbesc($parent_mid),
+ dbesc($parent_mid)
);
if($r && count($r))
continue;
@@ -2512,7 +2874,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
$xt = parse_xml_string($datarray['target'],false);
if($xt->type == ACTIVITY_OBJ_NOTE) {
- $r = q("select * from item where `uri` = '%s' AND `uid` = %d limit 1",
+ $r = q("select * from item where `mid` = '%s' AND `uid` = %d limit 1",
dbesc($xt->id),
intval($importer['importer_uid'])
);
@@ -2521,7 +2883,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
// extract tag, if not duplicate, add to parent item
if($xo->id && $xo->content) {
- $newtag = '#[url=' . $xo->id . ']'. $xo->content . '[/url]';
+ $newtag = '#[zrl=' . $xo->id . ']'. $xo->content . '[/zrl]';
if(! (stristr($r[0]['tag'],$newtag))) {
q("UPDATE item SET tag = '%s' WHERE id = %d LIMIT 1",
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . $newtag),
@@ -2564,13 +2926,13 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
$ev = bbtoevent($datarray['body']);
if(x($ev,'desc') && x($ev,'start')) {
$ev['uid'] = $importer['uid'];
- $ev['uri'] = $item_id;
+ $ev['mid'] = $item_id;
$ev['edited'] = $datarray['edited'];
$ev['private'] = $datarray['private'];
if(is_array($contact))
$ev['cid'] = $contact['id'];
- $r = q("SELECT * FROM `event` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ $r = q("SELECT * FROM `event` WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($item_id),
intval($importer['uid'])
);
@@ -2581,7 +2943,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
}
}
- $r = q("SELECT `uid`, `edited`, `body` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ $r = q("SELECT `uid`, `edited`, `body` FROM `item` WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($item_id),
intval($importer['uid'])
);
@@ -2595,7 +2957,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
continue;
- $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($datarray['title']),
dbesc($datarray['body']),
dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
@@ -2639,7 +3001,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
$datarray['wall'] = 1;
}
- $datarray['parent_uri'] = $item_id;
+ $datarray['parent_mid'] = $item_id;
$datarray['uid'] = $importer['uid'];
$datarray['contact-id'] = $contact['id'];
@@ -2723,7 +3085,7 @@ function local_delivery($importer,$data) {
if(($photo_timestamp) && (strlen($photo_url)) && ($photo_timestamp > $importer['avatar_date'])) {
logger('local_delivery: Updating photo for ' . $importer['name']);
- require_once("Photo.php");
+
$photo_failure = false;
$have_photo = false;
@@ -2744,7 +3106,7 @@ function local_delivery($importer,$data) {
$type = guess_image_type($photo_url,true);
- $img = new Photo($img_str, $type);
+ $img = photo_factory($img_str, $type);
if($img->is_valid()) {
if($have_photo) {
q("DELETE FROM `photo` WHERE `resource_id` = '%s' AND `contact-id` = %d AND `uid` = %d",
@@ -2948,8 +3310,8 @@ function local_delivery($importer,$data) {
$msg['body'] = escape_tags(unxmlify($base['content'][0]['data']));
$msg['seen'] = 0;
$msg['replied'] = 0;
- $msg['uri'] = notags(unxmlify($base['id'][0]['data']));
- $msg['parent_uri'] = notags(unxmlify($base['in-reply-to'][0]['data']));
+ $msg['mid'] = notags(unxmlify($base['id'][0]['data']));
+ $msg['parent_mid'] = notags(unxmlify($base['in-reply-to'][0]['data']));
$msg['created'] = datetime_convert(notags(unxmlify('UTC','UTC',$base['sentdate'][0]['data'])));
dbesc_array($msg);
@@ -3004,7 +3366,7 @@ function local_delivery($importer,$data) {
foreach($del_entries as $dentry) {
$deleted = false;
if(isset($dentry['attribs']['']['ref'])) {
- $uri = $dentry['attribs']['']['ref'];
+ $mid = $dentry['attribs']['']['ref'];
$deleted = true;
if(isset($dentry['attribs']['']['when'])) {
$when = $dentry['attribs']['']['when'];
@@ -3018,12 +3380,12 @@ function local_delivery($importer,$data) {
// check for relayed deletes to our conversation
$is_reply = false;
- $r = q("select * from item where uri = '%s' and uid = %d limit 1",
- dbesc($uri),
+ $r = q("select * from item where mid = '%s' and uid = %d limit 1",
+ dbesc($mid),
intval($importer['importer_uid'])
);
if(count($r)) {
- $parent_uri = $r[0]['parent_uri'];
+ $parent_mid = $r[0]['parent_mid'];
if($r[0]['id'] != $r[0]['parent'])
$is_reply = true;
}
@@ -3044,16 +3406,16 @@ function local_delivery($importer,$data) {
$is_a_remote_delete = false;
- $r = q("select `item`.`id`, `item`.`uri`, `item`.`forum_mode`,`item`.`origin`,`item`.`wall`,
+ $r = q("select `item`.`id`, `item`.`mid`, `item`.`forum_mode`,`item`.`origin`,`item`.`wall`,
`contact`.`name`, `contact`.`url`, `contact`.`thumb` from `item`
LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
- WHERE `item`.`uri` = '%s' AND (`item`.`parent_uri` = '%s' or `item`.`thr_parent` = '%s')
+ WHERE `item`.`mid` = '%s' AND (`item`.`parent_mid` = '%s' or `item`.`thr_parent` = '%s')
AND `item`.`uid` = %d
$sql_extra
LIMIT 1",
- dbesc($parent_uri),
- dbesc($parent_uri),
- dbesc($parent_uri),
+ dbesc($parent_mid),
+ dbesc($parent_mid),
+ dbesc($parent_mid),
intval($importer['importer_uid'])
);
if($r && count($r))
@@ -3077,8 +3439,8 @@ function local_delivery($importer,$data) {
}
$r = q("SELECT `item`.*, `contact`.`self` FROM `item` left join contact on `item`.`contact-id` = `contact`.`id`
- WHERE `uri` = '%s' AND `item`.`uid` = %d AND `contact-id` = %d AND NOT `item`.`file` LIKE '%%[%%' LIMIT 1",
- dbesc($uri),
+ WHERE `mid` = '%s' AND `item`.`uid` = %d AND `contact-id` = %d AND NOT `item`.`file` LIKE '%%[%%' LIMIT 1",
+ dbesc($mid),
intval($importer['importer_uid']),
intval($importer['id'])
);
@@ -3089,14 +3451,14 @@ function local_delivery($importer,$data) {
if($item['deleted'])
continue;
- logger('local_delivery: deleting item ' . $item['id'] . ' uri=' . $item['uri'], LOGGER_DEBUG);
+ logger('local_delivery: deleting item ' . $item['id'] . ' mid=' . $item['mid'], LOGGER_DEBUG);
if(($item['verb'] === ACTIVITY_TAG) && ($item['obj_type'] === ACTIVITY_OBJ_TAGTERM)) {
$xo = parse_xml_string($item['object'],false);
$xt = parse_xml_string($item['target'],false);
if($xt->type === ACTIVITY_OBJ_NOTE) {
- $i = q("select * from `item` where uri = '%s' and uid = %d limit 1",
+ $i = q("select * from `item` where mid = '%s' and uid = %d limit 1",
dbesc($xt->id),
intval($importer['importer_uid'])
);
@@ -3128,23 +3490,23 @@ function local_delivery($importer,$data) {
}
}
- if($item['uri'] == $item['parent_uri']) {
+ if($item['mid'] == $item['parent_mid']) {
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s',
`body` = '', `title` = ''
- WHERE `parent_uri` = '%s' AND `uid` = %d",
+ WHERE `parent_mid` = '%s' AND `uid` = %d",
dbesc($when),
dbesc(datetime_convert()),
- dbesc($item['uri']),
+ dbesc($item['mid']),
intval($importer['importer_uid'])
);
}
else {
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s',
`body` = '', `title` = ''
- WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($when),
dbesc(datetime_convert()),
- dbesc($uri),
+ dbesc($mid),
intval($importer['importer_uid'])
);
@@ -3166,7 +3528,7 @@ function local_delivery($importer,$data) {
$rawthread = $item->get_item_tags( NAMESPACE_THREAD, 'in-reply-to');
if(isset($rawthread[0]['attribs']['']['ref'])) {
$is_reply = true;
- $parent_uri = $rawthread[0]['attribs']['']['ref'];
+ $parent_mid = $rawthread[0]['attribs']['']['ref'];
}
if($is_reply) {
@@ -3186,16 +3548,16 @@ function local_delivery($importer,$data) {
$is_a_remote_comment = false;
// POSSIBLE CLEANUP --> Why select so many fields when only forum_mode and wall are used?
- $r = q("select `item`.`id`, `item`.`uri`, `item`.`forum_mode`,`item`.`origin`,`item`.`wall`,
+ $r = q("select `item`.`id`, `item`.`mid`, `item`.`forum_mode`,`item`.`origin`,`item`.`wall`,
`contact`.`name`, `contact`.`url`, `contact`.`thumb` from `item`
LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
- WHERE `item`.`uri` = '%s' AND (`item`.`parent_uri` = '%s' or `item`.`thr_parent` = '%s')
+ WHERE `item`.`mid` = '%s' AND (`item`.`parent_mid` = '%s' or `item`.`thr_parent` = '%s')
AND `item`.`uid` = %d
$sql_extra
LIMIT 1",
- dbesc($parent_uri),
- dbesc($parent_uri),
- dbesc($parent_uri),
+ dbesc($parent_mid),
+ dbesc($parent_mid),
+ dbesc($parent_mid),
intval($importer['importer_uid'])
);
if($r && count($r))
@@ -3220,7 +3582,7 @@ function local_delivery($importer,$data) {
$datarray = get_atom_elements($feed,$item);
- $r = q("SELECT `id`, `uid`, `edited`, `body` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ $r = q("SELECT `id`, `uid`, `edited`, `body` FROM `item` WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($item_id),
intval($importer['importer_uid'])
);
@@ -3236,7 +3598,7 @@ function local_delivery($importer,$data) {
continue;
logger('received updated comment' , LOGGER_DEBUG);
- $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($datarray['title']),
dbesc($datarray['body']),
dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
@@ -3260,7 +3622,7 @@ function local_delivery($importer,$data) {
$datarray['type'] = 'remote-comment';
$datarray['wall'] = 1;
- $datarray['parent_uri'] = $parent_uri;
+ $datarray['parent_mid'] = $parent_mid;
$datarray['uid'] = $importer['importer_uid'];
$datarray['owner-name'] = $own[0]['name'];
$datarray['owner-link'] = $own[0]['url'];
@@ -3273,12 +3635,12 @@ function local_delivery($importer,$data) {
$datarray['gravity'] = GRAVITY_LIKE;
// only one like or dislike per person
- $r = q("select id from item where uid = %d and `contact-id` = %d and verb = '%s' and (`thr_parent` = '%s' or `parent_uri` = '%s') and deleted = 0 limit 1",
+ $r = q("select id from item where uid = %d and `contact-id` = %d and verb = '%s' and (`thr_parent` = '%s' or `parent_mid` = '%s') and deleted = 0 limit 1",
intval($datarray['uid']),
intval($datarray['contact-id']),
dbesc($datarray['verb']),
- dbesc($datarray['parent_uri']),
- dbesc($datarray['parent_uri'])
+ dbesc($datarray['parent_mid']),
+ dbesc($datarray['parent_mid'])
);
if($r && count($r))
@@ -3294,7 +3656,7 @@ function local_delivery($importer,$data) {
// fetch the parent item
- $tagp = q("select * from item where uri = '%s' and uid = %d limit 1",
+ $tagp = q("select * from item where mid = '%s' and uid = %d limit 1",
dbesc($xt->id),
intval($importer['importer_uid'])
);
@@ -3304,7 +3666,7 @@ function local_delivery($importer,$data) {
// extract tag, if not duplicate, and this user allows tags, add to parent item
//FIXME
if($xo->id && $xo->content) {
- $newtag = '#[url=' . $xo->id . ']'. $xo->content . '[/url]';
+ $newtag = '#[zrl=' . $xo->id . ']'. $xo->content . '[/zrl]';
if(! (stristr($tagp[0]['tag'],$newtag))) {
$i = q("SELECT `blocktags` FROM `user` where `uid` = %d LIMIT 1",
intval($importer['importer_uid'])
@@ -3326,13 +3688,13 @@ function local_delivery($importer,$data) {
$parent = 0;
if($posted_id) {
- $r = q("SELECT `parent`, `parent_uri` FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ $r = q("SELECT `parent`, `parent_mid` FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($posted_id),
intval($importer['importer_uid'])
);
if(count($r)) {
$parent = $r[0]['parent'];
- $parent_uri = $r[0]['parent_uri'];
+ $parent_mid = $r[0]['parent_mid'];
}
if(! $is_like) {
@@ -3373,7 +3735,7 @@ function local_delivery($importer,$data) {
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $parent,
- 'parent_uri' => $parent_uri,
+ 'parent_mid' => $parent_mid,
));
}
@@ -3394,7 +3756,7 @@ function local_delivery($importer,$data) {
continue;
- $r = q("SELECT `uid`, `edited`, `body` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ $r = q("SELECT `uid`, `edited`, `body` FROM `item` WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($item_id),
intval($importer['importer_uid'])
);
@@ -3408,7 +3770,7 @@ function local_delivery($importer,$data) {
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
continue;
- $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($datarray['title']),
dbesc($datarray['body']),
dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
@@ -3420,19 +3782,19 @@ function local_delivery($importer,$data) {
continue;
}
- $datarray['parent_uri'] = $parent_uri;
+ $datarray['parent_mid'] = $parent_mid;
$datarray['uid'] = $importer['importer_uid'];
$datarray['contact-id'] = $importer['id'];
if(($datarray['verb'] == ACTIVITY_LIKE) || ($datarray['verb'] == ACTIVITY_DISLIKE)) {
$datarray['type'] = 'activity';
$datarray['gravity'] = GRAVITY_LIKE;
// only one like or dislike per person
- $r = q("select id from item where uid = %d and `contact-id` = %d and verb ='%s' and deleted = 0 and (`parent_uri` = '%s' OR `thr_parent` = '%s') limit 1",
+ $r = q("select id from item where uid = %d and `contact-id` = %d and verb ='%s' and deleted = 0 and (`parent_mid` = '%s' OR `thr_parent` = '%s') limit 1",
intval($datarray['uid']),
intval($datarray['contact-id']),
dbesc($datarray['verb']),
- dbesc($parent_uri),
- dbesc($parent_uri)
+ dbesc($parent_mid),
+ dbesc($parent_mid)
);
if($r && count($r))
continue;
@@ -3445,7 +3807,7 @@ function local_delivery($importer,$data) {
$xt = parse_xml_string($datarray['target'],false);
if($xt->type == ACTIVITY_OBJ_NOTE) {
- $r = q("select * from item where `uri` = '%s' AND `uid` = %d limit 1",
+ $r = q("select * from item where `mid` = '%s' AND `uid` = %d limit 1",
dbesc($xt->id),
intval($importer['importer_uid'])
);
@@ -3456,7 +3818,7 @@ function local_delivery($importer,$data) {
if($xo->content) {
if(! (stristr($r[0]['tag'],trim($xo->content)))) {
q("UPDATE item SET tag = '%s' WHERE id = %d LIMIT 1",
- dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . '#[url=' . $xo->id . ']'. $xo->content . '[/url]'),
+ dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . '#[zrl=' . $xo->id . ']'. $xo->content . '[/zrl]'),
intval($r[0]['id'])
);
}
@@ -3470,8 +3832,8 @@ function local_delivery($importer,$data) {
if(!x($datarray['type']) || $datarray['type'] != 'activity') {
- $myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent_uri` = '%s' AND `uid` = %d AND `parent` != 0 AND `deleted` = 0",
- dbesc($parent_uri),
+ $myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent_mid` = '%s' AND `uid` = %d AND `parent` != 0 AND `deleted` = 0",
+ dbesc($parent_mid),
intval($importer['importer_uid'])
);
@@ -3509,7 +3871,7 @@ function local_delivery($importer,$data) {
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $conv_parent,
- 'parent_uri' => $parent_uri
+ 'parent_mid' => $parent_mid
));
@@ -3536,11 +3898,11 @@ function local_delivery($importer,$data) {
if(x($ev,'desc') && x($ev,'start')) {
$ev['cid'] = $importer['id'];
$ev['uid'] = $importer['uid'];
- $ev['uri'] = $item_id;
+ $ev['mid'] = $item_id;
$ev['edited'] = $datarray['edited'];
$ev['private'] = $datarray['private'];
- $r = q("SELECT * FROM `event` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ $r = q("SELECT * FROM `event` WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($item_id),
intval($importer['uid'])
);
@@ -3551,7 +3913,7 @@ function local_delivery($importer,$data) {
}
}
- $r = q("SELECT `uid`, `edited`, `body` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ $r = q("SELECT `uid`, `edited`, `body` FROM `item` WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($item_id),
intval($importer['importer_uid'])
);
@@ -3565,7 +3927,7 @@ function local_delivery($importer,$data) {
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
continue;
- $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($datarray['title']),
dbesc($datarray['body']),
dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
@@ -3583,7 +3945,7 @@ function local_delivery($importer,$data) {
if($importer['remote_self'])
$datarray['wall'] = 1;
- $datarray['parent_uri'] = $item_id;
+ $datarray['parent_mid'] = $item_id;
$datarray['uid'] = $importer['importer_uid'];
$datarray['contact-id'] = $importer['id'];
@@ -3780,7 +4142,7 @@ function lose_sharer($importer,$contact,$datarray,$item) {
}
-function atom_author($tag,$name,$uri,$h,$w,$photo) {
+function atom_author($tag,$name,$uri,$h,$w,$type,$photo) {
$o = '';
if(! $tag)
return $o;
@@ -3794,8 +4156,8 @@ function atom_author($tag,$name,$uri,$h,$w,$photo) {
$o .= "<$tag>\r\n";
$o .= "<name>$name</name>\r\n";
$o .= "<uri>$uri</uri>\r\n";
- $o .= '<link rel="photo" type="image/jpeg" media:width="' . $w . '" media:height="' . $h . '" href="' . $photo . '" />' . "\r\n";
- $o .= '<link rel="avatar" type="image/jpeg" media:width="' . $w . '" media:height="' . $h . '" href="' . $photo . '" />' . "\r\n";
+ $o .= '<link rel="photo" type="' . $type . '" media:width="' . $w . '" media:height="' . $h . '" href="' . $photo . '" />' . "\r\n";
+ $o .= '<link rel="avatar" type="' . $type . '" media:width="' . $w . '" media:height="' . $h . '" href="' . $photo . '" />' . "\r\n";
call_hooks('atom_author', $o);
@@ -3811,7 +4173,7 @@ function atom_entry($item,$type,$author,$owner,$comment = false,$cid = 0) {
return;
if($item['deleted'])
- return '<at:deleted-entry ref="' . xmlify($item['uri']) . '" when="' . xmlify(datetime_convert('UTC','UTC',$item['edited'] . '+00:00',ATOM_TIME)) . '" />' . "\r\n";
+ return '<at:deleted-entry ref="' . xmlify($item['mid']) . '" when="' . xmlify(datetime_convert('UTC','UTC',$item['edited'] . '+00:00',ATOM_TIME)) . '" />' . "\r\n";
if($item['allow_cid'] || $item['allow_gid'] || $item['deny_cid'] || $item['deny_gid'])
@@ -3823,35 +4185,36 @@ function atom_entry($item,$type,$author,$owner,$comment = false,$cid = 0) {
$o = "\r\n\r\n<entry>\r\n";
if(is_array($author))
- $o .= atom_author('author',$author['name'],$author['url'],80,80,$author['thumb']);
+ $o .= atom_author('author',$author['xchan_name'],$author['xchan_url'],80,80,$author['xchan_photo_mimetype'],$author['xchan_photo_m']);
else
- $o .= atom_author('author',(($item['author-name']) ? $item['author-name'] : $item['name']),(($item['author-link']) ? $item['author-link'] : $item['url']),80,80,(($item['author-avatar']) ? $item['author-avatar'] : $item['thumb']));
- if(strlen($item['owner-name']))
- $o .= atom_author('dfrn:owner',$item['owner-name'],$item['owner-link'],80,80,$item['owner-avatar']);
+ $o .= atom_author('author',$item['author']['xchan_name'],$item['author']['xchan_url'],80,80,$item['author']['xchan_photo_mimetype'], $item['author']['xchan_photo_m']);
- if(($item['parent'] != $item['id']) || ($item['parent_uri'] !== $item['uri']) || (($item['thr_parent'] !== '') && ($item['thr_parent'] !== $item['uri']))) {
- $parent_item = (($item['thr_parent']) ? $item['thr_parent'] : $item['parent_uri']);
- $o .= '<thr:in-reply-to ref="' . xmlify($parent_item) . '" type="text/html" href="' . xmlify($a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['parent']) . '" />' . "\r\n";
+ $o .= atom_author('zot:owner',$item['owner']['xchan_name'],$item['owner']['xchan_url'],80,80,$item['owner']['xchan_photo_mimetype'],$item['owner']['xchan_photo_m']);
+
+ if(($item['parent'] != $item['id']) || ($item['parent_mid'] !== $item['mid']) || (($item['thr_parent'] !== '') && ($item['thr_parent'] !== $item['mid']))) {
+ $parent_item = (($item['thr_parent']) ? $item['thr_parent'] : $item['parent_mid']);
+ $o .= '<thr:in-reply-to ref="' . xmlify($parent_item) . '" type="text/html" href="' . xmlify($item['plink']) . '" />' . "\r\n";
}
- $o .= '<id>' . xmlify($item['uri']) . '</id>' . "\r\n";
+ $o .= '<id>' . xmlify($item['mid']) . '</id>' . "\r\n";
$o .= '<title>' . xmlify($item['title']) . '</title>' . "\r\n";
$o .= '<published>' . xmlify(datetime_convert('UTC','UTC',$item['created'] . '+00:00',ATOM_TIME)) . '</published>' . "\r\n";
$o .= '<updated>' . xmlify(datetime_convert('UTC','UTC',$item['edited'] . '+00:00',ATOM_TIME)) . '</updated>' . "\r\n";
- $o .= '<dfrn:env>' . base64url_encode($body, true) . '</dfrn:env>' . "\r\n";
+ $o .= '<zot:env>' . base64url_encode($body, true) . '</zot:env>' . "\r\n";
+ // FIXME for other content types
$o .= '<content type="' . $type . '" >' . xmlify((($type === 'html') ? bbcode($body) : $body)) . '</content>' . "\r\n";
- $o .= '<link rel="alternate" type="text/html" href="' . xmlify($a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id']) . '" />' . "\r\n";
+ $o .= '<link rel="alternate" type="text/html" href="' . xmlify($item['plink']) . '" />' . "\r\n";
if($item['location']) {
- $o .= '<dfrn:location>' . xmlify($item['location']) . '</dfrn:location>' . "\r\n";
+ $o .= '<zot:location>' . xmlify($item['location']) . '</zot:location>' . "\r\n";
$o .= '<poco:address><poco:formatted>' . xmlify($item['location']) . '</poco:formatted></poco:address>' . "\r\n";
}
if($item['coord'])
$o .= '<georss:point>' . xmlify($item['coord']) . '</georss:point>' . "\r\n";
- if(($item['private']) || strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid']))
- $o .= '<dfrn:private>' . (($item['private']) ? $item['private'] : 1) . '</dfrn:private>' . "\r\n";
+ if(($item['item_private']) || strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid']))
+ $o .= '<zot:private>' . (($item['item_private']) ? $item['item_private'] : 1) . '</zot:private>' . "\r\n";
if($item['app'])
@@ -3867,18 +4230,20 @@ function atom_entry($item,$type,$author,$owner,$comment = false,$cid = 0) {
if(strlen($actarg))
$o .= $actarg;
- $tags = item_getfeedtags($item);
- if(count($tags)) {
- foreach($tags as $t) {
- $o .= '<category scheme="X-DFRN:' . xmlify($t[0]) . ':' . xmlify($t[1]) . '" term="' . xmlify($t[2]) . '" />' . "\r\n";
- }
- }
+ // FIXME
+// $tags = item_getfeedtags($item);
+// if(count($tags)) {
+// foreach($tags as $t) {
+// $o .= '<category scheme="X-DFRN:' . xmlify($t[0]) . ':' . xmlify($t[1]) . '" term="' . xmlify($t[2]) . '" />' . "\r\n";
+// }
+// }
- $o .= item_getfeedattach($item);
+// FIXME
+// $o .= item_getfeedattach($item);
- $mentioned = get_mentions($item,$tags);
- if($mentioned)
- $o .= $mentioned;
+// $mentioned = get_mentions($item,$tags);
+// if($mentioned)
+// $o .= $mentioned;
call_hooks('atom_entry', $o);
@@ -3896,9 +4261,9 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) {
$orig_body = $s;
$new_body = '';
- $img_start = strpos($orig_body, '[img');
+ $img_start = strpos($orig_body, '[zmg');
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
- $img_len = ($img_start !== false ? strpos(substr($orig_body, $img_start + $img_st_close + 1), '[/img]') : false);
+ $img_len = ($img_start !== false ? strpos(substr($orig_body, $img_start + $img_st_close + 1), '[/zmg]') : false);
while( ($img_st_close !== false) && ($img_len !== false) ) {
$img_st_close++; // make it point to AFTER the closing bracket
@@ -3948,13 +4313,13 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) {
$type = $r[0]['type'];
// If a custom width and height were specified, apply before embedding
- if(preg_match("/\[img\=([0-9]*)x([0-9]*)\]/is", substr($orig_body, $img_start, $img_st_close), $match)) {
+ if(preg_match("/\[zmg\=([0-9]*)x([0-9]*)\]/is", substr($orig_body, $img_start, $img_st_close), $match)) {
logger('fix_private_photos: scaling photo', LOGGER_DEBUG);
$width = intval($match[1]);
$height = intval($match[2]);
- $ph = new Photo($data, $type);
+ $ph = photo_factory($data, $type);
if($ph->is_valid()) {
$ph->scaleImage(max($width, $height));
$data = $ph->imageString();
@@ -3970,14 +4335,14 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) {
}
}
- $new_body = $new_body . substr($orig_body, 0, $img_start + $img_st_close) . $image . '[/img]';
- $orig_body = substr($orig_body, $img_start + $img_st_close + $img_len + strlen('[/img]'));
+ $new_body = $new_body . substr($orig_body, 0, $img_start + $img_st_close) . $image . '[/zmg]';
+ $orig_body = substr($orig_body, $img_start + $img_st_close + $img_len + strlen('[/zmg]'));
if($orig_body === false)
$orig_body = '';
- $img_start = strpos($orig_body, '[img');
+ $img_start = strpos($orig_body, '[zmg');
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
- $img_len = ($img_start !== false ? strpos(substr($orig_body, $img_start + $img_st_close + 1), '[/img]') : false);
+ $img_len = ($img_start !== false ? strpos(substr($orig_body, $img_start + $img_st_close + 1), '[/zmg]') : false);
}
$new_body = $new_body . $orig_body;
@@ -4409,39 +4774,52 @@ function zot_feed($uid,$observer_xchan,$mindate) {
if(! $mindate)
$mindate = '0000-00-00 00:00:00';
+ $mindate = dbesc($mindate);
+
if(! perm_is_allowed($uid,$observer_xchan,'view_stream')) {
return $result;
}
-// FIXME
- $sql_extra = item_permissions_sql($uid,$remote_contact,$groups);
+ $sql_extra = item_permissions_sql($uid);
- if($mindate != '0000-00-00 00:00:00')
+ if($mindate != '0000-00-00 00:00:00') {
$sql_extra .= " and created > '$mindate' ";
+ $limit = "";
+ }
+ else
+ $limit = " limit 0, 50 ";
+ $items = array();
-// FIXME
- // We probably should use two queries and pick up total conversations.
- // For now get a chunk of raw posts in ascending created order so that
- // hopefully the parent is imported before we see the kids.
- // This will fail if there are more than $limit kids and you didn't
- // receive the parent via direct delivery
-
- $limit = 200;
-
- $items = q("SELECT item.* from item
- WHERE uid = %d AND item_restrict = 0
+ $r = q("SELECT item.*, item.id as item_id from item
+ WHERE uid = %d AND item_restrict = 0 and id = parent
AND (item_flags & %d)
- $sql_extra ORDER BY created ASC limit 0, $limit",
+ $sql_extra ORDER BY created ASC $limit",
intval($uid),
intval(ITEM_WALL)
);
+ if($r) {
+
+ $parents_str = ids_to_querystr($r,'id');
+
+ $items = q("SELECT `item`.*, `item`.`id` AS `item_id` FROM `item`
+ WHERE `item`.`uid` = %d AND `item`.`item_restrict` = 0
+ AND `item`.`parent` IN ( %s ) ",
+ intval($uid),
+ dbesc($parents_str)
+ );
+
+ }
+
if($items) {
xchan_query($items);
$items = fetch_post_tags($items);
- } else {
- $items = array();
+ require_once('include/conversation.php');
+ $items = conv_sort($items,'ascending');
+
}
+ else
+ $items = array();
foreach($items as $item)
$result[] = encode_item($item);
@@ -4449,3 +4827,235 @@ function zot_feed($uid,$observer_xchan,$mindate) {
return $result;
}
+
+
+
+function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = CLIENT_MODE_NORMAL,$module = 'network') {
+
+ $result = array('success' => false);
+
+ $a = get_app();
+
+ $sql_extra = '';
+ $sql_nets = '';
+ $sql_options = '';
+ $sql_extra2 = '';
+ $sql_extra3 = '';
+ $item_uids = ' true ';
+
+ if($channel) {
+ $uid = $channel['channel_id'];
+ $uidhash = $channel['channel_hash'];
+ $item_uids = " item.uid = " . intval($uid) . " ";
+ }
+
+ if($arr['star'])
+ $sql_options .= " and (item_flags & " . intval(ITEM_STARRED) . ") ";
+
+ if($arr['wall'])
+ $sql_options .= " and (item_flags & " . intval(ITEM_WALL) . ") ";
+
+ $sql_extra = " AND item.parent IN ( SELECT parent FROM item WHERE (item_flags & " . intval(ITEM_THREAD_TOP) . ") $sql_options ) ";
+
+ if($arr['group'] && $uid) {
+ $r = q("SELECT * FROM `group` WHERE id = %d AND uid = %d LIMIT 1",
+ intval($arr['group']),
+ intval($uid)
+ );
+ if(! $r) {
+ $result['message'] = t('Collection not found.');
+ return $result;
+ }
+
+ $contacts = expand_groups(array($arr['group']));
+ if((is_array($contacts)) && count($contacts)) {
+ $contact_str = implode(',',$contacts);
+ }
+ else {
+ $contact_str = ' 0 ';
+ $result['message'] = t('Collection has no members.');
+ }
+
+ $sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND ( author_xchan IN ( $contact_str ) OR owner_xchan in ( $contact_str) or allow_gid like '" . protect_sprintf('%<' . dbesc($r[0]['hash']) . '>%') . "' ) and item_restrict = 0 ) ";
+
+ }
+ elseif($arr['cid'] && $uid) {
+
+ $r = q("SELECT * from abook where abook_id = %d and abook_channel = %d and not ( abook_flags & " . intval(ABOOK_FLAG_BLOCKED) . ") limit 1",
+ intval($arr['cid']),
+ intval($uid)
+ );
+ if($r) {
+ $sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND uid = " . intval($arr['uid']) . " AND ( author_xchan = '" . dbesc($r[0]['abook_xchan']) . "' or owner_xchan = '" . dbesc($r[0]['abook_xchan']) . "' ) and item_restrict = 0 ) ";
+ }
+ else {
+ $result['message'] = t('Connection not found.');
+ return $result;
+ }
+ }
+
+ if($arr['datequery']) {
+ $sql_extra3 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$arr['datequery']))));
+ }
+ if($arr['datequery2']) {
+ $sql_extra3 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$arr['datequery2']))));
+ }
+
+ if(! array_key_exists('nouveau',$arr)) {
+ $sql_extra2 = " AND item.parent = item.id ";
+ $sql_extra3 = '';
+ }
+
+ if($arr['search']) {
+ if(strpos($arr['search'],'#') === 0)
+ $sql_extra .= term_query('item',substr($arr['search'],1),TERM_HASHTAG);
+ else
+ $sql_extra .= sprintf(" AND item.body like '%s' ",
+ dbesc(protect_sprintf('%' . $arr['search'] . '%'))
+ );
+ }
+
+ if(strlen($arr['file'])) {
+ $sql_extra .= term_query('item',$arr['files'],TERM_FILE);
+ }
+
+ if($arr['conv'] && $channel) {
+ $sql_extra .= sprintf(" AND parent IN (SELECT distinct parent from item where ( author_xchan like '%s' or ( item_flags & %d ))) ",
+ dbesc(protect_sprintf($uidhash)),
+ intval(ITEM_MENTIONSME)
+ );
+ }
+
+ if(($client_mode & CLIENT_MODE_UPDATE) && (! ($client_mode & CLIENT_MODE_LOAD))) {
+
+ // only setup pagination on initial page view
+ $pager_sql = '';
+
+ }
+ else {
+ $itemspage = (($channel) ? get_pconfig($uid,'system','itemspage') : 20);
+ $a->set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
+ $pager_sql = sprintf(" LIMIT %d, %d ",intval(get_app()->pager['start']), intval(get_app()->pager['itemspage']));
+ }
+
+
+ if(($arr['cmin'] != 0) || ($arr['cmax'] != 99)) {
+
+ // Not everybody who shows up in the network stream will be in your address book.
+ // By default those that aren't are assumed to have closeness = 99; but this isn't
+ // recorded anywhere. So if cmax is 99, we'll open the search up to anybody in
+ // the stream with a NULL address book entry.
+
+ $sql_nets .= " AND ";
+
+ if($arr['cmax'] == 99)
+ $sql_nets .= " ( ";
+
+ $sql_nets .= "( abook.abook_closeness >= " . intval($arr['cmin']) . " ";
+ $sql_nets .= " AND abook.abook_closeness <= " . intval($arr['cmax']) . " ) ";
+ if($cmax == 99)
+ $sql_nets .= " OR abook.abook_closeness IS NULL ) ";
+ }
+
+ $simple_update = (($client_mode & CLIENT_MODE_UPDATE) ? " and ( item.item_flags & " . intval(ITEM_UNSEEN) . " ) " : '');
+ if($client_mode & CLIENT_MODE_LOAD)
+ $simple_update = '';
+
+ $start = dba_timer();
+
+ require_once('include/security.php');
+ $sql_extra .= item_permissions_sql($channel['channel_id']);
+
+ if($arr['nouveau'] && ($client_mode & CLIENT_MODELOAD) && $channel) {
+ // "New Item View" - show all items unthreaded in reverse created date order
+
+ $items = q("SELECT item.*, item.id AS item_id FROM item
+ WHERE $item_uids AND item_restrict = 0
+ $simple_update
+ $sql_extra $sql_nets
+ ORDER BY item.received DESC $pager_sql "
+ );
+
+ require_once('include/items.php');
+
+ xchan_query($items);
+
+ $items = fetch_post_tags($items,true);
+ }
+ else {
+
+ // Normal conversation view
+
+ if($arr['order'] === 'post')
+ $ordering = "created";
+ else
+ $ordering = "commented";
+
+ if(($client_mode & CLIENT_MODE_LOAD) || ($client_mode & CLIENT_MODE_NORMAL)) {
+
+ // Fetch a page full of parent items for this page
+
+ $r = q("SELECT distinct item.id AS item_id FROM item
+ left join abook on item.author_xchan = abook.abook_xchan
+ WHERE $item_uids AND item.item_restrict = 0
+ AND item.parent = item.id
+ and ((abook.abook_flags & %d) = 0 or abook.abook_flags is null)
+ $sql_extra3 $sql_extra $sql_nets
+ ORDER BY item.$ordering DESC $pager_sql ",
+ intval(ABOOK_FLAG_BLOCKED)
+ );
+
+ }
+ else {
+ // update
+ $r = q("SELECT item.parent AS item_id FROM item
+ left join abook on item.author_xchan = abook.abook_xchan
+ WHERE $item_uids AND item.item_restrict = 0 $simple_update
+ and ((abook.abook_flags & %d) = 0 or abook.abook_flags is null)
+ $sql_extra3 $sql_extra $sql_nets ",
+ intval(ABOOK_FLAG_BLOCKED)
+ );
+ }
+
+ $first = dba_timer();
+
+ // Then fetch all the children of the parents that are on this page
+
+ if($r) {
+
+ $parents_str = ids_to_querystr($r,'item_id');
+
+ $items = q("SELECT item.*, item.id AS item_id FROM item
+ WHERE $item_uids AND item.item_restrict = 0
+ AND item.parent IN ( %s )
+ $sql_extra ",
+ dbesc($parents_str)
+ );
+
+ $second = dba_timer();
+
+ xchan_query($items);
+
+ $third = dba_timer();
+
+ $items = fetch_post_tags($items,true);
+
+ $fourth = dba_timer();
+
+ require_once('include/conversation.php');
+ $items = conv_sort($items,$ordering);
+
+ //logger('items: ' . print_r($items,true));
+
+ }
+ else {
+ $items = array();
+ }
+
+ if($parents_str && $arr['mark_seen'])
+ $update_unseen = ' AND parent IN ( ' . dbesc($parents_str) . ' )';
+ // FIXME finish mark unseen sql
+ }
+
+ return $items;
+} \ No newline at end of file
diff --git a/include/js_strings.php b/include/js_strings.php
index 60a3e1a86..2e4f70774 100644
--- a/include/js_strings.php
+++ b/include/js_strings.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function js_strings() {
return replace_macros(get_markup_template('js_strings.tpl'), array(
diff --git a/include/language.php b/include/language.php
index 56d5f1cf4..2e7ad5ff1 100644
--- a/include/language.php
+++ b/include/language.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
/**
@@ -15,35 +15,33 @@
*
*/
-
-if(! function_exists('get_browser_language')) {
function get_browser_language() {
$langs = array();
if (x($_SERVER,'HTTP_ACCEPT_LANGUAGE')) {
- // break up string into pieces (languages and q factors)
- preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i',
+ // break up string into pieces (languages and q factors)
+ preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i',
$_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse);
- if (count($lang_parse[1])) {
- // create a list like "en" => 0.8
- $langs = array_combine($lang_parse[1], $lang_parse[4]);
-
- // set default to 1 for any without q factor
- foreach ($langs as $lang => $val) {
- if ($val === '') $langs[$lang] = 1;
- }
-
- // sort list based on value
- arsort($langs, SORT_NUMERIC);
- }
+ if (count($lang_parse[1])) {
+ // create a list like "en" => 0.8
+ $langs = array_combine($lang_parse[1], $lang_parse[4]);
+
+ // set default to 1 for any without q factor
+ foreach ($langs as $lang => $val) {
+ if ($val === '') $langs[$lang] = 1;
+ }
+
+ // sort list based on value
+ arsort($langs, SORT_NUMERIC);
+ }
}
else
$langs['en'] = 1;
return $langs;
-}}
+}
function get_best_language() {
@@ -62,7 +60,7 @@ function get_best_language() {
if(isset($preferred))
return $preferred;
- $a = get_app();
+ $a = get_app();
return ((isset($a->config['system']['language'])) ? $a->config['system']['language'] : 'en');
}
@@ -101,15 +99,25 @@ function pop_lang() {
// load string translation table for alternate language
-if(! function_exists('load_translation_table')) {
-function load_translation_table($lang) {
+function load_translation_table($lang, $install = false) {
global $a;
+ $a->strings = array();
if(file_exists("view/$lang/strings.php")) {
include("view/$lang/strings.php");
}
- else
- $a->strings = array();
+
+ if(! $install) {
+ $plugins = q("SELECT name FROM addon WHERE installed=1;");
+ if ($plugins!==false) {
+ foreach($plugins as $p) {
+ $name = $p['name'];
+ if(file_exists("addon/$name/lang/$lang/strings.php")) {
+ include("addon/$name/lang/$lang/strings.php");
+ }
+ }
+ }
+ }
// Allow individual strings to be over-ridden on this site
// Either for the default language or for all languages
@@ -118,11 +126,10 @@ function load_translation_table($lang) {
include("view/local-$lang/strings.php");
}
-}}
+}
// translate string if translation exists
-if(! function_exists('t')) {
function t($s) {
global $a;
@@ -132,9 +139,9 @@ function t($s) {
return is_array($t)?$t[0]:$t;
}
return $s;
-}}
+}
+
-if(! function_exists('tt')){
function tt($singular, $plural, $count){
$a = get_app();
@@ -152,15 +159,14 @@ function tt($singular, $plural, $count){
} else {
return $singular;
}
-}}
+}
// provide a fallback which will not collide with
// a function defined in any language file
-if(! function_exists('string_plural_select_default')) {
function string_plural_select_default($n) {
return ($n != 1);
-}}
+}
diff --git a/include/message.php b/include/message.php
index 00cf30512..fc0d5f2b3 100644
--- a/include/message.php
+++ b/include/message.php
@@ -1,7 +1,8 @@
-<?php
+<?php /** @file */
/* Private Message backend API */
+require_once('include/crypto.php');
// send a private message
@@ -43,37 +44,60 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
$dups = false;
$hash = random_string();
- $uri = $hash . '@' . get_app()->get_hostname();
+ $mid = $hash . '@' . get_app()->get_hostname();
- $r = q("SELECT id FROM mail WHERE uri = '%s' LIMIT 1",
- dbesc($uri));
+ $r = q("SELECT id FROM mail WHERE mid = '%s' LIMIT 1",
+ dbesc($mid));
if(count($r))
$dups = true;
} while($dups == true);
if(! strlen($replyto)) {
- $replyto = $uri;
+ $replyto = $mid;
}
+ /**
+ *
+ * When a photo was uploaded into the message using the (profile wall) ajax
+ * uploader, The permissions are initially set to disallow anybody but the
+ * owner from seeing it. This is because the permissions may not yet have been
+ * set for the post. If it's private, the photo permissions should be set
+ * appropriately. But we didn't know the final permissions on the post until
+ * now. So now we'll look for links of uploaded messages that are in the
+ * post and set them to the same permissions as the post itself.
+ *
+ */
+
+ $match = null;
+ $images = null;
+ if(preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match))
+ $images = $match[1];
+
+ $key = get_config('system','pubkey');
+ if($subject)
+ $subject = json_encode(aes_encapsulate($subject,$key));
+ if($body)
+ $body = json_encode(aes_encapsulate($body,$key));
- $r = q("INSERT INTO mail ( account_id, channel_id, from_xchan, to_xchan, title, body, uri, parent_uri, created )
- VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s' )",
+ $r = q("INSERT INTO mail ( account_id, mail_flags, channel_id, from_xchan, to_xchan, title, body, mid, parent_mid, created )
+ VALUES ( %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s' )",
intval($channel['channel_account_id']),
+ intval(MAIL_OBSCURED),
intval($channel['channel_id']),
dbesc($channel['channel_hash']),
dbesc($recipient),
dbesc($subject),
dbesc($body),
- dbesc($uri),
+ dbesc($mid),
dbesc($replyto),
dbesc(datetime_convert())
);
// verify the save
- $r = q("SELECT * FROM mail WHERE uri = '%s' and channel_id = %d LIMIT 1",
- dbesc($uri),
+ $r = q("SELECT * FROM mail WHERE mid = '%s' and channel_id = %d LIMIT 1",
+ dbesc($mid),
intval($channel['channel_id'])
);
if($r)
@@ -83,35 +107,18 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
return $ret;
}
- /**
- *
- * When a photo was uploaded into the message using the (profile wall) ajax
- * uploader, The permissions are initially set to disallow anybody but the
- * owner from seeing it. This is because the permissions may not yet have been
- * set for the post. If it's private, the photo permissions should be set
- * appropriately. But we didn't know the final permissions on the post until
- * now. So now we'll look for links of uploaded messages that are in the
- * post and set them to the same permissions as the post itself.
- *
- */
-
- $match = null;
-
- if(preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) {
- $images = $match[1];
- if(count($images)) {
- foreach($images as $image) {
- if(! stristr($image,$a->get_baseurl() . '/photo/'))
- continue;
- $image_uri = substr($image,strrpos($image,'/') + 1);
- $image_uri = substr($image_uri,0, strpos($image_uri,'-'));
- $r = q("UPDATE photo SET allow_cid = '%s' WHERE resource_id = '%s' AND uid = %d and allow_cid = '%s'",
- dbesc('<' . $recipient . '>'),
- dbesc($image_uri),
- intval($channel['channel_id']),
- dbesc('<' . $channel['channel_hash'] . '>')
- );
- }
+ if(count($images)) {
+ foreach($images as $image) {
+ if(! stristr($image,$a->get_baseurl() . '/photo/'))
+ continue;
+ $image_uri = substr($image,strrpos($image,'/') + 1);
+ $image_uri = substr($image_uri,0, strpos($image_uri,'-'));
+ $r = q("UPDATE photo SET allow_cid = '%s' WHERE resource_id = '%s' AND uid = %d and allow_cid = '%s'",
+ dbesc('<' . $recipient . '>'),
+ dbesc($image_uri),
+ intval($channel['channel_id']),
+ dbesc('<' . $channel['channel_hash'] . '>')
+ );
}
}
@@ -169,6 +176,15 @@ function private_messages_list($uid, $mailbox = '', $start = 0, $numitems = 0) {
$r[$k]['from'] = find_xchan_in_array($rr['from_xchan'],$c);
$r[$k]['to'] = find_xchan_in_array($rr['to_xchan'],$c);
$r[$k]['seen'] = (($rr['mail_flags'] & MAIL_SEEN) ? 1 : 0);
+ if($r[$k]['mail_flags'] & MAIL_OBSCURED) {
+ logger('unencrypting');
+ $key = get_config('system','prvkey');
+
+ if($r[$k]['title'])
+ $r[$k]['title'] = aes_unencapsulate(json_decode_plus($r[$k]['title']),$key);
+ if($r[$k]['body'])
+ $r[$k]['body'] = aes_unencapsulate(json_decode_plus($r[$k]['body']),$key);
+ }
}
return $r;
@@ -201,6 +217,13 @@ function private_messages_fetch_message($channel_id, $messageitem_id, $updatesee
foreach($messages as $k => $message) {
$messages[$k]['from'] = find_xchan_in_array($message['from_xchan'],$c);
$messages[$k]['to'] = find_xchan_in_array($message['to_xchan'],$c);
+ if($messages[$k]['mail_flags'] & MAIL_OBSCURED) {
+ $key = get_config('system','prvkey');
+ if($messages[$k]['title'])
+ $messages[$k]['title'] = aes_unencapsulate(json_decode_plus($messages[$k]['title']),$key);
+ if($messages[$k]['body'])
+ $messages[$k]['body'] = aes_unencapsulate(json_decode_plus($messages[$k]['body']),$key);
+ }
}
if($updateseen) {
@@ -221,13 +244,13 @@ function private_messages_drop($channel_id, $messageitem_id, $drop_conversation
if($drop_conversation) {
// find the parent_id
- $p = q("SELECT parent_uri FROM mail WHERE id = %d AND channel_id = %d LIMIT 1",
+ $p = q("SELECT parent_mid FROM mail WHERE id = %d AND channel_id = %d LIMIT 1",
intval($messageitem_id),
intval($channel_id)
);
if($p) {
- $r = q("DELETE FROM mail WHERE parent_uri = '%s' AND channel_id = %d ",
- dbesc($p[0]['parent_uri']),
+ $r = q("DELETE FROM mail WHERE parent_mid = '%s' AND channel_id = %d ",
+ dbesc($p[0]['parent_mid']),
intval($channel_id)
);
if($r)
@@ -248,9 +271,9 @@ function private_messages_drop($channel_id, $messageitem_id, $drop_conversation
function private_messages_fetch_conversation($channel_id, $messageitem_id, $updateseen = false) {
- // find the parent_uri of the message being requested
+ // find the parent_mid of the message being requested
- $r = q("SELECT parent_uri from mail WHERE channel_id = %d and id = %d limit 1",
+ $r = q("SELECT parent_mid from mail WHERE channel_id = %d and id = %d limit 1",
intval($channel_id),
intval($messageitem_id)
);
@@ -258,8 +281,8 @@ function private_messages_fetch_conversation($channel_id, $messageitem_id, $upda
if(! $r)
return array();
- $messages = q("select * from mail where parent_uri = '%s' and channel_id = %d order by created asc",
- dbesc($r[0]['parent_uri']),
+ $messages = q("select * from mail where parent_mid = '%s' and channel_id = %d order by created asc",
+ dbesc($r[0]['parent_mid']),
intval($channel_id)
);
@@ -282,14 +305,21 @@ function private_messages_fetch_conversation($channel_id, $messageitem_id, $upda
foreach($messages as $k => $message) {
$messages[$k]['from'] = find_xchan_in_array($message['from_xchan'],$c);
$messages[$k]['to'] = find_xchan_in_array($message['to_xchan'],$c);
+ if($messages[$k]['mail_flags'] & MAIL_OBSCURED) {
+ $key = get_config('system','prvkey');
+ if($messages[$k]['title'])
+ $messages[$k]['title'] = aes_unencapsulate(json_decode_plus($messages[$k]['title']),$key);
+ if($messages[$k]['body'])
+ $messages[$k]['body'] = aes_unencapsulate(json_decode_plus($messages[$k]['body']),$key);
+ }
}
if($updateseen) {
- $r = q("UPDATE `mail` SET mail_flags = (mail_flags ^ %d) where not (mail_flags & %d) and parent_uri = '%s' AND channel_id = %d",
+ $r = q("UPDATE `mail` SET mail_flags = (mail_flags ^ %d) where not (mail_flags & %d) and parent_mid = '%s' AND channel_id = %d",
intval(MAIL_SEEN),
intval(MAIL_SEEN),
- dbesc($r[0]['parent_uri']),
+ dbesc($r[0]['parent_mid']),
intval($channel_id)
);
}
diff --git a/include/nav.php b/include/nav.php
index 5490d6cd4..626caf981 100644
--- a/include/nav.php
+++ b/include/nav.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function nav(&$a) {
@@ -71,7 +71,7 @@ EOT;
$nav['logout'] = Array('logout',t('Logout'), "", t('End this session'));
// user menu
- $nav['usermenu'][] = Array('channel/' . $channel['channel_address'], t('Status'), "", t('Your posts and conversations'));
+ $nav['usermenu'][] = Array('channel/' . $channel['channel_address'], t('Home'), "", t('Your posts and conversations'));
$nav['usermenu'][] = Array('profile/' . $channel['channel_address'], t('View Profile'), "", t('Your profile page'));
if(feature_enabled(local_user(),'multi_profiles'))
$nav['usermenu'][] = Array('profiles', t('Edit Profiles'),"", t('Manage/Edit Profiles'));
@@ -107,8 +107,10 @@ EOT;
*/
$homelink = get_my_url();
- if(! $homelink)
- $homelink = ((x($_SESSION,'visitor_home')) ? $_SESSION['visitor_home'] : '');
+ if(! $homelink) {
+ $observer = $a->get_observer();
+ $homelink = (($observer) ? $observer['xchan_url'] : '');
+ }
if(($a->module != 'home') && (! (local_user())))
$nav['home'] = array($homelink, t('Home'), "", t('Home Page'));
@@ -128,7 +130,7 @@ EOT;
$nav['search'] = array('search', t('Search'), "", t('Search site content'));
- $nav['directory'] = array('directory', t('Channel Directory'), "", t('Channel Locator'));
+ $nav['directory'] = array('directory', t('Directory'), "", t('Channel Locator'));
/**
@@ -139,24 +141,24 @@ EOT;
if(local_user()) {
- $nav['network'] = array('network', t('Network'), "", t('Conversations from your friends'));
- $nav['network']['all']=array('notifications/network', t('See all network notifications'), "", "");
- $nav['network']['mark'] = array('', t('Mark all network notifications seen'), '','');
+ $nav['network'] = array('network', t('Matrix'), "", t('Conversations from your grid'));
+ $nav['network']['all']=array('notifications/network', t('See all matrix notifications'), "", "");
+ $nav['network']['mark'] = array('', t('Mark all matrix notifications seen'), '','');
$nav['home'] = array('channel/' . $channel['channel_address'], t('Home'), "", t('Your posts and conversations'));
$nav['home']['all']=array('notifications/channel', t('See all channel notifications'), "", "");
$nav['home']['mark'] = array('', t('Mark all channel notifications seen'), '','');
- $nav['intros'] = array('connections/pending', t('Introductions'), "", t('New Connections'));
+ $nav['intros'] = array('connections/pending', t('Intros'), "", t('New Connections'));
$nav['intros']['all']=array('intro', t('See all channel introductions'), "", "");
- $nav['notifications'] = array('notifications/system', t('Notifications'), "", t('Notifications'));
+ $nav['notifications'] = array('notifications/system', t('Notices'), "", t('Notifications'));
$nav['notifications']['all']=array('notifications/system', t('See all notifications'), "", "");
$nav['notifications']['mark'] = array('', t('Mark all system notifications seen'), '','');
- $nav['messages'] = array('message', t('Messages'), "", t('Private mail'));
+ $nav['messages'] = array('message', t('Mail'), "", t('Private mail'));
$nav['messages']['all']=array('message', t('See all private messages'), "", "");
$nav['messages']['mark'] = array('', t('Mark all private messages seen'), '','');
$nav['messages']['inbox'] = array('message', t('Inbox'), "", t('Inbox'));
@@ -192,7 +194,6 @@ EOT;
$banner = get_config('system','banner');
if($banner === false)
-// $banner .= '<a href="http://friendica.com"><img id="logo-img" src="images/fred-32.png" alt="logo" /></a>';
$banner = 'red';
$tpl = get_markup_template('nav.tpl');
diff --git a/include/network.php b/include/network.php
index 555e76802..8b9a8a6a6 100644
--- a/include/network.php
+++ b/include/network.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
@@ -6,10 +6,20 @@ function get_capath() {
return appdirpath() . '/library/cacert.pem';
}
+
+
// curl wrapper. If binary flag is true, return binary
// results.
-if(! function_exists('fetch_url')) {
+/**
+ * fetch_url is deprecated and being replaced by the more capable z_fetch_url
+ * please use that function instead.
+ * Once all occurrences of fetch_url are removed from the codebase we will
+ * remove this function and perhaps rename z_fetch_url back to fetch_url
+ */
+
+
+
function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_content=Null) {
$a = get_app();
@@ -28,8 +38,7 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
}
@curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
- //@curl_setopt($ch, CURLOPT_USERAGENT, "Friendica");
- @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Friendica)");
+ @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Red)");
if(intval($timeout)) {
@@ -98,11 +107,11 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
$a->set_curl_headers($header);
@curl_close($ch);
return($body);
-}}
+}
// post request to $url. $params is an array of post variables.
-if(! function_exists('post_url')) {
+
function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0) {
$a = get_app();
$ch = curl_init($url);
@@ -114,7 +123,7 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
- curl_setopt($ch, CURLOPT_USERAGENT, "Friendica");
+ curl_setopt($ch, CURLOPT_USERAGENT, "Red");
if(intval($timeout)) {
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
@@ -193,9 +202,29 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
curl_close($ch);
return($body);
-}}
+}
+
+/**
+ * @function z_fetch_url
+ * @param string $url
+ * URL to fetch
+ * @param boolean $binary = false
+ * TRUE if asked to return binary results (file download)
+ * @param int $redirects = 0
+ * internal use, recursion counter
+ * @param array $opts (optional parameters)
+ * 'accept_content' => supply Accept: header with 'accept_content' as the value
+ * 'timeout' => int seconds, default system config value or 60 seconds
+ * 'http_auth' => username:password
+ * 'novalidate' => do not validate SSL certs, default is to validate using our CA list
+ *
+ * @returns array
+ * 'return_code' => HTTP return code or 0 if timeout or failure
+ * 'success' => boolean true (if HTTP 2xx result) or false
+ * 'header' => HTTP headers
+ * 'body' => fetched content
+ */
-if(! function_exists('z_fetch_url')) {
function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
$ret = array('return_code' => 0, 'success' => false, 'header' => "", 'body' => "");
@@ -210,7 +239,7 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
@curl_setopt($ch, CURLOPT_CAINFO, get_capath());
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
- @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Friendica Red)");
+ @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Red)");
if (x($opts,'accept_content')){
curl_setopt($ch,CURLOPT_HTTPHEADER, array (
@@ -231,6 +260,10 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
@curl_setopt($ch, CURLOPT_USERPWD, $opts['http_auth']);
}
+ @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,
+ ((x($opts,'novalidate') && intval($opts['novalidate'])) ? false : true));
+
+
$prx = get_config('system','proxy');
if(strlen($prx)) {
@curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
@@ -283,12 +316,12 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
$ret['header'] = $header;
@curl_close($ch);
return($ret);
-}}
+}
+
-if(! function_exists('z_post_url')) {
-function z_post_url($url,$params, $headers = null, $redirects = 0, $timeout = 0) {
+function z_post_url($url,$params, $redirects = 0, $opts = array()) {
$ret = array('return_code' => 0, 'success' => false, 'header' => "", 'body' => "");
@@ -301,30 +334,30 @@ function z_post_url($url,$params, $headers = null, $redirects = 0, $timeout = 0)
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
- curl_setopt($ch, CURLOPT_USERAGENT, "Friendica");
+ curl_setopt($ch, CURLOPT_USERAGENT, "Red");
- if(intval($timeout)) {
- curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
+
+ if (x($opts,'accept_content')){
+ curl_setopt($ch,CURLOPT_HTTPHEADER, array (
+ "Accept: " . $opts['accept_content']
+ ));
+ }
+
+ if(x($opts,'timeout') && intval($opts['timeout'])) {
+ @curl_setopt($ch, CURLOPT_TIMEOUT, $opts['timeout']);
}
else {
$curl_time = intval(get_config('system','curl_timeout'));
- curl_setopt($ch, CURLOPT_TIMEOUT, (($curl_time !== false) ? $curl_time : 60));
+ @curl_setopt($ch, CURLOPT_TIMEOUT, (($curl_time !== false) ? $curl_time : 60));
}
- if(defined('LIGHTTPD')) {
- if(!is_array($headers)) {
- $headers = array('Expect:');
- } else {
- if(!in_array('Expect:', $headers)) {
- array_push($headers, 'Expect:');
- }
- }
+ if(x($opts,'http_auth')) {
+ // "username" . ':' . "password"
+ @curl_setopt($ch, CURLOPT_USERPWD, $opts['http_auth']);
}
- if($headers)
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
-
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
+ @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,
+ ((x($opts,'novalidate') && intval($opts['novalidate'])) ? false : true));
$prx = get_config('system','proxy');
if(strlen($prx)) {
@@ -365,9 +398,9 @@ function z_post_url($url,$params, $headers = null, $redirects = 0, $timeout = 0)
if (isset($url_parsed)) {
curl_close($ch);
if($http_code == 303) {
- return z_fetch_url($newurl,false,$headers,$redirects++,$timeout);
+ return z_fetch_url($newurl,false,$redirects++,$opts);
} else {
- return z_post_url($newurl,$params,$headers,$redirects++,$timeout);
+ return z_post_url($newurl,$params,$redirects++,$opts);
}
}
}
@@ -378,7 +411,7 @@ function z_post_url($url,$params, $headers = null, $redirects = 0, $timeout = 0)
$ret['header'] = $header;
curl_close($ch);
return($ret);
-}}
+}
@@ -394,7 +427,7 @@ function json_return_and_die($x) {
// Outputs a basic dfrn XML status structure to STDOUT, with a <status> variable
// of $st and an optional text <message> of $message and terminates the current process.
-if(! function_exists('xml_status')) {
+
function xml_status($st, $message = '') {
$xml_message = ((strlen($message)) ? "\t<message>" . xmlify($message) . "</message>\r\n" : '');
@@ -406,29 +439,37 @@ function xml_status($st, $message = '') {
echo '<?xml version="1.0" encoding="UTF-8"?>'."\r\n";
echo "<result>\r\n\t<status>$st</status>\r\n$xml_message</result>\r\n";
killme();
-}}
-
+}
-if(! function_exists('http_status_exit')) {
-function http_status_exit($val) {
+/**
+ * @function http_status_exit
+ *
+ * Send HTTP status header and exit
+ * @param int $val
+ * integer HTTP status result value
+ * @param string $msg
+ * optional message
+ * @returns (does not return, process is terminated)
+ */
+
+function http_status_exit($val,$msg = '') {
$err = '';
if($val >= 400)
- $err = 'Error';
+ $msg = (($msg) ? $msg : 'Error');
if($val >= 200 && $val < 300)
- $err = 'OK';
+ $msg = (($msg) ? $msg : 'OK');
- logger('http_status_exit ' . $val);
- header($_SERVER["SERVER_PROTOCOL"] . ' ' . $val . ' ' . $err);
+ logger('http_status_exit ' . $val . ' ' . $msg);
+ header($_SERVER['SERVER_PROTOCOL'] . ' ' . $val . ' ' . $msg);
killme();
-
-}}
+}
// convert an XML document to a normalised, case-corrected array
// used by webfinger
-if(! function_exists('convert_xml_element_to_array')) {
+
function convert_xml_element_to_array($xml_element, &$recursion_depth=0) {
// If we're getting too deep, bail out
@@ -468,7 +509,7 @@ function convert_xml_element_to_array($xml_element, &$recursion_depth=0) {
} else {
return (trim(strval($xml_element)));
}
-}}
+}
// Given an email style address, perform webfinger lookup and
// return the resulting DFRN profile URL, or if no DFRN profile URL
@@ -482,7 +523,7 @@ function convert_xml_element_to_array($xml_element, &$recursion_depth=0) {
// amended 7/9/2011 to return an hcard which could save potentially loading
// a lengthy content page to scrape dfrn attributes
-if(! function_exists('webfinger_dfrn')) {
+
function webfinger_dfrn($s,&$hcard) {
if(! strstr($s,'@')) {
return $s;
@@ -502,14 +543,14 @@ function webfinger_dfrn($s,&$hcard) {
}
}
return $profile_link;
-}}
+}
// Given an email style address, perform webfinger lookup and
// return the array of link attributes from the personal XRD file.
// On error/failure return an empty array.
-if(! function_exists('webfinger')) {
+
function webfinger($s, $debug = false) {
$host = '';
if(strstr($s,'@')) {
@@ -532,9 +573,9 @@ function webfinger($s, $debug = false) {
}
}
return array();
-}}
+}
+
-if(! function_exists('lrdd')) {
function lrdd($uri, $debug = false) {
$a = get_app();
@@ -702,7 +743,7 @@ function lrdd($uri, $debug = false) {
return array();
-}}
+}
@@ -710,7 +751,7 @@ function lrdd($uri, $debug = false) {
// host. Returns the LRDD template or an empty string on
// error/failure.
-if(! function_exists('fetch_lrdd_template')) {
+
function fetch_lrdd_template($host) {
$tpl = '';
@@ -732,13 +773,13 @@ function fetch_lrdd_template($host) {
if(! strpos($tpl,'{uri}'))
$tpl = '';
return $tpl;
-}}
+}
// Given a URL, retrieve the page as an XRD document.
// Return an array of links.
// on error/failure return empty array.
-if(! function_exists('fetch_xrd_links')) {
+
function fetch_xrd_links($url) {
$xrd_timeout = intval(get_config('system','xrd_timeout'));
@@ -783,14 +824,14 @@ function fetch_xrd_links($url) {
return $links;
-}}
+}
// Take a URL from the wild, prepend http:// if necessary
// and check DNS to see if it's real (or check if is a valid IP address)
// return true if it's OK, false if something is wrong with it
-if(! function_exists('validate_url')) {
+
function validate_url(&$url) {
// no naked subdomains (allow localhost for tests)
@@ -804,11 +845,11 @@ function validate_url(&$url) {
return true;
}
return false;
-}}
+}
// checks that email is an actual resolvable internet address
-if(! function_exists('validate_email')) {
+
function validate_email($addr) {
if(get_config('system','disable_email_validation'))
@@ -822,14 +863,14 @@ function validate_email($addr) {
return true;
}
return false;
-}}
+}
// Check $url against our list of allowed sites,
// wildcards allowed. If allowed_sites is unset return true;
// If url is allowed, return true.
// otherwise, return false
-if(! function_exists('allowed_url')) {
+
function allowed_url($url) {
$h = @parse_url($url);
@@ -864,14 +905,14 @@ function allowed_url($url) {
}
}
return $found;
-}}
+}
// check if email address is allowed to register here.
// Compare against our list (wildcards allowed).
// Returns false if not allowed, true if allowed or if
// allowed list is not configured.
-if(! function_exists('allowed_email')) {
+
function allowed_email($email) {
@@ -898,10 +939,10 @@ function allowed_email($email) {
}
}
return $found;
-}}
+}
+
-if(! function_exists('avatar_img')) {
function avatar_img($email) {
$a = get_app();
@@ -918,10 +959,10 @@ function avatar_img($email) {
logger('Avatar: ' . $avatar['email'] . ' ' . $avatar['url'], LOGGER_DEBUG);
return $avatar['url'];
-}}
+}
+
-if(! function_exists('parse_xml_string')) {
function parse_xml_string($s,$strict = true) {
if($strict) {
if(! strstr($s,'<?xml'))
@@ -940,7 +981,7 @@ function parse_xml_string($s,$strict = true) {
libxml_clear_errors();
}
return $x;
-}}
+}
function add_fcontact($arr,$update = false) {
@@ -1008,14 +1049,21 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
$s = htmlspecialchars_decode($s);
$matches = null;
- $c = preg_match_all('/\[img.*?\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER);
+ $c = preg_match_all('/\[img(.*?)\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER);
if($c) {
- require_once('include/Photo.php');
+ require_once('include/photo/photo_driver.php');
+
foreach($matches as $mtch) {
- logger('scale_external_image: ' . $mtch[1]);
+ logger('scale_external_image: ' . $mtch[1] . ' ' . $mtch[2]);
+
+ if(substr($mtch[1],0,1) == '=') {
+ $owidth = intval(substr($mtch[1],1));
+ if(intval($owidth) > 0 && intval($owidth) < 640)
+ continue;
+ }
$hostname = str_replace('www.','',substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')+3));
- if(stristr($mtch[1],$hostname))
+ if(stristr($mtch[2],$hostname))
continue;
// $scale_replace, if passed, is an array of two elements. The
@@ -1024,9 +1072,9 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
// This allows Friendica to display the smaller remote image if
// one exists, while still linking to the full-size image
if($scale_replace)
- $scaled = str_replace($scale_replace[0], $scale_replace[1], $mtch[1]);
+ $scaled = str_replace($scale_replace[0], $scale_replace[1], $mtch[2]);
else
- $scaled = $mtch[1];
+ $scaled = $mtch[2];
$i = fetch_url($scaled);
$cache = get_config('system','itemcache');
@@ -1036,10 +1084,10 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
}
// guess mimetype from headers or filename
- $type = guess_image_type($mtch[1],true);
+ $type = guess_image_type($mtch[2],true);
if($i) {
- $ph = new Photo($i, $type);
+ $ph = photo_factory($i, $type);
if($ph->is_valid()) {
$orig_width = $ph->getWidth();
$orig_height = $ph->getHeight();
@@ -1052,7 +1100,7 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
logger('scale_external_images: ' . $orig_width . '->' . $new_width . 'w ' . $orig_height . '->' . $new_height . 'h' . ' match: ' . $mtch[0], LOGGER_DEBUG);
$s = str_replace($mtch[0],'[img=' . $new_width . 'x' . $new_height. ']' . $scaled . '[/img]'
. "\n" . (($include_link)
- ? '[url=' . $mtch[1] . ']' . t('view full size') . '[/url]' . "\n"
+ ? '[zrl=' . $mtch[2] . ']' . t('view full size') . '[/zrl]' . "\n"
: ''),$s);
logger('scale_external_images: new string: ' . $s, LOGGER_DEBUG);
}
diff --git a/include/notifier.php b/include/notifier.php
index b22f77d91..dea9d6072 100644
--- a/include/notifier.php
+++ b/include/notifier.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once("boot.php");
require_once('include/queue_fn.php');
@@ -53,6 +53,7 @@ require_once('include/html2plain.php');
*
* ZOT
* permission_update abook_id
+ * refresh_all channel_id
* relay item_id (item was relayed to owner, we will deliver it as owner)
*
*/
@@ -136,6 +137,7 @@ function notifier_run($argv, $argc){
$recipients = array();
$url_recipients = array();
$normal_mode = true;
+ $packet_type = 'undefined';
if($cmd === 'mail') {
$normal_mode = false;
@@ -186,6 +188,27 @@ function notifier_run($argv, $argc){
$recipients[] = $suggest[0]['cid'];
$item = $suggest[0];
}
+ elseif($cmd === 'refresh_all') {
+ logger('notifier: refresh_all: ' . $item_id);
+ $s = q("select * from channel where channel_id = %d limit 1",
+ intval($item_id)
+ );
+ if($s)
+ $channel = $s[0];
+ $uid = $item_id;
+ $recipients = array();
+ $r = q("select * from abook where abook_channel = %d and not (abook_flags & %d)",
+ intval($item_id),
+ intval(ABOOK_FLAG_SELF)
+ );
+ if($r) {
+ foreach($r as $rr) {
+ $recipients[] = $rr['abook_xchan'];
+ }
+ }
+ $private = false;
+ $packet_type = 'refresh';
+ }
else {
// Normal items
@@ -208,6 +231,16 @@ function notifier_run($argv, $argc){
if($target_item['item_restrict'] & ITEM_DELETED)
logger('notifier: target item ITEM_DELETED', LOGGER_DEBUG);
+ if($target_item['item_restrict'] & ITEM_DELAYED_PUBLISH) {
+ logger('notifier: target item ITEM_DELAYED_PUBLISH', LOGGER_DEBUG);
+ return;
+ }
+
+ if($target_item['item_restrict'] & ITEM_WEBPAGE) {
+ logger('notifier: target item ITEM_WEBPAGE', LOGGER_DEBUG);
+ return;
+ }
+
$s = q("select * from channel where channel_id = %d limit 1",
intval($target_item['uid'])
@@ -295,24 +328,35 @@ function notifier_run($argv, $argc){
// Generic delivery section, we have an encoded item and recipients
// Now start the delivery process
- logger('notifier: encoded item: ' . print_r($encoded_item,true));
+ $x = $encoded_item;
+ $x['title'] = 'private';
+ $x['body'] = 'private';
+ logger('notifier: encoded item: ' . print_r($x,true), LOGGER_DATA);
stringify_array_elms($recipients);
if(! $recipients)
return;
- logger('notifier: recipients: ' . print_r($recipients,true));
+// logger('notifier: recipients: ' . print_r($recipients,true));
- $env_recips = null;
- if($private) {
- $r = q("select xchan_guid, xchan_guid_sig from xchan where xchan_hash in (" . implode(',',$recipients) . ")");
- if($r) {
- $env_recips = array();
- foreach($r as $rr)
- $env_recips[] = array('guid' => $rr['xchan_guid'],'guid_sig' => $rr['xchan_guid_sig']);
+ $env_recips = (($private) ? array() : null);
+
+ $details = q("select xchan_hash, xchan_addr, xchan_guid, xchan_guid_sig from xchan where xchan_hash in (" . implode(',',$recipients) . ")");
+
+ $recip_list = array();
+
+ if($details) {
+ foreach($details as $d) {
+ $recip_list[] = $d['xchan_addr'] . ' (' . $d['xchan_hash'] . ')';
+ if($private)
+ $env_recips[] = array('guid' => $d['xchan_guid'],'guid_sig' => $d['xchan_guid_sig']);
}
}
+
+ logger('notifier: recipients (may be delivered to more if public): ' . print_r($recip_list,true), LOGGER_DEBUG);
+
+
// Now we have collected recipients (except for external mentions, FIXME)
// Let's reduce this to a set of hubs.
@@ -321,14 +365,19 @@ function notifier_run($argv, $argc){
$sql_extra = (($private) ? "" : " or hubloc_url = '" . z_root() . "' ");
- $r = q("select distinct(hubloc_callback),hubloc_host,hubloc_sitekey from hubloc
- where hubloc_hash in (" . implode(',',$recipients) . ") $sql_extra group by hubloc_callback");
+ $r = q("select distinct hubloc_sitekey, hubloc_callback, hubloc_host from hubloc
+ where hubloc_hash in (" . implode(',',$recipients) . ") $sql_extra group by hubloc_sitekey");
if(! $r) {
logger('notifier: no hubs');
return;
}
$hubs = $r;
+ $hublist = array();
+ foreach($hubs as $hub)
+ $hublist[] = $hub['hubloc_host'];
+
+ logger('notifier: will notify/deliver to these hubs: ' . print_r($hublist,true), LOGGER_DEBUG);
$interval = ((get_config('system','delivery_interval') !== false)
? intval(get_config('system','delivery_interval')) : 2 );
@@ -342,18 +391,34 @@ function notifier_run($argv, $argc){
foreach($hubs as $hub) {
$hash = random_string();
- $n = zot_build_packet($channel,'notify',$env_recips,(($private) ? $hub['hubloc_sitekey'] : null),$hash);
- q("insert into outq ( outq_hash, outq_account, outq_channel, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s' )",
- dbesc($hash),
- intval($target_item['aid']),
- intval($target_item['uid']),
- dbesc($hub['hubloc_callback']),
- intval(1),
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
- dbesc($n),
- dbesc(json_encode($encoded_item))
- );
+ if($packet_type === 'refresh') {
+ $n = zot_build_packet($channel,'refresh');
+ q("insert into outq ( outq_hash, outq_account, outq_channel, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s' )",
+ dbesc($hash),
+ intval($channel['channel_account']),
+ intval($channel['channel_id']),
+ dbesc($hub['hubloc_callback']),
+ intval(1),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc($n),
+ dbesc('')
+ );
+ }
+ else {
+ $n = zot_build_packet($channel,'notify',$env_recips,(($private) ? $hub['hubloc_sitekey'] : null),$hash);
+ q("insert into outq ( outq_hash, outq_account, outq_channel, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s' )",
+ dbesc($hash),
+ intval($target_item['aid']),
+ intval($target_item['uid']),
+ dbesc($hub['hubloc_callback']),
+ intval(1),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc($n),
+ dbesc(json_encode($encoded_item))
+ );
+ }
$deliver[] = $hash;
if(count($deliver) >= $deliveries_per_process) {
@@ -369,12 +434,16 @@ function notifier_run($argv, $argc){
if(count($deliver)) {
proc_run('php','include/deliver.php',$deliver);
}
+
+ logger('notifier: basic loop complete.', LOGGER_DEBUG);
if($normal_mode)
call_hooks('notifier_normal',$target_item);
+
call_hooks('notifier_end',$target_item);
+ logger('notifer: complete.');
return;
}
diff --git a/include/notify.php b/include/notify.php
index 3bfd1e58c..aa96fa279 100644
--- a/include/notify.php
+++ b/include/notify.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function format_notification($item) {
diff --git a/include/oauth.php b/include/oauth.php
index 99fc16eef..2f70f21fb 100644
--- a/include/oauth.php
+++ b/include/oauth.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
/**
* OAuth server
* Based on oauth2-php <http://code.google.com/p/oauth2-php/>
diff --git a/include/oembed.php b/include/oembed.php
index 6fc4c5371..04a40f6ee 100755
--- a/include/oembed.php
+++ b/include/oembed.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function oembed_replacecb($matches){
// logger('oembedcb');
$embedurl=$matches[1];
@@ -29,7 +29,11 @@ function oembed_fetch_url($embedurl){
if (!in_array($ext, $noexts)){
// try oembed autodiscovery
$redirects = 0;
- $html_text = fetch_url($embedurl, false, $redirects, 15, "text/*");
+
+ $result = z_fetch_url($embedurl, false, $redirects, array('timeout' => 15, 'accept_content' => "text/*", 'novalidate' => true ));
+ if($result['success'])
+ $html_text = $result['body'];
+
if($html_text){
$dom = @DOMDocument::loadHTML($html_text);
if ($dom){
@@ -47,10 +51,17 @@ function oembed_fetch_url($embedurl){
}
}
- if ($txt==false || $txt==""){
+ if ($txt==false || $txt=="") {
+ $x = array('url' => $embedurl,'videowidth' => $a->videowidth);
+ call_hooks('oembed_probe',$x);
+ if(array_key_exists('embed',$x))
+ $txt = $x['embed'];
+
// try oohembed service
- $ourl = "http://oohembed.com/oohembed/?url=".urlencode($embedurl).'&maxwidth=' . $a->videowidth;
- $txt = fetch_url($ourl);
+// $ourl = "http://oohembed.com/oohembed/?url=".urlencode($embedurl).'&maxwidth=' . $a->videowidth;
+// $result = z_fetch_url($ourl);
+// if($result['success'])
+// $txt = $result['body'];
}
$txt=trim($txt);
diff --git a/include/onepoll.php b/include/onepoll.php
index 8b0c5211b..a225edfd8 100644
--- a/include/onepoll.php
+++ b/include/onepoll.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('boot.php');
require_once('include/cli_startup.php');
diff --git a/include/permissions.php b/include/permissions.php
index 72e002ace..e7f50ceeb 100644
--- a/include/permissions.php
+++ b/include/permissions.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function get_perms() {
@@ -23,7 +23,7 @@ function get_perms() {
'post_comments' => array('channel_w_comment', intval(PERMS_W_COMMENT), false, t('Can comment on my posts'), ''),
'post_mail' => array('channel_w_mail', intval(PERMS_W_MAIL), false, t('Can send me private mail messages'), ''),
'post_photos' => array('channel_w_photos', intval(PERMS_W_PHOTOS), false, t('Can post photos to my photo albums'), ''),
- 'tag_deliver' => array('channel_w_tagwall', intval(PERMS_W_TAGWALL), false, t('Can forward to all my channel contacts via post tags'), t('Advanced - useful for creating group forum channels')),
+ 'tag_deliver' => array('channel_w_tagwall', intval(PERMS_W_TAGWALL), false, t('Can forward to all my channel contacts via post @mentions'), t('Advanced - useful for creating group forum channels')),
'chat' => array('channel_w_chat', intval(PERMS_W_CHAT), false, t('Can chat with me (when available)'), t('Requires compatible chat plugin')),
'write_storage' => array('channel_w_storage', intval(PERMS_W_STORAGE), false, t('Can write to my "public" file storage'), ''),
'write_pages' => array('channel_w_pages', intval(PERMS_W_PAGES), false, t('Can edit my "public" pages'), ''),
@@ -168,6 +168,13 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
$ret[$perm_name] = false;
continue;
}
+
+ // They are in your address book, but haven't been approved
+
+ if($x[0]['abook_flags'] & ABOOK_FLAG_PENDING) {
+ $ret[$perm_name] = false;
+ continue;
+ }
if(($r) && ($r[0][$channel_perm] & PERMS_CONTACTS)) {
@@ -192,6 +199,8 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
continue;
}
+
+
$arr = array(
'channel_id' => $uid,
'observer_hash' => $observer_xchan,
@@ -282,6 +291,10 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
return false;
}
+ if($x[0]['abook_flags'] & ABOOK_FLAG_PENDING) {
+ return false;
+ }
+
if($r[0][$channel_perm] & PERMS_CONTACTS) {
return true;
}
diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php
new file mode 100644
index 000000000..25f53f400
--- /dev/null
+++ b/include/photo/photo_driver.php
@@ -0,0 +1,522 @@
+<?php /** @file */
+
+function photo_factory($data, $type = null) {
+ $ph = null;
+
+ if(class_exists('Imagick')) {
+ require_once('include/photo/photo_imagick.php');
+ $ph = new photo_imagick($data,$type);
+ }
+ else {
+ require_once('include/photo/photo_gd.php');
+ $ph = new photo_gd($data,$type);
+ }
+
+ return $ph;
+}
+
+
+
+
+abstract class photo_driver {
+
+ protected $image;
+ protected $width;
+ protected $height;
+ protected $valid;
+ protected $type;
+ protected $types;
+
+ abstract function supportedTypes();
+
+ abstract function load($data,$type);
+
+ abstract function destroy();
+
+ abstract function setDimensions();
+
+ abstract function getImage();
+
+ abstract function doScaleImage($new_width,$new_height);
+
+ abstract function rotate($degrees);
+
+ abstract function flip($horiz = true, $vert = false);
+
+ abstract function cropImage($max,$x,$y,$w,$h);
+
+ abstract function imageString();
+
+
+ public function __construct($data, $type='') {
+ $this->types = $this->supportedTypes();
+ if (! array_key_exists($type,$this->types)){
+ $type='image/jpeg';
+ }
+ $this->type = $type;
+ $this->valid = false;
+ $this->load($data,$type);
+ }
+
+ public function __destruct() {
+ if($this->is_valid())
+ $this->destroy();
+ }
+
+ public function is_valid() {
+ return $this->valid;
+ }
+
+ public function getWidth() {
+ if(!$this->is_valid())
+ return FALSE;
+ return $this->width;
+ }
+
+ public function getHeight() {
+ if(!$this->is_valid())
+ return FALSE;
+ return $this->height;
+ }
+
+
+ public function saveImage($path) {
+ if(!$this->is_valid())
+ return FALSE;
+ file_put_contents($path, $this->imageString());
+ }
+
+
+ public function getType() {
+ if(!$this->is_valid())
+ return FALSE;
+
+ return $this->type;
+ }
+
+ public function getExt() {
+ if(!$this->is_valid())
+ return FALSE;
+
+ return $this->types[$this->getType()];
+ }
+
+ public function scaleImage($max) {
+ if(!$this->is_valid())
+ return FALSE;
+
+ $width = $this->width;
+ $height = $this->height;
+
+ $dest_width = $dest_height = 0;
+
+ if((! $width)|| (! $height))
+ return FALSE;
+
+ if($width > $max && $height > $max) {
+
+ // very tall image (greater than 16:9)
+ // constrain the width - let the height float.
+
+ if((($height * 9) / 16) > $width) {
+ $dest_width = $max;
+ $dest_height = intval(( $height * $max ) / $width);
+ }
+
+ // else constrain both dimensions
+
+ elseif($width > $height) {
+ $dest_width = $max;
+ $dest_height = intval(( $height * $max ) / $width);
+ }
+ else {
+ $dest_width = intval(( $width * $max ) / $height);
+ $dest_height = $max;
+ }
+ }
+ else {
+ if( $width > $max ) {
+ $dest_width = $max;
+ $dest_height = intval(( $height * $max ) / $width);
+ }
+ else {
+ if( $height > $max ) {
+
+ // very tall image (greater than 16:9)
+ // but width is OK - don't do anything
+
+ if((($height * 9) / 16) > $width) {
+ $dest_width = $width;
+ $dest_height = $height;
+ }
+ else {
+ $dest_width = intval(( $width * $max ) / $height);
+ $dest_height = $max;
+ }
+ }
+ else {
+ $dest_width = $width;
+ $dest_height = $height;
+ }
+ }
+ }
+ $this->doScaleImage($dest_width,$dest_height);
+ }
+
+ public function scaleImageUp($min) {
+ if(!$this->is_valid())
+ return FALSE;
+
+
+ $width = $this->width;
+ $height = $this->height;
+
+ $dest_width = $dest_height = 0;
+
+ if((! $width)|| (! $height))
+ return FALSE;
+
+ if($width < $min && $height < $min) {
+ if($width > $height) {
+ $dest_width = $min;
+ $dest_height = intval(( $height * $min ) / $width);
+ }
+ else {
+ $dest_width = intval(( $width * $min ) / $height);
+ $dest_height = $min;
+ }
+ }
+ else {
+ if( $width < $min ) {
+ $dest_width = $min;
+ $dest_height = intval(( $height * $min ) / $width);
+ }
+ else {
+ if( $height < $min ) {
+ $dest_width = intval(( $width * $min ) / $height);
+ $dest_height = $min;
+ }
+ else {
+ $dest_width = $width;
+ $dest_height = $height;
+ }
+ }
+ }
+ $this->doScaleImage($dest_width,$dest_height);
+ }
+
+ public function scaleImageSquare($dim) {
+ if(!$this->is_valid())
+ return FALSE;
+ $this->doScaleImage($dim,$dim);
+ }
+
+
+
+
+ public function orient($filename) {
+
+ /**
+ * This function is a bit unusual, because it is operating on a file, but you must
+ * first create an image from that file to initialise the type and check validity
+ * of the image.
+ */
+
+ if(! $this->is_valid())
+ return FALSE;
+
+ if((! function_exists('exif_read_data')) || ($this->getType() !== 'image/jpeg'))
+ return;
+
+ $exif = @exif_read_data($filename);
+ if($exif) {
+ $ort = $exif['Orientation'];
+
+ switch($ort)
+ {
+ case 1: // nothing
+ break;
+
+ case 2: // horizontal flip
+ $this->flip();
+ break;
+
+ case 3: // 180 rotate left
+ $this->rotate(180);
+ break;
+
+ case 4: // vertical flip
+ $this->flip(false, true);
+ break;
+
+ case 5: // vertical flip + 90 rotate right
+ $this->flip(false, true);
+ $this->rotate(-90);
+ break;
+
+ case 6: // 90 rotate right
+ $this->rotate(-90);
+ break;
+
+ case 7: // horizontal flip + 90 rotate right
+ $this->flip();
+ $this->rotate(-90);
+ break;
+
+ case 8: // 90 rotate left
+ $this->rotate(90);
+ break;
+ }
+ }
+ }
+
+
+ public function store($aid, $uid, $xchan, $rid, $filename, $album, $scale, $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '') {
+
+ $x = q("select id from photo where `resource_id` = '%s' and uid = %d and `xchan` = '%s' and `scale` = %d limit 1",
+ dbesc($rid),
+ intval($uid),
+ dbesc($xchan),
+ intval($scale)
+ );
+ if(count($x)) {
+ $r = q("UPDATE `photo`
+ set `aid` = %d,
+ `uid` = %d,
+ `xchan` = '%s',
+ `resource_id` = '%s',
+ `created` = '%s',
+ `edited` = '%s',
+ `filename` = '%s',
+ `type` = '%s',
+ `album` = '%s',
+ `height` = %d,
+ `width` = %d,
+ `data` = '%s',
+ `size` = %d,
+ `scale` = %d,
+ `profile` = %d,
+ `allow_cid` = '%s',
+ `allow_gid` = '%s',
+ `deny_cid` = '%s',
+ `deny_gid` = '%s'
+ where id = %d limit 1",
+
+ intval($aid),
+ intval($uid),
+ dbesc($xchan),
+ dbesc($rid),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc(basename($filename)),
+ dbesc($this->getType()),
+ dbesc($album),
+ intval($this->getHeight()),
+ intval($this->getWidth()),
+ dbesc($this->imageString()),
+ intval(strlen($this->imageString())),
+ intval($scale),
+ intval($profile),
+ dbesc($allow_cid),
+ dbesc($allow_gid),
+ dbesc($deny_cid),
+ dbesc($deny_gid),
+ intval($x[0]['id'])
+ );
+ }
+ else {
+ $r = q("INSERT INTO `photo`
+ ( `aid`, `uid`, `xchan`, `resource_id`, `created`, `edited`, `filename`, type, `album`, `height`, `width`, `data`, `size`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` )
+ VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d, '%s', '%s', '%s', '%s' )",
+ intval($aid),
+ intval($uid),
+ dbesc($xchan),
+ dbesc($rid),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc(basename($filename)),
+ dbesc($this->getType()),
+ dbesc($album),
+ intval($this->getHeight()),
+ intval($this->getWidth()),
+ dbesc($this->imageString()),
+ intval(strlen($this->imageString())),
+ intval($scale),
+ intval($profile),
+ dbesc($allow_cid),
+ dbesc($allow_gid),
+ dbesc($deny_cid),
+ dbesc($deny_gid)
+ );
+ }
+ return $r;
+ }
+
+}
+
+
+
+/**
+ * Guess image mimetype from filename or from Content-Type header
+ *
+ * @arg $filename string Image filename
+ * @arg $fromcurl boolean Check Content-Type header from curl request
+ */
+
+function guess_image_type($filename, $fromcurl=false) {
+ logger('Photo: guess_image_type: '.$filename . ($fromcurl?' from curl headers':''), LOGGER_DEBUG);
+ $type = null;
+ if ($fromcurl) {
+ $a = get_app();
+ $headers=array();
+ $h = explode("\n",$a->get_curl_headers());
+ foreach ($h as $l) {
+ list($k,$v) = array_map("trim", explode(":", trim($l), 2));
+ $headers[$k] = $v;
+ }
+ if (array_key_exists('Content-Type', $headers))
+ $type = $headers['Content-Type'];
+ }
+ if (is_null($type)){
+// FIXME!!!!
+ // Guessing from extension? Isn't that... dangerous?
+ if(class_exists('Imagick') && file_exists($filename) && is_readable($filename)) {
+ /**
+ * Well, this not much better,
+ * but at least it comes from the data inside the image,
+ * we won't be tricked by a manipulated extension
+ */
+ $image = new Imagick($filename);
+ $type = $image->getImageMimeType();
+ } else {
+ $ext = pathinfo($filename, PATHINFO_EXTENSION);
+ $ph = photo_factory('');
+ $types = $ph->supportedTypes();
+ $type = "image/jpeg";
+ foreach ($types as $m=>$e){
+ if ($ext==$e) $type = $m;
+ }
+ }
+ }
+ logger('Photo: guess_image_type: type='.$type, LOGGER_DEBUG);
+ return $type;
+
+}
+
+function import_profile_photo($photo,$xchan) {
+
+ $a = get_app();
+
+ logger('import_profile_photo: updating channel photo from ' . $photo . ' for ' . $xchan, LOGGER_DEBUG);
+
+ $r = q("select resource_id from photo where xchan = '%s' and scale = 4 limit 1",
+ dbesc($xchan)
+ );
+ if($r) {
+ $hash = $r[0]['resource_id'];
+ }
+ else {
+ $hash = photo_new_resource();
+ }
+
+ $photo_failure = false;
+
+
+ $filename = basename($photo);
+ $type = guess_image_type($photo,true);
+ $result = z_fetch_url($photo,true);
+
+ if($result['success'])
+ $img_str = $result['body'];
+
+ $img = photo_factory($img_str, $type);
+ if($img->is_valid()) {
+
+ $img->scaleImageSquare(175);
+
+ $r = $img->store(0, 0, $xchan, $hash, $filename, 'Contact Photos', 4 );
+
+ if($r === false)
+ $photo_failure = true;
+
+ $img->scaleImage(80);
+
+ $r = $img->store(0, 0, $xchan, $hash, $filename, 'Contact Photos', 5 );
+
+ if($r === false)
+ $photo_failure = true;
+
+ $img->scaleImage(48);
+
+ $r = $img->store(0, 0, $xchan, $hash, $filename, 'Contact Photos', 6 );
+
+ if($r === false)
+ $photo_failure = true;
+
+ $photo = $a->get_baseurl() . '/photo/' . $hash . '-4';
+ $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5';
+ $micro = $a->get_baseurl() . '/photo/' . $hash . '-6';
+ }
+ else {
+ logger('import_profile_photo: invalid image from ' . $photo);
+ $photo_failure = true;
+ }
+ if($photo_failure) {
+ $photo = $a->get_baseurl() . '/images/person-175.jpg';
+ $thumb = $a->get_baseurl() . '/images/person-80.jpg';
+ $micro = $a->get_baseurl() . '/images/person-48.jpg';
+ $type = 'image/jpeg';
+ }
+
+ return(array($photo,$thumb,$micro,$type));
+
+}
+
+
+
+function import_channel_photo($photo,$type,$aid,$uid) {
+
+ $a = get_app();
+
+ logger('import_channel_photo: importing channel photo for ' . $uid, LOGGER_DEBUG);
+
+ $hash = photo_new_resource();
+
+ $photo_failure = false;
+
+
+ $filename = $hash;
+
+ $img = photo_factory($photo, $type);
+ if($img->is_valid()) {
+
+ $img->scaleImageSquare(175);
+
+ $r = $img->store($aid,$uid,'', $hash, $filename, t('Profile Photos'), 4, true);
+
+ if($r === false)
+ $photo_failure = true;
+
+ $img->scaleImage(80);
+
+ $r = $img->store($aid,$uid,'', $hash, $filename, t('Profile Photos'), 5, true);
+
+ if($r === false)
+ $photo_failure = true;
+
+ $img->scaleImage(48);
+
+ $r = $img->store($aid,$uid,'', $hash, $filename, t('Profile Photos'), 6, true);
+
+ if($r === false)
+ $photo_failure = true;
+
+ }
+ else {
+ logger('import_channel_photo: invalid image.');
+ $photo_failure = true;
+ }
+
+ return(($photo_failure)? false : true);
+
+}
diff --git a/include/photo/photo_gd.php b/include/photo/photo_gd.php
new file mode 100644
index 000000000..466f8c23a
--- /dev/null
+++ b/include/photo/photo_gd.php
@@ -0,0 +1,140 @@
+<?php /** @file */
+
+
+require_once('include/photo/photo_driver.php');
+
+
+class photo_gd extends photo_driver {
+
+ function supportedTypes() {
+ $t = array();
+ $t['image/jpeg'] ='jpg';
+ if (imagetypes() & IMG_PNG) $t['image/png'] = 'png';
+
+ return $t;
+
+ }
+
+ function load($data, $type) {
+ $this->valid = false;
+ if(! $data)
+ return;
+
+ $this->image = @imagecreatefromstring($data);
+ if($this->image !== FALSE) {
+ $this->valid = true;
+ $this->setDimensions();
+ imagealphablending($this->image, false);
+ imagesavealpha($this->image, true);
+ }
+ }
+
+ function setDimensions() {
+ $this->width = imagesx($this->image);
+ $this->height = imagesy($this->image);
+ }
+
+
+ public function destroy() {
+ if($this->is_valid()) {
+ imagedestroy($this->image);
+ }
+ }
+
+ public function getImage() {
+ if(!$this->is_valid())
+ return FALSE;
+
+ return $this->image;
+ }
+
+ public function doScaleImage($dest_width,$dest_height) {
+
+ $dest = imagecreatetruecolor( $dest_width, $dest_height );
+ $width = imagesx($this->image);
+ $height = imagesy($this->image);
+
+ imagealphablending($dest, false);
+ imagesavealpha($dest, true);
+ if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
+ imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
+ if($this->image)
+ imagedestroy($this->image);
+ $this->image = $dest;
+ $this->setDimensions();
+ }
+
+ public function rotate($degrees) {
+ if(!$this->is_valid())
+ return FALSE;
+
+ $this->image = imagerotate($this->image,$degrees,0);
+ $this->setDimensions();
+ }
+
+ public function flip($horiz = true, $vert = false) {
+ if(!$this->is_valid())
+ return FALSE;
+
+ $w = imagesx($this->image);
+ $h = imagesy($this->image);
+ $flipped = imagecreate($w, $h);
+ if($horiz) {
+ for ($x = 0; $x < $w; $x++) {
+ imagecopy($flipped, $this->image, $x, 0, $w - $x - 1, 0, 1, $h);
+ }
+ }
+ if($vert) {
+ for ($y = 0; $y < $h; $y++) {
+ imagecopy($flipped, $this->image, 0, $y, 0, $h - $y - 1, $w, 1);
+ }
+ }
+ $this->image = $flipped;
+ $this->setDimensions(); // Shouldn't really be necessary
+ }
+
+ public function cropImage($max,$x,$y,$w,$h) {
+ if(!$this->is_valid())
+ return FALSE;
+
+ $dest = imagecreatetruecolor( $max, $max );
+ imagealphablending($dest, false);
+ imagesavealpha($dest, true);
+ if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
+ imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $max, $max, $w, $h);
+ if($this->image)
+ imagedestroy($this->image);
+ $this->image = $dest;
+ $this->setDimensions();
+ }
+
+ public function imageString() {
+ if(!$this->is_valid())
+ return FALSE;
+
+ $quality = FALSE;
+
+ ob_start();
+
+ switch($this->getType()){
+ case "image/png":
+ $quality = get_config('system','png_quality');
+ if((! $quality) || ($quality > 9))
+ $quality = PNG_QUALITY;
+ imagepng($this->image,NULL, $quality);
+ break;
+ case "image/jpeg":
+ default:
+ $quality = get_config('system','jpeg_quality');
+ if((! $quality) || ($quality > 100))
+ $quality = JPEG_QUALITY;
+ imagejpeg($this->image,NULL,$quality);
+ break;
+ }
+ $string = ob_get_contents();
+ ob_end_clean();
+
+ return $string;
+ }
+
+} \ No newline at end of file
diff --git a/include/photo/photo_imagick.php b/include/photo/photo_imagick.php
new file mode 100644
index 000000000..3f84fd06c
--- /dev/null
+++ b/include/photo/photo_imagick.php
@@ -0,0 +1,177 @@
+<?php /** @file */
+
+
+require_once('include/photo/photo_driver.php');
+
+
+class photo_imagick extends photo_driver {
+
+
+ function supportedTypes() {
+ return array(
+ 'image/jpeg' => 'jpg',
+ 'image/png' => 'png',
+ 'image/gif' => 'gif'
+ );
+ }
+
+ public function get_FormatsMap() {
+ return array(
+ 'image/jpeg' => 'JPG',
+ 'image/png' => 'PNG',
+ 'image/gif' => 'GIF'
+ );
+ }
+
+
+ function load($data, $type) {
+ $this->valid = false;
+ $this->image = new Imagick();
+
+ if(! $data)
+ return;
+
+ $this->image->readImageBlob($data);
+
+
+ /**
+ * Setup the image to the format it will be saved to
+ */
+
+ $map = $this->get_FormatsMap();
+ $format = $map[$type];
+
+ if($this->image) {
+ $this->image->setFormat($format);
+
+ // Always coalesce, if it is not a multi-frame image it won't hurt anyway
+ $this->image = $this->image->coalesceImages();
+
+
+ $this->valid = true;
+ $this->setDimensions();
+
+ /**
+ * setup the compression here, so we'll do it only once
+ */
+ switch($this->getType()) {
+ case "image/png":
+ $quality = get_config('system','png_quality');
+ if((! $quality) || ($quality > 9))
+ $quality = PNG_QUALITY;
+ /**
+ * From http://www.imagemagick.org/script/command-line-options.php#quality:
+ *
+ * 'For the MNG and PNG image formats, the quality value sets
+ * the zlib compression level (quality / 10) and filter-type (quality % 10).
+ * The default PNG "quality" is 75, which means compression level 7 with adaptive PNG filtering,
+ * unless the image has a color map, in which case it means compression level 7 with no PNG filtering'
+ */
+ $quality = $quality * 10;
+ $this->image->setCompressionQuality($quality);
+ break;
+ case "image/jpeg":
+ $quality = get_config('system','jpeg_quality');
+ if((! $quality) || ($quality > 100))
+ $quality = JPEG_QUALITY;
+ $this->image->setCompressionQuality($quality);
+ default:
+ break;
+
+ }
+ }
+ }
+
+ public function destroy() {
+ if($this->is_valid()) {
+ $this->image->clear();
+ $this->image->destroy();
+ }
+ }
+
+
+ public function setDimensions() {
+ $this->width = $this->image->getImageWidth();
+ $this->height = $this->image->getImageHeight();
+ }
+
+
+ public function getImage() {
+ if(!$this->is_valid())
+ return FALSE;
+
+ $this->image = $this->image->deconstructImages();
+ return $this->image;
+ }
+
+ public function doScaleImage($dest_width,$dest_height) {
+
+ /**
+ * If it is not animated, there will be only one iteration here,
+ * so don't bother checking
+ */
+ // Don't forget to go back to the first frame
+ $this->image->setFirstIterator();
+ do {
+ $this->image->scaleImage($dest_width, $dest_height);
+ } while ($this->image->nextImage());
+
+ $this->setDimensions();
+ }
+
+ public function rotate($degrees) {
+ if(!$this->is_valid())
+ return FALSE;
+
+ $this->image->setFirstIterator();
+ do {
+ // ImageMagick rotates in the opposite direction of imagerotate()
+ $this->image->rotateImage(new ImagickPixel(), -$degrees);
+ } while ($this->image->nextImage());
+
+ $this->setDimensions();
+ }
+
+ public function flip($horiz = true, $vert = false) {
+ if(!$this->is_valid())
+ return FALSE;
+
+ $this->image->setFirstIterator();
+ do {
+ if($horiz) $this->image->flipImage();
+ if($vert) $this->image->flopImage();
+ } while ($this->image->nextImage());
+
+ $this->setDimensions(); // Shouldn't really be necessary
+ }
+
+ public function cropImage($max,$x,$y,$w,$h) {
+ if(!$this->is_valid())
+ return FALSE;
+
+ $this->image->setFirstIterator();
+ do {
+ $this->image->cropImage($w, $h, $x, $y);
+ /**
+ * We need to remove the canvas,
+ * or the image is not resized to the crop:
+ * http://php.net/manual/en/imagick.cropimage.php#97232
+ */
+ $this->image->setImagePage(0, 0, 0, 0);
+ } while ($this->image->nextImage());
+
+ $this->doScaleImage($max,$max);
+ }
+
+ public function imageString() {
+ if(!$this->is_valid())
+ return FALSE;
+
+ /* Clean it */
+ $this->image = $this->image->deconstructImages();
+ return $this->image->getImagesBlob();
+ }
+
+
+
+} \ No newline at end of file
diff --git a/include/photos.php b/include/photos.php
index 885d2f958..8902761c4 100644
--- a/include/photos.php
+++ b/include/photos.php
@@ -1,7 +1,9 @@
-<?php
+<?php /** @file */
require_once('include/permissions.php');
require_once('include/items.php');
+require_once('include/photo/photo_driver.php');
+
function photo_upload($channel, $observer, $args) {
@@ -116,13 +118,13 @@ function photo_upload($channel, $observer, $args) {
}
- $ph = new Photo($imagedata, $type);
+ $ph = photo_factory($imagedata, $type);
if(! $ph->is_valid()) {
$ret['message'] = t('Unable to process image');
logger('photo_upload: unable to process image');
@unlink($src);
- call_hooks('photo_post_end',$ret);
+ call_hooks('photo_upload_end',$ret);
return $ret;
}
@@ -175,26 +177,26 @@ function photo_upload($channel, $observer, $args) {
);
$ret['message'] = t('Photo storage failed.');
logger('photo_upload: photo store failed.');
- call_hooks('photo_post_end',$ret);
+ call_hooks('photo_upload_end',$ret);
return $ret;
}
$basename = basename($filename);
- $uri = item_message_id();
+ $mid = item_message_id();
// Create item container
$item_flags = ITEM_WALL|ITEM_ORIGIN|ITEM_THREAD_TOP;
$item_restrict = (($visible) ? ITEM_VISIBLE : ITEM_HIDDEN);
$title = '';
- $uri = item_message_id();
+ $mid = item_message_id();
$arr = array();
$arr['aid'] = $account_id;
$arr['uid'] = $channel_id;
- $arr['uri'] = $uri;
- $arr['parent_uri'] = $uri;
+ $arr['mid'] = $mid;
+ $arr['parent_mid'] = $mid;
$arr['item_flags'] = $item_flags;
$arr['item_restrict'] = $item_restrict;
$arr['resource_type'] = 'photo';
@@ -208,9 +210,9 @@ function photo_upload($channel, $observer, $args) {
$arr['deny_gid'] = $str_group_deny;
- $arr['body'] = '[url=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']'
- . '[img]' . z_root() . "/photo/{$photo_hash}-{$smallest}.".$ph->getExt() . '[/img]'
- . '[/url]';
+ $arr['body'] = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']'
+ . '[zmg]' . z_root() . "/photo/{$photo_hash}-{$smallest}.".$ph->getExt() . '[/zmg]'
+ . '[/zrl]';
$item_id = item_store($arr);
@@ -222,7 +224,7 @@ function photo_upload($channel, $observer, $args) {
$ret['resource_id'] = $photo_hash;
$ret['photoitem_id'] = $item_id;
- call_hooks('photo_post_end',$ret);
+ call_hooks('photo_upload_end',$ret);
return $ret;
}
@@ -242,19 +244,25 @@ function photos_albums_list($channel,$observer) {
$sql_extra = permissions_sql($channel_id);
- $albums = q("SELECT distinct album from photo where uid = %d $sql_extra order by created desc",
- intval($channel_id)
+ $albums = q("SELECT distinct album from photo where uid = %d and ( photo_flags = %d or photo_flags = %d ) $sql_extra order by created desc",
+ intval($channel_id),
+ intval(PHOTO_NORMAL),
+ intval(PHOTO_PROFILE)
+
);
// add various encodings to the array so we can just loop through and pick them out in a template
+ $ret = array('success' => false);
+
if($albums) {
+ $ret['success'] = true;
foreach($albums as $k => $album) {
- $albums[$k]['urlencode'] = urlencode($album['album']);
- $albums[$k]['bin2hex'] = bin2hex($album['album']);
+ $entry = array('text' => $album['album'], 'urlencode' => urlencode($album['album']),'bin2hex' => bin2hex($album['album']));
+ $ret[] = $entry;
}
}
- return $albums;
+ return $ret;
}
@@ -278,6 +286,38 @@ function photos_album_widget($channelx,$observer,$albums = null) {
return $o;
}
+
+function photos_list_photos($channel,$observer,$album = '') {
+
+ $channel_id = $channel['channel_id'];
+ $observer_xchan = (($observer) ? $observer['xchan_hash'] : '');
+
+ if(! perm_is_allowed($channel_id,$observer_xchan,'view_photos'))
+ return false;
+
+ $sql_extra = permissions_sql($channel_id);
+
+ if($album)
+ $sql_extra .= " and album = '" . protect_sprintf(dbesc($album)) . "' ";
+
+ $ret = array('success' => false);
+
+ $r = q("select resource_id, created, edited, title, `desc`, album, filename, `type`, height, width, `size`, `scale`, profile, allow_cid, allow_gid, deny_cid, deny_gid from photo where uid = %d and ( photo_flags = %d or photo_flags = %d ) $sql_extra ",
+ intval($channel_id),
+ intval(PHOTO_NORMAL),
+ intval(PHOTO_PROFILE)
+ );
+
+ if($r) {
+ $ret['success'] = true;
+ $ret['photos'] = $r;
+ }
+
+ return $ret;
+}
+
+
+
function photos_album_exists($channel_id,$album) {
$r = q("SELECT id from photo where album = '%s' and uid = %d limit 1",
dbesc($album),
@@ -330,14 +370,14 @@ function photos_create_item($channel, $creator_hash, $photo, $visible = false) {
$item_restrict = (($visible) ? ITEM_HIDDEN : ITEM_VISIBLE);
$title = '';
- $uri = item_message_id();
+ $mid = item_message_id();
$arr = array();
$arr['aid'] = $channel['channel_account_id'];
$arr['uid'] = $channel['channel_id'];
- $arr['uri'] = $uri;
- $arr['parent_uri'] = $uri;
+ $arr['mid'] = $mid;
+ $arr['parent_mid'] = $mid;
$arr['item_flags'] = $item_flags;
$arr['item_restrict'] = $item_restrict;
$arr['resource_type'] = 'photo';
@@ -350,9 +390,9 @@ function photos_create_item($channel, $creator_hash, $photo, $visible = false) {
$arr['deny_cid'] = $photo['deny_cid'];
$arr['deny_gid'] = $photo['deny_gid'];
- $arr['body'] = '[url=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo['resource_id'] . ']'
- . '[img]' . z_root() . '/photo/' . $photo['resource_id'] . '-' . $photo['scale'] . '[/img]'
- . '[/url]';
+ $arr['body'] = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo['resource_id'] . ']'
+ . '[zmg]' . z_root() . '/photo/' . $photo['resource_id'] . '-' . $photo['scale'] . '[/zmg]'
+ . '[/zrl]';
$item_id = item_store($arr);
return $item_id;
diff --git a/include/plugin.php b/include/plugin.php
index 6660fba59..01ee99786 100644..100755
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -1,26 +1,43 @@
-<?php
+<?php /** @file */
require_once("include/friendica_smarty.php");
// install and uninstall plugin
-if (! function_exists('uninstall_plugin')){
-function uninstall_plugin($plugin){
- logger("Addons: uninstalling " . $plugin, LOGGER_DEBUG);
- q("DELETE FROM `addon` WHERE `name` = '%s' ",
- dbesc($plugin)
- );
+
+function unload_plugin($plugin){
+ logger("Addons: unloading " . $plugin, LOGGER_DEBUG);
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
+ if(function_exists($plugin . '_unload')) {
+ $func = $plugin . '_unload';
+ $func();
+ }
+}
+
+
+
+function uninstall_plugin($plugin) {
+
+ unload_plugin($plugin);
+
+ if(! file_exists('addon/' . $plugin . '/' . $plugin . '.php'))
+ return false;
+
+ logger("Addons: uninstalling " . $plugin);
+ $t = @filemtime('addon/' . $plugin . '/' . $plugin . '.php');
+ @include_once('addon/' . $plugin . '/' . $plugin . '.php');
if(function_exists($plugin . '_uninstall')) {
$func = $plugin . '_uninstall';
$func();
}
-}}
-if (! function_exists('install_plugin')){
-function install_plugin($plugin) {
- // silently fail if plugin was removed
+ q("DELETE FROM `addon` WHERE `name` = '%s' ",
+ dbesc($plugin)
+ );
+}
+
+function install_plugin($plugin) {
if(! file_exists('addon/' . $plugin . '/' . $plugin . '.php'))
return false;
@@ -30,14 +47,34 @@ function install_plugin($plugin) {
if(function_exists($plugin . '_install')) {
$func = $plugin . '_install';
$func();
+ }
+
+ $plugin_admin = (function_exists($plugin . "_plugin_admin") ? 1 : 0);
- $plugin_admin = (function_exists($plugin . "_plugin_admin") ? 1 : 0);
+ $r = q("INSERT INTO `addon` (`name`, `installed`, `timestamp`, `plugin_admin`) VALUES ( '%s', 1, %d , %d ) ",
+ dbesc($plugin),
+ intval($t),
+ $plugin_admin
+ );
+
+ load_plugin($plugin);
+
+}
+
+
+function load_plugin($plugin) {
+ // silently fail if plugin was removed
+
+ if(! file_exists('addon/' . $plugin . '/' . $plugin . '.php'))
+ return false;
+
+ logger("Addons: loading " . $plugin);
+ $t = @filemtime('addon/' . $plugin . '/' . $plugin . '.php');
+ @include_once('addon/' . $plugin . '/' . $plugin . '.php');
+ if(function_exists($plugin . '_load')) {
+ $func = $plugin . '_load';
+ $func();
- $r = q("INSERT INTO `addon` (`name`, `installed`, `timestamp`, `plugin_admin`) VALUES ( '%s', 1, %d , %d ) ",
- dbesc($plugin),
- intval($t),
- $plugin_admin
- );
// we can add the following with the previous SQL
// once most site tables have been updated.
@@ -51,15 +88,14 @@ function install_plugin($plugin) {
return true;
}
else {
- logger("Addons: FAILED installing " . $plugin);
+ logger("Addons: FAILED loading " . $plugin);
return false;
}
-}}
+}
// reload all updated plugins
-if(! function_exists('reload_plugins')) {
function reload_plugins() {
$plugins = get_config('system','addon');
if(strlen($plugins)) {
@@ -86,12 +122,12 @@ function reload_plugins() {
logger('Reloading plugin: ' . $i['name']);
@include_once($fname);
- if(function_exists($pl . '_uninstall')) {
- $func = $pl . '_uninstall';
+ if(function_exists($pl . '_unload')) {
+ $func = $pl . '_unload';
$func();
}
- if(function_exists($pl . '_install')) {
- $func = $pl . '_install';
+ if(function_exists($pl . '_load')) {
+ $func = $pl . '_load';
$func();
}
q("UPDATE `addon` SET `timestamp` = %d WHERE `id` = %d LIMIT 1",
@@ -104,14 +140,13 @@ function reload_plugins() {
}
}
}
-
-}}
+}
-if(! function_exists('register_hook')) {
+
function register_hook($hook,$file,$function,$priority=0) {
$r = q("SELECT * FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1",
@@ -129,18 +164,18 @@ function register_hook($hook,$file,$function,$priority=0) {
dbesc($priority)
);
return $r;
-}}
+}
+
-if(! function_exists('unregister_hook')) {
function unregister_hook($hook,$file,$function) {
- $r = q("DELETE FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1",
+ $r = q("DELETE FROM hook WHERE hook = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1",
dbesc($hook),
dbesc($file),
dbesc($function)
);
return $r;
-}}
+}
//
@@ -148,22 +183,22 @@ function unregister_hook($hook,$file,$function) {
// array in their theme_init() and use this to customise the app behaviour.
//
-if(! function_exists('load_hooks')) {
+
function load_hooks() {
$a = get_app();
$a->hooks = array();
- $r = q("SELECT * FROM `hook` WHERE 1 ORDER BY `priority` DESC");
- if(count($r)) {
+ $r = q("SELECT * FROM hook WHERE true ORDER BY priority DESC");
+ if($r) {
foreach($r as $rr) {
if(! array_key_exists($rr['hook'],$a->hooks))
$a->hooks[$rr['hook']] = array();
$a->hooks[$rr['hook']][] = array($rr['file'],$rr['function']);
}
}
-}}
+}
+
-if(! function_exists('call_hooks')) {
function call_hooks($name, &$data = null) {
$a = get_app();
@@ -185,7 +220,7 @@ function call_hooks($name, &$data = null) {
}
}
-}}
+}
/*
@@ -201,7 +236,7 @@ function call_hooks($name, &$data = null) {
* *
*/
-if (! function_exists('get_plugin_info')){
+
function get_plugin_info($plugin){
$info=Array(
'name' => $plugin,
@@ -241,7 +276,7 @@ function get_plugin_info($plugin){
}
return $info;
-}}
+}
/*
@@ -257,7 +292,7 @@ function get_plugin_info($plugin){
* *
*/
-if (! function_exists('get_theme_info')){
+
function get_theme_info($theme){
$info=Array(
'name' => $theme,
@@ -316,7 +351,7 @@ function get_theme_info($theme){
}
return $info;
-}}
+}
function get_theme_screenshot($theme) {
@@ -397,7 +432,7 @@ function upgrade_link($bbcode = false) {
if(! $l)
return '';
if($bbcode)
- $t = sprintf('[url=%s]' . t('Click here to upgrade.') . '[/url]', $l);
+ $t = sprintf('[zrl=%s]' . t('Click here to upgrade.') . '[/zrl]', $l);
else
$t = sprintf('<a href="%s">' . t('Click here to upgrade.') . '</div>', $l);
return $t;
@@ -503,55 +538,21 @@ function theme_include($file, $root = '') {
-if(! function_exists('get_intltext_template')) {
-function get_intltext_template($s) {
- global $a;
- if(! isset($a->language))
- $a->language = 'en';
+function get_intltext_template($s, $root = '') {
+ $a = get_app();
+ $t = $a->template_engine();
- $engine = '';
- if($a->get_template_engine() === 'smarty3')
- $engine = "/smarty3";
+ $template = $t->get_intltext_template($s, $root);
+ return $template;
- $file = '';
- if(file_exists("view/{$a->language}$engine/$s"))
- $file = "view/{$a->language}$engine/$s";
- elseif(file_exists("view/en$engine/$s"))
- $file = "view/en$engine/$s";
- else
- $file = "view/tpl/$engine/$s";
- if($engine === '/smarty3') {
- $template = new FriendicaSmarty();
- $template->filename = $file;
-
- return $template;
- }
- else
- return file_get_contents($file);
+}
-}}
-if(! function_exists('get_markup_template')) {
function get_markup_template($s, $root = '') {
-
$a = get_app();
-
- $template_eng = $a->get_template_engine();
- if($template_eng === 'internal') {
- $template_file = theme_include($s, $root);
- if($template_file)
- return file_get_contents($template_file);
- }
- else {
- $template_file = theme_include("$template_eng/$s", $root);
-
- if($template_file) {
- $template = new FriendicaSmarty();
- $template->filename = $template_file;
-
- return $template;
- }
- }
-}}
+ $t = $a->template_engine();
+ $template = $t->get_markup_template($s, $root);
+ return $template;
+}
diff --git a/include/poller.php b/include/poller.php
index ef4b93fe7..00914a712 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('boot.php');
require_once('include/cli_startup.php');
@@ -30,14 +30,32 @@ function poller_run($argv, $argc){
// expire any expired accounts
q("UPDATE account
- SET account_flags = account_flags | %d
- where not account_flags & %d
+ SET account_flags = (account_flags | %d)
+ where not (account_flags & %d)
and account_expires != '0000-00-00 00:00:00'
and account_expires < UTC_TIMESTAMP() ",
intval(ACCOUNT_EXPIRED),
intval(ACCOUNT_EXPIRED)
);
+ // publish any applicable items that were set to be published in the future
+ // (time travel posts)
+
+ $r = q("select id from item where ( item_restrict & %d ) and created <= UTC_TIMESTAMP() ",
+ intval(ITEM_DELAYED_PUBLISH)
+ );
+ if($r) {
+ foreach($r as $rr) {
+ $x = q("update item set item_restrict = ( item_restrict ^ %d ) where id = %d limit 1",
+ intval(ITEM_DELAYED_PUBLISH),
+ intval($rr['id'])
+ );
+ if($x) {
+ proc_run('php','include/notifer.php','wall-new',$rr['id']);
+ }
+ }
+ }
+
$abandon_days = intval(get_config('system','account_abandon_days'));
if($abandon_days < 1)
$abandon_days = 0;
@@ -45,15 +63,51 @@ function poller_run($argv, $argc){
// once daily run birthday_updates and then expire in background
+ // FIXME: add birthday updates, both locally and for xprof for use
+ // by directory servers
+
$d1 = get_config('system','last_expire_day');
$d2 = intval(datetime_convert('UTC','UTC','now','d'));
if($d2 != intval($d1)) {
-// update_suggestions();
+ // If this is a directory server, request a sync with an upstream
+ // directory at least once a day, up to once every poll interval.
+ // Pull remote changes and push local changes.
+ // potential issue: how do we keep from creating an endless update loop?
+
+ $dirmode = get_config('system','directory_mode');
+ if($dirmode == DIRECTORY_MODE_SECONDARY || $dirmode == DIRECTORY_MODE_PRIMARY) {
+ require_once('include/dir_fns.php');
+ sync_directories($dirmode);
+ }
+
set_config('system','last_expire_day',$d2);
proc_run('php','include/expire.php');
+
+ proc_run('php','include/cli_suggest.php');
+
+ }
+
+ // update any photos which didn't get imported properly
+ // This should be rare
+
+ $r = q("select xchan_photo_l, xchan_hash from xchan where xchan_photo_l != '' and xchan_photo_m = ''
+ and xchan_photo_date < UTC_TIMESTAMP() - INTERVAL 1 DAY");
+ if($r) {
+ require_once('include/photo/photo_driver.php');
+ foreach($r as $rr) {
+ $photos = import_profile_photo($rr['xchan_photo_l'],$rr['xchan_hash']);
+ $x = q("update xchan set xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s'
+ where xchan_hash = '%s' limit 1",
+ dbesc($photos[0]),
+ dbesc($photos[1]),
+ dbesc($photos[2]),
+ dbesc($photos[3]),
+ dbesc($rr['xchan_hash'])
+ );
+ }
}
diff --git a/include/profile_advanced.php b/include/profile_advanced.php
index 749c79a3b..21606185d 100644
--- a/include/profile_advanced.php
+++ b/include/profile_advanced.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function advanced_profile(&$a) {
@@ -80,9 +80,44 @@ function advanced_profile(&$a) {
if($txt = prepare_text($a->profile['education'])) $profile['education'] = array( t('School/education:'), $txt );
+ $r = q("select * from obj left join term on obj_obj = term_hash where term_hash != '' and obj_page = '%s' and uid = %d and obj_type = %d
+ order by obj_verb, term",
+ dbesc($a->profile['profile_guid']),
+ intval($a->profile['profile_uid']),
+ intval(TERM_OBJ_THING)
+ );
+
+ $things = null;
+
+ if($r) {
+ $things = array();
+
+ // Use the system obj_verbs array as a sort key, since we don't really
+ // want an alphabetic sort. To change the order, use a plugin to
+ // alter the obj_verbs() array or alter it in code. Unknown verbs come
+ // after the known ones - in no particular order.
+
+ $v = obj_verbs();
+ foreach($v as $k => $foo)
+ $things[$k] = null;
+ foreach($r as $rr) {
+ if(! $things[$rr['obj_verb']])
+ $things[$rr['obj_verb']] = array();
+ $things[$rr['obj_verb']][] = array('term' => $rr['term'],'url' => $rr['url'],'img' => $rr['imgurl']);
+ }
+ $sorted_things = array();
+ if($things)
+ foreach($things as $k => $v)
+ if(is_array($things[$k]))
+ $sorted_things[$k] = $v;
+ }
+
+ logger('mod_profile: things: ' . print_r($sorted_things,true), LOGGER_DATA);
+
return replace_macros($tpl, array(
'$title' => t('Profile'),
'$profile' => $profile,
+ '$things' => $sorted_things
));
}
diff --git a/include/profile_selectors.php b/include/profile_selectors.php
index 8d29fd099..1ffcd49be 100644
--- a/include/profile_selectors.php
+++ b/include/profile_selectors.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function gender_selector($current="",$suffix="") {
diff --git a/include/queue.php b/include/queue.php
index c74a08ac9..ec7246cb2 100644
--- a/include/queue.php
+++ b/include/queue.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once("boot.php");
require_once('include/cli_startup.php');
require_once('include/queue_fn.php');
@@ -40,14 +40,14 @@ function queue_run($argv, $argc){
return;
foreach($r as $rr) {
- if(in_array($rr['outq_hub'],$deadguys))
+ if(in_array($rr['outq_posturl'],$deadguys))
continue;
$result = zot_zot($rr['outq_posturl'],$rr['outq_notify']);
if($result['success']) {
zot_process_response($rr['outq_posturl'],$result, $rr);
}
else {
- $deadguys[] = $rr['outq_hub'];
+ $deadguys[] = $rr['outq_posturl'];
$y = q("update outq set outq_updated = '%s' where outq_hash = '%s' limit 1",
dbesc(datetime_convert()),
dbesc($rr['outq_hash'])
diff --git a/include/queue_fn.php b/include/queue_fn.php
index c9782b939..512edb531 100644
--- a/include/queue_fn.php
+++ b/include/queue_fn.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function update_queue_time($id) {
logger('queue: requeue item ' . $id);
diff --git a/include/security.php b/include/security.php
index e691939fb..ef4d5a313 100644
--- a/include/security.php
+++ b/include/security.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function authenticate_success($user_record, $login_initial = false, $interactive = false,$return = false,$update_lastlog = false) {
@@ -205,26 +205,29 @@ function permissions_sql($owner_id,$remote_verified = false,$groups = null) {
else {
- $observer = get_app()->get_observer();
- $groups = init_groups_visitor($remote_user);
-
- $gs = '<<>>'; // should be impossible to match
-
- if(is_array($groups) && count($groups)) {
- foreach($groups as $g)
- $gs .= '|<' . $g . '>';
- }
- $sql = sprintf(
- " AND ( NOT (deny_cid like '%s' OR deny_gid REGEXP '%s')
- AND ( allow_cid like '%s' OR allow_gid REGEXP '%s' OR ( allow_cid = '' AND allow_gid = '') )
- )
- ",
- dbesc(protect_sprintf( '%<' . $remote_user . '>%')),
- dbesc($gs),
- dbesc(protect_sprintf( '%<' . $remote_user . '>%')),
- dbesc($gs)
- );
+ $observer = get_observer_hash();
+ if($observer) {
+ $groups = init_groups_visitor($observer);
+
+ $gs = '<<>>'; // should be impossible to match
+
+ if(is_array($groups) && count($groups)) {
+ foreach($groups as $g)
+ $gs .= '|<' . $g . '>';
+ }
+ $sql = sprintf(
+ " AND ( NOT (deny_cid like '%s' OR deny_gid REGEXP '%s')
+ AND ( allow_cid like '%s' OR allow_gid REGEXP '%s' OR ( allow_cid = '' AND allow_gid = '') )
+ )
+ ",
+ dbesc(protect_sprintf( '%<' . $observer . '>%')),
+ dbesc($gs),
+ dbesc(protect_sprintf( '%<' . $observer . '>%')),
+ dbesc($gs)
+ );
+ }
}
+
return $sql;
}
@@ -260,25 +263,28 @@ function item_permissions_sql($owner_id,$remote_verified = false,$groups = null)
else {
- $observer = get_app()->get_observer();
- $groups = init_groups_visitor($remote_user);
-
- $gs = '<<>>'; // should be impossible to match
-
- if(is_array($groups) && count($groups)) {
- foreach($groups as $g)
- $gs .= '|<' . $g . '>';
- }
- $sql = sprintf(
- " AND ( NOT (deny_cid like '%s' OR deny_gid REGEXP '%s')
- AND ( allow_cid like '%s' OR allow_gid REGEXP '%s' OR ( allow_cid = '' AND allow_gid = '') )
- )
- ",
- dbesc(protect_sprintf( '%<' . $remote_user . '>%')),
- dbesc($gs),
- dbesc(protect_sprintf( '%<' . $remote_user . '>%')),
- dbesc($gs)
- );
+ $observer = get_observer_hash();
+
+ if($observer) {
+ $groups = init_groups_visitor($observer);
+
+ $gs = '<<>>'; // should be impossible to match
+
+ if(is_array($groups) && count($groups)) {
+ foreach($groups as $g)
+ $gs .= '|<' . $g . '>';
+ }
+ $sql = sprintf(
+ " AND ( NOT (deny_cid like '%s' OR deny_gid REGEXP '%s')
+ AND ( allow_cid like '%s' OR allow_gid REGEXP '%s' OR ( allow_cid = '' AND allow_gid = '') )
+ )
+ ",
+ dbesc(protect_sprintf( '%<' . $observer . '>%')),
+ dbesc($gs),
+ dbesc(protect_sprintf( '%<' . $observer . '>%')),
+ dbesc($gs)
+ );
+ }
}
return $sql;
}
diff --git a/include/session.php b/include/session.php
index 6c32e299f..6072bdb33 100644
--- a/include/session.php
+++ b/include/session.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
// Session management functions. These provide database storage of PHP
// session info.
@@ -6,12 +6,23 @@
$session_exists = 0;
$session_expire = 180000;
-if(! function_exists('ref_session_open')) {
+
+
+
+function new_cookie($time) {
+ $old_sid = session_id();
+ session_set_cookie_params("$time");
+ session_regenerate_id(false);
+
+ q("UPDATE session SET sid = '%s' WHERE sid = '%s'", dbesc(session_id()), dbesc($old_sid));
+}
+
+
function ref_session_open ($s,$n) {
return true;
-}}
+}
+
-if(! function_exists('ref_session_read')) {
function ref_session_read ($id) {
global $session_exists;
if(x($id))
@@ -21,9 +32,9 @@ function ref_session_read ($id) {
return $r[0]['data'];
}
return '';
-}}
+}
+
-if(! function_exists('ref_session_write')) {
function ref_session_write ($id,$data) {
global $session_exists, $session_expire;
if(! $id || ! $data) {
@@ -44,25 +55,25 @@ function ref_session_write ($id,$data) {
dbesc($id), dbesc($default_expire), dbesc($data));
return true;
-}}
+}
+
-if(! function_exists('ref_session_close')) {
function ref_session_close() {
return true;
-}}
+}
+
-if(! function_exists('ref_session_destroy')) {
function ref_session_destroy ($id) {
q("DELETE FROM `session` WHERE `sid` = '%s'", dbesc($id));
return true;
-}}
+}
+
-if(! function_exists('ref_session_gc')) {
function ref_session_gc($expire) {
- q("DELETE FROM `session` WHERE `expire` < %d", dbesc(time()));
- q("OPTIMIZE TABLE `sess_data`");
+ q("DELETE FROM session WHERE expire < %d", dbesc(time()));
+ q("OPTIMIZE TABLE session");
return true;
-}}
+}
$gc_probability = 50;
@@ -71,6 +82,4 @@ ini_set('session.use_only_cookies', 1);
ini_set('session.cookie_httponly', 1);
-session_set_save_handler ('ref_session_open', 'ref_session_close',
- 'ref_session_read', 'ref_session_write',
- 'ref_session_destroy', 'ref_session_gc');
+session_set_save_handler ('ref_session_open', 'ref_session_close', 'ref_session_read', 'ref_session_write', 'ref_session_destroy', 'ref_session_gc');
diff --git a/include/socgraph.php b/include/socgraph.php
index 0d9ae3e6c..177ed0f3a 100644
--- a/include/socgraph.php
+++ b/include/socgraph.php
@@ -1,10 +1,16 @@
-<?php
+<?php /** @file */
require_once('include/zot.php');
/*
* poco_load
*
+ * xchan is your connection
+ * We will load their friend list, and store in xlink_xchan your connection hash and xlink_link the hash for each connection
+ * If xchan isn't provided we will load the list of people from url who have indicated they are willing to be friends with
+ * new folks and add them to xlink with no xlink_xchan.
+ *
+ * Old behaviour: (documentation only):
* Given a contact-id (minimum), load the PortableContacts friend list for that contact,
* and add the entries to the gcontact (Global Contact) table, or update existing entries
* if anything (name or photo) has changed.
@@ -19,7 +25,7 @@ require_once('include/zot.php');
-function poco_load($xchan = null,$url = null) {
+function poco_load($xchan = '',$url = null) {
$a = get_app();
if($xchan && ! $url) {
@@ -44,7 +50,12 @@ function poco_load($xchan = null,$url = null) {
$s = z_fetch_url($url);
if(! $s['success']) {
- logger('poco_load: returns ' . print_r($s,true));
+ if($s['return_code'] == 401)
+ logger('poco_load: protected');
+ elseif($s['return_code'] == 404)
+ logger('poco_load: nothing found');
+ else
+ logger('poco_load: returns ' . print_r($s,true));
return;
}
@@ -60,7 +71,6 @@ function poco_load($xchan = null,$url = null) {
$total = 0;
foreach($j['entry'] as $entry) {
- $total ++;
$profile_url = '';
$profile_photo = '';
$address = '';
@@ -112,30 +122,40 @@ function poco_load($xchan = null,$url = null) {
if($j)
import_xchan($j);
}
+ $x = q("select xchan_hash from xchan where xchan_hash = '%s' limit 1",
+ dbesc($hash)
+ );
+ if(! $x) {
+ continue;
+ }
+ }
+ else {
+ continue;
}
}
+ $total ++;
- if($xchan) {
- $r = q("select * from xlink where xlink_xchan = '%s' and xlink_link = '%s' limit 1",
+
+ $r = q("select * from xlink where xlink_xchan = '%s' and xlink_link = '%s' limit 1",
+ dbesc($xchan),
+ dbesc($hash)
+ );
+
+ if(! $r) {
+ q("insert into xlink ( xlink_xchan, xlink_link, xlink_rating, xlink_updated ) values ( '%s', '%s', %d, '%s' ) ",
dbesc($xchan),
- dbesc($hash)
+ dbesc($hash),
+ intval($rating),
+ dbesc(datetime_convert())
+ );
+ }
+ else {
+ q("update xlink set xlink_updated = '%s', xlink_rating = %d where xlink_id = %d limit 1",
+ dbesc(datetime_convert()),
+ intval($rating),
+ intval($r[0]['xlink_id'])
);
- if(! $r) {
- q("insert into xlink ( xlink_xchan, xlink_link, xlink_rating, xlink_updated ) values ( '%s', '%s', %d, '%s' ) ",
- dbesc($xchan),
- dbesc($hash),
- intval($rating),
- dbesc(datetime_convert())
- );
- }
- else {
- q("update xlink set xlink_updated = '%s', rating = %d where xlink_id = %d limit 1",
- dbesc(datetime_convert()),
- intval($rating),
- intval($r[0]['xlink_id'])
- );
- }
}
}
logger("poco_load: loaded $total entries",LOGGER_DEBUG);
@@ -254,80 +274,92 @@ function all_friends($uid,$cid,$start = 0, $limit = 80) {
-function suggestion_query($uid, $start = 0, $limit = 80) {
+function suggestion_query($uid, $myxchan, $start = 0, $limit = 80) {
- if(! $uid)
+ if((! $uid) || (! $myxchan))
return array();
- $r = q("SELECT count(glink.gcid) as `total`, gcontact.* from gcontact
- left join glink on glink.gcid = gcontact.id
- where uid = %d and not gcontact.nurl in ( select nurl from contact where uid = %d )
- and not gcontact.name in ( select name from contact where uid = %d )
- and not gcontact.id in ( select gcid from gcign where uid = %d )
- group by glink.gcid order by total desc limit %d, %d ",
- intval($uid),
+ $r = q("SELECT count(xlink_xchan) as `total`, xchan.* from xchan
+ left join xlink on xlink_link = xchan_hash
+ where xlink_xchan in ( select abook_xchan from abook where abook_channel = %d )
+ and not xlink_link in ( select abook_xchan from abook where abook_channel = %d )
+ and not xlink_link in ( select xchan from xign where uid = %d )
+ and xlink_xchan != ''
+ and not ( xchan_flags & %d )
+ group by xchan_hash order by total desc limit %d, %d ",
intval($uid),
intval($uid),
intval($uid),
+ intval(XCHAN_FLAGS_HIDDEN),
intval($start),
intval($limit)
);
- if(count($r) && count($r) >= ($limit -1))
+ if($r && count($r) >= ($limit -1))
return $r;
- $r2 = q("SELECT gcontact.* from gcontact
- left join glink on glink.gcid = gcontact.id
- where glink.uid = 0 and glink.cid = 0 and glink.zcid = 0 and not gcontact.nurl in ( select nurl from contact where uid = %d )
- and not gcontact.name in ( select name from contact where uid = %d )
- and not gcontact.id in ( select gcid from gcign where uid = %d )
- order by rand() limit %d, %d ",
- intval($uid),
+ $r2 = q("SELECT count(xlink_link) as `total`, xchan.* from xchan
+ left join xlink on xlink_link = xchan_hash
+ where xlink_xchan = ''
+ and not xlink_link in ( select abook_xchan from abook where abook_channel = %d )
+ and not xlink_link in ( select xchan from xign where uid = %d )
+ and not ( xchan_flags & %d )
+ group by xchan_hash order by total desc limit %d, %d ",
intval($uid),
intval($uid),
+ intval(XCHAN_FLAGS_HIDDEN),
intval($start),
intval($limit)
);
+ if(is_array($r) && is_array($r2))
+ return array_merge($r,$r2);
- return array_merge($r,$r2);
-
+ return array();
}
function update_suggestions() {
-// FIXME
-return;
$a = get_app();
- $done = array();
-
- // fix this to get a json list from an upstream directory
-// poco_load(0,0,0,$a->get_baseurl() . '/poco');
-
-// $done[] = $a->get_baseurl() . '/poco';
-
-// if(strlen(get_config('system','directory_submit_url'))) {
-// $x = fetch_url('http://dir.friendica.com/pubsites');
-// if($x) {
-// $j = json_decode($x);
-// if($j->entries) {
-// foreach($j->entries as $entry) {
-// $url = $entry->url . '/poco';
-// if(! in_array($url,$done))
-// poco_load(0,0,0,$entry->url . '/poco');
-// }
-// }
-// }
-// }
-
- $r = q("select distinct(xchan_connurl) as poco from xchan where xchan_network = 'zot'");
-
- if($r) {
- foreach($r as $rr) {
- $base = substr($rr['poco'],0,strrpos($rr['poco'],'/'));
- if(! in_array($base,$done))
- poco_load('',$base);
+ $dirmode = get_config('system','directory_mode');
+ if($dirmode === false)
+ $dirmode = DIRECTORY_MODE_NORMAL;
+
+ if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) {
+ $url = z_root() . '/sitelist';
+ }
+ else {
+ $directory = find_upstream_directory($dirmode);
+
+ if($directory) {
+ $url = $directory['url'] . '/sitelist';
+ }
+ else {
+ $url = DIRECTORY_FALLBACK_MASTER . '/sitelist';
+ }
+ }
+ if(! $url)
+ return;
+
+
+
+ $ret = z_fetch_url($url);
+
+ if($ret['success']) {
+
+ // We will grab fresh data once a day via the poller. Remove anything over a week old because
+ // the targets may have changed their preferences and don't want to be suggested - and they
+ // may have simply gone away.
+
+ $r = q("delete from xlink where xlink_xchan = '' and xlink_updated < UTC_TIMESTAMP() - INTERVAL 7 DAY");
+
+
+ $j = json_decode($ret['body'],true);
+ if($j && $j['success']) {
+ foreach($j['entries'] as $host) {
+ poco_load('',$host['url'] . '/poco');
+ }
}
}
}
diff --git a/include/system_unavailable.php b/include/system_unavailable.php
index bd7196cdf..dfe7c5e6b 100644
--- a/include/system_unavailable.php
+++ b/include/system_unavailable.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
function system_down() {
echo <<< EOT
diff --git a/include/taxonomy.php b/include/taxonomy.php
new file mode 100644
index 000000000..b6803743a
--- /dev/null
+++ b/include/taxonomy.php
@@ -0,0 +1,208 @@
+<?php /** @file */
+
+// post categories and "save to file" use the same item.file table for storage.
+// We will differentiate the different uses by wrapping categories in angle brackets
+// and save to file categories in square brackets.
+// To do this we need to escape these characters if they appear in our tag.
+
+function file_tag_encode($s) {
+ return str_replace(array('<','>','[',']'),array('%3c','%3e','%5b','%5d'),$s);
+}
+
+function file_tag_decode($s) {
+ return str_replace(array('%3c','%3e','%5b','%5d'),array('<','>','[',']'),$s);
+}
+
+function file_tag_file_query($table,$s,$type = 'file') {
+
+ if($type == 'file')
+ $termtype = TERM_FILE;
+ else
+ $termtype = TERM_CATEGORY;
+
+ return sprintf(" AND " . (($table) ? dbesc($table) . '.' : '') . "id in (select term.oid from term where term.type = %d and term.term = '%s' and term.uid = " . (($table) ? dbesc($table) . '.' : '') . "uid ) ",
+ intval($termtype),
+ protect_sprintf(dbesc($s))
+ );
+}
+
+function term_query($table,$s,$type = TERM_UNKNOWN) {
+
+ return sprintf(" AND " . (($table) ? dbesc($table) . '.' : '') . "id in (select term.oid from term where term.type = %d and term.term = '%s' and term.uid = " . (($table) ? dbesc($table) . '.' : '') . "uid ) ",
+ intval($type),
+ protect_sprintf(dbesc($s))
+ );
+}
+
+
+function store_item_tag($uid,$iid,$otype,$type,$term,$url = '') {
+ if(! $term)
+ return false;
+ $r = q("select * from term
+ where uid = %d and oid = %d and otype = %d and type = %d
+ and term = '%s' and url = '%s' ",
+ intval($uid),
+ intval($iid),
+ intval($otype),
+ intval($type),
+ dbesc($term),
+ dbesc($url)
+ );
+ if($r)
+ return false;
+ $r = q("insert into term (uid, oid, otype, type, term, url)
+ values( %d, %d, %d, %d, '%s', '%s') ",
+ intval($uid),
+ intval($iid),
+ intval($otype),
+ intval($type),
+ dbesc($term),
+ dbesc($url)
+ );
+ return $r;
+}
+
+function get_terms_oftype($arr,$type) {
+ $ret = array();
+ if(! (is_array($arr) && count($arr)))
+ return $ret;
+
+ if(! is_array($type))
+ $type = array($type);
+
+ foreach($type as $t)
+ foreach($arr as $x)
+ if($x['type'] == $t)
+ $ret[] = $x;
+ return $ret;
+}
+
+function format_term_for_display($term) {
+ $s = '';
+ if($term['type'] == TERM_HASHTAG)
+ $s .= '#';
+ elseif($term['type'] == TERM_MENTION)
+ $s .= '@';
+ else
+ return $s;
+
+ if($term['url'])
+ $s .= '<a href="' . $term['url'] . '">' . htmlspecialchars($term['term']) . '</a>';
+ else
+ $s .= htmlspecialchars($term['term']);
+ return $s;
+}
+
+// Tag cloud functions - need to be adpated to this database format
+
+
+function tagadelic($uid, $count = 0, $authors = '', $flags = 0, $type = TERM_HASHTAG) {
+
+ $sql_options = '';
+
+ if($flags)
+ $sql_options .= " and ((item_flags & " . intval($flags) . ") = " . intval($flags) . ") ";
+ if($authors) {
+ if(! is_array($authors))
+ $authors = array($authors);
+ stringify_array_elms($authors,true);
+ $sql_options .= " and author_xchan in (" . implode(',',$authors) . ") ";
+ }
+
+ // Fetch tags
+ $r = q("select term, count(term) as total from term left join item on term.oid = item.id
+ where term.uid = %d and term.type = %d
+ and otype = %d and item_restrict = 0 and item_private = 0
+ $sql_options
+ group by term order by total desc %s",
+ intval($uid),
+ intval($type),
+ intval(TERM_OBJ_POST),
+ ((intval($count)) ? "limit $count" : '')
+ );
+
+ if(! $r)
+ return array();
+
+ // Find minimum and maximum log-count.
+ $tags = array();
+ $min = 1e9;
+ $max = -1e9;
+
+ $x = 0;
+ foreach($r as $rr) {
+ $tags[$x][0] = $rr['term'];
+ $tags[$x][1] = log($rr['total']);
+ $tags[$x][2] = 0;
+ $min = min($min,$tags[$x][1]);
+ $max = max($max,$tags[$x][1]);
+ $x ++;
+ }
+
+ usort($tags,'tags_sort');
+
+ $range = max(.01, $max - $min) * 1.0001;
+
+ for($x = 0; $x < count($tags); $x ++) {
+ $tags[$x][2] = 1 + floor(5 * ($tags[$x][1] - $min) / $range);
+ }
+
+ return $tags;
+}
+
+function tags_sort($a,$b) {
+ if($a[0] == $b[0])
+ return 0;
+ return((strtolower($a[0]) < strtolower($b[0])) ? -1 : 1);
+}
+
+
+function tagblock($link,$uid,$count = 0,$authors = '',$flags = 0,$type = TERM_HASHTAG) {
+ $o = '';
+ $tab = 0;
+ $r = tagadelic($uid,$count,$authors,$flags,$type);
+
+ if($r) {
+ $o = '<div class="tagblock widget"><h3>' . t('Tags') . '</h3><div class="tags" align="center">';
+ foreach($r as $rr) {
+ $o .= '<a href="'.$link .'/' . '?f=&tag=' . urlencode($rr[0]).'" class="tag'.$rr[2].'">'.$rr[0].'</a> ' . "\r\n";
+ }
+ $o .= '</div></div>';
+ }
+ return $o;
+}
+
+
+ /**
+ * verbs: [0] = first person singular, e.g. "I want", [1] = 3rd person singular, e.g. "Bill wants"
+ * We use the first person form when creating an activity, but the third person for use in activities
+ * FIXME: There is no accounting for verb gender for languages where this is significant. We may eventually
+ * require obj_verbs() to provide full conjugations and specify which form to use in the $_REQUEST params to this module.
+ */
+
+
+
+function obj_verbs() {
+ $verbs = array(
+ 'has' => array( t('have'), t('has')),
+ 'wants' => array( t('want'), t('wants')),
+ 'likes' => array( t('like'), t('likes')),
+ 'dislikes' => array( t('dislike'), t('dislikes')),
+ );
+
+ $arr = array('verbs' => $verbs);
+ call_hooks('obj_verbs', $arr);
+ return $arr['verbs'];
+}
+
+
+function obj_verb_selector() {
+ $verbs = obj_verbs();
+ $o .= '<select class="obj-verb-selector" name="verb" >';
+ foreach($verbs as $k => $v) {
+ $o .= '<option value="' . urlencode($k) . '">' . $v[0] . '</option>';
+ }
+ $o .= '</select>';
+ return $o;
+
+} \ No newline at end of file
diff --git a/include/template_processor.php b/include/template_processor.php
index 61526e570..74acc9c67 100644..100755
--- a/include/template_processor.php
+++ b/include/template_processor.php
@@ -1,7 +1,11 @@
<?php
+ require_once 'include/ITemplateEngine.php';
+
define ("KEY_NOT_EXISTS", '^R_key_not_Exists^');
- class Template {
+ class Template implements ITemplateEngine {
+ static $name ="internal";
+
var $r;
var $search;
var $replace;
@@ -244,9 +248,13 @@
return $s;
}
-
- public function replace($s, $r) {
- $t1 = dba_timer();
+
+ private function replace($s,$r) {
+ $this->replace_macros($s, $r);
+ }
+
+ // TemplateEngine interface
+ public function replace_macros($s, $r) {
$this->r = $r;
$s = $this->_build_nodes($s);
@@ -265,14 +273,18 @@
$os=$s; $count++;
$s = $this->var_replace($s);
}
- $t3 = dba_timer();
-// logger('macro timer: ' . sprintf('%01.4f %01.4f',$t3 - $t2, $t2 - $t1));
-
return $s;
}
+
+ public function get_markup_template($file, $root='') {
+ $template_file = theme_include($file, $root);
+ if ($template_file) {
+ $content = file_get_contents($template_file);
+ }
+ return $content;
+ }
}
- $t = new Template;
diff --git a/include/text.php b/include/text.php
index 523970bf4..61b39cb59 100644..100755
--- a/include/text.php
+++ b/include/text.php
@@ -1,48 +1,25 @@
-<?php
+<?php /** @file */
-// This is our template processor.
-// $s is the string requiring macro substitution.
-// $r is an array of key value pairs (search => replace)
-// returns substituted string.
-// WARNING: this is pretty basic, and doesn't properly handle search strings that are substrings of each other.
-// For instance if 'test' => "foo" and 'testing' => "bar", testing could become either bar or fooing,
-// depending on the order in which they were declared in the array.
require_once("include/template_processor.php");
+require_once("include/friendica_smarty.php");
-if(! function_exists('replace_macros')) {
+/**
+ * This is our template processor
+ *
+ * @param string|FriendicaSmarty $s the string requiring macro substitution,
+ * or an instance of FriendicaSmarty
+ * @param array $r key value pairs (search => replace)
+ * @return string substituted string
+ */
function replace_macros($s,$r) {
- global $t;
-
-// $ts = microtime();
$a = get_app();
- if($a->get_template_engine() === 'smarty3') {
- $output = '';
- if(gettype($s) !== 'NULL') {
- $template = '';
- if(gettype($s) === 'string') {
- $template = $s;
- $s = new FriendicaSmarty();
- }
- foreach($r as $key=>$value) {
- if($key[0] === '$') {
- $key = substr($key, 1);
- }
- $s->assign($key, $value);
- }
- $output = $s->parsed($template);
- }
- }
- else {
- $r = $t->replace($s,$r);
+ $t = $a->template_engine();
+ $output = $t->replace_macros($s,$r);
- $output = template_unescape($r);
- }
-// $tt = microtime() - $ts;
-// $a->page['debug'] .= "$tt <br>\n";
return $output;
-}}
+}
// random string, there are 86 characters max in text mode, 128 for hex
@@ -51,13 +28,13 @@ function replace_macros($s,$r) {
define('RANDOM_STRING_HEX', 0x00 );
define('RANDOM_STRING_TEXT', 0x01 );
-if(! function_exists('random_string')) {
+
function random_string($size = 64,$type = RANDOM_STRING_HEX) {
// generate a bit of entropy and run it through the whirlpool
$s = hash('whirlpool', (string) rand() . uniqid(rand(),true) . (string) rand(),(($type == RANDOM_STRING_TEXT) ? true : false));
$s = (($type == RANDOM_STRING_TEXT) ? str_replace("\n","",base64url_encode($s,true)) : $s);
return(substr($s,0,$size));
-}}
+}
/**
* This is our primary input filter.
@@ -73,32 +50,63 @@ function random_string($size = 64,$type = RANDOM_STRING_HEX) {
* They will be replaced with safer brackets. This may be filtered further
* if these are not allowed either.
*
+ * @param string $string Input string
+ * @return string Filtered string
*/
-if(! function_exists('notags')) {
+
function notags($string) {
return(str_replace(array("<",">"), array('[',']'), $string));
// High-bit filter no longer used
// return(str_replace(array("<",">","\xBA","\xBC","\xBE"), array('[',']','','',''), $string));
-}}
+}
// use this on "body" or "content" input where angle chars shouldn't be removed,
// and allow them to be safely displayed.
-if(! function_exists('escape_tags')) {
+
+
+/**
+ * use this on "body" or "content" input where angle chars shouldn't be removed,
+ * and allow them to be safely displayed.
+ * @param string $string
+ * @return string
+ */
function escape_tags($string) {
return(htmlspecialchars($string, ENT_COMPAT, 'UTF-8', false));
-}}
+}
+
+
+function purify_html($s) {
+ require_once('library/HTMLPurifier.auto.php');
+ require_once('include/html2bbcode.php');
+
+// FIXME this function has html output, not bbcode - so safely purify these
+// $s = html2bb_video($s);
+// $s = oembed_html2bbcode($s);
+
+ $config = HTMLPurifier_Config::createDefault();
+ $config->set('Cache.DefinitionImpl', null);
+
+ $purifier = new HTMLPurifier($config);
+ return $purifier->purify($s);
+}
// generate a string that's random, but usually pronounceable.
// used to generate initial passwords
-if(! function_exists('autoname')) {
+
+/**
+ * generate a string that's random, but usually pronounceable.
+ * used to generate initial passwords
+ * @param int $len
+ * @return string
+ */
function autoname($len) {
if($len <= 0)
@@ -167,13 +175,18 @@ function autoname($len) {
if(substr($word,-1) == 'q')
$word = substr($word,0,-1);
return $word;
-}}
+}
// escape text ($str) for XML transport
// returns escaped text.
-if(! function_exists('xmlify')) {
+
+/**
+ * escape text ($str) for XML transport
+ * @param string $str
+ * @return string Escaped text.
+ */
function xmlify($str) {
$buffer = '';
@@ -210,20 +223,22 @@ function xmlify($str) {
}
$buffer = trim($buffer);
return($buffer);
-}}
+}
// undo an xmlify
// pass xml escaped text ($s), returns unescaped text
-if(! function_exists('unxmlify')) {
+
function unxmlify($s) {
$ret = str_replace('&amp;','&', $s);
$ret = str_replace(array('&lt;','&gt;','&quot;','&apos;'),array('<','>','"',"'"),$ret);
return $ret;
-}}
+}
// convenience wrapper, reverse the operation "bin2hex"
+// This is a built-in function in php >= 5.4
+
if(! function_exists('hex2bin')) {
function hex2bin($s) {
if(! (is_string($s) && strlen($s)))
@@ -236,6 +251,7 @@ function hex2bin($s) {
return(pack("H*",$s));
}}
+
// Automatic pagination.
// To use, get the count of total items.
// Then call $a->set_pager_total($number_items);
@@ -246,7 +262,7 @@ function hex2bin($s) {
// will limit the results to the correct items for the current page.
// The actual page handling is then accomplished at the application layer.
-if(! function_exists('paginate')) {
+
function paginate(&$a) {
$o = '';
$stripped = preg_replace('/(&page=[0-9]*)/','',$a->query_string);
@@ -300,9 +316,9 @@ function paginate(&$a) {
$o .= '</div>'."\r\n";
}
return $o;
-}}
+}
+
-if(! function_exists('alt_pager')) {
function alt_pager(&$a, $i, $more = '', $less = '') {
$o = '';
@@ -318,25 +334,21 @@ function alt_pager(&$a, $i, $more = '', $less = '') {
$pagenum = $a->pager['page'];
$url = $a->get_baseurl() . '/' . $stripped;
- $o .= '<div class="pager">';
-
- if($a->pager['page'] > 1)
- $o .= "<a href=\"$url"."&page=".($a->pager['page'] - 1).'">' . $less . '</a>';
- if($i > 0 && $i == $a->pager['itemspage']) {
- if($a->pager['page']>1)
- $o .= " | ";
- $o .= "<a href=\"$url"."&page=".($a->pager['page'] + 1).'">' . $more . '</a>';
- }
-
-
- $o .= '</div>'."\r\n";
+ return replace_macros(get_markup_template('alt_pager.tpl'),array(
+ '$has_less' => (($a->pager['page'] > 1) ? true : false),
+ '$has_more' => (($i > 0 && $i == $a->pager['itemspage']) ? true : false),
+ '$less' => $less,
+ '$more' => $more,
+ '$url' => $url,
+ '$prevpage' => $a->pager['page'] - 1,
+ '$nextpage' => $a->pager['page'] + 1,
+ ));
- return $o;
-}}
+}
// Turn user/group ACLs stored as angle bracketed text into arrays
-if(! function_exists('expand_acl')) {
+
function expand_acl($s) {
// turn string array of angle-bracketed elements into string array
@@ -353,22 +365,22 @@ function expand_acl($s) {
}
}
return $ret;
-}}
+}
// Used to wrap ACL elements in angle brackets for storage
-if(! function_exists('sanitise_acl')) {
+
function sanitise_acl(&$item) {
if(strlen($item))
$item = '<' . notags(trim($item)) . '>';
else
unset($item);
-}}
+}
// Convert an ACL array to a storable string
-if(! function_exists('perms2str')) {
+
function perms2str($p) {
$ret = '';
@@ -382,32 +394,32 @@ function perms2str($p) {
$ret = implode('',$tmp);
}
return $ret;
-}}
+}
// generate a guaranteed unique (for this domain) item ID for ATOM
// safe from birthday paradox
-if(! function_exists('item_message_id')) {
+
function item_message_id() {
do {
$dups = false;
$hash = random_string();
- $uri = $hash . '@' . get_app()->get_hostname();
+ $mid = $hash . '@' . get_app()->get_hostname();
- $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' LIMIT 1",
- dbesc($uri));
+ $r = q("SELECT `id` FROM `item` WHERE `mid` = '%s' LIMIT 1",
+ dbesc($mid));
if(count($r))
$dups = true;
} while($dups == true);
- return $uri;
-}}
+ return $mid;
+}
// Generate a guaranteed unique photo ID.
// safe from birthday paradox
-if(! function_exists('photo_new_resource')) {
+
function photo_new_resource() {
do {
@@ -420,7 +432,7 @@ function photo_new_resource() {
$found = true;
} while($found == true);
return $resource;
-}}
+}
@@ -435,15 +447,14 @@ function photo_new_resource() {
// pass the attribute string as $attr and the attribute you
// are looking for as $s - returns true if found, otherwise false
-if(! function_exists('attribute_contains')) {
function attribute_contains($attr,$s) {
$a = explode(' ', $attr);
if(count($a) && in_array($s,$a))
return true;
return false;
-}}
+}
+
-if(! function_exists('logger')) {
function logger($msg,$level = 0) {
// turn off logger in install mode
global $a;
@@ -460,7 +471,7 @@ function logger($msg,$level = 0) {
@file_put_contents($logfile, datetime_convert() . ':' . session_id() . ' ' . $msg . "\n", FILE_APPEND);
return;
-}}
+}
// This is a special logging facility for developers. It allows one to target specific things to trace/debug
@@ -469,7 +480,7 @@ function logger($msg,$level = 0) {
// If you find dlogger() calls in checked in code, you are free to remove them - so as to provide a noise-free
// development environment which responds to events you are targetting personally.
-if(! function_exists('dlogger')) {
+
function dlogger($msg,$level = 0) {
// turn off logger in install mode
global $a;
@@ -486,7 +497,7 @@ function dlogger($msg,$level = 0) {
@file_put_contents($logfile, datetime_convert() . ':' . session_id() . ' ' . $msg . "\n", FILE_APPEND);
return;
-}}
+}
function profiler($t1,$t2,$label) {
@@ -495,12 +506,13 @@ function profiler($t1,$t2,$label) {
}
-if(! function_exists('activity_match')) {
+
function activity_match($haystack,$needle) {
if(($haystack === $needle) || ((basename($needle) === $haystack) && strstr($needle,NAMESPACE_ACTIVITY_SCHEMA)))
return true;
+
return false;
-}}
+}
// Pull out all #hashtags and @person tags from $s;
@@ -511,7 +523,7 @@ function activity_match($haystack,$needle) {
// Returns array of tags found, or empty array.
-if(! function_exists('get_tags')) {
+
function get_tags($s) {
$ret = array();
@@ -556,19 +568,19 @@ function get_tags($s) {
}
}
return $ret;
-}}
+}
// quick and dirty quoted_printable encoding
-if(! function_exists('qp')) {
+
function qp($s) {
return str_replace ("%","=",rawurlencode($s));
-}}
+}
+
-if(! function_exists('get_mentions')) {
function get_mentions($item,$tags) {
$o = '';
@@ -582,9 +594,9 @@ function get_mentions($item,$tags) {
}
}
return $o;
-}}
+}
+
-if(! function_exists('contact_block')) {
function contact_block() {
$o = '';
$a = get_app();
@@ -637,7 +649,7 @@ function contact_block() {
call_hooks('contact_block_end', $arr);
return $o;
-}}
+}
function chanlink_hash($s) {
@@ -661,7 +673,7 @@ function magiclink_url($observer,$myaddr,$url) {
}
-if(! function_exists('micropro')) {
+
function micropro($contact, $redirect = false, $class = '', $textmode = false) {
if($contact['click'])
@@ -677,11 +689,11 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
'$name' => $contact['xchan_name'],
'$title' => $contact['xchan_name'] . ' [' . $contact['xchan_addr'] . ']',
));
-}}
+}
+
-if(! function_exists('search')) {
function search($s,$id='search-box',$url='/search',$save = false) {
$a = get_app();
$o = '<div id="' . $id . '">';
@@ -692,9 +704,9 @@ function search($s,$id='search-box',$url='/search',$save = false) {
$o .= '<input type="submit" name="save" id="search-save" value="' . t('Save') . '" />';
$o .= '</form></div>';
return $o;
-}}
+}
+
-if(! function_exists('valid_email')) {
function valid_email($x){
if(get_config('system','disable_email_validation'))
@@ -703,7 +715,7 @@ function valid_email($x){
if(preg_match('/^[_a-zA-Z0-9\-\+]+(\.[_a-zA-Z0-9\-\+]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',$x))
return true;
return false;
-}}
+}
/**
@@ -714,12 +726,12 @@ function valid_email($x){
*
*/
-if(! function_exists('linkify')) {
+
function linkify($s) {
- $s = preg_replace("/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\'\%\$\!\+]*)/", ' <a href="$1" >$1</a>', $s);
+ $s = preg_replace("/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\@\~\#\'\%\$\!\+]*)/", ' <a href="$1" >$1</a>', $s);
$s = preg_replace("/\<(.*?)(src|href)=(.*?)\&amp\;(.*?)\>/ism",'<$1$2=$3&$4>',$s);
return($s);
-}}
+}
function get_poke_verbs() {
@@ -792,7 +804,7 @@ function get_mood_verbs() {
*
*/
-if(! function_exists('smilies')) {
+
function smilies($s, $sample = false) {
$a = get_app();
@@ -837,7 +849,7 @@ function smilies($s, $sample = false) {
':facepalm',
':like',
':dislike',
- '~friendika',
+ 'red#',
'~friendica'
);
@@ -875,7 +887,7 @@ function smilies($s, $sample = false) {
'<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-facepalm.gif" alt=":facepalm" />',
'<img class="smiley" src="' . $a->get_baseurl() . '/images/like.gif" alt=":like" />',
'<img class="smiley" src="' . $a->get_baseurl() . '/images/dislike.gif" alt=":dislike" />',
- '<a href="http://project.friendika.com">~friendika <img class="smiley" src="' . $a->get_baseurl() . '/images/friendika-16.png" alt="~friendika" /></a>',
+ '<a href="http://getzot.com"><img class="smiley" src="' . $a->get_baseurl() . '/images/rhash-16.png" alt="red#" /> the Red Matrix</a>',
'<a href="http://friendica.com">~friendica <img class="smiley" src="' . $a->get_baseurl() . '/images/friendica-16.png" alt="~friendica" /></a>'
);
@@ -898,7 +910,7 @@ function smilies($s, $sample = false) {
return $s;
-}}
+}
function smile_encode($m) {
return(str_replace($m[1],base64url_encode($m[1]),$m[0]));
@@ -922,7 +934,7 @@ function preg_heart($x) {
}
-if(! function_exists('day_translate')) {
+
function day_translate($s) {
$ret = str_replace(array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'),
array( t('Monday'), t('Tuesday'), t('Wednesday'), t('Thursday'), t('Friday'), t('Saturday'), t('Sunday')),
@@ -933,14 +945,14 @@ function day_translate($s) {
$ret);
return $ret;
-}}
+}
+
-if(! function_exists('normalise_link')) {
function normalise_link($url) {
$ret = str_replace(array('https:','//www.'), array('http:','//'), $url);
return(rtrim($ret,'/'));
-}}
+}
/**
*
@@ -953,24 +965,35 @@ function normalise_link($url) {
*
*/
-if(! function_exists('link_compare')) {
+
function link_compare($a,$b) {
if(strcasecmp(normalise_link($a),normalise_link($b)) === 0)
return true;
return false;
-}}
+}
// Given an item array, convert the body element from bbcode to html and add smilie icons.
// If attach is true, also add icons for item attachments
-if(! function_exists('prepare_body')) {
-function prepare_body($item,$attach = false) {
+
+function prepare_body(&$item,$attach = false) {
$a = get_app();
+
+
+
call_hooks('prepare_body_init', $item);
- $s = prepare_text($item['body']);
+ if(array_key_exists('item_flags',$item) && ($item['item_flags'] & ITEM_OBSCURED)) {
+ $key = get_config('system','prvkey');
+ if($item['title'])
+ $item['title'] = aes_unencapsulate(json_decode_plus($item['title']),$key);
+ if($item['body'])
+ $item['body'] = aes_unencapsulate(json_decode_plus($item['body']),$key);
+ }
+
+ $s = prepare_text($item['body'],$item['mimetype']);
$prep_arr = array('item' => $item, 'html' => $s);
call_hooks('prepare_body', $prep_arr);
@@ -980,7 +1003,8 @@ function prepare_body($item,$attach = false) {
return $s;
}
- $arr = json_decode($item['attach'],true);
+
+ $arr = json_decode_plus($item['attach']);
if(count($arr)) {
$s .= '<div class="body-attach">';
foreach($arr as $r) {
@@ -1011,6 +1035,27 @@ function prepare_body($item,$attach = false) {
$s .= '<div class="clear"></div></div>';
}
+// At some point in time, posttags were removed from the threaded conversation templates, but remained in the search_item template.
+// Code to put them back was added into include/conversation.php and/or include/ItemObject.php but under new class names
+// Then it was discovered that the following bits remained of the old code.
+// Commented out, but we may decide to use this instead of the other version and put all the tag rendering in one place. In the other
+// location it is more theme-able.
+// if(is_array($item['term']) && count($item['term'])) {
+// $tstr = '';
+// foreach($item['term'] as $t) {
+// $t1 = format_term_for_display($t);
+// if($t1) {
+// if($tstr)
+// $tstr .= ' ';
+// $tstr .= $t1;
+// }
+// }
+// if($tstr)
+// $s .= '<br /><div class="posttags">' . $tstr . '</div>';
+// }
+
+ $writeable = ((get_observer_hash() == $item['owner_xchan']) ? true : false);
+
$x = '';
$terms = get_terms_oftype($item['term'],TERM_CATEGORY);
if($terms) {
@@ -1018,7 +1063,7 @@ function prepare_body($item,$attach = false) {
if(strlen($x))
$x .= ',';
$x .= htmlspecialchars($t['term'],ENT_COMPAT,'UTF-8')
- . ((local_user() == $item['uid']) ? ' <a href="' . $a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&cat=' . urlencode($t['term']) . '" title="' . t('remove') . '" >' . t('[remove]') . '</a>' : '');
+ . (($writeable) ? ' <a href="' . $a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&cat=' . urlencode($t['term']) . '" title="' . t('remove') . '" >' . t('[remove]') . '</a>' : '');
}
if(strlen($x))
$s .= '<div class="categorytags"><span>' . t('Categories:') . ' </span>' . $x . '</div>';
@@ -1073,30 +1118,108 @@ function prepare_body($item,$attach = false) {
call_hooks('prepare_body_final', $prep_arr);
return $prep_arr['html'];
-}}
+}
// Given a text string, convert from bbcode to html and add smilie icons.
-if(! function_exists('prepare_text')) {
-function prepare_text($text) {
- require_once('include/bbcode.php');
+function prepare_text($text,$content_type = 'text/bbcode') {
- if(stristr($text,'[nosmile]'))
- $s = bbcode($text);
- else
- $s = smilies(bbcode($text));
+
+ switch($content_type) {
+
+ case 'text/plain':
+ $s = escape_tags($text);
+ break;
+
+ case 'text/html':
+ $s = $text;
+ break;
+
+ case 'text/markdown':
+ require_once('library/markdown.php');
+ $s = Markdown($text);
+ break;
+
+ case 'text/bbcode':
+ case '':
+ default:
+ require_once('include/bbcode.php');
+
+ if(stristr($text,'[nosmile]'))
+ $s = bbcode($text);
+ else
+ $s = smilies(bbcode($text));
+ $s = zidify_links($s);
+ break;
+ }
return $s;
-}}
+}
+
+
+/**
+ * zidify_callback() and zidify_links() work together to turn any HTML a tags with class="zrl" into zid links
+ * These will typically be generated by a bbcode '[zrl]' tag. This is done inside prepare_text() rather than bbcode()
+ * because the latter is used for general purpose conversions and the former is used only when preparing text for
+ * immediate display.
+ *
+ * Issues: Currently the order of HTML parameters in the text is somewhat rigid and inflexible.
+ * We assume it looks like <a class="zrl" href="xxxxxxxxxx"> and will not work if zrl and href appear in a different order.
+ */
+
+
+function zidify_callback($match) {
+ if (feature_enabled(local_user(),'sendzid')) {
+ $replace = '<a' . $match[1] . ' href="' . zid($match[2]) . '"';
+ }
+ else {
+ $replace = '<a' . $match[1] . 'class="zrl"' . $match[2] . ' href="' . zid($match[3]) . '"';
+ }
+
+ $x = str_replace($match[0],$replace,$match[0]);
+ return $x;
+}
+
+function zidify_img_callback($match) {
+ if (feature_enabled(local_user(),'sendzid')) {
+ $replace = '<img' . $match[1] . ' src="' . zid($match[2]) . '"';
+ }
+ else {
+ $replace = '<img' . $match[1] . ' src="' . zid($match[2]) . '"';
+ }
+
+ $x = str_replace($match[0],$replace,$match[0]);
+ return $x;
+}
+
+
+function zidify_links($s) {
+ if(feature_enabled(local_user(),'sendzid')) {
+ $s = preg_replace_callback('/\<a(.*?)href\=\"(.*?)\"/ism','zidify_callback',$s);
+ $s = preg_replace_callback('/\<img(.*?)src\=\"(.*?)\"/ism','zidify_img_callback',$s);
+ }
+ else {
+ $s = preg_replace_callback('/\<a(.*?)class\=\"zrl\"(.*?)href\=\"(.*?)\"/ism','zidify_callback',$s);
+ $s = preg_replace_callback('/\<img class\=\"zrl\"(.*?)src\=\"(.*?)\"/ism','zidify_img_callback',$s);
+// FIXME - remove the following line and redo the regex for the prev line once all Red images are converted to zmg
+ $s = preg_replace_callback('/\<img(.*?)src\=\"(.*?)\"/ism','zidify_img_callback',$s);
+ }
+
+ return $s;
+}
+
+
+
+
/**
* return atom link elements for all of our hubs
*/
-if(! function_exists('feed_hublinks')) {
+
function feed_hublinks() {
$hub = get_config('system','huburl');
@@ -1114,11 +1237,11 @@ function feed_hublinks() {
}
}
return $hubxml;
-}}
+}
/* return atom link elements for salmon endpoints */
-if(! function_exists('feed_salmonlinks')) {
+
function feed_salmonlinks($nick) {
$a = get_app();
@@ -1130,12 +1253,12 @@ function feed_salmonlinks($nick) {
$salmon .= ' <link rel="http://salmon-protocol.org/ns/salmon-replies" href="' . xmlify($a->get_baseurl() . '/salmon/' . $nick) . '" />' . "\n" ;
$salmon .= ' <link rel="http://salmon-protocol.org/ns/salmon-mention" href="' . xmlify($a->get_baseurl() . '/salmon/' . $nick) . '" />' . "\n" ;
return $salmon;
-}}
+}
+
-if(! function_exists('get_plink')) {
function get_plink($item) {
$a = get_app();
- if (x($item,'plink') && ($item['private'] != 1)) {
+ if (x($item,'plink') && ($item['item_private'] != 1)) {
return array(
'href' => $item['plink'],
'title' => t('link to source'),
@@ -1144,17 +1267,17 @@ function get_plink($item) {
else {
return false;
}
-}}
+}
+
-if(! function_exists('unamp')) {
function unamp($s) {
return str_replace('&amp;', '&', $s);
-}}
+}
+
-if(! function_exists('lang_selector')) {
function lang_selector() {
global $a;
@@ -1187,10 +1310,10 @@ function lang_selector() {
));
return $o;
-}}
+}
+
-if(! function_exists('return_bytes')) {
function return_bytes ($size_str) {
switch (substr ($size_str, -1))
{
@@ -1199,7 +1322,7 @@ function return_bytes ($size_str) {
case 'G': case 'g': return (int)$size_str * 1073741824;
default: return $size_str;
}
-}}
+}
function generate_user_guid() {
$found = true;
@@ -1253,63 +1376,6 @@ function base64url_decode($s) {
}
-if (!function_exists('str_getcsv')) {
- function str_getcsv($input, $delimiter = ',', $enclosure = '"', $escape = '\\', $eol = '\n') {
- if (is_string($input) && !empty($input)) {
- $output = array();
- $tmp = preg_split("/".$eol."/",$input);
- if (is_array($tmp) && !empty($tmp)) {
- while (list($line_num, $line) = each($tmp)) {
- if (preg_match("/".$escape.$enclosure."/",$line)) {
- while ($strlen = strlen($line)) {
- $pos_delimiter = strpos($line,$delimiter);
- $pos_enclosure_start = strpos($line,$enclosure);
- if (
- is_int($pos_delimiter) && is_int($pos_enclosure_start)
- && ($pos_enclosure_start < $pos_delimiter)
- ) {
- $enclosed_str = substr($line,1);
- $pos_enclosure_end = strpos($enclosed_str,$enclosure);
- $enclosed_str = substr($enclosed_str,0,$pos_enclosure_end);
- $output[$line_num][] = $enclosed_str;
- $offset = $pos_enclosure_end+3;
- } else {
- if (empty($pos_delimiter) && empty($pos_enclosure_start)) {
- $output[$line_num][] = substr($line,0);
- $offset = strlen($line);
- } else {
- $output[$line_num][] = substr($line,0,$pos_delimiter);
- $offset = (
- !empty($pos_enclosure_start)
- && ($pos_enclosure_start < $pos_delimiter)
- )
- ?$pos_enclosure_start
- :$pos_delimiter+1;
- }
- }
- $line = substr($line,$offset);
- }
- } else {
- $line = preg_split("/".$delimiter."/",$line);
-
- /*
- * Validating against pesky extra line breaks creating false rows.
- */
- if (is_array($line) && !empty($line[0])) {
- $output[$line_num] = $line;
- }
- }
- }
- return $output;
- } else {
- return false;
- }
- } else {
- return false;
- }
- }
-}
-
function cleardiv() {
return '<div class="clear"></div>';
}
@@ -1357,7 +1423,7 @@ function array_xmlify($val){
function reltoabs($text, $base)
{
if (empty($base))
- return $text;
+ return $text;
$base = rtrim($base,'/');
@@ -1387,278 +1453,28 @@ function reltoabs($text, $base)
}
function item_post_type($item) {
- if(intval($item['event-id']))
- return t('event');
- if(strlen($item['resource_id']))
- return t('photo');
- if(strlen($item['verb']) && $item['verb'] !== ACTIVITY_POST)
- return t('activity');
- if($item['id'] != $item['parent'])
- return t('comment');
- return t('post');
-}
-
-// post categories and "save to file" use the same item.file table for storage.
-// We will differentiate the different uses by wrapping categories in angle brackets
-// and save to file categories in square brackets.
-// To do this we need to escape these characters if they appear in our tag.
-
-function file_tag_encode($s) {
- return str_replace(array('<','>','[',']'),array('%3c','%3e','%5b','%5d'),$s);
-}
-
-function file_tag_decode($s) {
- return str_replace(array('%3c','%3e','%5b','%5d'),array('<','>','[',']'),$s);
-}
-
-function file_tag_file_query($table,$s,$type = 'file') {
-
- if($type == 'file')
- $termtype = TERM_FILE;
- else
- $termtype = TERM_CATEGORY;
-
- return sprintf(" AND " . (($table) ? dbesc($table) . '.' : '') . "id in (select term.oid from term where term.type = %d and term.term = '%s' and term.uid = " . (($table) ? dbesc($table) . '.' : '') . "uid ) ",
- intval($termtype),
- protect_sprintf(dbesc($s))
- );
-}
-
-function term_query($table,$s,$type = TERM_UNKNOWN) {
-
- return sprintf(" AND " . (($table) ? dbesc($table) . '.' : '') . "id in (select term.oid from term where term.type = %d and term.term = '%s' and term.uid = " . (($table) ? dbesc($table) . '.' : '') . "uid ) ",
- intval($type),
- protect_sprintf(dbesc($s))
- );
-}
-
-// ex. given music,video return <music><video> or [music][video]
-function file_tag_list_to_file($list,$type = 'file') {
- $tag_list = '';
- if(strlen($list)) {
- $list_array = explode(",",$list);
- if($type == 'file') {
- $lbracket = '[';
- $rbracket = ']';
- }
- else {
- $lbracket = '<';
- $rbracket = '>';
- }
-
- foreach($list_array as $item) {
- if(strlen($item)) {
- $tag_list .= $lbracket . file_tag_encode(trim($item)) . $rbracket;
- }
- }
- }
- return $tag_list;
-}
-
-// ex. given <music><video>[friends], return music,video or friends
-function file_tag_file_to_list($file,$type = 'file') {
- $matches = false;
- $list = '';
- if($type == 'file') {
- $cnt = preg_match_all('/\[(.*?)\]/',$file,$matches,PREG_SET_ORDER);
- }
- else {
- $cnt = preg_match_all('/<(.*?)>/',$file,$matches,PREG_SET_ORDER);
- }
- if($cnt) {
- foreach($matches as $mtch) {
- if(strlen($list))
- $list .= ',';
- $list .= file_tag_decode($mtch[1]);
- }
- }
-
- return $list;
-}
-
-function file_tag_update_pconfig($uid,$file_old,$file_new,$type = 'file') {
- // $file_old - categories previously associated with an item
- // $file_new - new list of categories for an item
-
- if(! intval($uid))
- return false;
-
- if($file_old == $file_new)
- return true;
-
- $saved = get_pconfig($uid,'system','filetags');
- if(strlen($saved)) {
- if($type == 'file') {
- $lbracket = '[';
- $rbracket = ']';
- }
- else {
- $lbracket = '<';
- $rbracket = '>';
- }
-
- $filetags_updated = $saved;
-
- // check for new tags to be added as filetags in pconfig
- $new_tags = array();
- $check_new_tags = explode(",",file_tag_file_to_list($file_new,$type));
-
- foreach($check_new_tags as $tag) {
- if(! stristr($saved,$lbracket . file_tag_encode($tag) . $rbracket))
- $new_tags[] = $tag;
- }
-
- $filetags_updated .= file_tag_list_to_file(implode(",",$new_tags),$type);
-
- // check for deleted tags to be removed from filetags in pconfig
- $deleted_tags = array();
- $check_deleted_tags = explode(",",file_tag_file_to_list($file_old,$type));
-
- foreach($check_deleted_tags as $tag) {
- if(! stristr($file_new,$lbracket . file_tag_encode($tag) . $rbracket))
- $deleted_tags[] = $tag;
- }
-
- foreach($deleted_tags as $key => $tag) {
- $r = q("select file from item where uid = %d " . file_tag_file_query('item',$tag,$type),
- intval($uid)
- );
-
- if(count($r)) {
- unset($deleted_tags[$key]);
- }
- else {
- $filetags_updated = str_replace($lbracket . file_tag_encode($tag) . $rbracket,'',$filetags_updated);
- }
- }
-
- if($saved != $filetags_updated) {
- set_pconfig($uid,'system','filetags', $filetags_updated);
- }
- return true;
- }
- else
- if(strlen($file_new)) {
- set_pconfig($uid,'system','filetags', $file_new);
- }
- return true;
-}
-
-function store_item_tag($uid,$iid,$otype,$type,$term,$url = '') {
- if(! $term)
- return false;
- $r = q("select * from term
- where uid = %d and oid = %d and otype = %d and type = %d
- and term = '%s' and url = '%s' ",
- intval($uid),
- intval($iid),
- intval($otype),
- intval($type),
- dbesc($term),
- dbesc($url)
- );
- if(count($r))
- return false;
- $r = q("insert into term (uid, oid, otype, type, term, url)
- values( %d, %d, %d, %d, '%s', '%s') ",
- intval($uid),
- intval($iid),
- intval($otype),
- intval($type),
- dbesc($term),
- dbesc($url)
- );
- return $r;
-}
-
-function get_terms_oftype($arr,$type) {
- $ret = array();
- if(! (is_array($arr) && count($arr)))
- return $ret;
-
- if(! is_array($type))
- $type = array($type);
-
- foreach($type as $t)
- foreach($arr as $x)
- if($x['type'] == $t)
- $ret[] = $x;
- return $ret;
-}
-
-function format_term_for_display($term) {
- $s = '';
- if($term['type'] == TERM_HASHTAG)
- $s .= '#';
- elseif($term['type'] == TERM_MENTION)
- $s .= '@';
-
- if($term['url']) $s .= '<a target="extlink" href="' . $term['url'] . '">' . htmlspecialchars($term['term']) . '</a>';
- else $s .= htmlspecialchars($term['term']);
- return $s;
-}
+ switch($item['resource_type']) {
+ case 'photo':
+ $post_type = t('photo');
+ break;
+ case 'event':
+ $post_type = t('event');
+ break;
+ default:
+ $post_type = t('status');
+ if($item['mid'] != $item['parent_mid'])
+ $post_type = t('comment');
+ break;
+ }
-function file_tag_save_file($uid,$item,$file) {
- $result = false;
- if(! intval($uid))
- return false;
+ if(strlen($item['verb']) && (! activity_match($item['verb'],ACTIVITY_POST)))
+ $post_type = t('activity');
- $r = q("select file from item where id = %d and uid = %d limit 1",
- intval($item),
- intval($uid)
- );
- if(count($r)) {
- if(! stristr($r[0]['file'],'[' . file_tag_encode($file) . ']'))
- q("update item set file = '%s' where id = %d and uid = %d limit 1",
- dbesc($r[0]['file'] . '[' . file_tag_encode($file) . ']'),
- intval($item),
- intval($uid)
- );
- $saved = get_pconfig($uid,'system','filetags');
- if((! strlen($saved)) || (! stristr($saved,'[' . file_tag_encode($file) . ']')))
- set_pconfig($uid,'system','filetags',$saved . '[' . file_tag_encode($file) . ']');
- info( t('Item filed') );
- }
- return true;
+ return $post_type;
}
-function file_tag_unsave_file($uid,$item,$file,$cat = false) {
- $result = false;
- if(! intval($uid))
- return false;
-
- if($cat == true)
- $pattern = '<' . file_tag_encode($file) . '>' ;
- else
- $pattern = '[' . file_tag_encode($file) . ']' ;
-
-
- $r = q("select file from item where id = %d and uid = %d limit 1",
- intval($item),
- intval($uid)
- );
- if(! count($r))
- return false;
-
- q("update item set file = '%s' where id = %d and uid = %d limit 1",
- dbesc(str_replace($pattern,'',$r[0]['file'])),
- intval($item),
- intval($uid)
- );
-
- $r = q("select file from item where uid = %d and deleted = 0 " . file_tag_file_query('item',$file,(($cat) ? 'category' : 'file')),
- intval($uid)
- );
-
- if(! count($r)) {
- $saved = get_pconfig($uid,'system','filetags');
- set_pconfig($uid,'system','filetags',str_replace($pattern,'',$saved));
-
- }
- return true;
-}
function normalise_openid($s) {
return trim(str_replace(array('http://','https://'),array('',''),$s),'/');
@@ -1667,7 +1483,7 @@ function normalise_openid($s) {
function undo_post_tagging($s) {
$matches = null;
- $cnt = preg_match_all('/([@#])\[url=(.*?)\](.*?)\[\/url\]/ism',$s,$matches,PREG_SET_ORDER);
+ $cnt = preg_match_all('/([@#])\[zrl=(.*?)\](.*?)\[\/zrl\]/ism',$s,$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
$s = str_replace($mtch[0], $mtch[1] . $mtch[3],$s);
@@ -1757,7 +1573,7 @@ function ids_to_querystr($arr,$idx = 'id') {
// author_xchan and owner_xchan. If $abook is true also include the abook info.
// This is needed in the API to save extra per item lookups there.
-function xchan_query(&$items,$abook = false) {
+function xchan_query(&$items,$abook = true) {
$arr = array();
if($items && count($items)) {
foreach($items as $item) {
@@ -1769,8 +1585,10 @@ function xchan_query(&$items,$abook = false) {
}
if(count($arr)) {
if($abook) {
- $chans = q("select * from xchan left join hubloc on hubloc_hash = xchan_hash left join abook on abook_xchan = xchan_hash
- where xchan_hash in (" . implode(',', $arr) . ") and ( hubloc_flags & " . intval(HUBLOC_FLAGS_PRIMARY) . " )");
+ $chans = q("select * from xchan left join hubloc on hubloc_hash = xchan_hash left join abook on abook_xchan = xchan_hash and abook_channel = %d
+ where xchan_hash in (" . implode(',', $arr) . ") and ( hubloc_flags & " . intval(HUBLOC_FLAGS_PRIMARY) . " )",
+ intval($item['uid'])
+ );
}
else {
$chans = q("select xchan.*,hubloc.* from xchan left join hubloc on hubloc_hash = xchan_hash
@@ -1849,117 +1667,61 @@ function stringify_array_elms(&$arr,$escape = false) {
*/
function jindent($json) {
- $result = '';
- $pos = 0;
- $strLen = strlen($json);
- $indentStr = ' ';
- $newLine = "\n";
- $prevChar = '';
- $outOfQuotes = true;
-
- for ($i=0; $i<=$strLen; $i++) {
-
- // Grab the next character in the string.
- $char = substr($json, $i, 1);
-
- // Are we inside a quoted string?
- if ($char == '"' && $prevChar != '\\') {
- $outOfQuotes = !$outOfQuotes;
-
- // If this character is the end of an element,
- // output a new line and indent the next line.
- } else if(($char == '}' || $char == ']') && $outOfQuotes) {
- $result .= $newLine;
- $pos --;
- for ($j=0; $j<$pos; $j++) {
- $result .= $indentStr;
- }
- }
-
- // Add the character to the result string.
- $result .= $char;
-
- // If the last character was the beginning of an element,
- // output a new line and indent the next line.
- if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) {
- $result .= $newLine;
- if ($char == '{' || $char == '[') {
- $pos ++;
- }
-
- for ($j = 0; $j < $pos; $j++) {
- $result .= $indentStr;
- }
- }
-
- $prevChar = $char;
- }
-
- return $result;
-}
-
-
-// Tag cloud functions - need to be adpated to this database format
+ $result = '';
+ $pos = 0;
+ $strLen = strlen($json);
+ $indentStr = ' ';
+ $newLine = "\n";
+ $prevChar = '';
+ $outOfQuotes = true;
+ for ($i=0; $i<=$strLen; $i++) {
-function tagadelic($uid, $count = 0, $type = TERM_HASHTAG) {
+ // Grab the next character in the string.
+ $char = substr($json, $i, 1);
- // Fetch tags
- $r = q("select term, count(term) as total from term
- where uid = %d and type = %d
- and otype = %d
- group by term order by total desc %s",
- intval($uid),
- intval($type),
- intval(TERM_OBJ_POST),
- ((intval($count)) ? "limit $count" : '')
- );
-
- if(! $r)
- return array();
-
- // Find minimum and maximum log-count.
- $tags = array();
- $min = 1e9;
- $max = -1e9;
-
- $x = 0;
- foreach($r as $rr) {
- $tags[$x][0] = $rr['term'];
- $tags[$x][1] = log($rr['total']);
- $tags[$x][2] = 0;
- $min = min($min,$tags[$x][1]);
- $max = max($max,$tags[$x][1]);
- $x ++;
- }
-
- usort($tags,'tags_sort');
-
- $range = max(.01, $max - $min) * 1.0001;
-
- for($x = 0; $x < count($tags); $x ++) {
- $tags[$x][2] = 1 + floor(5 * ($tags[$x][1] - $min) / $range);
+ // Are we inside a quoted string?
+ if ($char == '"' && $prevChar != '\\') {
+ $outOfQuotes = !$outOfQuotes;
+
+ // If this character is the end of an element,
+ // output a new line and indent the next line.
+ } else if(($char == '}' || $char == ']') && $outOfQuotes) {
+ $result .= $newLine;
+ $pos --;
+ for ($j=0; $j<$pos; $j++) {
+ $result .= $indentStr;
+ }
+ }
+
+ // Add the character to the result string.
+ $result .= $char;
+
+ // If the last character was the beginning of an element,
+ // output a new line and indent the next line.
+ if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) {
+ $result .= $newLine;
+ if ($char == '{' || $char == '[') {
+ $pos ++;
+ }
+
+ for ($j = 0; $j < $pos; $j++) {
+ $result .= $indentStr;
+ }
+ }
+
+ $prevChar = $char;
}
- return $tags;
+ return $result;
}
-function tags_sort($a,$b) {
- if($a[0] == $b[0])
- return 0;
- return((strtolower($a[0]) < strtolower($b[0])) ? -1 : 1);
-}
+function json_decode_plus($s) {
-function tagblock($link,$uid,$count = 0,$type = TERM_HASHTAG) {
- $tab = 0;
- $r = tagadelic($uid,$count,$type);
+ $x = json_decode($s,true);
+ if(! $x)
+ $x = json_decode(str_replace(array('\\"','\\\\'),array('"','\\'),$s),true);
+ return $x;
- if($r) {
- echo '<div class="tags" align="center">';
- foreach($r as $rr) {
- echo '<a href="'.$link .'/' . '?f=&tag=' . urlencode($rr[0]).'" class="tag'.$rr[2].'">'.$rr[0].'</a> ';
- }
- echo '</div>';
- }
-}
+} \ No newline at end of file
diff --git a/include/zot.php b/include/zot.php
index 524f958ad..d1bc03bc2 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('include/crypto.php');
require_once('include/items.php');
@@ -47,34 +47,6 @@ function zot_get_hubloc($arr,$primary = false) {
}
-function zot_notify($channel,$url,$type = 'notify',$recipients = null, $remote_key = null) {
-
- $params = array(
- 'type' => $type,
- 'sender' => json_encode(array(
- 'guid' => $channel['channel_guid'],
- 'guid_sig' => base64url_encode(rsa_sign($channel['channel_guid'],$channel['channel_prvkey'])),
- 'url' => z_root(),
- 'url_sig' => base64url_encode(rsa_sign(z_root(),$channel['channel_prvkey']))
- )),
- 'callback' => '/post',
- 'version' => ZOT_REVISION
- );
-
-
- if($recipients)
- $params['recipients'] = json_encode($recipients);
-
- // Hush-hush ultra top-secret mode
-
- if($remote_key) {
- $params = aes_encapsulate($params,$remote_key);
- }
-
- $x = z_post_url($url,$params);
- return($x);
-}
-
/*
*
* zot_build_packet builds a notification packet that you can either
@@ -117,10 +89,33 @@ function zot_build_packet($channel,$type = 'notify',$recipients = null, $remote_
}
+/**
+ * @function: zot_zot
+ * @param: string $url
+ * @param: array $data
+ *
+ * @returns: array => see z_post_url for returned data format
+ */
+
+
+
function zot_zot($url,$data) {
return z_post_url($url,array('data' => $data));
}
+/**
+ * @function: zot_finger
+ *
+ * Look up information about channel
+ * @param: string $webbie
+ * does not have to be host qualified e.g. 'foo' is treated as 'foo@thishub'
+ * @param: array $channel
+ * (optional), if supplied permissions will be enumerated specifically for $channel
+ *
+ * @returns: array => see z_post_url and mod/zfinger.php
+ */
+
+
function zot_finger($webbie,$channel) {
@@ -135,6 +130,11 @@ function zot_finger($webbie,$channel) {
$xchan_addr = $address . '@' . $host;
+ if((! $address) || (! $xchan_addr)) {
+ logger('zot_finger: no address :' . $webbie);
+ return array('success' => false);
+ }
+
$r = q("select xchan.*, hubloc.* from xchan
left join hubloc on xchan_hash = hubloc_hash
where xchan_addr = '%s' and (hubloc_flags & %d) limit 1",
@@ -152,7 +152,7 @@ function zot_finger($webbie,$channel) {
$rhs = '/.well-known/zot-info';
$https = ((strpos($url,'https://') === 0) ? true : false);
- logger('zot_finger: ' . $url, LOGGER_DEBUG);
+ logger('zot_finger: ' . $address . ' at ' . $url, LOGGER_DEBUG);
if($channel) {
$postvars = array(
@@ -191,6 +191,15 @@ function zot_finger($webbie,$channel) {
}
+/**
+ * @function: zot_refresh
+ *
+ * zot_refresh is typically invoked when somebody has changed permissions of a channel and they are notified
+ * to fetch new permissions via a finger operation. This may result in a new connection (abook entry) being added to a local channel
+ * and it may result in auto-permissions being granted.
+ *
+ */
+
function zot_refresh($them,$channel = null) {
logger('zot_refresh: them: ' . print_r($them,true), LOGGER_DATA);
@@ -329,37 +338,25 @@ function zot_refresh($them,$channel = null) {
intval(ABOOK_FLAG_SELF)
);
if($z)
- proc_run('php','include/notifier.php','permissions_update',$z[0]['abook_id']);
+ proc_run('php','include/notifier.php','permission_update',$z[0]['abook_id']);
}
}
}
}
- else {
-
- logger('zot_refresh: importing profile if available');
-
- // Are we a directory server of some kind?
- $dirmode = intval(get_config('system','directory_mode'));
- if($dirmode != DIRECTORY_MODE_NORMAL) {
- if(array_key_exists('profile',$x) && is_array($x['profile'])) {
- import_directory_profile($x['hash'],$x['profile']);
- }
- else {
- // they may have made it private
- $r = q("delete from xprof where xprof_hash = '%s' limit 1",
- dbesc($x['hash'])
- );
- $r = q("delete from xtag where xtag_hash = '%s' limit 1",
- dbesc($x['hash'])
- );
- }
- }
- }
return true;
}
return false;
}
+/**
+ * @function: zot_gethub
+ *
+ * A guid and a url, both signed by the sender, distinguish a known sender at a known location
+ * This function looks these up to see if the channel is known. If not, we will need to verify it.
+ * @returns: array => hubloc record
+ */
+
+
function zot_gethub($arr) {
@@ -378,7 +375,7 @@ function zot_gethub($arr) {
return $r[0];
}
}
- logger('zot_gethub: not found', LOGGER_DEBUG);
+ logger('zot_gethub: not found: ' . print_r($arr,true), LOGGER_DEBUG);
return null;
}
@@ -417,6 +414,16 @@ function zot_register_hub($arr) {
function import_xchan($arr) {
$ret = array('success' => false);
+ $dirmode = intval(get_config('system','directory_mode'));
+
+ $changed = false;
+
+ if(! (is_array($arr) && array_key_exists('success',$arr) && $arr['success'])) {
+ logger('import_xchan: invalid data packet: ' . print_r($arr,true));
+ $ret['message'] = t('Invalid data packet');
+ return $ret;
+ }
+
$xchan_hash = base64url_encode(hash('whirlpool',$arr['guid'] . $arr['guid_sig'], true));
$import_photos = false;
@@ -427,6 +434,9 @@ function import_xchan($arr) {
return $ret;
}
+
+ logger('import_xchan: ' . $xchan_hash, LOGGER_DEBUG);
+
$r = q("select * from xchan where xchan_hash = '%s' limit 1",
dbesc($xchan_hash)
);
@@ -454,21 +464,47 @@ function import_xchan($arr) {
$new_flags = $r[0]['xchan_flags'];
- if(($r[0]['xchan_name_date'] != $arr['name_updated']) || ($r[0]['xchan_connurl'] != $arr['connections_url']) || ($r[0]['xchan_flags'] != $new_flags)) {
- $r = q("update xchan set xchan_name = '%s', xchan_name_date = '%s', xchan_connurl = '%s', xchan_flags = %d where xchan_hash = '%s' limit 1",
+ if(($r[0]['xchan_name_date'] != $arr['name_updated'])
+ || ($r[0]['xchan_connurl'] != $arr['connections_url'])
+ || ($r[0]['xchan_flags'] != $new_flags)
+ || ($r[0]['xchan_addr'] != $arr['address'])
+ || ($r[0]['xchan_url'] != $arr['url'])) {
+ $r = q("update xchan set xchan_name = '%s', xchan_name_date = '%s', xchan_connurl = '%s', xchan_flags = %d,
+ xchan_addr = '%s', xchan_url = '%s' where xchan_hash = '%s' limit 1",
dbesc($arr['name']),
dbesc($arr['name_updated']),
dbesc($arr['connections_url']),
intval($new_flags),
+ dbesc($arr['address']),
+ dbesc($arr['url']),
dbesc($xchan_hash)
);
+
+ logger('import_xchan: existing: ' . print_r($r[0],true), LOGGER_DATA);
+ logger('import_xchan: new: ' . print_r($arr,true), LOGGER_DATA);
+
+ update_modtime($xchan_hash);
+ $changed = true;
}
}
else {
$import_photos = true;
+
+
+ if((($arr['site']['directory_mode'] === 'standalone') || ($dirmode & DIRECTORY_MODE_STANDALONE))
+&& ($arr['site']['url'] != z_root()))
+ $arr['searchable'] = false;
+
+ $hidden = (1 - intval($arr['searchable']));
+
+ if($hidden)
+ $new_flags = XCHAN_FLAGS_HIDDEN;
+ else
+ $new_flags = 0;
+
$x = q("insert into xchan ( xchan_hash, xchan_guid, xchan_guid_sig, xchan_pubkey, xchan_photo_mimetype,
- xchan_photo_l, xchan_addr, xchan_url, xchan_connurl, xchan_name, xchan_network, xchan_photo_date, xchan_name_date)
- values ( '%s', '%s', '%s', '%s' , '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') ",
+ xchan_photo_l, xchan_addr, xchan_url, xchan_connurl, xchan_name, xchan_network, xchan_photo_date, xchan_name_date, xchan_flags)
+ values ( '%s', '%s', '%s', '%s' , '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d) ",
dbesc($xchan_hash),
dbesc($arr['guid']),
dbesc($arr['guid_sig']),
@@ -481,15 +517,18 @@ function import_xchan($arr) {
dbesc($arr['name']),
dbesc('zot'),
dbesc($arr['photo_updated']),
- dbesc($arr['name_updated'])
+ dbesc($arr['name_updated']),
+ intval($new_flags)
);
+ update_modtime($xchan_hash);
+ $changed = true;
}
if($import_photos) {
- require_once("Photo.php");
+ require_once('include/photo/photo_driver.php');
$photos = import_profile_photo($arr['photo'],$xchan_hash);
$r = q("update xchan set xchan_photo_date = '%s', xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s'
@@ -501,9 +540,20 @@ function import_xchan($arr) {
dbesc($photos[3]),
dbesc($xchan_hash)
);
+
+ update_modtime($xchan_hash);
+ $changed = true;
}
+ // what we are missing for true hub independence is for any changes in the primary hub to
+ // get reflected not only in the hublocs, but also to update the URLs and addr in the appropriate xchan
+
if($arr['locations']) {
+
+ $xisting = q("select hubloc_id, hubloc_url from hubloc where hubloc_hash = '%s'",
+ dbesc($xchan_hash)
+ );
+
foreach($arr['locations'] as $location) {
if(! rsa_verify($location['url'],base64url_decode($location['url_sig']),$arr['key'])) {
logger('import_xchan: Unable to verify site signature for ' . $location['url']);
@@ -511,20 +561,44 @@ function import_xchan($arr) {
continue;
}
- $r = q("select * from hubloc where hubloc_hash = '%s' and hubloc_url = '%s' limit 1",
+ for($x = 0; $x < count($xisting); $x ++) {
+ if($xisting[$x]['hubloc_url'] == $location['url']) {
+ $xisting[$x]['updated'] = true;
+ }
+ }
+
+ $r = q("select * from hubloc where hubloc_hash = '%s' and hubloc_guid = '%s' and hubloc_guid_sig = '%s'
+ and hubloc_url = '%s' and hubloc_url_sig = '%s' limit 1",
dbesc($xchan_hash),
- dbesc($location['url'])
+ dbesc($arr['guid']),
+ dbesc($arr['guid_sig']),
+ dbesc($location['url']),
+ dbesc($location['url_sig'])
);
if($r) {
- if(($r[0]['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY) && (! $location['primary'])) {
+ logger('import_xchan: hub exists: ' . $location['url']);
+ if((($r[0]['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY) && (! $location['primary']))
+ || ((! ($r[0]['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY)) && ($location['primary']))) {
$r = q("update hubloc set hubloc_flags = (hubloc_flags ^ %d) where hubloc_id = %d limit 1",
intval(HUBLOC_FLAGS_PRIMARY),
intval($r[0]['hubloc_id'])
);
}
+ update_modtime($xchan_hash);
+ $changed = true;
continue;
}
+ // new hub claiming to be primary. Make it so.
+
+ if(intval($location['primary'])) {
+ $r = q("update hubloc set hubloc_flags = (hubloc_flags ^ %d) where hubloc_hash = '%s' and (hubloc_flags & %d )",
+ intval(HUBLOC_FLAGS_PRIMARY),
+ dbesc($xchan_hash),
+ intval(HUBLOC_FLAGS_PRIMARY)
+ );
+ }
+ logger('import_xchan: new hub: ' . $location['url']);
$r = q("insert into hubloc ( hubloc_guid, hubloc_guid_sig, hubloc_hash, hubloc_addr, hubloc_flags, hubloc_url, hubloc_url_sig, hubloc_host, hubloc_callback, hubloc_sitekey)
values ( '%s','%s','%s','%s', %d ,'%s','%s','%s','%s','%s')",
dbesc($arr['guid']),
@@ -538,8 +612,61 @@ function import_xchan($arr) {
dbesc($location['callback']),
dbesc($location['sitekey'])
);
+ update_modtime($xchan_hash);
+ $changed = true;
+ }
+ // get rid of any hubs we have for this channel which weren't reported.
+ if($xisting) {
+ foreach($xisting as $x) {
+ if(! array_key_exists('updated',$x)) {
+ logger('import_xchan: removing unreferenced hub location ' . $x['hubloc_url']);
+ $r = q("delete from hubloc where hubloc_id = %d limit 1",
+ intval($x['hubloc_id'])
+ );
+ update_modtime($xchan_hash);
+ $changed = true;
+ }
+ }
+ }
+
+ }
+
+ // Are we a directory server of some kind?
+
+ if($dirmode != DIRECTORY_MODE_NORMAL) {
+ if(array_key_exists('profile',$arr) && is_array($arr['profile'])) {
+ $profile_changed = import_directory_profile($xchan_hash,$arr['profile']);
+ if($profile_changed) {
+ update_modtime($xchan_hash);
+ $changed = true;
+ }
+ }
+ else {
+ logger('import_xchan: profile not available - hiding');
+ // they may have made it private
+ $r = q("delete from xprof where xprof_hash = '%s' limit 1",
+ dbesc($xchan_hash)
+ );
+ $r = q("delete from xtag where xtag_hash = '%s' limit 1",
+ dbesc($xchan_hash)
+ );
+ }
+ }
+
+ if(array_key_exists('site',$arr) && is_array($arr['site'])) {
+ $profile_changed = import_site($arr['site'],$arr['key']);
+ if($profile_changed) {
+ update_modtime($xchan_hash);
+ $changed = true;
}
+ }
+
+
+
+ if($changed) {
+ // send out a directory mirror update packet if we're a directory server or some kind
+
}
@@ -586,6 +713,18 @@ function zot_process_response($hub,$arr,$outq) {
logger('zot_process_response: ' . print_r($x,true), LOGGER_DATA);
}
+/**
+ * @function: zot_fetch
+ *
+ * We received a notification packet (in mod/post.php) that a message is waiting for us, and we've verified the sender.
+ * Now send back a pickup message, using our message tracking ID ($arr['secret']), which we will sign.
+ * The entire pickup message is encrypted with the remote site's public key.
+ * If everything checks out on the remote end, we will receive back a packet containing one or more messages,
+ * which will be processed before returning.
+ *
+ */
+
+
function zot_fetch($arr) {
logger('zot_fetch: ' . print_r($arr,true), LOGGER_DATA);
@@ -594,7 +733,7 @@ function zot_fetch($arr) {
$ret_hub = zot_gethub($arr['sender']);
if(! $ret_hub) {
- logger('zot_fetch: not ret_hub');
+ logger('zot_fetch: no hub: ' . print_r($arr['sender'],true));
return;
}
@@ -620,11 +759,17 @@ function zot_fetch($arr) {
return $result;
}
+/**
+ * @function zot_import
+ *
+ * Process an incoming array of messages which were obtained via pickup, and
+ * import, update, delete as directed.
+ *
+ * The message types handled here are 'activity' (e.g. posts), 'mail' and 'profile'
+ */
function zot_import($arr) {
-// logger('zot_import: ' . print_r($arr,true), LOGGER_DATA);
-
$data = json_decode($arr['body'],true);
if(! $data) {
@@ -632,14 +777,10 @@ function zot_import($arr) {
return array();
}
-// logger('zot_import: data1: ' . print_r($data,true));
-
if(array_key_exists('iv',$data)) {
$data = json_decode(aes_unencapsulate($data,get_config('system','prvkey')),true);
}
- logger('zot_import: data' . print_r($data,true), LOGGER_DATA);
-
$incoming = $data['pickup'];
$return = array();
@@ -692,10 +833,12 @@ function zot_import($arr) {
if($i['message']) {
if($i['message']['type'] === 'activity') {
$arr = get_item_elements($i['message']);
+
if(! array_key_exists('created',$arr)) {
logger('Activity rejected: probable failure to lookup author/owner. ' . print_r($i['message'],true));
continue;
}
+
logger('Activity received: ' . print_r($arr,true), LOGGER_DATA);
logger('Activity recipients: ' . print_r($deliveries,true), LOGGER_DATA);
@@ -722,6 +865,16 @@ function zot_import($arr) {
$result = process_profile_delivery($i['notify']['sender'],$arr,$deliveries);
}
+ elseif($i['message']['type'] === 'channel_sync') {
+// $arr = get_channelsync_elements($i['message']);
+
+ $arr = $i['message'];
+
+ logger('Channel sync received: ' . print_r($arr,true), LOGGER_DATA);
+ logger('Channel sync recipients: ' . print_r($deliveries,true), LOGGER_DATA);
+
+ $result = process_channel_sync_delivery($i['notify']['sender'],$arr,$deliveries);
+ }
}
if($result)
$return = array_merge($return,$result);
@@ -780,7 +933,7 @@ function public_recips($msg) {
$x = array();
$r = array_merge($r,$x);
-
+ logger('public_recips: ' . print_r($r,true), LOGGER_DATA);
return $r;
}
@@ -832,7 +985,7 @@ function allowed_public_recips($msg) {
$condensed_recips[] = $rr['hash'];
$results = array();
- $r = q("select channel_hash as hash from channel left join abook on abook_channel = channel_id where abook_hash = '%s' ",
+ $r = q("select channel_hash as hash from channel left join abook on abook_channel = channel_id where abook_xchan = '%s' ",
dbesc($hash)
);
if($r) {
@@ -857,34 +1010,52 @@ function process_delivery($sender,$arr,$deliveries,$relay) {
);
if(! $r) {
- $result[] = array($d['hash'],'not found');
+ $result[] = array($d['hash'],'recipients not found');
continue;
}
$channel = $r[0];
- $perm = (($arr['uri'] == $arr['parent_uri']) ? 'send_stream' : 'post_comments');
+ $tag_delivery = tgroup_check($channel['channel_id'],$arr);
+
+ $perm = (($arr['mid'] == $arr['parent_mid']) ? 'send_stream' : 'post_comments');
+
+ // This is our own post, possibly coming from a channel clone
+
+ if($arr['owner_xchan'] == $d['hash']) {
+ $arr['item_flags'] = $arr['item_flags'] | ITEM_WALL;
+ }
+ else {
+ // clear the wall flag if it is set
+ if($arr['item_flags'] & ITEM_WALL) {
+ $arr['item_flags'] = ($arr['item_flags'] ^ ITEM_WALL);
+ }
+ }
- if(! perm_is_allowed($channel['channel_id'],$sender['hash'],$perm)) {
+ if((! perm_is_allowed($channel['channel_id'],$sender['hash'],$perm)) && (! $tag_delivery)) {
logger("permission denied for delivery {$channel['channel_id']}");
- $result[] = array($d['hash'],'permission denied');
+ $result[] = array($d['hash'],'permission denied',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>');
continue;
}
if($arr['item_restrict'] & ITEM_DELETED) {
+
+ // remove_community_tag is a no-op if this isn't a community tag activity
+ remove_community_tag($sender,$arr,$channel['channel_id']);
+
$item_id = delete_imported_item($sender,$arr,$channel['channel_id']);
- $result[] = array($d['hash'],'deleted');
+ $result[] = array($d['hash'],'deleted',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>');
if($relay && $item_id) {
logger('process_delivery: invoking relay');
proc_run('php','include/notifier.php','relay',intval($item_id));
- $result[] = array($d['hash'],'relayed');
+ $result[] = array($d['hash'],'relayed',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>');
}
continue;
}
- // for events, extract the event info and create and event linked to an item
+ // for events, extract the event info and create an event linked to an item
if((x($arr,'obj_type')) && (activity_match($arr['obj_type'],ACTIVITY_OBJ_EVENT))) {
require_once('include/event.php');
@@ -894,13 +1065,13 @@ function process_delivery($sender,$arr,$deliveries,$relay) {
$ev['uid'] = $channel['channel_id'];
$ev['account'] = $channel['channel_account_id'];
$ev['edited'] = $arr['edited'];
- $ev['uri'] = $arr['uri'];
+ $ev['mid'] = $arr['mid'];
$ev['private'] = $arr['item_private'];
// is this an edit?
- $r = q("SELECT resource_id FROM item where uri = '%s' and uid = %d and resource_type = 'event' limit 1",
- dbesc($arr['uri']),
+ $r = q("SELECT resource_id FROM item where mid = '%s' and uid = %d and resource_type = 'event' limit 1",
+ dbesc($arr['mid']),
intval($channel['channel_id'])
);
if($r) {
@@ -909,34 +1080,37 @@ function process_delivery($sender,$arr,$deliveries,$relay) {
$xyz = event_store($ev);
- $result = array($d['hash'],'event processed');
+ $result = array($d['hash'],'event processed',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>');
continue;
}
}
- $r = q("select id, edited from item where uri = '%s' and uid = %d limit 1",
- dbesc($arr['uri']),
+ $r = q("select id, edited from item where mid = '%s' and uid = %d limit 1",
+ dbesc($arr['mid']),
intval($channel['channel_id'])
);
if($r) {
- if($arr['edited'] > $r[0]['edited'])
+ if($arr['edited'] > $r[0]['edited']) {
+ $arr['id'] = $r[0]['id'];
+ $arr['uid'] = $channel['channel_id'];
update_imported_item($sender,$arr,$channel['channel_id']);
- $result[] = array($d['hash'],'updated');
+ }
+ $result[] = array($d['hash'],'updated',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>');
$item_id = $r[0]['id'];
}
else {
$arr['aid'] = $channel['channel_account_id'];
$arr['uid'] = $channel['channel_id'];
$item_id = item_store($arr);
- $result[] = array($d['hash'],'posted');
+ $result[] = array($d['hash'],(($item_id) ? 'posted' : 'storage failed'),$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>');
}
if($relay && $item_id) {
logger('process_delivery: invoking relay');
proc_run('php','include/notifier.php','relay',intval($item_id));
- $result[] = array($d['hash'],'relayed');
+ $result[] = array($d['hash'],'relayed',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>');
}
}
@@ -949,8 +1123,71 @@ function process_delivery($sender,$arr,$deliveries,$relay) {
}
+function remove_community_tag($sender,$arr,$uid) {
+
+ if(! (activity_match($arr['verb'],ACTIVITY_TAG) && ($arr['obj_type'] == ACTIVITY_OBJ_TAGTERM)))
+ return;
+
+ logger('remove_community_tag: invoked');
+
+
+ if(! get_pconfig($uid,'system','blocktags')) {
+ logger('remove_community tag: permission denied.');
+ return;
+ }
+
+ $r = q("select * from item where mid = '%s' and uid = %d limit 1",
+ dbesc($arr['mid']),
+ intval($uid)
+ );
+ if(! $r) {
+ logger('remove_community_tag: no item');
+ return;
+ }
+
+ if(($sender['hash'] != $r[0]['owner_xchan']) && ($sender['hash'] != $r[0]['author_xchan'])) {
+ logger('remove_community_tag: sender not authorised.');
+ return;
+ }
+
+ $i = $r[0];
+
+ if($i['target'])
+ $i['target'] = json_decode_plus($i['target']);
+ if($i['object'])
+ $i['object'] = json_decode_plus($i['object']);
+
+ if(! ($i['target'] && $i['object'])) {
+ logger('remove_community_tag: no target/object');
+ return;
+ }
+
+ $message_id = $i['target']['id'];
+
+ $r = q("select id from item where mid = '%s' and uid = %d limit 1",
+ dbesc($message_id),
+ intval($uid)
+ );
+ if(! $r) {
+ logger('remove_community_tag: no parent message');
+ return;
+ }
+
+ $x = q("delete from term where uid = %d and oid = %d and otype = %d and type = %d and term = '%s' and url = '%s' limit 1",
+ intval($uid),
+ intval($r[0]['id']),
+ intval(TERM_OBJ_POST),
+ intval(TERM_HASHTAG),
+ dbesc($i['object']['title']),
+ dbesc(get_rel_link($i['object']['link'],'alternate'))
+ );
+
+ return;
+}
+
function update_imported_item($sender,$item,$uid) {
-// FIXME
+
+ item_store_update($item);
logger('update_imported_item');
}
@@ -960,10 +1197,10 @@ function delete_imported_item($sender,$item,$uid) {
logger('delete_imported_item invoked',LOGGER_DEBUG);
$r = q("select id from item where ( author_xchan = '%s' or owner_xchan = '%s' )
- and uri = '%s' and uid = %d limit 1",
+ and mid = '%s' and uid = %d limit 1",
dbesc($sender['hash']),
dbesc($sender['hash']),
- dbesc($item['uri']),
+ dbesc($item['mid']),
intval($uid)
);
@@ -978,37 +1215,56 @@ function delete_imported_item($sender,$item,$uid) {
}
function process_mail_delivery($sender,$arr,$deliveries) {
+
+
+ $result = array();
foreach($deliveries as $d) {
$r = q("select * from channel where channel_hash = '%s' limit 1",
dbesc($d['hash'])
);
- if(! $r)
+ if(! $r) {
+ $result[] = array($d['hash'],'not found');
continue;
+ }
$channel = $r[0];
if(! perm_is_allowed($channel['channel_id'],$sender['hash'],'post_mail')) {
logger("permission denied for mail delivery {$channel['channel_id']}");
+ $result[] = array($d['hash'],'permission denied',$channel['channel_name']);
continue;
}
- $r = q("select id from mail where uri = '%s' and channel_id = %d limit 1",
- dbesc($arr['uri']),
+ $r = q("select id from mail where mid = '%s' and channel_id = %d limit 1",
+ dbesc($arr['mid']),
intval($channel['channel_id'])
);
if($r) {
- logger('duplicate mail received');
+ if($arr['mail_flags'] & MAIL_RECALLED) {
+ $x = q("delete from mail where id = %d and channel_id = %d limit 1",
+ intval($r[0]['id']),
+ intval($channel['channel_id'])
+ );
+ $result[] = array($d['hash'],'mail recalled',$channel['channel_name']);
+ logger('mail_recalled');
+ }
+ else {
+ $result[] = array($d['hash'],'duplicate mail received',$channel['channel_name']);
+ logger('duplicate mail received');
+ }
continue;
}
else {
$arr['account_id'] = $channel['channel_account_id'];
$arr['channel_id'] = $channel['channel_id'];
$item_id = mail_store($arr);
+ $result[] = array($d['hash'],'mail delivered',$channel['channel_name']);
}
}
+ return $result;
}
function process_profile_delivery($sender,$arr,$deliveries) {
@@ -1019,17 +1275,26 @@ function process_profile_delivery($sender,$arr,$deliveries) {
import_directory_profile($sender['hash'],$arr);
}
+
+/*
+ * @function import_directory_profile
+ *
+ * @returns boolean $updated if something changed
+ *
+ */
+
function import_directory_profile($hash,$profile) {
logger('import_directory_profile', LOGGER_DEBUG);
if(! $hash)
- return;
+ return false;
$arr = array();
$arr['xprof_hash'] = $hash;
$arr['xprof_desc'] = (($profile['description']) ? htmlentities($profile['description'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_dob'] = datetime_convert('','',$profile['birthday'],'Y-m-d'); // !!!! check this for 0000 year
+ $arr['xprof_age'] = (($profile['age']) ? intval($profile['age']) : 0);
$arr['xprof_gender'] = (($profile['gender']) ? htmlentities($profile['gender'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_marital'] = (($profile['marital']) ? htmlentities($profile['marital'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_sexual'] = (($profile['sexual']) ? htmlentities($profile['sexual'], ENT_COMPAT,'UTF-8',false) : '');
@@ -1043,47 +1308,60 @@ function import_directory_profile($hash,$profile) {
import_directory_keywords($hash,$profile['keywords']);
foreach($profile['keywords'] as $kw) {
$kw = trim(htmlentities($kw,ENT_COMPAT,'UTF-8',false));
+ $kw = trim($kw,',');
}
$clean[] = $kw;
}
$arr['xprof_keywords'] = implode(' ',$clean);
-
$r = q("select * from xprof where xprof_hash = '%s' limit 1",
dbesc($hash)
);
if($r) {
- $x = q("update xprof set
- xprof_desc = '%s',
- xprof_dob = '%s',
- xprof_gender = '%s',
- xprof_marital = '%s',
- xprof_sexual = '%s',
- xprof_locale = '%s',
- xprof_region = '%s',
- xprof_postcode = '%s',
- xprof_country = '%s',
- xprof_keywords = '%s'
- where xprof_hash = '%s' limit 1",
- dbesc($arr['xprof_desc']),
- dbesc($arr['xprof_dob']),
- dbesc($arr['xprof_gender']),
- dbesc($arr['xprof_marital']),
- dbesc($arr['xprof_sexual']),
- dbesc($arr['xprof_locale']),
- dbesc($arr['xprof_region']),
- dbesc($arr['xprof_postcode']),
- dbesc($arr['xprof_country']),
- dbesc($arr['xprof_keywords']),
- dbesc($arr['xprof_hash'])
- );
+ $update = false;
+ foreach($r[0] as $k => $v) {
+ if((array_key_exists($k,$arr)) && ($arr[$k] != $v)) {
+ $update = true;
+ break;
+ }
+ }
+ if($update) {
+ $x = q("update xprof set
+ xprof_desc = '%s',
+ xprof_dob = '%s',
+ xprof_age = %d,
+ xprof_gender = '%s',
+ xprof_marital = '%s',
+ xprof_sexual = '%s',
+ xprof_locale = '%s',
+ xprof_region = '%s',
+ xprof_postcode = '%s',
+ xprof_country = '%s',
+ xprof_keywords = '%s'
+ where xprof_hash = '%s' limit 1",
+ dbesc($arr['xprof_desc']),
+ dbesc($arr['xprof_dob']),
+ intval($arr['xprof_age']),
+ dbesc($arr['xprof_gender']),
+ dbesc($arr['xprof_marital']),
+ dbesc($arr['xprof_sexual']),
+ dbesc($arr['xprof_locale']),
+ dbesc($arr['xprof_region']),
+ dbesc($arr['xprof_postcode']),
+ dbesc($arr['xprof_country']),
+ dbesc($arr['xprof_keywords']),
+ dbesc($arr['xprof_hash'])
+ );
+ }
}
else {
- $x = q("insert into xprof (xprof_hash, xprof_desc, xprof_dob, xprof_gender, xprof_marital, xprof_sexual, xprof_locale, xprof_region, xprof_postcode, xprof_country, xprof_keywords) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') ",
+ $update = true;
+ $x = q("insert into xprof (xprof_hash, xprof_desc, xprof_dob, xprof_age, xprof_gender, xprof_marital, xprof_sexual, xprof_locale, xprof_region, xprof_postcode, xprof_country, xprof_keywords) values ('%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') ",
dbesc($arr['xprof_hash']),
dbesc($arr['xprof_desc']),
dbesc($arr['xprof_dob']),
+ intval($arr['xprof_age']),
dbesc($arr['xprof_gender']),
dbesc($arr['xprof_marital']),
dbesc($arr['xprof_sexual']),
@@ -1095,7 +1373,12 @@ function import_directory_profile($hash,$profile) {
);
}
- return;
+ $d = array('xprof' => $arr, 'profile' => $profile, 'update' => $update);
+ call_hooks('import_directory_profile', $d);
+
+ if($d['update'])
+ update_modtime($arr['xprof_hash']);
+ return $d['update'];
}
function import_directory_keywords($hash,$keywords) {
@@ -1125,9 +1408,289 @@ function import_directory_keywords($hash,$keywords) {
}
foreach($clean as $x) {
if(! in_array($x,$existing))
- $r = q("insert int xtag ( xtag_hash, xtag_term) values ( '%s' ,'%s' )",
+ $r = q("insert into xtag ( xtag_hash, xtag_term) values ( '%s' ,'%s' )",
dbesc($hash),
dbesc($x)
);
}
-} \ No newline at end of file
+}
+
+
+function update_modtime($hash) {
+ $r = q("select * from updates where ud_hash = '%s' limit 1",
+ dbesc($hash)
+ );
+ if($r)
+ q("update updates set ud_date = '%s' where ud_hash = '%s' limit 1",
+ dbesc(datetime_convert()),
+ dbesc($hash)
+ );
+ else
+ q("insert into updates (ud_hash, ud_date) values ( '%s', '%s' )",
+ dbesc($hash),
+ dbesc(datetime_convert())
+ );
+}
+
+
+function import_site($arr,$pubkey) {
+ if( (! is_array($arr)) || (! $arr['url']) || (! $arr['url_sig']))
+ return false;
+
+ if(! rsa_verify($arr['url'],base64url_decode($arr['url_sig']),$pubkey)) {
+ logger('import_site: bad url_sig');
+ return false;
+ }
+
+ $update = false;
+
+ $r = q("select * from site where site_url = '%s' limit 1",
+ dbesc($arr['url'])
+ );
+ if($r)
+ $update = true;
+
+ $site_directory = 0;
+ if($arr['directory_mode'] == 'normal')
+ $site_directory = DIRECTORY_MODE_NORMAL;
+
+ if($arr['directory_mode'] == 'primary')
+ $site_directory = DIRECTORY_MODE_PRIMARY;
+ if($arr['directory_mode'] == 'secondary')
+ $site_directory = DIRECTORY_MODE_SECONDARY;
+ if($arr['directory_mode'] == 'standalone')
+ $site_directory = DIRECTORY_MODE_STANDALONE;
+
+ $register_policy = 0;
+ if($arr['register_policy'] == 'closed')
+ $register_policy = REGISTER_CLOSED;
+ if($arr['register_policy'] == 'open')
+ $register_policy = REGISTER_OPEN;
+ if($arr['register_policy'] == 'approve')
+ $register_policy = REGISTER_APPROVE;
+
+ if($update) {
+ $r = q("update site set site_flags = %d, site_directory = '%s', site_register = %d, site_update = '%s'
+ where site_url = '%s' limit 1",
+ intval($site_directory),
+ dbesc(htmlentities($arr['directory_url'],ENT_COMPAT,'UTF-8',false)),
+ intval($register_policy),
+ dbesc(datetime_convert()),
+ dbesc(htmlentities($arr['url'],ENT_COMPAT,'UTF-8',false))
+ );
+ if(! $r) {
+ logger('import_site: update failed. ' . print_r($arr,true));
+ }
+ }
+ else {
+ $r = q("insert into site ( site_url, site_flags, site_update, site_directory, site_register )
+ values ( '%s', %d, '%s', '%s', %d )",
+ dbesc(htmlentities($arr['url'],ENT_COMPAT,'UTF-8',false)),
+ intval($site_directory),
+ dbesc(datetime_convert()),
+ dbesc(htmlentities($arr['directory_url'],ENT_COMPAT,'UTF-8',false)),
+ intval($register_policy)
+ );
+ if(! $r) {
+ logger('import_site: record create failed. ' . print_r($arr,true));
+ }
+ }
+
+ return $r;
+
+}
+
+
+
+/**
+ * Send a zot packet to all hubs where this channel is duplicated, refreshing
+ * such things as personal settings, channel permissions, address book updates, etc.
+ */
+
+function build_sync_packet($uid = 0, $packet = null) {
+
+ $a = get_app();
+
+ logger('build_sync_packet');
+
+ if(! $uid)
+ $uid = local_user();
+
+ if(! $uid)
+ return;
+
+ $r = q("select * from channel where channel_id = %d limit 1",
+ intval($uid)
+ );
+ if(! $r)
+ return;
+
+ $channel = $r[0];
+
+ $h = q("select * from hubloc where hubloc_hash = '%s'",
+ dbesc($channel['channel_hash'])
+ );
+
+ if(! $h)
+ return;
+
+ $synchubs = array();
+
+ foreach($h as $x) {
+ if($x['hubloc_host'] == $a->get_hostname())
+ continue;
+ $synchubs[] = $x;
+ }
+
+ if(! $synchubs)
+ return;
+
+ $r = q("select xchan_guid, xchan_guid_sig from xchan where xchan_hash = '%s' limit 1",
+ dbesc($channel['channel_hash'])
+ );
+ if(! $r)
+ return;
+
+ $env_recips = array();
+ $env_recips[] = array('guid' => $r[0]['xchan_guid'],'guid_sig' => $r[0]['xchan_guid_sig']);
+
+ $info = (($packet) ? $packet : array());
+ $info['type'] = 'channel_sync';
+
+ if(array_key_exists($uid,$a->config) && array_key_exists('transient',$a->config[$uid])) {
+ $settings = $a->config[$uid]['transient'];
+ if($settings) {
+ $info['config'] = $settings;
+ }
+ }
+
+ if($channel) {
+ $info['channel'] = array();
+ foreach($channel as $k => $v) {
+
+ // filter out any joined tables like xchan
+
+ if(strpos($k,'channel_') !== 0)
+ continue;
+
+ // don't pass these elements, they should not be synchronised
+
+ $disallowed = array('channel_id','channel_account_id','channel_primary','channel_prvkey','channel_address');
+
+ if(in_array($k,$disallowed))
+ continue;
+
+ $info['channel'][$k] = $v;
+ }
+ }
+
+ $interval = ((get_config('system','delivery_interval') !== false)
+ ? intval(get_config('system','delivery_interval')) : 2 );
+
+
+ logger('build_sync_packet: packet: ' . print_r($info,true), LOGGER_DATA);
+
+ foreach($synchubs as $hub) {
+ $hash = random_string();
+ $n = zot_build_packet($channel,'notify',$env_recips,$hub['hubloc_sitekey'],$hash);
+ q("insert into outq ( outq_hash, outq_account, outq_channel, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s' )",
+ dbesc($hash),
+ intval($channel['channel_account']),
+ intval($channel['channel_id']),
+ dbesc($hub['hubloc_callback']),
+ intval(1),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc($n),
+ dbesc(json_encode($info))
+ );
+
+ proc_run('php','include/deliver.php',$hash);
+ if($interval)
+ @time_sleep_until(microtime(true) + (float) $interval);
+ }
+
+
+}
+
+function process_channel_sync_delivery($sender,$arr,$deliveries) {
+
+// FIXME - this will sync red structures (channel, pconfig and abook). Eventually we need to make this application agnostic.
+// TODO: missing group membership changes
+
+ $result = array();
+
+ foreach($deliveries as $d) {
+ $r = q("select * from channel where channel_hash = '%s' limit 1",
+ dbesc($d['hash'])
+ );
+
+ if(! $r) {
+ $result[] = array($d['hash'],'not found');
+ continue;
+ }
+
+ $channel = $r[0];
+
+ if($channel['channel_hash'] != $sender['hash']) {
+ logger('process_channel_sync_delivery: possible forgery. Sender ' . $sender['hash'] . ' is not ' . $channel['channel_hash']);
+ $result[] = array($d['hash'],'channel mismatch',$channel['channel_name']);
+ continue;
+ }
+
+ if(array_key_exists('config',$arr) && is_array($arr['config']) && count($arr['config'])) {
+ foreach($arr['config'] as $cat => $k) {
+ foreach($arr['config'][$cat] as $k => $v)
+ set_pconfig($channel['channel_id'],$cat,$k,$v);
+ }
+ }
+
+ if(array_key_exists('channel',$arr) && is_array($arr['channel']) && count($arr['channel'])) {
+ $disallowed = array('channel_id','channel_account_id','channel_primary','channel_prvkey', 'channel_address');
+
+ $clean = array();
+ foreach($arr['channel'] as $k => $v) {
+ if(in_array($k,$disallowed))
+ continue;
+ $clean[$k] = $v;
+ }
+ if(count($clean)) {
+ foreach($clean as $k => $v) {
+ $r = dbq("UPDATE channel set " . dbesc($k) . " = '" . dbesc($v)
+ . "' where channel_id = " . intval($channel['channel_id']) . " limit 1");
+ }
+ }
+ }
+
+
+ if(array_key_exists('abook',$arr) && is_array($arr['abook']) && count($arr['abook'])) {
+
+ $disallowed = array('abook_id','abook_account','abook_channel');
+
+ $clean = array();
+ foreach($arr['abook'] as $abook) {
+ foreach($abook as $k => $v) {
+ if(in_array($k,$disallowed))
+ continue;
+ $clean[$k] = $v;
+ }
+
+ if(! array_key_exists('abook_xchan',$clean))
+ continue;
+
+ if(count($clean)) {
+ foreach($clean as $k => $v) {
+ $r = dbq("UPDATE abook set " . dbesc($k) . " = '" . dbesc($v)
+ . "' where abook_xchan = '" . dbesc($clean['abook_xchan']) . "' and abook_channel = " . intval($channel['channel_id'])
+ . " limit 1");
+ }
+ }
+ }
+ }
+
+ $result[] = array($d['hash'],'channel sync updated',$channel['channel_name']);
+
+
+ }
+ return $result;
+}
diff --git a/index.php b/index.php
index cc6249256..14b8ca856 100644..100755
--- a/index.php
+++ b/index.php
@@ -2,7 +2,7 @@
/**
*
- * Friendica Red
+ * Red Matrix
*
*/
@@ -29,7 +29,6 @@ $install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false
$a->language = get_best_language();
-load_translation_table($a->language);
/**
*
@@ -37,11 +36,11 @@ load_translation_table($a->language);
*
*/
-require_once("dba.php");
+require_once("include/dba/dba_driver.php");
if(! $install) {
- $db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
- unset($db_host, $db_user, $db_pass, $db_data);
+ $db = dba_factory($db_host, $db_port, $db_user, $db_pass, $db_data, $install);
+ unset($db_host, $db_port, $db_user, $db_pass, $db_data);
/**
* Load configs from db. Overwrite configs from .htconfig.php
@@ -49,13 +48,22 @@ if(! $install) {
load_config('config');
load_config('system');
+ load_config('feature');
require_once("session.php");
load_hooks();
call_hooks('init_1');
+
+ load_translation_table($a->language);
+}
+else {
+ // load translations but do not check plugins as we have no database
+ load_translation_table($a->language,true);
}
+
+
/**
*
* Important stuff we always need to do.
@@ -110,8 +118,11 @@ if(! x($_SESSION,'sysmsg_info'))
*/
-if($install)
- $a->module = 'setup';
+if($install) {
+ /* Allow an exception for the view module so that pcss will be interpreted during installation */
+ if($a->module != 'view')
+ $a->module = 'setup';
+}
else
check_config($a);
@@ -281,7 +292,7 @@ if($a->module_loaded) {
// If $aside_default is not False after the theme _aside() function, run the
// module's _aside() function too
//
- // This gives themes more control over how the left sidebar looks
+ // This gives themes more control over how the sidebar looks
$aside_default = true;
call_hooks($a->module . '_mod_aside',$placeholder);
diff --git a/install.txt b/install.txt
new file mode 100644
index 000000000..ecd0b190d
--- /dev/null
+++ b/install.txt
@@ -0,0 +1,105 @@
+
+Red Installation
+===============
+
+Red should run on commodity hosting platforms - such as those used to host Wordpress blogs and Drupal websites. But be aware that Red is more than a simple web application. The kind of functionality offered by Red requires a bit more of the host system than the typical blog. Not every PHP/MySQL hosting provider will be able to support Red. Many will. But **please** review the requirements and confirm these with your hosting provider prior to installation.
+
+Also if you encounter installation issues, please let us know via the Github issue tracker (https://github.com/friendica/red/issues). Please be as clear as you can about your operating environment and provide as much detail as possible about any error messages you may see, so that we can prevent it from happening in the future. Due to the large variety of operating systems and PHP platforms in existence we may have only limited ability to debug your PHP installation or acquire any missing modules - but we will do our best to solve any general code issues.
+
+Before you begin: Choose a domain name or subdomain name for your server.
+
+1. Requirements
+ - Apache with mod-rewrite enabled and "Options All" so you can use a
+local .htaccess file
+
+ - PHP 5.3 or later
+ - PHP *command line* access with register_argc_argv set to true in the
+php.ini file
+ - curl, gd, mysql, and openssl extensions
+ - some form of email server or email gateway such that PHP mail() works
+ - mcrypt (optional; used for server-to-server message encryption)
+
+ - Mysql 5.x
+
+ - ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks
+(Windows) [Note: other options are presented in Section 7 of this document]
+
+ - Installation into a top-level domain or sub-domain (without a
+directory/path component in the URL) is preferred. Directory paths will
+not be as convenient to use and have not been thoroughly tested.
+
+
+ [Dreamhost.com offers all of the necessary hosting features at a
+reasonable price. If your hosting provider doesn't allow Unix shell access,
+you might have trouble getting everything to work.]
+
+2. Unpack the Red files into the root of your web server document area.
+
+ - If you are able to do so, we recommend using git to clone the source repository rather than to use a packaged tar or zip file. This makes the software much easier to update. The Linux command to clone the repository into a directory "mywebsite" would be
+
+ `git clone https://github.com/friendica/red.git mywebsite`
+
+ - and then you can pick up the latest changes at any time with
+
+ `git pull`
+
+ - make sure folder *view/tpl/smarty3* exists and is writable by webserver
+
+ `mkdir view/tpl/smarty3`
+
+ `chown 777 view/smarty3`
+
+ - For installing addons
+
+ - First you should be **on** your website folder
+
+ `cd mywebsite`
+
+ - Then you should clone the addon repository (separtely)
+
+ `git clone https://github.com/friendica/red-addons.git addon`
+
+ - For keeping the addon tree updated, you should be on you addon tree and issue a git pull
+
+ `cd mywebsite/addon`
+
+ `git pull`
+
+ - If you copy the directory tree to your webserver, make sure
+ that you also copy .htaccess - as "dot" files are often hidden
+ and aren't normally copied.
+
+
+3. Create an empty database and note the access details (hostname, username, password, database name).
+
+4. Visit your website with a web browser and follow the instructions. Please note any error messages and correct these before continuing.
+
+5. *If* the automated installation fails for any reason, check the following:
+
+ - ".htconfig.php" exists ... If not, edit htconfig.php and change system settings. Rename
+to .htconfig.php
+ - Database is populated. ... If not, import the contents of "database.sql" with phpmyadmin
+or mysql command line
+
+6. At this point visit your website again, and register your personal account.
+Registration errors should all be recoverable automatically.
+If you get any *critical* failure at this point, it generally indicates the
+database was not installed correctly. You might wish to move/rename
+.htconfig.php to another name and empty (called 'dropping') the database
+tables, so that you can start fresh.
+
+7. Set up a cron job or scheduled task to run the poller once every 15
+minutes in order to perform background processing. Example:
+
+ `cd /base/directory; /path/to/php include/poller.php`
+
+Change "/base/directory", and "/path/to/php" as appropriate for your situation.
+
+If you are using a Linux server, run "crontab -e" and add a line like the
+one shown, substituting for your unique paths and settings:
+
+`*/15 * * * * cd /home/myname/mywebsite; /usr/bin/php include/poller.php`
+
+You can generally find the location of PHP by executing "which php". If you
+have troubles with this section please contact your hosting provider for
+assistance. Red will not work correctly if you cannot perform this step.
diff --git a/install/INSTALL.txt b/install/INSTALL.txt
index e6adbba7d..3f135c349 100644
--- a/install/INSTALL.txt
+++ b/install/INSTALL.txt
@@ -1,31 +1,28 @@
-Friendica Installation
+Red Matrix Installation
-We've tried very hard to ensure that Friendica will run on commodity hosting
-platforms - such as those used to host Wordpress blogs and Drupal websites.
-But be aware that Friendica is more than a simple web application. It is a
+We've tried very hard to ensure that the Red Matrix will run on commodity
+hosting platforms - such as those used to host Wordpress blogs and Drupal
+websites. It will run on most any Linux VPS system. Windows LAMP platforms
+such as XAMPP and WAMP are not officially supported at this time - however
+we welcome patches if you manage to get it working.
+
+Be aware that the Red Matrix is more than a simple web application. It is a
complex communications system which more closely resembles an email server
than a web server. For reliability and performance, messages are delivered in
the background and are queued for later delivery when sites are down. This
kind of functionality requires a bit more of the host system than the typical
-blog. Not every PHP/MySQL hosting provider will be able to support Friendica.
-Many will. But please review the requirements and confirm these with your
-hosting provider prior to installation.
+blog. Not every PHP/MySQL hosting provider will be able to support the
+Red Matrix. Many will - but please review the requirements and confirm these
+with your hosting provider prior to installation. (And preferably before
+entering into a long-term contract.)
Before you begin: Choose a domain name or subdomain name for your server.
Put some thought into this - because changing it is currently not-supported.
Things will break, and some of your friends may have difficulty communicating
-with you. We plan to address this limitation in a future release. Also decide
-if you wish to connect with members of the Diaspora network, as this will
-impact the installation requirements.
-
-Decide if you will use SSL and obtain an SSL cert. Communications with the
-Diaspora network MAY require both SSL AND an SSL cert signed by a CA which is
-recognised by the major browsers. Friendica will work with self-signed certs
-but Diaspora communication may not. For best results, install your cert PRIOR
-to installing Friendica and when visiting your site for the initial
-installation in step 5, please use the https: link. (Use the http: or non-SSL
-link if your cert is self-signed).
+with you. We plan to address this limitation in a future release.
+
+Decide if you will use SSL and obtain an SSL cert before software installation. You SHOULD use SSL. If you use SSL, you MUST use a "browser-valid" certificate. Please test your certificate prior to installation. A web tool for testing your certificate is available at "http://www.digicert.com/help/". When visiting your site for the first time, please use the SSL ("https://") URL if SSL is available. This will avoid problems later.
1. Requirements
@@ -35,22 +32,21 @@ local .htaccess file
- PHP 5.3+. The later the better.
- PHP *command line* access with register_argc_argv set to true in the
-php.ini file [or see 'poormancron' in section 8]
+php.ini file - and with no hosting provider restrictions on the use of exec()
+and proc_open().
- - curl, gd (with at least jpeg support), mysql, mbstring, mcrypt, and openssl extensions
+ - curl, gd (with at least jpeg support), mysqli, mbstring, mcrypt, and openssl extensions. The imagick extension is not required but desirable.
- some form of email server or email gateway such that PHP mail() works
- - Mysql 5.x
+ - Mysql 5.x or MariaDB
- - ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks
-(Windows) [Note: other options are presented in Section 8 of this document]
+ - ability to schedule jobs with cron.
- Installation into a top-level domain or sub-domain (without a
-directory/path component in the URL) is preferred. This is REQUIRED if
-you wish to communicate with the Diaspora network.
+directory/path component in the URL) is REQUIRED.
-2. Unpack the Friendica files into the root of your web server document area.
+2. Unpack the Red Matrix files into the root of your web server document area.
- If you copy the directory tree to your webserver, make sure
that you also copy .htaccess - as "dot" files are often hidden
@@ -66,8 +62,8 @@ write or create files in your web directory, create an empty file called
5. Visit your website with a web browser and follow the instructions. Please
note any error messages and correct these before continuing. If you are using
-SSL with a known signature authority (recommended), use the https: link to your
-website. If you are using a self-signed cert or no cert, use the http: link.
+SSL with a known signature authority, use the https: link to your
+website.
6. *If* the automated installation fails for any reason, check the following:
@@ -107,29 +103,11 @@ You can generally find the location of PHP by executing "which php". If you
have troubles with this section please contact your hosting provider for
assistance. Friendica will not work correctly if you cannot perform this step.
-You should also be sure that $a->config['php_path'] is set correctly, it should
+You should also be sure that $a->config['system']['php_path'] is set correctly, it should
look like (changing it to the correct PHP location)
-$a->config['php_path'] = '/usr/local/php53/bin/php'
+$a->config['system']['php_path'] = '/usr/local/php53/bin/php';
-Alternative: You may be able to use the 'poormancron' plugin to perform this
-step if you are using a recent Friendica release. 'poormancron' may result in
-perfomance and memory issues and is only suitable for small sites with one or
-two users and a handful of contacts. To do this, edit the file
-".htconfig.php" and look for a line describing your plugins. On a fresh
-installation, it will look like
-
-$a->config['system']['addon'] = 'js_upload';
-
-This indicates the "js_upload" addon module is enabled. You may add additional
-addons/plugins using this same line in the configuration file. Change it to
-read
-
-$a->config['system']['addon'] = 'js_upload,poormancron';
-
-and save your changes.
-
-
#####################################################################
@@ -153,8 +131,6 @@ the database server name is "localhost".
This could be the result of one of our Apache directives not being
supported by your version of Apache. Examine your apache server logs.
- You might remove the line "Options -Indexes" from the .htaccess file if
-you are using a Windows server as this has been known to cause problems.
Also check your file permissions. Your website and all contents must generally
be world-readable.
@@ -200,8 +176,7 @@ likely that mod-rewrite is not installed in your web server or is not working.
distribution or (if Windows) the provider of your Apache server software if
you need to change either of these and can not figure out how. There is
a lot of help available on the web. Google "mod-rewrite" along with the
-name of your operating system distribution or Apache package (if using
-Windows).
+name of your operating system distribution or Apache package.
#####################################################################
@@ -223,7 +198,7 @@ Retry the installation. As soon as the database has been created,
#####################################################################
- Some configurations with "suhosin" security are configured without
-an ability to run external processes. Friendica requires this ability.
+an ability to run external processes. The Red Matrix requires this ability.
Following are some notes provided by one of our members.
#####################################################################
@@ -233,26 +208,26 @@ certain functions like proc_open, as configured in /etc/php5/conf.d/suhosin.ini:
suhosin.executor.func.blacklist = proc_open, ...
-For those sites like Friendica that really need these functions they can be
-enabled, e.g. in /etc/apache2/sites-available/friendica:
+For those sites like Red Matrix that really need these functions they can be
+enabled, e.g. in /etc/apache2/sites-available/redmatrix:
- <Directory /var/www/friendica/>
+ <Directory /var/www/redmatrix/>
php_admin_value suhosin.executor.func.blacklist none
php_admin_value suhosin.executor.eval.blacklist none
</Directory>
-This enables every function for Friendica if accessed via browser, but not for
+This enables every function for Red Matrix if accessed via browser, but not for
the cronjob that is called via php command line. I attempted to enable it for
cron by using something like
- */10 * * * * cd /var/www/friendica/friendica/ && sudo -u www-data /usr/bin/php
+ */10 * * * * cd /var/www/redmatrix/ && sudo -u www-data /usr/bin/php
-d suhosin.executor.func.blacklist=none -d suhosin.executor.eval.blacklist=none
-f include/poller.php
-This worked well for simple test cases, but the friendica-cron still failed with
+This worked well for simple test cases, but the cron job still failed with
a fatal error:
suhosin[22962]: ALERT - function within blacklist called: proc_open() (attacker
-'REMOTE_ADDR not set', file '/var/www/friendica/friendica/boot.php', line 1341)
+'REMOTE_ADDR not set', file '/var/www/redmatrix/boot.php', line 1341)
After a while I noticed, that include/poller.php calls further php script via
proc_open. These scripts themselves also use proc_open and fail, because they
@@ -260,11 +235,11 @@ are NOT called with -d suhosin.executor.func.blacklist=none.
So the simple solution is to put the correct parameters into .htconfig.php:
// Location of PHP command line processor
- $a->config['php_path'] = '/usr/bin/php -d suhosin.executor.func.blacklist=none
+ $a->config['system']['php_path'] = '/usr/bin/php -d suhosin.executor.func.blacklist=none
-d suhosin.executor.eval.blacklist=none';
-This is obvious as soon as you notice that the friendica-cron uses proc_open to
+This is obvious as soon as you notice that the cron uses proc_open to
execute php-scripts that also use proc_open, but it took me quite some time to
find that out. I hope this saves some time for other people using suhosin with
function blacklists.
diff --git a/install/database.sql b/install/database.sql
index 3dcbb7be0..cd1c72ac6 100644
--- a/install/database.sql
+++ b/install/database.sql
@@ -44,6 +44,7 @@ CREATE TABLE IF NOT EXISTS `account` (
`account_salt` char(32) NOT NULL DEFAULT '',
`account_password` char(255) NOT NULL DEFAULT '',
`account_email` char(255) NOT NULL DEFAULT '',
+ `account_external` char(255) NOT NULL DEFAULT '',
`account_language` char(16) NOT NULL DEFAULT 'en',
`account_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`account_lastlog` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
@@ -61,7 +62,8 @@ CREATE TABLE IF NOT EXISTS `account` (
KEY `account_roles` (`account_roles`),
KEY `account_lastlog` (`account_lastlog`),
KEY `account_expires` (`account_expires`),
- KEY `account_default_channel` (`account_default_channel`)
+ KEY `account_default_channel` (`account_default_channel`),
+ KEY `account_external` (`account_external`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `addon` (
@@ -158,7 +160,7 @@ CREATE TABLE IF NOT EXISTS `channel` (
`channel_max_friend_req` int(10) unsigned NOT NULL DEFAULT '10',
`channel_expire_days` int(11) NOT NULL DEFAULT '0',
`channel_passwd_reset` char(255) NOT NULL DEFAULT '',
- `channel_default_gid` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_default_group` char(255) NOT NULL DEFAULT '',
`channel_allow_cid` mediumtext NOT NULL,
`channel_allow_gid` mediumtext NOT NULL,
`channel_deny_cid` mediumtext NOT NULL,
@@ -180,10 +182,10 @@ CREATE TABLE IF NOT EXISTS `channel` (
`channel_r_pages` int(10) unsigned NOT NULL DEFAULT '128',
`channel_w_pages` int(10) unsigned NOT NULL DEFAULT '128',
PRIMARY KEY (`channel_id`),
+ UNIQUE KEY `channel_address_unique` (`channel_address`),
KEY `channel_account_id` (`channel_account_id`),
KEY `channel_primary` (`channel_primary`),
KEY `channel_name` (`channel_name`),
- KEY `channel_address` (`channel_address`),
KEY `channel_timezone` (`channel_timezone`),
KEY `channel_location` (`channel_location`),
KEY `channel_theme` (`channel_theme`),
@@ -191,7 +193,7 @@ CREATE TABLE IF NOT EXISTS `channel` (
KEY `channel_pageflags` (`channel_pageflags`),
KEY `channel_max_anon_mail` (`channel_max_anon_mail`),
KEY `channel_max_friend_req` (`channel_max_friend_req`),
- KEY `channel_default_gid` (`channel_default_gid`),
+ KEY `channel_default_gid` (`channel_default_group`),
KEY `channel_r_stream` (`channel_r_stream`),
KEY `channel_r_profile` (`channel_r_profile`),
KEY `channel_r_photos` (`channel_r_photos`),
@@ -307,7 +309,6 @@ CREATE TABLE IF NOT EXISTS `fserver` (
`key` text NOT NULL,
PRIMARY KEY (`id`),
KEY `server` (`server`),
- KEY `server_2` (`server`),
KEY `posturl` (`posturl`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
@@ -324,43 +325,6 @@ CREATE TABLE IF NOT EXISTS `fsuggest` (
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-CREATE TABLE IF NOT EXISTS `gcign` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `uid` int(11) NOT NULL,
- `gcid` int(11) NOT NULL,
- PRIMARY KEY (`id`),
- KEY `uid` (`uid`),
- KEY `gcid` (`gcid`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `gcontact` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `name` char(255) NOT NULL,
- `url` char(255) NOT NULL,
- `nurl` char(255) NOT NULL,
- `photo` char(255) NOT NULL,
- `connect` char(255) NOT NULL,
- PRIMARY KEY (`id`),
- KEY `nurl` (`nurl`),
- KEY `name` (`name`),
- KEY `url` (`url`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `glink` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `cid` int(11) NOT NULL,
- `uid` int(11) NOT NULL,
- `gcid` int(11) NOT NULL,
- `zcid` int(11) NOT NULL,
- `updated` datetime NOT NULL,
- PRIMARY KEY (`id`),
- KEY `cid` (`cid`),
- KEY `uid` (`uid`),
- KEY `gcid` (`gcid`),
- KEY `zcid` (`zcid`),
- KEY `updated` (`updated`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
CREATE TABLE IF NOT EXISTS `group` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`hash` char(255) NOT NULL DEFAULT '',
@@ -409,35 +373,17 @@ CREATE TABLE IF NOT EXISTS `hubloc` (
`hubloc_callback` char(255) NOT NULL DEFAULT '',
`hubloc_connect` char(255) NOT NULL DEFAULT '',
`hubloc_sitekey` text NOT NULL,
+ `hubloc_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `hubloc_connected` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`hubloc_id`),
KEY `hubloc_url` (`hubloc_url`),
KEY `hubloc_guid` (`hubloc_guid`),
KEY `hubloc_flags` (`hubloc_flags`),
KEY `hubloc_connect` (`hubloc_connect`),
KEY `hubloc_host` (`hubloc_host`),
- KEY `hubloc_addr` (`hubloc_addr`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `intro` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `uid` int(10) unsigned NOT NULL,
- `fid` int(11) NOT NULL DEFAULT '0',
- `contact-id` int(11) NOT NULL,
- `knowyou` tinyint(1) NOT NULL,
- `duplex` tinyint(1) NOT NULL DEFAULT '0',
- `note` text NOT NULL,
- `hash` char(255) NOT NULL,
- `datetime` datetime NOT NULL,
- `blocked` tinyint(1) NOT NULL DEFAULT '1',
- `ignore` tinyint(1) NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`),
- KEY `uid` (`uid`),
- KEY `fid` (`fid`),
- KEY `hash` (`hash`),
- KEY `datetime` (`datetime`),
- KEY `blocked` (`blocked`),
- KEY `ignore` (`ignore`),
- KEY `contact-id` (`contact-id`)
+ KEY `hubloc_addr` (`hubloc_addr`),
+ KEY `hubloc_updated` (`hubloc_updated`),
+ KEY `hubloc_connected` (`hubloc_connected`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `issue` (
@@ -459,12 +405,12 @@ CREATE TABLE IF NOT EXISTS `issue` (
CREATE TABLE IF NOT EXISTS `item` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `uri` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
+ `mid` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
`aid` int(10) unsigned NOT NULL DEFAULT '0',
`uid` int(10) unsigned NOT NULL DEFAULT '0',
`wall` tinyint(1) NOT NULL DEFAULT '0',
`parent` int(10) unsigned NOT NULL DEFAULT '0',
- `parent_uri` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
+ `parent_mid` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
`thr_parent` char(255) NOT NULL DEFAULT '',
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
@@ -475,7 +421,7 @@ CREATE TABLE IF NOT EXISTS `item` (
`owner_xchan` char(255) NOT NULL DEFAULT '',
`author_xchan` char(255) NOT NULL DEFAULT '',
`mimetype` char(255) NOT NULL DEFAULT '',
- `title` char(255) NOT NULL DEFAULT '',
+ `title` text NOT NULL DEFAULT '',
`body` mediumtext NOT NULL,
`app` char(255) NOT NULL DEFAULT '',
`lang` char(64) NOT NULL DEFAULT '',
@@ -494,6 +440,7 @@ CREATE TABLE IF NOT EXISTS `item` (
`inform` mediumtext NOT NULL,
`location` char(255) NOT NULL DEFAULT '',
`coord` char(255) NOT NULL DEFAULT '',
+ `comment_policy` char(255) NOT NULL DEFAULT '',
`allow_cid` mediumtext NOT NULL,
`allow_gid` mediumtext NOT NULL,
`deny_cid` mediumtext NOT NULL,
@@ -502,7 +449,6 @@ CREATE TABLE IF NOT EXISTS `item` (
`item_flags` int(11) NOT NULL DEFAULT '0',
`item_private` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
- KEY `uri` (`uri`),
KEY `uid` (`uid`),
KEY `parent` (`parent`),
KEY `created` (`created`),
@@ -511,14 +457,12 @@ CREATE TABLE IF NOT EXISTS `item` (
KEY `wall` (`wall`),
KEY `uid_commented` (`uid`,`commented`),
KEY `uid_created` (`uid`,`created`),
- KEY `parent_uri` (`parent_uri`),
KEY `aid` (`aid`),
KEY `owner_xchan` (`owner_xchan`),
KEY `author_xchan` (`author_xchan`),
KEY `resource_type` (`resource_type`),
KEY `item_restrict` (`item_restrict`),
KEY `item_flags` (`item_flags`),
- KEY `uid_uri` (`uri`,`uid`),
KEY `commented` (`commented`),
KEY `verb` (`verb`),
KEY `item_private` (`item_private`),
@@ -526,6 +470,10 @@ CREATE TABLE IF NOT EXISTS `item` (
KEY `expires` (`expires`),
KEY `revision` (`revision`),
KEY `mimetype` (`mimetype`),
+ KEY `mid` (`mid`),
+ KEY `parent_mid` (`parent_mid`),
+ KEY `uid_mid` (`mid`,`uid`),
+ KEY `comment_policy` (`comment_policy`),
FULLTEXT KEY `title` (`title`),
FULLTEXT KEY `body` (`body`),
FULLTEXT KEY `allow_cid` (`allow_cid`),
@@ -554,29 +502,29 @@ CREATE TABLE IF NOT EXISTS `mail` (
`to_xchan` char(255) NOT NULL DEFAULT '',
`account_id` int(10) unsigned NOT NULL DEFAULT '0',
`channel_id` int(10) unsigned NOT NULL,
- `title` char(255) NOT NULL,
+ `title` text NOT NULL,
`body` mediumtext NOT NULL,
- `uri` char(255) NOT NULL,
- `parent_uri` char(255) NOT NULL,
+ `mid` char(255) NOT NULL,
+ `parent_mid` char(255) NOT NULL,
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
- KEY `uri` (`uri`),
KEY `created` (`created`),
KEY `mail_flags` (`mail_flags`),
KEY `account_id` (`account_id`),
KEY `channel_id` (`channel_id`),
- KEY `parent_uri` (`parent_uri`),
KEY `from_xchan` (`from_xchan`),
- KEY `to_xchan` (`to_xchan`)
+ KEY `to_xchan` (`to_xchan`),
+ KEY `mid` (`mid`),
+ KEY `parent_mid` (`parent_mid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `manage` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
- `mid` int(11) NOT NULL,
+ `xchan` char(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
- KEY `mid` (`mid`)
+ KEY `xchan` (`xchan`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `menu` (
@@ -629,10 +577,26 @@ CREATE TABLE IF NOT EXISTS `notify` (
KEY `otype` (`otype`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE IF NOT EXISTS `obj` (
+ `obj_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `obj_page` char(64) NOT NULL DEFAULT '',
+ `obj_verb` char(255) NOT NULL DEFAULT '',
+ `obj_type` int(10) unsigned NOT NULL DEFAULT '0',
+ `obj_obj` char(255) NOT NULL DEFAULT '',
+ `obj_channel` int(10) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`obj_id`),
+ KEY `obj_verb` (`obj_verb`),
+ KEY `obj_page` (`obj_page`),
+ KEY `obj_type` (`obj_type`),
+ KEY `obj_channel` (`obj_channel`),
+ KEY `obj_obj` (`obj_obj`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
CREATE TABLE IF NOT EXISTS `outq` (
`outq_hash` char(255) NOT NULL,
`outq_account` int(10) unsigned NOT NULL DEFAULT '0',
`outq_channel` int(10) unsigned NOT NULL DEFAULT '0',
+ `outq_driver` char(32) NOT NULL DEFAULT '',
`outq_posturl` char(255) NOT NULL DEFAULT '',
`outq_async` tinyint(1) NOT NULL DEFAULT '0',
`outq_delivered` tinyint(1) NOT NULL DEFAULT '0',
@@ -679,6 +643,7 @@ CREATE TABLE IF NOT EXISTS `photo` (
`data` mediumblob NOT NULL,
`scale` tinyint(3) NOT NULL,
`profile` tinyint(1) NOT NULL DEFAULT '0',
+ `photo_flags` int(10) unsigned NOT NULL DEFAULT '0',
`allow_cid` mediumtext NOT NULL,
`allow_gid` mediumtext NOT NULL,
`deny_cid` mediumtext NOT NULL,
@@ -688,6 +653,7 @@ CREATE TABLE IF NOT EXISTS `photo` (
KEY `album` (`album`),
KEY `scale` (`scale`),
KEY `profile` (`profile`),
+ KEY `photo_flags` (`photo_flags`),
KEY `type` (`type`),
KEY `aid` (`aid`),
KEY `xchan` (`xchan`),
@@ -705,6 +671,7 @@ CREATE TABLE IF NOT EXISTS `profile` (
`hide_friends` tinyint(1) NOT NULL DEFAULT '0',
`name` char(255) NOT NULL,
`pdesc` char(255) NOT NULL,
+ `chandesc` text NOT NULL DEFAULT '',
`dob` char(32) NOT NULL DEFAULT '0000-00-00',
`dob_tz` char(255) NOT NULL DEFAULT 'UTC',
`address` char(255) NOT NULL,
@@ -734,6 +701,7 @@ CREATE TABLE IF NOT EXISTS `profile` (
`work` text NOT NULL,
`education` text NOT NULL,
`contact` text NOT NULL,
+ `channels` text NOT NULL,
`homepage` char(255) NOT NULL,
`photo` char(255) NOT NULL,
`thumb` char(255) NOT NULL,
@@ -803,21 +771,34 @@ CREATE TABLE IF NOT EXISTS `session` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`sid` char(255) NOT NULL,
`data` text NOT NULL,
- `expire` int(10) unsigned NOT NULL,
+ `expire` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `sid` (`sid`),
KEY `expire` (`expire`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE IF NOT EXISTS `shares` (
+ `share_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `share_type` int(11) NOT NULL DEFAULT '0',
+ `share_target` int(10) unsigned NOT NULL DEFAULT '0',
+ `share_xchan` char(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`share_id`),
+ KEY `share_type` (`share_type`),
+ KEY `share_target` (`share_target`),
+ KEY `share_xchan` (`share_xchan`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
CREATE TABLE IF NOT EXISTS `site` (
`site_url` char(255) NOT NULL,
`site_flags` int(11) NOT NULL DEFAULT '0',
`site_update` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`site_directory` char(255) NOT NULL DEFAULT '',
+ `site_register` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`site_url`),
KEY `site_flags` (`site_flags`),
KEY `site_update` (`site_update`),
- KEY `site_directory` (`site_directory`)
+ KEY `site_directory` (`site_directory`),
+ KEY `site_register` (`site_register`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `spam` (
@@ -843,20 +824,26 @@ CREATE TABLE IF NOT EXISTS `term` (
`type` tinyint(3) unsigned NOT NULL,
`term` char(255) NOT NULL,
`url` char(255) NOT NULL,
+ `imgurl` char(255) NOT NULL,
+ `term_hash` char(255) NOT NULL DEFAULT '',
+ `parent_hash` char(255) NOT NULL DEFAULT '',
PRIMARY KEY (`tid`),
KEY `oid` (`oid`),
KEY `otype` (`otype`),
KEY `type` (`type`),
KEY `term` (`term`),
KEY `uid` (`uid`),
- KEY `aid` (`aid`)
+ KEY `aid` (`aid`),
+ KEY `imgurl` (`imgurl`),
+ KEY `term_hash` (`term_hash`),
+ KEY `parent_hash` (`parent_hash`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `tokens` (
`id` varchar(40) NOT NULL,
`secret` text NOT NULL,
`client_id` varchar(20) NOT NULL,
- `expires` int(11) NOT NULL,
+ `expires` bigint(20) unsigned NOT NULL,
`scope` varchar(200) NOT NULL,
`uid` int(11) NOT NULL,
PRIMARY KEY (`id`),
@@ -865,6 +852,13 @@ CREATE TABLE IF NOT EXISTS `tokens` (
KEY `uid` (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE IF NOT EXISTS `updates` (
+ `ud_hash` char(128) NOT NULL,
+ `ud_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`ud_hash`),
+ KEY `ud_date` (`ud_date`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
CREATE TABLE IF NOT EXISTS `verify` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`channel` int(10) unsigned NOT NULL DEFAULT '0',
@@ -894,6 +888,7 @@ CREATE TABLE IF NOT EXISTS `xchan` (
`xchan_connurl` char(255) NOT NULL DEFAULT '',
`xchan_name` char(255) NOT NULL DEFAULT '',
`xchan_network` char(255) NOT NULL DEFAULT '',
+ `xchan_instance_url` char(255) NOT NULL DEFAULT '',
`xchan_flags` int(10) unsigned NOT NULL DEFAULT '0',
`xchan_photo_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`xchan_name_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
@@ -902,11 +897,33 @@ CREATE TABLE IF NOT EXISTS `xchan` (
KEY `xchan_addr` (`xchan_addr`),
KEY `xchan_name` (`xchan_name`),
KEY `xchan_network` (`xchan_network`),
+ KEY `xchan_instance_url` (`xchan_instance_url`),
KEY `xchan_url` (`xchan_url`),
KEY `xchan_flags` (`xchan_flags`),
KEY `xchan_connurl` (`xchan_connurl`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE IF NOT EXISTS `xconfig` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `xchan` char(255) NOT NULL,
+ `cat` char(255) NOT NULL,
+ `k` char(255) NOT NULL,
+ `v` mediumtext NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `xchan` (`xchan`),
+ KEY `cat` (`cat`),
+ KEY `k` (`k`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+CREATE TABLE IF NOT EXISTS `xign` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL DEFAULT '0',
+ `xchan` char(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+ KEY `xchan` (`xchan`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
CREATE TABLE IF NOT EXISTS `xlink` (
`xlink_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`xlink_xchan` char(255) NOT NULL DEFAULT '',
@@ -918,10 +935,11 @@ CREATE TABLE IF NOT EXISTS `xlink` (
KEY `xlink_link` (`xlink_link`),
KEY `xlink_updated` (`xlink_updated`),
KEY `xlink_rating` (`xlink_rating`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `xprof` (
`xprof_hash` char(255) NOT NULL,
+ `xprof_age` tinyint(3) unsigned NOT NULL DEFAULT '0',
`xprof_desc` char(255) NOT NULL DEFAULT '',
`xprof_dob` char(12) NOT NULL DEFAULT '',
`xprof_gender` char(255) NOT NULL DEFAULT '',
@@ -941,12 +959,15 @@ CREATE TABLE IF NOT EXISTS `xprof` (
KEY `xprof_locale` (`xprof_locale`),
KEY `xprof_region` (`xprof_region`),
KEY `xprof_postcode` (`xprof_postcode`),
- KEY `xprof_country` (`xprof_country`)
+ KEY `xprof_country` (`xprof_country`),
+ KEY `xprof_age` (`xprof_age`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `xtag` (
+ `xtag_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`xtag_hash` char(255) NOT NULL,
`xtag_term` char(255) NOT NULL DEFAULT '',
- PRIMARY KEY (`xtag_hash`),
- KEY `xtag_term` (`xtag_term`)
+ PRIMARY KEY (`xtag_id`),
+ KEY `xtag_term` (`xtag_term`),
+ KEY `xtag_hash` (`xtag_hash`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
diff --git a/install/htconfig.sample.php b/install/htconfig.sample.php
index ebfc84543..14ae23676 100644..100755
--- a/install/htconfig.sample.php
+++ b/install/htconfig.sample.php
@@ -12,11 +12,26 @@
// Then set the following for your MySQL installation
-$db_host = 'your.mysqlhost.com';
+$db_host = 'your.mysqlhost.com'; // Use 'localhost' if you aren't using a remote server
+$db_port = 0; // leave 0 for default or set your port
$db_user = 'mysqlusername';
$db_pass = 'mysqlpassword';
$db_data = 'mysqldatabasename';
+
+/*
+ * Notice: Many of the following settings will be available in the admin panel
+ * after a successful site install. Once they are set in the admin panel, they
+ * are stored in the DB - and the DB setting will over-ride any corresponding
+ * setting in this file
+ *
+ * The command-line tool util/config is able to query and set the DB items
+ * directly if for some reason the admin panel is not available and a system
+ * setting requires modification.
+ *
+ */
+
+
// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
// It can be changed later and only applies to timestamps for anonymous viewers.
@@ -24,7 +39,10 @@ $default_timezone = 'America/Los_Angeles';
// What is your site name?
-$a->config['sitename'] = "Friendica Social Network";
+$a->config['system']['baseurl'] = 'https://myredsite.example';
+$a->config['system']['sitename'] = "Red Matrix";
+$a->config['system']['location_hash'] = 'if the auto install failed, put a unique random string here';
+
// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
// Be certain to create your own personal account before setting
@@ -37,20 +55,12 @@ $a->config['sitename'] = "Friendica Social Network";
// must precisely match the email address of the person logged in.
$a->config['system']['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
+$a->config['system']['register_text'] = '';
$a->config['system']['admin_email'] = '';
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
// Location of PHP command line processor
-$a->config['php_path'] = 'php';
+$a->config['system']['php_path'] = 'php';
// Configure how we communicate with directory servers.
@@ -61,18 +71,3 @@ $a->config['php_path'] = 'php';
$a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = 'http://pubsubhubbub.appspot.com';
-
-// allowed themes (change this from admin panel after installation)
-
-$a->config['system']['allowed_themes'] = 'redbasic';
-
-// default system theme
-
-$a->config['system']['theme'] = 'redbasic';
-
-
-
diff --git a/install/update.php b/install/update.php
index c40dd1982..c09bc9d64 100644
--- a/install/update.php
+++ b/install/update.php
@@ -1,6 +1,6 @@
<?php
-define( 'UPDATE_VERSION' , 1031 );
+define( 'UPDATE_VERSION' , 1058 );
/**
*
@@ -52,7 +52,7 @@ function update_r1001() {
`meta` CHAR( 255 ) NOT NULL DEFAULT '',
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY ( `id` )
- ) ENGINE = MYISAM ");
+ ) ENGINE = MYISAM DEFAULT CHARSET=utf8");
$r2 = q("alter table `verify` add index (`channel`), add index (`type`), add index (`token`),
add index (`meta`), add index (`created`)");
@@ -91,7 +91,7 @@ function update_r1004() {
`site_update` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`site_directory` CHAR( 255 ) NOT NULL DEFAULT '',
PRIMARY KEY ( `site_url` )
-) ENGINE = MYISAM ");
+) ENGINE = MYISAM DEFAULT CHARSET=utf8");
$r2 = q("alter table site add index (site_flags), add index (site_update), add index (site_directory) ");
@@ -204,7 +204,7 @@ function update_r1013() {
`xlink_xchan` CHAR( 255 ) NOT NULL DEFAULT '',
`xlink_link` CHAR( 255 ) NOT NULL DEFAULT '',
`xlink_updated` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'
-) ENGINE = MYISAM ");
+) ENGINE = MYISAM DEFAULT CHARSET=utf8");
$r2 = q("alter table xlink add index ( xlink_xchan ), add index ( xlink_link ), add index ( xlink_updated ) ");
if($r && $r2)
@@ -367,7 +367,7 @@ ADD INDEX ( `channel_deleted` ) ");
}
function update_r1030() {
- $r = q("CREATE TABLE IF NOT EXISTS`issue` (
+ $r = q("CREATE TABLE IF NOT EXISTS `issue` (
`issue_id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`issue_created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`issue_updated` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
@@ -381,9 +381,292 @@ KEY `issue_assigned` (`issue_assigned`),
KEY `issue_priority` (`issue_priority`),
KEY `issue_status` (`issue_status`),
KEY `issue_component` (`issue_component`)
-) ENGINE = MYISAM ");
+) ENGINE = MYISAM DEFAULT CHARSET=utf8");
if($r)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}
+
+function update_r1031() {
+ $r = q("ALTER TABLE `account` ADD `account_external` CHAR( 255 ) NOT NULL DEFAULT '' AFTER `account_email` ,
+ADD INDEX ( `account_external` )");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+
+function update_r1032() {
+ $r = q("CREATE TABLE if not exists `xign` (
+`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+`uid` INT NOT NULL DEFAULT '0',
+`xchan` CHAR( 255 ) NOT NULL DEFAULT '',
+KEY `uid` (`uid`),
+KEY `xchan` (`xchan`)
+) ENGINE = MYISAM DEFAULT CHARSET = utf8");
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1033() {
+ $r = q("CREATE TABLE if not exists `shares` (
+`share_id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+`share_type` INT NOT NULL DEFAULT '0',
+`share_target` INT UNSIGNED NOT NULL DEFAULT '0',
+`share_xchan` CHAR( 255 ) NOT NULL DEFAULT '',
+KEY `share_type` (`share_type`),
+KEY `share_target` (`share_target`),
+KEY `share_xchan` (`share_xchan`)
+) ENGINE = MYISAM DEFAULT CHARSET = utf8");
+
+ // if these fail don't bother reporting it
+
+ q("drop table gcign");
+ q("drop table gcontact");
+ q("drop table glink");
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1034() {
+ $r = q("CREATE TABLE if not exists `updates` (
+`ud_hash` CHAR( 128 ) NOT NULL ,
+`ud_date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
+PRIMARY KEY ( `ud_hash` ),
+KEY `ud_date` ( `ud_date` )
+) ENGINE = MYISAM DEFAULT CHARSET = utf8");
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1035() {
+ $r = q("CREATE TABLE if not exists `xconfig` (
+`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+`xchan` CHAR( 255 ) NOT NULL ,
+`cat` CHAR( 255 ) NOT NULL ,
+`k` CHAR( 255 ) NOT NULL ,
+`v` MEDIUMTEXT NOT NULL,
+KEY `xchan` ( `xchan` ),
+KEY `cat` ( `cat` ),
+KEY `k` ( `k` )
+) ENGINE = MYISAM DEFAULT CHARSET = utf8");
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1036() {
+ $r = q("ALTER TABLE `profile` ADD `channels` TEXT NOT NULL AFTER `contact` ");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+
+}
+
+
+function update_r1037() {
+ $r1 = q("ALTER TABLE `item` CHANGE `uri` `mid` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT '',
+CHANGE `parent_uri` `parent_mid` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT '',
+ DROP INDEX `uri` ,
+ADD INDEX `mid` ( `mid` ),
+DROP INDEX `parent_uri` ,
+ADD INDEX `parent_mid` ( `parent_mid` ),
+ DROP INDEX `uid_uri` ,
+ADD INDEX `uid_mid` ( `mid` , `uid` ) ");
+
+ $r2 = q("ALTER TABLE `mail` CHANGE `uri` `mid` CHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
+CHANGE `parent_uri` `parent_mid` CHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
+DROP INDEX `uri` ,
+ADD INDEX `mid` ( `mid` ),
+ DROP INDEX `parent_uri` ,
+ADD INDEX `parent_mid` ( `parent_mid` ) ");
+
+ if($r1 && $r2)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+
+function update_r1038() {
+ $r = q("ALTER TABLE `manage` CHANGE `mid` `xchan` CHAR( 255 ) NOT NULL DEFAULT '', drop index `mid`, ADD INDEX ( `xchan` )");
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+
+}
+
+
+function update_r1039() {
+ $r = q("ALTER TABLE `channel` CHANGE `channel_default_gid` `channel_default_group` CHAR( 255 ) NOT NULL DEFAULT ''");
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+
+}
+
+function update_r1040() {
+ $r1 = q("ALTER TABLE `session` CHANGE `expire` `expire` BIGINT UNSIGNED NOT NULL ");
+ $r2 = q("ALTER TABLE `tokens` CHANGE `expires` `expires` BIGINT UNSIGNED NOT NULL ");
+
+ if($r1 && $r2)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1041() {
+ $r = q("ALTER TABLE `outq` ADD `outq_driver` CHAR( 32 ) NOT NULL DEFAULT '' AFTER `outq_channel` ");
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+
+function update_r1042() {
+ $r = q("ALTER TABLE `hubloc` ADD `hubloc_updated` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
+ADD `hubloc_connected` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', ADD INDEX ( `hubloc_updated` ), ADD INDEX ( `hubloc_connected` )");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+
+function update_r1043() {
+ $r = q("ALTER TABLE `item` ADD `comment_policy` CHAR( 255 ) NOT NULL DEFAULT '' AFTER `coord` ,
+ADD INDEX ( `comment_policy` ) ");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1044() {
+ $r = q("ALTER TABLE `term` ADD `imgurl` CHAR( 255 ) NOT NULL ,
+ADD INDEX ( `imgurl` ) ");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1045() {
+ $r = q("ALTER TABLE `site` ADD `site_register` INT NOT NULL DEFAULT '0',
+ADD INDEX ( `site_register` ) ");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1046() {
+ $r = q("ALTER TABLE `term` ADD `term_hash` CHAR( 255 ) NOT NULL DEFAULT '',
+ADD INDEX ( `term_hash` ) ");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1047() {
+ $r = q("ALTER TABLE `xprof` ADD `xprof_age` TINYINT( 3 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `xprof_hash` ,
+ADD INDEX ( `xprof_age` ) ");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1048() {
+ $r = q("CREATE TABLE IF NOT EXISTS `obj` (
+ `obj_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `obj_page` char(64) NOT NULL DEFAULT '',
+ `obj_verb` char(255) NOT NULL DEFAULT '',
+ `obj_type` int(10) unsigned NOT NULL DEFAULT '0',
+ `obj_obj` char(255) NOT NULL DEFAULT '',
+ `obj_channel` int(10) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`obj_id`),
+ KEY `obj_verb` (`obj_verb`),
+ KEY `obj_page` (`obj_page`),
+ KEY `obj_type` (`obj_type`),
+ KEY `obj_channel` (`obj_channel`),
+ KEY `obj_obj` (`obj_obj`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ");
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+
+function update_r1049() {
+ $r = q("ALTER TABLE `term` ADD `parent_hash` CHAR( 255 ) NOT NULL DEFAULT '' AFTER `term_hash` , ADD INDEX ( `parent_hash` ) ");
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1050() {
+ $r = q("ALTER TABLE `xtag` DROP PRIMARY KEY , ADD `xtag_id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST , ADD INDEX ( `xtag_hash` ) ");
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1051() {
+ $r = q("ALTER TABLE `photo` ADD `photo_flags` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `profile` , ADD INDEX ( `photo_flags` ) ");
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+
+function update_r1052() {
+ $r = q("ALTER TABLE `channel` ADD UNIQUE (`channel_address`) ");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1053() {
+ $r = q("ALTER TABLE `profile` ADD `chandesc` TEXT NOT NULL DEFAULT '' AFTER `pdesc` ");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1054() {
+ $r = q("ALTER TABLE `item` CHANGE `title` `title` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' ");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1055() {
+ $r = q("ALTER TABLE `mail` CHANGE `title` `title` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' ");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1056() {
+ $r = q("ALTER TABLE `xchan` ADD `xchan_instance_url` CHAR( 255 ) NOT NULL DEFAULT '' AFTER `xchan_network` ,
+ADD INDEX ( `xchan_instance_url` ) ");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1057() {
+ $r = q("drop table intro");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
diff --git a/js/acl.js b/js/acl.js
index 3eb6a65a4..591c9c467 100644
--- a/js/acl.js
+++ b/js/acl.js
@@ -21,8 +21,8 @@ function ACL(backend_url, preset){
/*events*/
that.showall.click(that.on_showall);
- $(".acl-button-show").live('click', that.on_button_show);
- $(".acl-button-hide").live('click', that.on_button_hide);
+ $(document).on('click','.acl-button-show',that.on_button_show);
+ $(document).on('click','.acl-button-hide',that.on_button_hide);
$("#acl-search").keypress(that.on_search);
$("#acl-wrapper").parents("form").submit(that.on_submit);
@@ -247,8 +247,8 @@ ACL.prototype.populate = function(data){
var height = Math.ceil(data.tot / that.nw) * 42;
that.list_content.height(height);
$(data.items).each(function(){
- html = "<div class='acl-list-item {4} {5}' title='{6}' id='{2}{3}'>"+that.item_tpl+"</div>";
- html = html.format( this.photo, this.name, this.type, this.xid, '', this.network, this.link );
+ html = "<div class='acl-list-item {4} {5} {7}' title='{6}' id='{2}{3}'>"+that.item_tpl+"</div>";
+ html = html.format( this.photo, this.name, this.type, this.xid, '', this.network, this.link, this.taggable );
if (this.uids!=undefined) that.group_uids[this.id] = this.uids;
//console.log(html);
that.list_content.append(html);
diff --git a/js/fk.autocomplete.js b/js/fk.autocomplete.js
index fc41f9cbe..cd0a1c044 100644
--- a/js/fk.autocomplete.js
+++ b/js/fk.autocomplete.js
@@ -80,7 +80,7 @@ ACPopup.prototype._search = function(){
that.cont.show();
$(data.items).each(function(){
html = "<img src='{0}' height='16px' width='16px'>{1} ({2})".format(this.photo, this.name, this.nick)
- that.add(html, this.nick.replace(' ','') + '+' + this.id + ' - ' + this.link);
+ that.add(this.taggable, html, this.nick.replace(' ','') + '+' + this.id + ' - ' + this.link);
});
} else {
that.cont.hide();
@@ -89,9 +89,9 @@ ACPopup.prototype._search = function(){
});
}
- ACPopup.prototype.add = function(label, value){
+ACPopup.prototype.add = function(taggable, label, value){
var that=this;
- var elm = $("<div class='acpopupitem' title='"+value+"'>"+label+"</div>");
+ var elm = $("<div class='acpopupitem " + taggable +"' title='"+value+"'>"+label+"</div>");
elm.click(function(e){
t = $(this).attr('title').replace(new RegExp(' \- .*'),'');
if(typeof(that.element.container) === "undefined") {
diff --git a/js/jquery-migrate-1.1.1.js b/js/jquery-migrate-1.1.1.js
new file mode 100644
index 000000000..e99f954e6
--- /dev/null
+++ b/js/jquery-migrate-1.1.1.js
@@ -0,0 +1,511 @@
+/*!
+ * jQuery Migrate - v1.1.1 - 2013-02-16
+ * https://github.com/jquery/jquery-migrate
+ * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT
+ */
+(function( jQuery, window, undefined ) {
+// See http://bugs.jquery.com/ticket/13335
+// "use strict";
+
+
+var warnedAbout = {};
+
+// List of warnings already given; public read only
+jQuery.migrateWarnings = [];
+
+// Set to true to prevent console output; migrateWarnings still maintained
+// jQuery.migrateMute = false;
+
+// Show a message on the console so devs know we're active
+if ( !jQuery.migrateMute && window.console && console.log ) {
+ console.log("JQMIGRATE: Logging is active");
+}
+
+// Set to false to disable traces that appear with warnings
+if ( jQuery.migrateTrace === undefined ) {
+ jQuery.migrateTrace = true;
+}
+
+// Forget any warnings we've already given; public
+jQuery.migrateReset = function() {
+ warnedAbout = {};
+ jQuery.migrateWarnings.length = 0;
+};
+
+function migrateWarn( msg) {
+ if ( !warnedAbout[ msg ] ) {
+ warnedAbout[ msg ] = true;
+ jQuery.migrateWarnings.push( msg );
+ if ( window.console && console.warn && !jQuery.migrateMute ) {
+ console.warn( "JQMIGRATE: " + msg );
+ if ( jQuery.migrateTrace && console.trace ) {
+ console.trace();
+ }
+ }
+ }
+}
+
+function migrateWarnProp( obj, prop, value, msg ) {
+ if ( Object.defineProperty ) {
+ // On ES5 browsers (non-oldIE), warn if the code tries to get prop;
+ // allow property to be overwritten in case some other plugin wants it
+ try {
+ Object.defineProperty( obj, prop, {
+ configurable: true,
+ enumerable: true,
+ get: function() {
+ migrateWarn( msg );
+ return value;
+ },
+ set: function( newValue ) {
+ migrateWarn( msg );
+ value = newValue;
+ }
+ });
+ return;
+ } catch( err ) {
+ // IE8 is a dope about Object.defineProperty, can't warn there
+ }
+ }
+
+ // Non-ES5 (or broken) browser; just set the property
+ jQuery._definePropertyBroken = true;
+ obj[ prop ] = value;
+}
+
+if ( document.compatMode === "BackCompat" ) {
+ // jQuery has never supported or tested Quirks Mode
+ migrateWarn( "jQuery is not compatible with Quirks Mode" );
+}
+
+
+var attrFn = jQuery( "<input/>", { size: 1 } ).attr("size") && jQuery.attrFn,
+ oldAttr = jQuery.attr,
+ valueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get ||
+ function() { return null; },
+ valueAttrSet = jQuery.attrHooks.value && jQuery.attrHooks.value.set ||
+ function() { return undefined; },
+ rnoType = /^(?:input|button)$/i,
+ rnoAttrNodeType = /^[238]$/,
+ rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
+ ruseDefault = /^(?:checked|selected)$/i;
+
+// jQuery.attrFn
+migrateWarnProp( jQuery, "attrFn", attrFn || {}, "jQuery.attrFn is deprecated" );
+
+jQuery.attr = function( elem, name, value, pass ) {
+ var lowerName = name.toLowerCase(),
+ nType = elem && elem.nodeType;
+
+ if ( pass ) {
+ // Since pass is used internally, we only warn for new jQuery
+ // versions where there isn't a pass arg in the formal params
+ if ( oldAttr.length < 4 ) {
+ migrateWarn("jQuery.fn.attr( props, pass ) is deprecated");
+ }
+ if ( elem && !rnoAttrNodeType.test( nType ) &&
+ (attrFn ? name in attrFn : jQuery.isFunction(jQuery.fn[name])) ) {
+ return jQuery( elem )[ name ]( value );
+ }
+ }
+
+ // Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking
+ // for disconnected elements we don't warn on $( "<button>", { type: "button" } ).
+ if ( name === "type" && value !== undefined && rnoType.test( elem.nodeName ) && elem.parentNode ) {
+ migrateWarn("Can't change the 'type' of an input or button in IE 6/7/8");
+ }
+
+ // Restore boolHook for boolean property/attribute synchronization
+ if ( !jQuery.attrHooks[ lowerName ] && rboolean.test( lowerName ) ) {
+ jQuery.attrHooks[ lowerName ] = {
+ get: function( elem, name ) {
+ // Align boolean attributes with corresponding properties
+ // Fall back to attribute presence where some booleans are not supported
+ var attrNode,
+ property = jQuery.prop( elem, name );
+ return property === true || typeof property !== "boolean" &&
+ ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
+
+ name.toLowerCase() :
+ undefined;
+ },
+ set: function( elem, value, name ) {
+ var propName;
+ if ( value === false ) {
+ // Remove boolean attributes when set to false
+ jQuery.removeAttr( elem, name );
+ } else {
+ // value is true since we know at this point it's type boolean and not false
+ // Set boolean attributes to the same name and set the DOM property
+ propName = jQuery.propFix[ name ] || name;
+ if ( propName in elem ) {
+ // Only set the IDL specifically if it already exists on the element
+ elem[ propName ] = true;
+ }
+
+ elem.setAttribute( name, name.toLowerCase() );
+ }
+ return name;
+ }
+ };
+
+ // Warn only for attributes that can remain distinct from their properties post-1.9
+ if ( ruseDefault.test( lowerName ) ) {
+ migrateWarn( "jQuery.fn.attr('" + lowerName + "') may use property instead of attribute" );
+ }
+ }
+
+ return oldAttr.call( jQuery, elem, name, value );
+};
+
+// attrHooks: value
+jQuery.attrHooks.value = {
+ get: function( elem, name ) {
+ var nodeName = ( elem.nodeName || "" ).toLowerCase();
+ if ( nodeName === "button" ) {
+ return valueAttrGet.apply( this, arguments );
+ }
+ if ( nodeName !== "input" && nodeName !== "option" ) {
+ migrateWarn("jQuery.fn.attr('value') no longer gets properties");
+ }
+ return name in elem ?
+ elem.value :
+ null;
+ },
+ set: function( elem, value ) {
+ var nodeName = ( elem.nodeName || "" ).toLowerCase();
+ if ( nodeName === "button" ) {
+ return valueAttrSet.apply( this, arguments );
+ }
+ if ( nodeName !== "input" && nodeName !== "option" ) {
+ migrateWarn("jQuery.fn.attr('value', val) no longer sets properties");
+ }
+ // Does not return so that setAttribute is also used
+ elem.value = value;
+ }
+};
+
+
+var matched, browser,
+ oldInit = jQuery.fn.init,
+ oldParseJSON = jQuery.parseJSON,
+ // Note this does NOT include the #9521 XSS fix from 1.7!
+ rquickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*|#([\w\-]*))$/;
+
+// $(html) "looks like html" rule change
+jQuery.fn.init = function( selector, context, rootjQuery ) {
+ var match;
+
+ if ( selector && typeof selector === "string" && !jQuery.isPlainObject( context ) &&
+ (match = rquickExpr.exec( selector )) && match[1] ) {
+ // This is an HTML string according to the "old" rules; is it still?
+ if ( selector.charAt( 0 ) !== "<" ) {
+ migrateWarn("$(html) HTML strings must start with '<' character");
+ }
+ // Now process using loose rules; let pre-1.8 play too
+ if ( context && context.context ) {
+ // jQuery object as context; parseHTML expects a DOM object
+ context = context.context;
+ }
+ if ( jQuery.parseHTML ) {
+ return oldInit.call( this, jQuery.parseHTML( jQuery.trim(selector), context, true ),
+ context, rootjQuery );
+ }
+ }
+ return oldInit.apply( this, arguments );
+};
+jQuery.fn.init.prototype = jQuery.fn;
+
+// Let $.parseJSON(falsy_value) return null
+jQuery.parseJSON = function( json ) {
+ if ( !json && json !== null ) {
+ migrateWarn("jQuery.parseJSON requires a valid JSON string");
+ return null;
+ }
+ return oldParseJSON.apply( this, arguments );
+};
+
+jQuery.uaMatch = function( ua ) {
+ ua = ua.toLowerCase();
+
+ var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
+ /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
+ /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
+ /(msie) ([\w.]+)/.exec( ua ) ||
+ ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
+ [];
+
+ return {
+ browser: match[ 1 ] || "",
+ version: match[ 2 ] || "0"
+ };
+};
+
+// Don't clobber any existing jQuery.browser in case it's different
+if ( !jQuery.browser ) {
+ matched = jQuery.uaMatch( navigator.userAgent );
+ browser = {};
+
+ if ( matched.browser ) {
+ browser[ matched.browser ] = true;
+ browser.version = matched.version;
+ }
+
+ // Chrome is Webkit, but Webkit is also Safari.
+ if ( browser.chrome ) {
+ browser.webkit = true;
+ } else if ( browser.webkit ) {
+ browser.safari = true;
+ }
+
+ jQuery.browser = browser;
+}
+
+// Warn if the code tries to get jQuery.browser
+migrateWarnProp( jQuery, "browser", jQuery.browser, "jQuery.browser is deprecated" );
+
+jQuery.sub = function() {
+ function jQuerySub( selector, context ) {
+ return new jQuerySub.fn.init( selector, context );
+ }
+ jQuery.extend( true, jQuerySub, this );
+ jQuerySub.superclass = this;
+ jQuerySub.fn = jQuerySub.prototype = this();
+ jQuerySub.fn.constructor = jQuerySub;
+ jQuerySub.sub = this.sub;
+ jQuerySub.fn.init = function init( selector, context ) {
+ if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
+ context = jQuerySub( context );
+ }
+
+ return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
+ };
+ jQuerySub.fn.init.prototype = jQuerySub.fn;
+ var rootjQuerySub = jQuerySub(document);
+ migrateWarn( "jQuery.sub() is deprecated" );
+ return jQuerySub;
+};
+
+
+// Ensure that $.ajax gets the new parseJSON defined in core.js
+jQuery.ajaxSetup({
+ converters: {
+ "text json": jQuery.parseJSON
+ }
+});
+
+
+var oldFnData = jQuery.fn.data;
+
+jQuery.fn.data = function( name ) {
+ var ret, evt,
+ elem = this[0];
+
+ // Handles 1.7 which has this behavior and 1.8 which doesn't
+ if ( elem && name === "events" && arguments.length === 1 ) {
+ ret = jQuery.data( elem, name );
+ evt = jQuery._data( elem, name );
+ if ( ( ret === undefined || ret === evt ) && evt !== undefined ) {
+ migrateWarn("Use of jQuery.fn.data('events') is deprecated");
+ return evt;
+ }
+ }
+ return oldFnData.apply( this, arguments );
+};
+
+
+var rscriptType = /\/(java|ecma)script/i,
+ oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
+
+jQuery.fn.andSelf = function() {
+ migrateWarn("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()");
+ return oldSelf.apply( this, arguments );
+};
+
+// Since jQuery.clean is used internally on older versions, we only shim if it's missing
+if ( !jQuery.clean ) {
+ jQuery.clean = function( elems, context, fragment, scripts ) {
+ // Set context per 1.8 logic
+ context = context || document;
+ context = !context.nodeType && context[0] || context;
+ context = context.ownerDocument || context;
+
+ migrateWarn("jQuery.clean() is deprecated");
+
+ var i, elem, handleScript, jsTags,
+ ret = [];
+
+ jQuery.merge( ret, jQuery.buildFragment( elems, context ).childNodes );
+
+ // Complex logic lifted directly from jQuery 1.8
+ if ( fragment ) {
+ // Special handling of each script element
+ handleScript = function( elem ) {
+ // Check if we consider it executable
+ if ( !elem.type || rscriptType.test( elem.type ) ) {
+ // Detach the script and store it in the scripts array (if provided) or the fragment
+ // Return truthy to indicate that it has been handled
+ return scripts ?
+ scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) :
+ fragment.appendChild( elem );
+ }
+ };
+
+ for ( i = 0; (elem = ret[i]) != null; i++ ) {
+ // Check if we're done after handling an executable script
+ if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) {
+ // Append to fragment and handle embedded scripts
+ fragment.appendChild( elem );
+ if ( typeof elem.getElementsByTagName !== "undefined" ) {
+ // handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration
+ jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript );
+
+ // Splice the scripts into ret after their former ancestor and advance our index beyond them
+ ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
+ i += jsTags.length;
+ }
+ }
+ }
+ }
+
+ return ret;
+ };
+}
+
+var eventAdd = jQuery.event.add,
+ eventRemove = jQuery.event.remove,
+ eventTrigger = jQuery.event.trigger,
+ oldToggle = jQuery.fn.toggle,
+ oldLive = jQuery.fn.live,
+ oldDie = jQuery.fn.die,
+ ajaxEvents = "ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",
+ rajaxEvent = new RegExp( "\\b(?:" + ajaxEvents + ")\\b" ),
+ rhoverHack = /(?:^|\s)hover(\.\S+|)\b/,
+ hoverHack = function( events ) {
+ if ( typeof( events ) !== "string" || jQuery.event.special.hover ) {
+ return events;
+ }
+ if ( rhoverHack.test( events ) ) {
+ migrateWarn("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'");
+ }
+ return events && events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
+ };
+
+// Event props removed in 1.9, put them back if needed; no practical way to warn them
+if ( jQuery.event.props && jQuery.event.props[ 0 ] !== "attrChange" ) {
+ jQuery.event.props.unshift( "attrChange", "attrName", "relatedNode", "srcElement" );
+}
+
+// Undocumented jQuery.event.handle was "deprecated" in jQuery 1.7
+if ( jQuery.event.dispatch ) {
+ migrateWarnProp( jQuery.event, "handle", jQuery.event.dispatch, "jQuery.event.handle is undocumented and deprecated" );
+}
+
+// Support for 'hover' pseudo-event and ajax event warnings
+jQuery.event.add = function( elem, types, handler, data, selector ){
+ if ( elem !== document && rajaxEvent.test( types ) ) {
+ migrateWarn( "AJAX events should be attached to document: " + types );
+ }
+ eventAdd.call( this, elem, hoverHack( types || "" ), handler, data, selector );
+};
+jQuery.event.remove = function( elem, types, handler, selector, mappedTypes ){
+ eventRemove.call( this, elem, hoverHack( types ) || "", handler, selector, mappedTypes );
+};
+
+jQuery.fn.error = function() {
+ var args = Array.prototype.slice.call( arguments, 0);
+ migrateWarn("jQuery.fn.error() is deprecated");
+ args.splice( 0, 0, "error" );
+ if ( arguments.length ) {
+ return this.bind.apply( this, args );
+ }
+ // error event should not bubble to window, although it does pre-1.7
+ this.triggerHandler.apply( this, args );
+ return this;
+};
+
+jQuery.fn.toggle = function( fn, fn2 ) {
+
+ // Don't mess with animation or css toggles
+ if ( !jQuery.isFunction( fn ) || !jQuery.isFunction( fn2 ) ) {
+ return oldToggle.apply( this, arguments );
+ }
+ migrateWarn("jQuery.fn.toggle(handler, handler...) is deprecated");
+
+ // Save reference to arguments for access in closure
+ var args = arguments,
+ guid = fn.guid || jQuery.guid++,
+ i = 0,
+ toggler = function( event ) {
+ // Figure out which function to execute
+ var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
+ jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
+
+ // Make sure that clicks stop
+ event.preventDefault();
+
+ // and execute the function
+ return args[ lastToggle ].apply( this, arguments ) || false;
+ };
+
+ // link all the functions, so any of them can unbind this click handler
+ toggler.guid = guid;
+ while ( i < args.length ) {
+ args[ i++ ].guid = guid;
+ }
+
+ return this.click( toggler );
+};
+
+jQuery.fn.live = function( types, data, fn ) {
+ migrateWarn("jQuery.fn.live() is deprecated");
+ if ( oldLive ) {
+ return oldLive.apply( this, arguments );
+ }
+ jQuery( this.context ).on( types, this.selector, data, fn );
+ return this;
+};
+
+jQuery.fn.die = function( types, fn ) {
+ migrateWarn("jQuery.fn.die() is deprecated");
+ if ( oldDie ) {
+ return oldDie.apply( this, arguments );
+ }
+ jQuery( this.context ).off( types, this.selector || "**", fn );
+ return this;
+};
+
+// Turn global events into document-triggered events
+jQuery.event.trigger = function( event, data, elem, onlyHandlers ){
+ if ( !elem && !rajaxEvent.test( event ) ) {
+ migrateWarn( "Global events are undocumented and deprecated" );
+ }
+ return eventTrigger.call( this, event, data, elem || document, onlyHandlers );
+};
+jQuery.each( ajaxEvents.split("|"),
+ function( _, name ) {
+ jQuery.event.special[ name ] = {
+ setup: function() {
+ var elem = this;
+
+ // The document needs no shimming; must be !== for oldIE
+ if ( elem !== document ) {
+ jQuery.event.add( document, name + "." + jQuery.guid, function() {
+ jQuery.event.trigger( name, null, elem, true );
+ });
+ jQuery._data( this, name, jQuery.guid++ );
+ }
+ return false;
+ },
+ teardown: function() {
+ if ( this !== document ) {
+ jQuery.event.remove( document, name + "." + jQuery._data( this, name ) );
+ }
+ return false;
+ }
+ };
+ }
+);
+
+
+})( jQuery, window );
diff --git a/js/jquery.js b/js/jquery.js
index 16ad06c5a..006e95310 100644
--- a/js/jquery.js
+++ b/js/jquery.js
@@ -1,4 +1,5 @@
-/*! jQuery v1.7.2 jquery.com | jquery.org/license */
-(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"<!doctype html>":"")+"<html><body>"),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b_(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&f.type(b)==="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bZ(a,c,d,e,"*",g));return l}function bY(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bB(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?1:0,g=4;if(d>0){if(c!=="border")for(;e<g;e+=2)c||(d-=parseFloat(f.css(a,"padding"+bx[e]))||0),c==="margin"?d+=parseFloat(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0;return d+"px"}d=by(a,b);if(d<0||d==null)d=a.style[b];if(bt.test(d))return d;d=parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,"padding"+bx[e]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+"px"}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;b.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?b.outerHTML=a.outerHTML:c!=="input"||a.type!=="checkbox"&&a.type!=="radio"?c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttribute(f.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.length;if(d&&typeof d=="object"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}else if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.call(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?n(g):h==="function"&&(!a.unique||!p.has(g))&&c.push(g)},o=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p.disable():c=[]:d&&d.length&&(e=d.shift(),p.fireWith(e[0],e[1])))},p={add:function(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));return this},fire:function(){p.fireWith(this,arguments);return this},fired:function(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p=c.createElement("div"),q=c.documentElement;p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="<div "+n+"display:block;'><div style='"+t+"0;display:block;overflow:hidden;'></div></div>"+"<table "+n+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="<table><tr><td style='"+t+"0;display:none'></td><td>t</td></tr></table>",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="<div style='width:5px;'></div>",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f.data(j);if(j.nodeType===1&&!f._data(j,"parsedAttrs")){g=j.attributes;for(i=g.length;k<i;k++)h=g[k].name,h.indexOf("data-")===0&&(h=f.camelCase(h.substring(5)),l(j,h,m[h]));f._data(j,"parsedAttrs",!0)}}return m}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!";return f.access(this,function(c){if(c===b){m=this.triggerHandler("getData"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));return m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.triggerHandler("setData"+e,d),f.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length<d)return f.queue(this[0],a);return c===b?this:this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise(c)}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,""),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(
-a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:g&&G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button||c.type!=="click")){n=f(this),n.context=this.ownerDocument||this;for(m=c.target;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStopped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.namespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(this,c);return c.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9||d===11){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.globalPOS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")[\\s/>]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f
-.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(f.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(g){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,function(a,b){b.src?f.ajax({type:"GET",global:!1,url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1></$2>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]==="<table>"&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i<u;i++)bn(l[i]);else bn(l);l.nodeType?j.push(l):j=f.merge(j,l)}if(d){g=function(a){return!a.type||be.test(a.type)};for(k=0;j[k];k++){h=j[k];if(e&&f.nodeName(h,"script")&&(!h.type||be.test(h.type)))e.push(h.parentNode?h.parentNode.removeChild(h):h);else{if(h.nodeType===1){var v=f.grep(h.getElementsByTagName("script"),g);j.splice.apply(j,[k+1,0].concat(v))}d.appendChild(h)}}}return j},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bp=/alpha\([^)]*\)/i,bq=/opacity=([^)]*)/,br=/([A-Z]|^ms)/g,bs=/^[\-+]?(?:\d*\.)?\d+$/i,bt=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,bu=/^([\-+])=([\-+.\de]+)/,bv=/^margin/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Top","Right","Bottom","Left"],by,bz,bA;f.fn.css=function(a,c){return f.access(this,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)},a,c,arguments.length>1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),(e===""&&f.css(d,"display")==="none"||!f.contains(d.ownerDocument.documentElement,d))&&f._data(d,"olddisplay",cu(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ct("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(ct("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o,p,q;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]);if((k=f.cssHooks[g])&&"expand"in k){l=k.expand(a[g]),delete a[g];for(i in l)i in a||(a[i]=l[i])}}for(g in a){h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cu(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cm.test(h)?(q=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),q?(f._data(this,"toggle"+i,q==="show"?"hide":"show"),j[q]()):j[h]()):(m=cn.exec(h),n=j.cur(),m?(o=parseFloat(m[2]),p=m[3]||(f.cssNumber[i]?"":"px"),p!=="px"&&(f.style(this,i,(o||1)+p),n=(o||1)/j.cur()*n,f.style(this,i,n+p)),m[1]&&(o=(m[1]==="-="?-1:1)*o+n),j.custom(n,o,p)):j.custom(n,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:ct("show",1),slideUp:ct("hide",1),slideToggle:ct("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a){return a},swing:function(a){return-Math.cos(a*Math.PI)/2+.5}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cq||cr(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){f._data(e.elem,"fxshow"+e.prop)===b&&(e.options.hide?f._data(e.elem,"fxshow"+e.prop,e.start):e.options.show&&f._data(e.elem,"fxshow"+e.prop,e.end))},h()&&f.timers.push(h)&&!co&&(co=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cq||cr(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(cp.concat.apply([],cp),function(a,b){b.indexOf("margin")&&(f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)})}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cv,cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?cv=function(a,b,c,d){try{d=a.getBoundingClientRect()}catch(e){}if(!d||!f.contains(c,a))return d?{top:d.top,left:d.left}:{top:0,left:0};var g=b.body,h=cy(b),i=c.clientTop||g.clientTop||0,j=c.clientLeft||g.clientLeft||0,k=h.pageYOffset||f.support.boxModel&&c.scrollTop||g.scrollTop,l=h.pageXOffset||f.support.boxModel&&c.scrollLeft||g.scrollLeft,m=d.top+k-i,n=d.left+l-j;return{top:m,left:n}}:cv=function(a,b,c){var d,e=a.offsetParent,g=a,h=b.body,i=b.defaultView,j=i?i.getComputedStyle(a,null):a.currentStyle,k=a.offsetTop,l=a.offsetLeft;while((a=a.parentNode)&&a!==h&&a!==c){if(f.support.fixedPosition&&j.position==="fixed")break;d=i?i.getComputedStyle(a,null):a.currentStyle,k-=a.scrollTop,l-=a.scrollLeft,a===e&&(k+=a.offsetTop,l+=a.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(a.nodeName))&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),g=e,e=a.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),j=d}if(j.position==="relative"||j.position==="static")k+=h.offsetTop,l+=h.offsetLeft;f.support.fixedPosition&&j.position==="fixed"&&(k+=Math.max(c.scrollTop,h.scrollTop),l+=Math.max(c.scrollLeft,h.scrollLeft));return{top:k,left:l}},f.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){f.offset.setOffset(this,a,b)});var c=this[0],d=c&&c.ownerDocument;if(!d)return null;if(c===d.body)return f.offset.bodyOffset(c);return cv(c,d,d.documentElement)},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file
+/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license
+//@ sourceMappingURL=jquery.min.map
+*/(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;
+return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'></a><div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||st.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&&gt(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l)
+}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}b.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=b.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(b.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{},y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(jn,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}});function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);while("*"===l[0])l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.text=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;for(;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;for(;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.cssHooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}b.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration=b.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in b.fx.speeds?b.fx.speeds[r.duration]:b.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){b.isFunction(r.old)&&r.old.call(this),r.queue&&b.dequeue(this,r.queue)},r},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},b.timers=[],b.fx=rr.prototype.init,b.fx.tick=function(){var e,n=b.timers,r=0;for(Xn=b.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||b.fx.stop(),Xn=t},b.fx.timer=function(e){e()&&b.timers.push(e)&&b.fx.start()},b.fx.interval=13,b.fx.start=function(){Un||(Un=setInterval(b.fx.tick,b.fx.interval))},b.fx.stop=function(){clearInterval(Un),Un=null},b.fx.speeds={slow:600,fast:200,_default:400},b.fx.step={},b.expr&&b.expr.filters&&(b.expr.filters.animated=function(e){return b.grep(b.timers,function(t){return e===t.elem}).length}),b.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){b.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,b.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},b.offset={setOffset:function(e,t,n){var r=b.css(e,"position");"static"===r&&(e.style.position="relative");var i=b(e),o=i.offset(),a=b.css(e,"top"),s=b.css(e,"left"),u=("absolute"===r||"fixed"===r)&&b.inArray("auto",[a,s])>-1,l={},c={},p,f;u?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),b.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(l.top=t.top-o.top+p),null!=t.left&&(l.left=t.left-o.left+f),"using"in t?t.using.call(e,l):i.css(l)}},b.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===b.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),b.nodeName(e[0],"html")||(n=e.offset()),n.top+=b.css(e[0],"borderTopWidth",!0),n.left+=b.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-b.css(r,"marginTop",!0),left:t.left-n.left-b.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||o.documentElement;while(e&&!b.nodeName(e,"html")&&"static"===b.css(e,"position"))e=e.offsetParent;return e||o.documentElement})}}),b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);b.fn[e]=function(i){return b.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?b(a).scrollLeft():o,r?o:b(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}b.each({Height:"height",Width:"width"},function(e,n){b.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){b.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return b.access(this,function(n,r,i){var o;return b.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?b.css(n,r,s):b.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=b,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return b})})(window); \ No newline at end of file
diff --git a/js/jquery.spin.js b/js/jquery.spin.js
new file mode 100644
index 000000000..a35a27765
--- /dev/null
+++ b/js/jquery.spin.js
@@ -0,0 +1,80 @@
+/**
+ * Copyright (c) 2011-2013 Felix Gnass
+ * Licensed under the MIT license
+ */
+
+/*
+
+Basic Usage:
+============
+
+$('#el').spin(); // Creates a default Spinner using the text color of #el.
+$('#el').spin({ ... }); // Creates a Spinner using the provided options.
+
+$('#el').spin(false); // Stops and removes the spinner.
+
+Using Presets:
+==============
+
+$('#el').spin('small'); // Creates a 'small' Spinner using the text color of #el.
+$('#el').spin('large', '#fff'); // Creates a 'large' white Spinner.
+
+Adding a custom preset:
+=======================
+
+$.fn.spin.presets.flower = {
+ lines: 9
+ length: 10
+ width: 20
+ radius: 0
+}
+
+$('#el').spin('flower', 'red');
+
+*/
+
+(function(factory) {
+
+ if (typeof exports == 'object') {
+ // CommonJS
+ factory(require('jquery'), require('spin'))
+ }
+ else if (typeof define == 'function' && define.amd) {
+ // AMD, register as anonymous module
+ define(['jquery', 'spin'], factory)
+ }
+ else {
+ // Browser globals
+ if (!window.Spinner) throw new Error('Spin.js not present')
+ factory(window.jQuery, window.Spinner)
+ }
+
+}(function($, Spinner) {
+
+ $.fn.spin = function(opts, color) {
+
+ return this.each(function() {
+ var $this = $(this),
+ data = $this.data();
+
+ if (data.spinner) {
+ data.spinner.stop();
+ delete data.spinner;
+ }
+ if (opts !== false) {
+ opts = $.extend(
+ { color: color || $this.css('color') },
+ $.fn.spin.presets[opts] || opts
+ )
+ data.spinner = new Spinner(opts).spin(this)
+ }
+ })
+ }
+
+ $.fn.spin.presets = {
+ tiny: { lines: 8, length: 2, width: 2, radius: 3 },
+ small: { lines: 8, length: 4, width: 3, radius: 5 },
+ large: { lines: 10, length: 8, width: 4, radius: 8 }
+ }
+
+}));
diff --git a/js/main.js b/js/main.js
index ed8d4ec3f..2d1e9ab76 100644
--- a/js/main.js
+++ b/js/main.js
@@ -118,11 +118,12 @@
var scroll_next = false;
var next_page = 1;
var page_load = true;
+ var loadingPage = false;
$(function() {
$.ajaxSetup({cache: false});
- msie = $.browser.msie ;
+ msie = false; // $.browser.msie ;
/* setup tooltips *//*
$("a,.tt").each(function(){
@@ -162,7 +163,7 @@
function close_last_popup_menu() {
if(last_popup_menu) {
last_popup_menu.hide();
- last_popup_button.removeClass("selected");
+/* last_popup_button.removeClass("selected"); */
last_popup_menu = null;
last_popup_button = null;
}
@@ -187,7 +188,7 @@
e.preventDefault();
e.stopPropagation();
if (menu.attr('popup')=="false") return false;
- $(w).parent().toggleClass("selected");
+/* $(w).parent().toggleClass("selected"); */
/* notification menus are loaded dynamically
* - here we find a rel tag to figure out what type of notification to load */
var loader_source = $(menu).attr('rel');
@@ -251,7 +252,7 @@
function NavUpdate() {
if(liking)
- $('.like-rotator').hide();
+ $('.like-rotator').spin(false);
if(! stopped) {
@@ -270,6 +271,7 @@
if($('#live-channel').length) { src = 'channel'; liveUpdate(); }
if($('#live-community').length) { src = 'community'; liveUpdate(); }
if($('#live-display').length) { src = 'display'; liveUpdate(); }
+ if($('#live-search').length) { src = 'search'; liveUpdate(); }
if($('#live-photos').length) {
if(liking) {
@@ -344,15 +346,27 @@ function updateConvItems(mode,data) {
if(mode === 'update') {
prev = 'threads-begin';
+
$('.thread-wrapper.toplevel_item',data).each(function() {
+
var ident = $(this).attr('id');
+ var commentWrap = $('#'+ident+' .collapsed-comments').attr('id');
+ var itmId = 0;
+ var isVisible = false;
+ if(typeof commentWrap !== 'undefined')
+ itmId = commentWrap.replace('collapsed-comments-','');
+
if($('#' + ident).length == 0 && profile_page == 1) {
$('img',this).each(function() {
$(this).attr('src',$(this).attr('dst'));
});
+ if($('#collapsed-comments-'+itmId).is(':visible'))
+ isVisible = true;
$('#' + prev).after($(this));
- $("div.wall-item-ago").timeago();
+ if(isVisible)
+ showHideComments(itmId);
+ $(".autotime").timeago();
// divgrow doesn't prevent itself from attaching a second (or 500th)
// "show more" div to a content region - it also has a few other
// issues related to how we're trying to use it.
@@ -363,8 +377,13 @@ function updateConvItems(mode,data) {
$('img',this).each(function() {
$(this).attr('src',$(this).attr('dst'));
});
+ // more FIXME related to expanded comments
+ if($('#collapsed-comments-'+itmId).is(':visible'))
+ isVisible = true;
$('#' + ident).replaceWith($(this));
- $("div.wall-item-ago").timeago();
+ if(isVisible)
+ showHideComments(itmId);
+ $(".autotime").timeago();
// $("div.wall-item-body").divgrow({ initialHeight: 400 });
}
@@ -381,7 +400,7 @@ function updateConvItems(mode,data) {
$(this).attr('src',$(this).attr('dst'));
});
$('#threads-end').before($(this));
- $("div.wall-item-ago").timeago();
+ $(".autotime").timeago();
// $("div.wall-item-body").divgrow({ initialHeight: 400 });
}
@@ -390,10 +409,14 @@ function updateConvItems(mode,data) {
$(this).attr('src',$(this).attr('dst'));
});
$('#' + ident).replaceWith($(this));
- $("div.wall-item-ago").timeago();
+ $(".autotime").timeago();
// $("div.wall-item-body").divgrow({ initialHeight: 400 });
}
});
+
+ if(loadingPage) {
+ loadingPage = false;
+ }
}
if(mode === 'replace') {
// clear existing content
@@ -409,7 +432,7 @@ function updateConvItems(mode,data) {
$(this).attr('src',$(this).attr('dst'));
});
$('#' + prev).after($(this));
- $("div.wall-item-ago").timeago();
+ $(".autotime").timeago();
// $("div.wall-item-body").divgrow({ initialHeight: 400 });
}
@@ -417,7 +440,7 @@ function updateConvItems(mode,data) {
});
}
- $('.like-rotator').hide();
+ $('.like-rotator').spin(false);
if(commentBusy) {
commentBusy = false;
@@ -469,7 +492,7 @@ function updateConvItems(mode,data) {
function liveUpdate() {
- if((src == null) || (stopped) || (! profile_uid)) { $('.like-rotator').hide(); return; }
+ if((src == null) || (stopped) || (! profile_uid)) { $('.like-rotator').spin(false); return; }
if(($('.comment-edit-text-full').length) || (in_progress)) {
if(livetime) {
clearTimeout(livetime);
@@ -503,7 +526,7 @@ function updateConvItems(mode,data) {
}
if(page_load)
- $("#page-spinner").show();
+ $("#page-spinner").spin('small');
$.get(update_url,function(data) {
var update_mode = ((page_load) ? 'replace' : 'update');
@@ -513,8 +536,8 @@ function updateConvItems(mode,data) {
scroll_next = false;
in_progress = false;
updateConvItems(update_mode,data);
- $("#page-spinner").hide();
- $("#profile-jot-text-loading").hide();
+ $("#page-spinner").spin(false);
+ $("#profile-jot-text-loading").spin(false);
});
@@ -580,14 +603,14 @@ function updateConvItems(mode,data) {
function dolike(ident,verb) {
unpause();
- $('#like-rotator-' + ident.toString()).show();
+ $('#like-rotator-' + ident.toString()).spin('tiny');
$.get('like/' + ident.toString() + '?verb=' + verb, NavUpdate );
liking = 1;
}
function dosubthread(ident) {
unpause();
- $('#like-rotator-' + ident.toString()).show();
+ $('#like-rotator-' + ident.toString()).spin('tiny');
$.get('subthread/' + ident.toString(), NavUpdate );
liking = 1;
}
@@ -595,7 +618,7 @@ function updateConvItems(mode,data) {
function dostar(ident) {
ident = ident.toString();
- $('#like-rotator-' + ident).show();
+ $('#like-rotator-' + ident).spin('tiny');
$.get('starred/' + ident, function(data) {
if(data.result == 1) {
$('#starred-' + ident).addClass('starred');
@@ -609,7 +632,7 @@ function updateConvItems(mode,data) {
$('#star-' + ident).removeClass('hidden');
$('#unstar-' + ident).addClass('hidden');
}
- $('#like-rotator-' + ident).hide();
+ $('#like-rotator-' + ident).spin(false);
});
}
@@ -892,7 +915,7 @@ jQuery.timeago.settings.strings = {
};
-$("div.wall-item-ago").timeago();
+$(".autotime").timeago();
//$("div.wall-item-body").divgrow({ initialHeight: 400 });
//reCalcHeight();
@@ -915,6 +938,7 @@ $("div.wall-item-ago").timeago();
}
+
$(window).scroll(function () {
if(typeof buildCmd == 'function') {
$('#more').hide();
@@ -926,12 +950,15 @@ $(window).scroll(function () {
}
if($(window).scrollTop() + $(window).height() == $(document).height()) {
- $('#more').hide();
- $('#no-more').hide();
- // alert('scroll');
- next_page++;
- scroll_next = true;
- liveUpdate();
+ if(! loadingPage) {
+ $('#more').hide();
+ $('#no-more').hide();
+ // alert('scroll');
+ next_page++;
+ scroll_next = true;
+ loadingPage = true;
+ liveUpdate();
+ }
}
}
diff --git a/js/spin.js b/js/spin.js
new file mode 100644
index 000000000..c66c607a7
--- /dev/null
+++ b/js/spin.js
@@ -0,0 +1,349 @@
+//fgnass.github.com/spin.js#v1.3
+
+/**
+ * Copyright (c) 2011-2013 Felix Gnass
+ * Licensed under the MIT license
+ */
+(function(root, factory) {
+
+ /* CommonJS */
+ if (typeof exports == 'object') module.exports = factory()
+
+ /* AMD module */
+ else if (typeof define == 'function' && define.amd) define(factory)
+
+ /* Browser global */
+ else root.Spinner = factory()
+}
+(this, function() {
+ "use strict";
+
+ var prefixes = ['webkit', 'Moz', 'ms', 'O'] /* Vendor prefixes */
+ , animations = {} /* Animation rules keyed by their name */
+ , useCssAnimations /* Whether to use CSS animations or setTimeout */
+
+ /**
+ * Utility function to create elements. If no tag name is given,
+ * a DIV is created. Optionally properties can be passed.
+ */
+ function createEl(tag, prop) {
+ var el = document.createElement(tag || 'div')
+ , n
+
+ for(n in prop) el[n] = prop[n]
+ return el
+ }
+
+ /**
+ * Appends children and returns the parent.
+ */
+ function ins(parent /* child1, child2, ...*/) {
+ for (var i=1, n=arguments.length; i<n; i++)
+ parent.appendChild(arguments[i])
+
+ return parent
+ }
+
+ /**
+ * Insert a new stylesheet to hold the @keyframe or VML rules.
+ */
+ var sheet = (function() {
+ var el = createEl('style', {type : 'text/css'})
+ ins(document.getElementsByTagName('head')[0], el)
+ return el.sheet || el.styleSheet
+ }())
+
+ /**
+ * Creates an opacity keyframe animation rule and returns its name.
+ * Since most mobile Webkits have timing issues with animation-delay,
+ * we create separate rules for each line/segment.
+ */
+ function addAnimation(alpha, trail, i, lines) {
+ var name = ['opacity', trail, ~~(alpha*100), i, lines].join('-')
+ , start = 0.01 + i/lines * 100
+ , z = Math.max(1 - (1-alpha) / trail * (100-start), alpha)
+ , prefix = useCssAnimations.substring(0, useCssAnimations.indexOf('Animation')).toLowerCase()
+ , pre = prefix && '-' + prefix + '-' || ''
+
+ if (!animations[name]) {
+ sheet.insertRule(
+ '@' + pre + 'keyframes ' + name + '{' +
+ '0%{opacity:' + z + '}' +
+ start + '%{opacity:' + alpha + '}' +
+ (start+0.01) + '%{opacity:1}' +
+ (start+trail) % 100 + '%{opacity:' + alpha + '}' +
+ '100%{opacity:' + z + '}' +
+ '}', sheet.cssRules.length)
+
+ animations[name] = 1
+ }
+
+ return name
+ }
+
+ /**
+ * Tries various vendor prefixes and returns the first supported property.
+ */
+ function vendor(el, prop) {
+ var s = el.style
+ , pp
+ , i
+
+ if(s[prop] !== undefined) return prop
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1)
+ for(i=0; i<prefixes.length; i++) {
+ pp = prefixes[i]+prop
+ if(s[pp] !== undefined) return pp
+ }
+ }
+
+ /**
+ * Sets multiple style properties at once.
+ */
+ function css(el, prop) {
+ for (var n in prop)
+ el.style[vendor(el, n)||n] = prop[n]
+
+ return el
+ }
+
+ /**
+ * Fills in default values.
+ */
+ function merge(obj) {
+ for (var i=1; i < arguments.length; i++) {
+ var def = arguments[i]
+ for (var n in def)
+ if (obj[n] === undefined) obj[n] = def[n]
+ }
+ return obj
+ }
+
+ /**
+ * Returns the absolute page-offset of the given element.
+ */
+ function pos(el) {
+ var o = { x:el.offsetLeft, y:el.offsetTop }
+ while((el = el.offsetParent))
+ o.x+=el.offsetLeft, o.y+=el.offsetTop
+
+ return o
+ }
+
+ // Built-in defaults
+
+ var defaults = {
+ lines: 12, // The number of lines to draw
+ length: 7, // The length of each line
+ width: 5, // The line thickness
+ radius: 10, // The radius of the inner circle
+ rotate: 0, // Rotation offset
+ corners: 1, // Roundness (0..1)
+ color: '#000', // #rgb or #rrggbb
+ direction: 1, // 1: clockwise, -1: counterclockwise
+ speed: 1, // Rounds per second
+ trail: 100, // Afterglow percentage
+ opacity: 1/4, // Opacity of the lines
+ fps: 20, // Frames per second when using setTimeout()
+ zIndex: 2e9, // Use a high z-index by default
+ className: 'spinner', // CSS class to assign to the element
+ top: 'auto', // center vertically
+ left: 'auto', // center horizontally
+ position: 'relative' // element position
+ }
+
+ /** The constructor */
+ function Spinner(o) {
+ if (typeof this == 'undefined') return new Spinner(o)
+ this.opts = merge(o || {}, Spinner.defaults, defaults)
+ }
+
+ // Global defaults that override the built-ins:
+ Spinner.defaults = {}
+
+ merge(Spinner.prototype, {
+
+ /**
+ * Adds the spinner to the given target element. If this instance is already
+ * spinning, it is automatically removed from its previous target b calling
+ * stop() internally.
+ */
+ spin: function(target) {
+ this.stop()
+
+ var self = this
+ , o = self.opts
+ , el = self.el = css(createEl(0, {className: o.className}), {position: o.position, width: 0, zIndex: o.zIndex})
+ , mid = o.radius+o.length+o.width
+ , ep // element position
+ , tp // target position
+
+ if (target) {
+ target.insertBefore(el, target.firstChild||null)
+ tp = pos(target)
+ ep = pos(el)
+ css(el, {
+ left: (o.left == 'auto' ? tp.x-ep.x + (target.offsetWidth >> 1) : parseInt(o.left, 10) + mid) + 'px',
+ top: (o.top == 'auto' ? tp.y-ep.y + (target.offsetHeight >> 1) : parseInt(o.top, 10) + mid) + 'px'
+ })
+ }
+
+ el.setAttribute('role', 'progressbar')
+ self.lines(el, self.opts)
+
+ if (!useCssAnimations) {
+ // No CSS animation support, use setTimeout() instead
+ var i = 0
+ , start = (o.lines - 1) * (1 - o.direction) / 2
+ , alpha
+ , fps = o.fps
+ , f = fps/o.speed
+ , ostep = (1-o.opacity) / (f*o.trail / 100)
+ , astep = f/o.lines
+
+ ;(function anim() {
+ i++;
+ for (var j = 0; j < o.lines; j++) {
+ alpha = Math.max(1 - (i + (o.lines - j) * astep) % f * ostep, o.opacity)
+
+ self.opacity(el, j * o.direction + start, alpha, o)
+ }
+ self.timeout = self.el && setTimeout(anim, ~~(1000/fps))
+ })()
+ }
+ return self
+ },
+
+ /**
+ * Stops and removes the Spinner.
+ */
+ stop: function() {
+ var el = this.el
+ if (el) {
+ clearTimeout(this.timeout)
+ if (el.parentNode) el.parentNode.removeChild(el)
+ this.el = undefined
+ }
+ return this
+ },
+
+ /**
+ * Internal method that draws the individual lines. Will be overwritten
+ * in VML fallback mode below.
+ */
+ lines: function(el, o) {
+ var i = 0
+ , start = (o.lines - 1) * (1 - o.direction) / 2
+ , seg
+
+ function fill(color, shadow) {
+ return css(createEl(), {
+ position: 'absolute',
+ width: (o.length+o.width) + 'px',
+ height: o.width + 'px',
+ background: color,
+ boxShadow: shadow,
+ transformOrigin: 'left',
+ transform: 'rotate(' + ~~(360/o.lines*i+o.rotate) + 'deg) translate(' + o.radius+'px' +',0)',
+ borderRadius: (o.corners * o.width>>1) + 'px'
+ })
+ }
+
+ for (; i < o.lines; i++) {
+ seg = css(createEl(), {
+ position: 'absolute',
+ top: 1+~(o.width/2) + 'px',
+ transform: o.hwaccel ? 'translate3d(0,0,0)' : '',
+ opacity: o.opacity,
+ animation: useCssAnimations && addAnimation(o.opacity, o.trail, start + i * o.direction, o.lines) + ' ' + 1/o.speed + 's linear infinite'
+ })
+
+ if (o.shadow) ins(seg, css(fill('#000', '0 0 4px ' + '#000'), {top: 2+'px'}))
+
+ ins(el, ins(seg, fill(o.color, '0 0 1px rgba(0,0,0,.1)')))
+ }
+ return el
+ },
+
+ /**
+ * Internal method that adjusts the opacity of a single line.
+ * Will be overwritten in VML fallback mode below.
+ */
+ opacity: function(el, i, val) {
+ if (i < el.childNodes.length) el.childNodes[i].style.opacity = val
+ }
+
+ })
+
+
+ function initVML() {
+
+ /* Utility function to create a VML tag */
+ function vml(tag, attr) {
+ return createEl('<' + tag + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', attr)
+ }
+
+ // No CSS transforms but VML support, add a CSS rule for VML elements:
+ sheet.addRule('.spin-vml', 'behavior:url(#default#VML)')
+
+ Spinner.prototype.lines = function(el, o) {
+ var r = o.length+o.width
+ , s = 2*r
+
+ function grp() {
+ return css(
+ vml('group', {
+ coordsize: s + ' ' + s,
+ coordorigin: -r + ' ' + -r
+ }),
+ { width: s, height: s }
+ )
+ }
+
+ var margin = -(o.width+o.length)*2 + 'px'
+ , g = css(grp(), {position: 'absolute', top: margin, left: margin})
+ , i
+
+ function seg(i, dx, filter) {
+ ins(g,
+ ins(css(grp(), {rotation: 360 / o.lines * i + 'deg', left: ~~dx}),
+ ins(css(vml('roundrect', {arcsize: o.corners}), {
+ width: r,
+ height: o.width,
+ left: o.radius,
+ top: -o.width>>1,
+ filter: filter
+ }),
+ vml('fill', {color: o.color, opacity: o.opacity}),
+ vml('stroke', {opacity: 0}) // transparent stroke to fix color bleeding upon opacity change
+ )
+ )
+ )
+ }
+
+ if (o.shadow)
+ for (i = 1; i <= o.lines; i++)
+ seg(i, -2, 'progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)')
+
+ for (i = 1; i <= o.lines; i++) seg(i)
+ return ins(el, g)
+ }
+
+ Spinner.prototype.opacity = function(el, i, val, o) {
+ var c = el.firstChild
+ o = o.shadow && o.lines || 0
+ if (c && i+o < c.childNodes.length) {
+ c = c.childNodes[i+o]; c = c && c.firstChild; c = c && c.firstChild
+ if (c) c.opacity = val
+ }
+ }
+ }
+
+ var probe = css(createEl('group'), {behavior: 'url(#default#VML)'})
+
+ if (!vendor(probe, 'transform') && probe.adj) initVML()
+ else useCssAnimations = vendor(probe, 'animation')
+
+ return Spinner
+
+}));
diff --git a/library/colorbox/README.md b/library/colorbox/README.md
new file mode 100644
index 000000000..bc002381e
--- /dev/null
+++ b/library/colorbox/README.md
@@ -0,0 +1,376 @@
+## About ColorBox:
+A customizable lightbox plugin for jQuery. See the [project page](http://jacklmoore.com/colorbox/) for documentation and a demonstration, and the [FAQ](http://jacklmoore.com/colorbox/faq/) for solutions and examples to common issues. Released under the [MIT license](http://www.opensource.org/licenses/mit-license.php).
+
+## Translations Welcome
+Send me your language configuration files. See /i18n/jquery.colorbox-de.js as an example.
+
+## Changelog:
+
+### Version 1.3.32 - 2013/1/31
+
+* Improved internal event subscribing & fixed event bug introduced in v1.3.21
+
+### Version 1.3.31 - 2013/1/28
+
+* Fixed a size-calculation bug introduced in the previous commit.
+
+### Version 1.3.30 - 2013/1/25
+
+* Delayed border-width calculations until after opening, to avoid a bug in FF when using ColorBox in a hidden iframe.
+
+### Version 1.3.29 - 2013/1/24
+
+* Fixes bug with bubbling delegated events, introduced in the previous commit.
+
+### Version 1.3.28 - 2013/1/24
+
+* Fixed compatibility issue with old versions of jQuery (1.3.2-1.4.2)
+
+### Version 1.3.27 - 2013/1/23
+
+* Added className property.
+
+### Version 1.3.26 - 2013/1/23
+
+* Minor bugfix: clear the onload event handler after photo has loaded.
+
+### Version 1.3.25 - 2013/1/23
+
+* Removed grunt file & added Bower component.json.
+
+### Version 1.3.24 - 2013/1/22
+
+* Added generated files (jquery.colorbox.js / jquery.colorbox-min.js) back to the repository.
+
+### Version 1.3.23 - 2013/1/18
+
+* Minor bugfix for calling ColorBox on empty jQuery collections without a selector.
+
+### Version 1.3.22 - 2013/1/17
+
+* Recommit for plugins.jquery.com
+
+### Version 1.3.21 - 2013/1/15
+Files Changed: *.js
+
+* Fixed compatability issues with jQuery 1.9
+
+### Version 1.3.20 - August 15 2012
+Files Changed:jquery.colorbox.js
+
+* Added temporary workaround for jQuery-UI 1.8 bug (http://bugs.jquery.com/ticket/12273)
+* Added *.jpe extension to the list of image types.
+
+### Version 1.3.19 - December 08 2011
+Files Changed:jquery.colorbox.js, colorbox.css (all)
+
+* Fixed bug related to using the 'fixed' property.
+* Optimized the setup procedure to be more efficient.
+* Removed $.colorbox.init() as it will no longer be needed (will self-init when called).
+* Removed use of $.browser.
+
+### Version 1.3.18 - October 07 2011
+Files Changed:jquery.colorbox.js/jquery.colorbox-min.js, colorbox.css (all) and example 1's controls.png
+
+* Fixed a regression where Flash content displayed in ColorBox would be reloaded if the browser window was resized.
+* Added safety check to make sure that ColorBox's markup is only added to the DOM a single time, even if $.colorbox.init() is called multiple times. This will allow site owners to manually initialize ColorBox if they need it before the DOM has finished loading.
+* Updated the example index.html files to be HTML5 compliant.
+* Changed the slideshow behavior so that it immediately moves to the next slide when the slideshow is started.
+* Minor regex bugfix to allow automatic detection of image URLs that include fragments.
+
+### Version 1.3.17 - May 11 2011
+Files Changed:jquery.colorbox.js/jquery.colorbox-min.js
+
+* Added properties "top", "bottom", "left" and "right" to specify a position relative to the viewport, rather than using the default centering.
+* Added property "data" to specify GET or POST data when using Ajax. ColorBox's ajax functionality is handled by jQuery's .load() method, so the data property works the same way as it does with .load().
+* Added property "fixed" which can provide fixed positioning for ColorBox, rather than absolute positioning. This will allow ColorBox to remain in a fixed position within the visitors viewport, despite scrolling. IE6 support for this was not added, it will continue to use the default absolute positioning.
+* Fixed ClearType problem with IE7.
+* Minor fixes.
+
+### Version 1.3.16 - March 01 2011
+Files Changed:jquery.colorbox.js/jquery.colorbox-min.js, colorbox.css (all) and example 4 background png files
+
+* Better IE related transparency workarounds. IE7 and up now uses the same background image sprite as other browsers.
+* Added error handling for broken image links. A message will be displayed telling the user that the image could not be loaded.
+* Added new property: 'fastIframe' and set it to true by default. Setting to fastIframe:false will delay the loading graphic removal and onComplete event until iframe has completely loaded.
+* Ability to redefine $.colorbox.close (or prev, or next) at any time.
+
+### Version 1.3.15 - October 27 2010
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Minor fixes for specific cases.
+
+### Version 1.3.14 - October 27 2010
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* In IE6, closing an iframe when using HTTPS no longer generates a security warning.
+
+### Version 1.3.13 - October 22 2010
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Changed the index.html example files to use YouTube's new embedded link format.
+* By default, ColorBox returns focus to the element it was launched from once it closes. This can now be disabled by setting the 'returnFocus' property to false. Focus was causing problems for some users who had their anchor elements inside animated containers.
+* Minor bug fix involved in using a combination of slideshow and non-slideshow content.
+
+### Version 1.3.12 - October 20 2010
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Minor bug fix involved in preloading images when using a function as a value for the href property.
+
+### Version 1.3.11 - October 19 2010
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Fixed the slideshow functionality that broke with 1.3.10
+* The slideshow now respects the loop property.
+
+### Version 1.3.10 - October 16 2010
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Fixed compatibility with jQuery 1.4.3
+* The 'open' property now accepts a function as a value, like all of the other properties.
+* Preloading now loads the correct href for images when using a dynamic (function) value for the href property.
+* Fixed bug in Safari 3 for Win where ColorBox centered on the document, rather than the visitor's viewport.
+* May have fixed an issue in Opera 10.6+ where ColorBox would rarely/randomly freeze up while switching between photos in a group.
+* Some functionality better encapsulated & minor performance improvements.
+
+### Version 1.3.9 - July 7 2010
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js/ all colorbox.css (the core styles)
+
+* Fixed a problem where iframed youtube videos would cause a security alert in IE.
+* More code is event driven now, making the source easier to grasp.
+* Removed some unnecessary style from the core CSS.
+
+### Version 1.3.8 - June 21 2010
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Fixed a bug in Chrome where it would sometimes render photos at 0 by 0 width and height (behavior introduced in recent update to Chrome).
+* Fixed a bug where the onClosed callback would fire twice (only affected 1.3.7).
+* Fixed a bug in IE7 that existed with some iframed websites that use JS to reposition the viewport caused ColorBox to move out of position.
+* Abstracted the identifiers (HTML ids & classes, and JS plugin name, method, and events) so that the plugin can be easily rebranded.
+* Small changes to improve either code readability or compression.
+
+### Version 1.3.7 - June 13 2010
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js/index.html
+
+* $.colorbox can now be used for direct calls and accessing public methods. Example: $.colorbox.close();
+* Resize now accepts 'width', 'innerWidth', 'height' and 'innerHeight'. Example: $.colorbox.resize({width:"100%"})
+* Added option (loop:false) to disable looping in a group.
+* Added options (escKey:false, arrowKey:false) to disable esc-key and arrow-key bindings.
+* Added method for removing ColorBox from a document: $.colorbox.remove();
+* Fixed a bug where iframed URLs would be truncated if they contained an unencoded apostrophe.
+* Now uses the exact href specified on an anchor, rather than the version returned by 'this.href'. This was causing "#example" to be normalized to "http://domain/#example" which interfered with how some users were setting up links to inline content.
+* Changed example documents over to HTML5.
+
+### Version 1.3.6 - Jan 13 2010
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Small change to make ColorBox compatible with jQuery 1.4
+
+### Version 1.3.5 - December 15 2009
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Fixed a bug introduced in 1.3.4 with IE7's display of example 2 and 3, and auto-width in Opera.
+* Fixed a bug introduced in 1.3.4 where colorbox could not be launched by triggering an element's click event through JavaScript.
+* Minor refinements.
+
+### Version 1.3.4 - December 5 2009
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Event delegation is now used for elements that ColorBox is assigned to, rather than individual click events.
+* Additional callbacks have been added to represent other stages of ColorBox's lifecycle. Available callbacks, in order of their execution: onOpen, onLoad, onComplete, onCleanup, onClosed These take place at the same time as the event hooks, but will be better suited than the hooks for targeting specific instances of ColorBox.
+* Ajax content is now immediately added to the DOM to be more compatible if that content contains script tags.
+* Focus is now returned to the calling element on closing.
+* Fixed a bug where maxHeight and maxWidth did not work for non-photo content.
+* Direct calls no longer need 'open:true', it is assumed. Example: `$.fn.colorbox({html:'<p>Hi</p>'});`
+
+### Version 1.3.3 - November 7 2009
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Changed $.fn.colorbox.element() to return a jQuery object rather the DOM element.
+* jQuery.colorbox-min.js is compressed with Google's Closure Compiler rather than YUI Compressor.
+
+### Version 1.3.2 - October 27 2009
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Added 'innerWidth' and 'innerHeight' options to allow people to easily set the size dimensions for ColorBox, without having to anticipate the size of the borders and buttons.
+* Renamed 'scrollbars' option to 'scrolling' to be in keeping with the existing HTML attribute. The option now also applies to iframes.
+* Bug fix: In Safari, positioning occassionally incorrect when using '100%' dimensions.
+* Bug fix: In IE6, the background overlay is briefly not full size when first viewing.
+* Bug fix: In Firefox, opening ColorBox causes a split second shift with a small minority of webpage layouts.
+* Simplified code in a few areas.
+
+### Version 1.3.1 - September 16 2009
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js/colorbox.css/colorbox-ie.css(removed)
+
+* Removed the IE-only stylesheets and conditional comments for example styles 1 & 4. All CSS is handled by a single CSS file for all examples.
+* Removed user-agent sniffing from the js and replaced it with feature detection. This will allow correct rendering for visitors masking their agent type.
+
+### Version 1.3.0 - September 15 2009
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js/colorbox.css
+
+* Added $.fn.colorbox.resize() method to allow ColorBox to resize it's height if it's contents change.
+* Added 'scrollbars' option to allow users to turn off scrollbars when using the resize() method.
+* Renamed the 'resize' option to be less ambiguous. It's now 'scalePhotos'.
+* Renamed the 'cbox_close' event to be less ambiguous. It's now 'cbox_cleanup'. It is the first thing to happen in the close method while the 'cbox_closed' event is the last to happen.
+* Fixed a bug with the slideshow mouseover graphics that appeared after ColorBox is opened a 2nd time.
+* Fixed a bug where ClearType may not work in IE6&7 if using the fade transition.
+* Minor code optimizations to increase compression.
+
+### Version 1.2.9 - August 7 2009
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Minor change to enable use with $.getScript();
+* Minor change to the timing of the 'cbox_load' event so that it is more useful.
+* Added a direct link to a YouTube video to the examples.
+
+### Version 1.2.8 - August 5 2009
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Fixed a bug with the overlay in IE6
+* Fixed a bug where left & right keypress events might be prematurely unbound.
+
+### Version 1.2.7 - July 31 2009
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js, example stylesheets and background images (core styles have not changed and the updates will not affect existing user themes / old example themes)
+
+* Code cleanup and reduction, better organization and documentation in the full source.
+* Added ability to use functions in place of static values for ColorBox's options (thanks Ken!).
+* Added an option for straight HTML. Example: `$.fn.colorbox({html:'<p>Howdy</p>', open:true})`
+* Added an event for the beginning of the closing process. This is in addition to the event that already existed for when ColorBox had completely closed. 'cbox_close' and 'cbox_closed' respectively.
+* Fixed a minor bug in IE6 that would cause a brief content shift in the parent document when opening ColorBox.
+* Fixed a minor bug in IE6 that would reveal select elements that had a hidden visibility after closing ColorBox.
+* The 'esc' key is unbound now when ColorBox is not open, to avoid any potential conflicts.
+* Used background sprites for examples 1 & 4. Put IE-only (non-sprite) background images in a separate folder.
+* Example themes 1, 3, & 4 received slight visual tweaks.
+* Optimized pngs for smaller file size.
+* Added slices, grid, and correct sizing to the Adobe Illustrator file, all theme files are now export ready!
+
+### Version 1.2.6 - July 15 2009
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Fixed a bug with fixed width/height images in Opera 9.64.
+* Fixed a bug with trying to set a value for rel during a direct call to ColorBox. Example: `$.fn.colorbox({rel:'foo', open:true});`
+* Changed how href/rel/title settings are determined to avoid users having to manually update ColorBox settings if they use JavaScript to update any of those attributes, after ColorBox has been defined.
+* Fixed a FF3 bug where the back button was disabled after closing an iframe.
+
+### Version 1.2.5 - June 23 2009
+Files Changed: jquery.colorbox.js/jquery.colorbox-min.js
+
+* Changed the point at which iframe srcs are set (to eliminate the need to refresh the iframe once it has been added to the DOM).
+* Removed unnecessary return values for a very slight code reduction.
+
+### Version 1.2.4 - June 9 2009
+Files Changed: jquery.colorbox.js, jquery.colorbox-min.js
+
+* Fixed an issue where ColorBox may not close completely if it is closed during a transition animation.
+* Minor code reduction.
+
+### Version 1.2.3 - June 4 2009
+* Fixed a png transparency stacking issue in IE.
+* More accurate Ajax auto-sizing if the user was depending on the #cboxLoadedContent ID for CSS styling.
+* Added a public function for returning the current html element that ColorBox is associated with. Example use: var that = $.fn.colorbox.element();
+* Added bicubic scaling for resized images in the original IE7.
+* Removed the IE6 stylesheet and png files from Example 3. It now uses the same png file for the controls that the rest of the browsers use (an alpha transparency PNG8). This example now only has 2 graphics files and 1 stylesheet.
+
+### Version 1.2.2 - May 28 2009
+* Fixed an issue with the 'resize' option.
+
+### Version 1.2.1 - May 28 2009
+* Note: If you are upgrading, update your jquery.colorbox.js and colorbox.css files.
+* Added photo resizing.
+* Added a maximum width and maximum height. Example: {height:800, maxHeight:'100%'}, would allow the box to be a maximum potential height of 800px, instead of a fixed height of 800px. With maxHeight of 100% the height of ColorBox cannot exceed the height of the browser window.
+* Added 'rel' setting to add the ability to set an alternative rel for any ColorBox call. This allows the user to group any combination of elements together for a gallery, or to override an existing rel. attribute so those element are not grouped together, without having to alter their rel in the HTML.
+* Added a 'photo' setting to force ColorBox to display a link as a photo. Use this when automatic photo detection fails (such as using a url like 'photo.php' instead of 'photo.jpg', 'photo.jpg#1', or 'photo.jpg?pic=1')
+* Removed the need to ever create disposable elements to call colorbox on. ColorBox can now be called directly, without being associated with any existing element, by using the following format:
+ `$.fn.colorbox({open:true, href:'yourLink.xxx'});`
+* ColorBox settings are now persistent and unique for each element. This allows for extremely flexible options for individual elements. You could use this to create a gallery in which each page in the gallery has different settings. One could be a photo with a fade transition, next could be an inline element with an elastic transition with a set width and height, etc.
+* For user callbacks, 'this' now refers to the element colorbox was opened from.
+* Fixed a minor grouping issue with IE6, when transition type is set to 'none'.
+* Added an Adobe Illustrator file that contains the borders and buttons used in the various examples.
+
+### Version 1.2 - May 13 2009
+* Added a slideshow feature.
+* Added re-positioning on browser resize. If the browser is resized, ColorBox will recenter itself onscreen.
+* Added hooks for key events: cbox_open, cbox_load, cbox_complete, cbox_closed.
+* Fixed an IE transparency-stacking problem, where transparent PNGs would show through to the background overlay.
+* Fixed an IE iframe issue where the ifame might shift up and to the left under certain circumstances.
+* Fixed an IE6 bug where the loading overlay was not at full height.
+* Removed the delay in switching between same-sized gallery content when using transitions.
+* Changed how iframes are loaded to make it more compatible with iframed pages that use DOM dependent JavaScript.
+* Changed how the JS is structured to be better organized and increase compression. Increased documentation.
+* Changed CSS :hover states to a .hover class. This sidesteps a minor IE8 bug with css hover states and allows easier access to hover state user styles from the JavaScript.
+* Changed: elements added to the DOM have new ID's. The naming is more consistent and less likely to cause conflicts with existing website stylesheets. All stylesheets have been updated.
+* Changed the behavior for prev/next links so that ColorBox does not get hung up on broken links. A visitor can now skip through broken or long-loading links by clicking prev/next buttons.
+* Changed the naming of variables in the parameter map to be more concise and intuitive.
+* Removed colorbox.css. Combined the colorbox.css styles with jquery.colorbox.js: the css file was not large enough to warrant being a separate file.
+
+### Version 1.1.6 - April 28 2009
+* Prevented the default action of the next & previous anchors and the left and right keys for gallery mode.
+* Fixed a bug where the title element was being added back to the DOM when closing ColorBox while using inline content.
+* Fixed a bug where IE7 would crash for example 2.
+* Smaller filesize: removed a small amount of unused code and rewrote the HTML injection with less syntax.
+* Added a public method for closing ColorBox: $.fn.colorbox.close(). This will allow iframe users to add an event to close ColorBox without having to create an additional function.
+
+### Version 1.1.5 - April 11 2009
+* Fixed minor issues with exiting ColorBox.
+
+### Version 1.1.4 - April 08 2009
+* Fixed a bug in the fade transition where ColorBox not close completely if instructed to close during the fade-in portion of the transition.
+
+### Version 1.1.3 - April 06 2009
+* Fixed an IE6&7 issue with using ColorBox to display animated GIFs.
+
+### Version 1.1.2 - April 05 2009
+* Added ability to change content when ColorBox is already open.
+* Added vertical photo centering now works for all browsers (this feature previously excluded IE6&7).
+* Added namespacing to the esc-key keydown event for people who want to disable it: "keydown.colorClose"
+* Added 'title' setting to add the ability to set an alternative title for any ColorBox call.
+* Fixed rollover navigation issue with IE8. (Added JS-based rollover state due to a browser-bug.)
+* Fixed an overflow issue for when the fixed width/height is smaller than the size of a photo.
+* Fixed a bug in the fade transition where the border would still come up if ColorBox was closed mid-transition.
+* Switch from JSMin to Yui Compressor for minification. Minified code now under 7KB.
+
+### Version 1.1.1 - March 31 2009
+* More robust image detection regex. Now detects image file types with url fragments and/or query strings.
+* Added 'nofollow' exception to rel grouping.
+* Changed how images are loaded into the DOM to prevent premature size calculation by ColorBox.
+* Added timestamp to iframe name to prevent caching - this was a problem in some browsers if the user had multiple iframes and the visitor left the page and came back, or if they refreshed the page.
+
+### Version 1.1.0 - March 21 2009
+* Animation is now much smoother and less resource intensive.
+* Added support for % sizing.
+* Callback option added.
+* Inline content now preserves JavaScript events, and changes made while ColorBox is open are also preserved.
+* Added 'href' setting to add the ability to set an alternative href for any anchor, or to assign the ColorBox event to non-anchors.
+ Example: $('button').colorbox({'href':'process.php'})
+ Example: $('a[href='http://msn.com']).colorbox({'href':'http://google.com', iframe:true});
+* Photos are now horizontally centered if they are smaller than the lightbox size. Also vertically centered for browsers newer than IE7.
+* Buttons in the examples are now included in the 'protected zone'. The lightbox will never expand it's borders or buttons beyond an accessible area of the screen.
+* Keypress events don't queue up by holding down the arrow keys.
+* Added option to close ColorBox by clicking on the background overlay.
+* Added 'none' transition setting.
+* Changed 'contentIframe' and 'contentInline' to 'inline' and 'iframe'. Removed 'contentAjax' because it is automatically assumed for non-image file types.
+* Changed 'contentWidth' and 'contentHeight' to 'fixedWidth' and 'fixedHeight'. These sizes now reflect the total size of the lightbox, not just the inner content. This is so users can accurately anticipate % sizes without fear of creating scrollbars.
+* Clicking on a photo will now switch to the next photo in a set.
+* Loading.gif is more stable in it's position.
+* Added a minified version.
+* Code passes JSLint.
+
+### Version 1.0.5 - March 11 2009
+* Redo: Fixed a bug where IE would cut off the bottom portion of a photo, if the photo was larger than the document dimensions.
+
+### Version 1.0.4 - March 10 2009
+* Added an option to allow users to automatically open the lightbox. Example usage: $(".colorbox").colorbox({open:true});
+* Fixed a bug where IE would cut off the bottom portion of a photo, if the photo was larger than the document dimensions.
+
+### Version 1.0.3 - March 09 2009
+* Fixed vertical centering for Safari 3.0.x.
+
+### Version 1.0.2 - March 06 2009
+* Corrected a typo.
+* Changed the content-type check so that it does not assume all links to photos should actually display photos. This allows for Ajax/inline/and iframe calls on anchors linking to picture file types.
+
+### Version 1.0.1 - March 05 2009
+* Fixed keydown events (esc, left arrow, right arrow) for Webkit browsers.
+
+### Version 1.0 - March 03 2009
+* First release
diff --git a/library/colorbox/colorbox.ai b/library/colorbox/colorbox.ai
new file mode 100644
index 000000000..1b51881af
--- /dev/null
+++ b/library/colorbox/colorbox.ai
@@ -0,0 +1,1811 @@
+%PDF-1.4 %âãÏÓ
+1 0 obj <</Metadata 2 0 R/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <</Length 48282/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.2-c063 53.351735, 2008/07/22-18:11:12 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <dc:format>application/vnd.adobe.illustrator</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">colorbox</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/">
+ <xmp:CreatorTool>Adobe Illustrator CS4</xmp:CreatorTool>
+ <xmp:CreateDate>2009-05-27T04:22:39-04:00</xmp:CreateDate>
+ <xmp:ModifyDate>2009-07-30T21:43:35-05:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2009-07-30T21:43:35-05:00</xmp:MetadataDate>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>208</xmpGImg:width>
+ <xmpGImg:height>256</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEBLAEsAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABABLAAAAAEA&#xA;AQEsAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADQAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXnn5b+fNd85T6us6W9jHpkiRL6KOzOzl9zzagACdMVZt9U1D/lt/5Jr/AFxV&#xA;gf5ZfmZrHmfzJrei39vBGNIaSNbiEODIYpjFUqzNStK4q9JxV2KuxV2KuxV2KuxV2KuxV2KvG/Pf&#xA;5jfmBY/mDL5Z8twpdMyRNb2/pKzktEHf4jTYbmpxVQ/xJ/zkV/1Y1/4G3/6qYqh9G/ND8zYvPml+&#xA;WvMdtHZSXcsXqwtEgYwyEjkjKSCDQioPXFXueKvBB+aX5r6n5k1HSdAtI717OSX4EiT4Y0fiCzOV&#xA;H44qmH+JP+civ+rGv/A2/wD1UxVd5F/Nbzde6/qVh5lMVnHpcEj3aNGIzG0TANyPgBiqbeU/z18v&#xA;eZdcl0izkZZ2kZLEPEw9aONOTS1pRQTUKCa+OKqdh+fvlm882Dy+kzAycYoLkxsFN16jRtbsCOuy&#xA;lWFVNaVr1VRfnv8AN5/Jt9AmpWLvp1zbyPBexFWrcx7iEx1BFV/aO340VR+r/mFqWj+Sl8x6lYGG&#xA;aOOGS808MrPH6jKHVW2VivLbpX2xVMtC8622vaLFq+lzLPaTKxRuJHxLUMpBoQQRirDfIf5y6x5n&#xA;1DSrWaxhtl1HT7i/dkZmKmC7a2CCoHXjyriqH/5x3/vvNf8AzFQ/rmxV7Lirwb8hv/JkedP+M9z/&#xA;ANRhxV7zirsVdirsVdirsVdirsVdirsVeNSf+tKx/wDMKf8AqDOKvZcVeHfmF/60T5T/AOYO0/6i&#xA;7nFXuOKvDvyS/wDJleb/AJN/1EHFXuOKvCPKoB/O/wA3AioLSgg/OPFWbeXvLflPTby/m0e1gjnl&#xA;n5XRjCnhLxHJVP7O1KqPn1OKtQ+W/KaebH1VLaAa4LZVQhVBWIu9XVRtyZmYM3XtiqC8x+VvI2q6&#xA;79Y19I7m7WzkRbe5c+mkBPxyIhPFH/yx8W3XbFVeXQvK8/km20meQyeX1jgQPJI3xRqylQ7k1AOw&#xA;O+2Kp/bWdpb2iWtpEkNsiCOKKIBVVQOICgbAAbDFWE+SPKfkrTL7TZ9Eu7i4ltrCeCzEtaNbPdM8&#xA;jtVE3EzFR0+XfFVH/nHf++81/wDMVD+ubFXsuKvBvyG/8mR50/4z3P8A1GHFXvOKuxV2KuxV2Kux&#xA;V2KuxV2KuxV4tfgH/nISYHcfUl/6h1xV6LwT+Ufdil5J5sAH/OQPlWgp/o1r0/5ibjFD3/FXg/5T&#xA;gHzt5xqK/vk6/wDGWbFXqnBP5R92KXlnlqJJPzo80xNUI8AU8SVNDFCNitCD7jFDLfL3kW10fUZL&#xA;xLiWQh2MKsduDClHH7RB74qttvIVnD5iGrfWZSqfvEj5GplZmJJbrwoR8Pfvttiqt5q8pyeYJ4Vl&#xA;uBDawRuU4oDJ6zbAlj+xtuBT5+CqM1DRrrUPLf6LnlRJ5I40mljWiAggsVTbw2GKo3SNNg0uwgso&#xA;Gd4oBRWkYsx+k/qG2KpD5W8sajpU1k9y0TC3spraT02J+OS5MwIqo24/jiqS/wDOO/8Afea/+YqH&#xA;9c2KvZcVeDfkN/5Mjzp/xnuf+ow4q95xV2KuxV2KuxV2KuxV2KuxV2KvA/OPmPTvL356y6jqJZbM&#xA;W0cUsiKXKc4AAxUbkA9ab4qyL/ldX5a/9XZv+kW7/wCqWKsFm8z6R5m/PLy5qGkO81lALa19Z0aM&#xA;O6yySEqrgNQeqBuBvXtvir6UxV81eTfOmheWPPHmY6zI8EF5MwjnVHkUNFK54ssYZvi57bYqzv8A&#xA;5XV+Wv8A1dm/6Rbv/qlirFfy41m11v8ANXXtVtAwtbqImHmKMVT04wxHblwrir2LFLsVdirsVdir&#xA;sVeef847/wB95r/5iof1zYoey4q8G/Ib/wAmR50/4z3P/UYcVe84q7FXYq7FXYq7FXYq7FXYq7FU&#xA;p1Dyj5X1G6a7v9Ktbq6cAPNNEjuQooKkiuwGKob/AJV95G/6sNh/0jx/0xVVtfJPlC0uY7m10azg&#xA;uIWDxSxworKw6EEDY4qnWKpHN5F8mTSvLLollJLISzu0EZJYmpJNMVWf8q+8jf8AVhsP+keP+mKo&#xA;rT/KfljTpjNYaXa2sxHEyQxIjFT2qoGKph9Utv8AfS/dirvqlt/vpfuxV31S2/30v3Yq76pbf76X&#xA;7sVd9Utv99L92Ku+qW3++l+7FXj/APzjwQLjzUhNGNzCwU9aVl3pir2XFXg35DD/AJCN5zb9lprk&#xA;q3Yj62emKvecVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVSyfy1oU2&#xA;5soUbpySNUNPCoGKqH+D9B/5ZhiqN03RdK0xOFhaRWwIofSRUJHvxAxVG4q7FXYq7FXYq7FXYq7F&#xA;XYqg9H1jTdZ0u11XTLhLqwvI1mt54yCrI4qP7R2xVL/OHm6x8qaNca1qNrdTabaL6l3NaRiYxJWh&#xA;ZkDB+I7kKaDc7Yq84/6Gu/Kj0DcV1P0AokMv1GTgELcA3KtKc/hr47Yq9J8pea7PzTo1vrNha3UG&#xA;nXiCW0lu41iMsbfZdU5F+LdQSBUbjbFUdrOs6ZoulXWq6pcJa2FlG01zPIaKqIKn5nwHfFUZirsV&#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir8t7NtVW2nltHmS3gCvcNGzKq8mCK&#xA;TQjck0xV9Tf84pyar5v/AC088eUtS1CZ7GaM2dq8hMpgXULeaOXhyPTYNx6Vr44qxf8A6Fe/OhtP&#xA;Hllv0WNHEwYXv1iSgYOT6/GnPdTTjx+iu+Kss/5y2utV8sfl/wCTPLWnX80diA1vcshMbTixgiSI&#xA;vxPT4i3HpX5DFXyrdvqzW0El28z209XgaRmZGKEoSKkioNRir9SMVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVfnX5S85aNpmjNFND6bwAGSJAC0xJA5DkRU+IJxV71/wA4TyrN&#xA;a+dJUHFZLq0dR4BhOR0xV9NYq+ZP+c25FjsvJsjCqpdXbMPYLCcVeC+YvOOiXnl4WyQCea4B9KNw&#xA;AYCCRzPGtG8ADv32xV+iuKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvhDQ&#xA;P+cTvzc1nSbbU1gsrGO6jWWKC7uCk3BxyUskaScag9CajuMVfSX/ADjl+TmsflroGpx61cwz6nqs&#xA;8ckkVsWeKOOFWVBzZULMeZJ28MVeu4q8h/5yN/JzWfzK0HS49EuoYNS0qeR0iuSyRSRzqqv8aq5D&#xA;LwUjanXFXzb5h/5xQ/NzRdJudTaCzv4rSNpZobOcvNwQcmKo6R8qDsu57DFX3hirsVdirsVdirsV&#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVdir4I0T/nKf8AOHSNKttMi1CC5htIxFFLc26SS8FF&#xA;FDPsWoNqnfxxV9Mf843fnBrf5j+XtSbXIYk1TSZ445Li3UokscysyEoSeLDgwNNumKvX8VePf85J&#xA;fnDrv5ceX9LbQoIX1LVp5I1uLhS6RRwKrOQgK1di60rt12xV80a7/wA5S/m/rGkXWlzahb28F5G0&#xA;M0ltbpHL6bijBX+LjUbVG/hir74xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV8lfkx+Uv5Sa1+Wlxd6peLeXGprGupX/NIZbF0kST6vGZAwiPNQGcirg7fCcVZD/zhpbW1sfPd&#xA;tauZLaC/t44HJDFo09dVNRQGoHbFX0pir5q/5zNt7e5/wLb3LcLea+uI5nqFojegGNTsNjiqTfnD&#xA;+T/5PaP+U8OoWF/Hp+oaajrpV7zWaTUHaR5DbycKeqxZyA4HwAb/AAjFX1dirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdir8vLF9eSxu7exFx9Sv1WO8jiDmOUROJEDgCh4uoI8M&#xA;VfRv/OPmm+ffKv5QeePN1gq6dLEgvbFb+BnjuYtPhlkn+Csb7g8UcNTlXFV7f85FfnGvkL/GBuNH&#xA;+r8liFl9RufW9RpjHUn1eAi4rX1a0LfB9rFW/wDnI7SPPnmL8qfJPmbUE/SVwVa61L6hAVhthfQx&#xA;yRfADJJxAXizs1OVOlaYq+br+XX3sbS2vvrP1HT1eOyilDiOISyGVwgIoOTsSfHFX6h4q7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqhNI0nT9I0y10vToEtrGzjWG3gjAVVRBQA&#xA;AUGKq91bW91bS2tzGs1vOjRTROKq6OOLKw7gg0xV45H/AM4lflEmofWfT1BrblU6cbtvq5Tlz9I/&#xA;D6vDlvTnir2SCCG3gjggRYoYlCRRoAqqqiiqoHQAYqhtY0jTtZ0q70rUoFubC9iaC5gcAqyOKEb/&#xA;AIYqjMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV&#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirqitO/hirsVcSBudsVdirSujEhWBI60NaYq3irsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdiq2WP1Inj5MnNSvNDRlqKVB33GKpL5U8sy6DbzwyahPf8ArSM49diQlXZv&#xA;hBrQtyq57nfFVlj5WmtvM9zrbalczJPHwWzd6otWZuO/7CcvgHY1xVT82eU5tdmtJI7sWwtg/JeD&#xA;MJQzI3pycXSsZ4bjFU21vTm1LSLuwWT0muomiEtK8eQpWm3TFVawtTaWUFqZpLgwoqGeU8pH4inJ&#xA;j3JxVJvKflmfQ2vDJOswuW5LxBFP3ssm9f8AjLirIMVdirsVdirsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVU7o3ItpTaqj3QRjAkrFIzJT4Q7KHIWvUhT8sVYV+VN9+a93pt8fzEsbOyu0uHFj9&#xA;UapaMyyVDgM6hUHERnqVoWq1TiqjomofnBJ+Z+p2urafYxeREgrYXUTn1i3qSek37RaRlH71DRVH&#xA;EjeoZVT/ADT1L807S90lPI9s1xayrINZcQwStDF6sIEsHrSwhp1Vn4Rn4WFSegxVlPnWbzFD5S1e&#xA;Xy2nq6+lrI2lx0VuVwF/dij/AA7t44qi9Bk1qTRbF9cihg1hoUOoRWrM8KzcfjEbMAeNf9s9cVYT&#xA;+UepfmTevrI86JOoikA0717eO3BT61dL8PppHy/crD1r2Pc4q9FxV2KuxV2KuxV2KuxV2KuxV2Ku&#xA;xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVQmmkDiOIcpCK09vE4qome+hHO&#xA;ZF9MHcqa0riqMRgyhh3xVvFXYq7FXYq7FXYq7FVOW5ghkhjkfi9w5ihG/wAThGkI/wCAjY4q3PPF&#xA;bwSTzNwiiUvI57KoqTt7YqlekebvLusXLWum3q3M6IZGRVcUQEKT8SgdWGKppJNDEAZHVAenIgV+&#xA;/FWzJGE9QsAlK86ilPGuKujlikFY3VwNiVIIr9GKtLPA7lFkVnFaqCCduu2KpTqnnLyxpdwba/1G&#xA;KG4H2ovidl7/ABBA1PpxVB/8rJ8kf9XWP/gJf+aMVTzTtSsNStVurC4S5t2NBJGaio6g+B9sVS1f&#xA;OnlhtT/Ra36m/wDVNv6HF6+qG4la8adffFU7xV2KuxV2KuxVBqf9ytP+KW/4kuKrtV/4583yH6xi&#xA;qpZ/7zp8hiqtirsVdirsVdirsVdiqFvbH6zc2E3Ph9SnafjSvPlBLDxrUU/vq19sVUfMP/HA1P8A&#xA;5hJ/+TbYq8l/JT/lKrr/AJgZP+T0WKvSPM/6aEMg0uWK3vXdfSmncRp6QQ1XkUk35e21a+2Kooi4&#xA;FoZEAjFWMRk+JFkMYCu1APh9Tlv71xVC6IuuNYn9IzQ3V6FkEklqCE4FgY4+RJ5OFrvXb8SqttDr&#xA;bapcrNc2sun8h+joIUYTxkFd5KmihRy5Cn9MVeIaDpF75m8wpZ+uFuLx3kmuJKt0Bd2I7nFWXa/+&#xA;TtzpmkXWoQamt0bWNpXhaH0qogqxDc33A36Yqj/yMkflrMfI8ALdgvap9QVxVjdt/wCTYP8A22ZP&#xA;+ohsVe9Yq7FVK5mEMTOe2KqKQ3MirJ63HkAeIWvXfrXFVS3lYu8TmrxkAn5iuKqKf8dX/ni3/Elx&#xA;Vdqv/HPm+Q/WMVVbP/eZPkMVVsVdirsVdirsVdirsVQ9zexW81pC4YteSmCIrSgYRSTVapG3GI/T&#xA;iqH8w/8AHA1P/mEn/wCTbYq8l/JT/lKrr/mBk/5PRYq9G83+ZH0Wyku/q0t2ElWJbWBpFkasZcuP&#xA;TSRiB37AVPtlmLHxmrphOXCLR0uozLZSSAPP6aPIFg+KSULEsojj2WrNyoNq5ADemV7IHy55jn1P&#xA;ShffU7mxEglCw3gIb92VHqry+P0zy/a8NttzPJDhNXaISsWssfMc82vX2miwvofqFC19Op+rzfEg&#xA;4KT8PJ/UqnHw+jDLHUQbG6BOzVPGPJ2uxeX/ADJb6hcxNJFDzSaNaBwHUoaVpuK9MqZvQPM35t6B&#xA;eaDfWVjDcPcXcLwL6iKiKJFKsxIZjsDttiqF/Iz+91n/AFbf9cmKsdtv/JsH/tsyf9RDYq96xV2K&#xA;oe+hMtuyDqRiqHi1KKONIpI5A6gKaCo2264qq2il5pZypUSEEA9aAU/hiq1P+Or/AM8W/wCJLiq7&#xA;Vf8AjnzfIfrGKqtn/vMnyGKq2KuxV2KuxV2KuxV2Koe5soria0mcsGs5TPEFpQsYpIaNUHbjKfpx&#xA;VdeWsd3Zz2khIjuI3icrQMFdSppWu++Ksd8r/l5ovlvUJL6xmuZJZIjAyztGy8WZWqOKIa1Qd8VZ&#xA;HJbRSPzNVelOSMVJHgeJFcVd9Vg9IRcfgB5ChIIbx5V5V964q2ltChY0LFxRi5Lkjw+Inb2xVYll&#xA;AjKRyITdFZ2ZR8gSRirFta/Kvytqt9JeuJ7WaYl5hbOqqzHqxV1cAn2xVL/+VKeVf+Wq+/5GQ/8A&#xA;VLFWV+XvLOkeX7RrbTYiiueUsjHlI5HQs3t2HTFUmT8s9Bj8wnXhcXX1v6y15wLx+n6jOXIp6fLj&#xA;U/zYqyWXUbWI0dwDiqn+l7L/AH4MVd+l7L/fgxVb+k9PrXmMVXDVrEdHGKoe0vbe41grGwYiBj9H&#xA;NcVROsMF02dj0AH6xiqrYsGtYyOlBiqvirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqnc&#xA;kiFyOtDiqG0tFayR3UF3LFiRufiIxVF+lF/Iv3DFXelF/Iv3DFXelF/Iv3DFXelF/Iv3DFUPLA0c&#xA;3rwopfiVI6VBNeo+WKqMxuruMwPCscbbOeXKo8OgxVU0tStvw7KSo+QNMVRmKuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KtMoZSD0OKoJrGdaiCZo1JrxFCPxxVr6nf8A/LW/3D+mKu+p3/8A&#xA;y1v9w/pirvqd/wD8tb/cP6Yq76nf/wDLW/3D+mKu+p3/APy1v9w/piraWl6D8VyxHyAxVFwxLEgU&#xA;dsVf/9k=</xmpGImg:image>
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
+ xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#">
+ <xmpMM:RenditionClass>default</xmpMM:RenditionClass>
+ <xmpMM:OriginalDocumentID>uuid:65E6390686CF11DBA6E2D887CEACB407</xmpMM:OriginalDocumentID>
+ <xmpMM:DocumentID>xmp.did:8BC7D877974ADE11BCECCFF09938C3CC</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:30267148-672c-4d34-8534-e8cce420f815</xmpMM:InstanceID>
+ <xmpMM:History>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/pdf to &lt;unknown&gt;</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:D47F11740720681191099C3B601C4548</stEvt:instanceID>
+ <stEvt:when>2008-04-17T14:19:21+05:30</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/pdf to &lt;unknown&gt;</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/pdf to &lt;unknown&gt;</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:FD7F11740720681197C1BF14D1759E83</stEvt:instanceID>
+ <stEvt:when>2008-05-16T17:01:20-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F77F117407206811BC18AC99CBA78E83</stEvt:instanceID>
+ <stEvt:when>2008-05-19T18:10:15-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:FB7F117407206811B628E3BF27C8C41B</stEvt:instanceID>
+ <stEvt:when>2008-05-22T14:26:44-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:08C3BD25102DDD1181B594070CEB88D9</stEvt:instanceID>
+ <stEvt:when>2008-05-28T16:51:46-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F77F11740720681192B0DFFC927805D7</stEvt:instanceID>
+ <stEvt:when>2008-05-30T21:26:38-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F87F11740720681192B0DFFC927805D7</stEvt:instanceID>
+ <stEvt:when>2008-05-30T21:27-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F97F1174072068119098B097FDA39BEF</stEvt:instanceID>
+ <stEvt:when>2008-06-02T13:26:10-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:8BC7D877974ADE11BCECCFF09938C3CC</stEvt:instanceID>
+ <stEvt:when>2009-05-27T04:22:07-04:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>/</stEvt:changed>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpMM:History>
+ <xmpMM:DerivedFrom rdf:parseType="Resource">
+ <stRef:instanceID>uuid:32300939-b1c4-8440-b812-b255b7b0d326</stRef:instanceID>
+ <stRef:documentID>xmp.did:F97F1174072068119098B097FDA39BEF</stRef:documentID>
+ <stRef:originalDocumentID>uuid:65E6390686CF11DBA6E2D887CEACB407</stRef:originalDocumentID>
+ <stRef:renditionClass>proof:pdf</stRef:renditionClass>
+ </xmpMM:DerivedFrom>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/">
+ <illustrator:StartupProfile>Web</illustrator:StartupProfile>
+ <illustrator:Type>Document</illustrator:Type>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/">
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:HasVisibleTransparency>True</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>1024.000000</stDim:w>
+ <stDim:h>768.000000</stDim:h>
+ <stDim:unit>Pixels</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Cyan</rdf:li>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Yellow</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ <xmpG:Colorants>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>White</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>255</xmpG:green>
+ <xmpG:blue>255</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>Black</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>0</xmpG:green>
+ <xmpG:blue>0</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>RGB Red</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>0</xmpG:green>
+ <xmpG:blue>0</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>RGB Yellow</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>255</xmpG:green>
+ <xmpG:blue>0</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>RGB Green</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>255</xmpG:green>
+ <xmpG:blue>0</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>RGB Cyan</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>255</xmpG:green>
+ <xmpG:blue>255</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>RGB Blue</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>0</xmpG:green>
+ <xmpG:blue>255</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>RGB Magenta</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>0</xmpG:green>
+ <xmpG:blue>255</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=193 G=39 B=45</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>193</xmpG:red>
+ <xmpG:green>39</xmpG:green>
+ <xmpG:blue>45</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=237 G=28 B=36</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>237</xmpG:red>
+ <xmpG:green>28</xmpG:green>
+ <xmpG:blue>36</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=241 G=90 B=36</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>241</xmpG:red>
+ <xmpG:green>90</xmpG:green>
+ <xmpG:blue>36</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=247 G=147 B=30</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>247</xmpG:red>
+ <xmpG:green>147</xmpG:green>
+ <xmpG:blue>30</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=251 G=176 B=59</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>251</xmpG:red>
+ <xmpG:green>176</xmpG:green>
+ <xmpG:blue>59</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=252 G=238 B=33</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>252</xmpG:red>
+ <xmpG:green>238</xmpG:green>
+ <xmpG:blue>33</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=217 G=224 B=33</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>217</xmpG:red>
+ <xmpG:green>224</xmpG:green>
+ <xmpG:blue>33</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=140 G=198 B=63</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>140</xmpG:red>
+ <xmpG:green>198</xmpG:green>
+ <xmpG:blue>63</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=57 G=181 B=74</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>57</xmpG:red>
+ <xmpG:green>181</xmpG:green>
+ <xmpG:blue>74</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=0 G=146 B=69</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>146</xmpG:green>
+ <xmpG:blue>69</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=0 G=104 B=55</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>104</xmpG:green>
+ <xmpG:blue>55</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=34 G=181 B=115</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>34</xmpG:red>
+ <xmpG:green>181</xmpG:green>
+ <xmpG:blue>115</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=0 G=169 B=157</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>169</xmpG:green>
+ <xmpG:blue>157</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=41 G=171 B=226</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>41</xmpG:red>
+ <xmpG:green>171</xmpG:green>
+ <xmpG:blue>226</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=0 G=113 B=188</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>113</xmpG:green>
+ <xmpG:blue>188</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=46 G=49 B=146</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>46</xmpG:red>
+ <xmpG:green>49</xmpG:green>
+ <xmpG:blue>146</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=27 G=20 B=100</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>27</xmpG:red>
+ <xmpG:green>20</xmpG:green>
+ <xmpG:blue>100</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=102 G=45 B=145</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>102</xmpG:red>
+ <xmpG:green>45</xmpG:green>
+ <xmpG:blue>145</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=147 G=39 B=143</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>147</xmpG:red>
+ <xmpG:green>39</xmpG:green>
+ <xmpG:blue>143</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=158 G=0 B=93</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>158</xmpG:red>
+ <xmpG:green>0</xmpG:green>
+ <xmpG:blue>93</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=212 G=20 B=90</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>212</xmpG:red>
+ <xmpG:green>20</xmpG:green>
+ <xmpG:blue>90</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=237 G=30 B=121</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>237</xmpG:red>
+ <xmpG:green>30</xmpG:green>
+ <xmpG:blue>121</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=199 G=178 B=153</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>199</xmpG:red>
+ <xmpG:green>178</xmpG:green>
+ <xmpG:blue>153</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=153 G=134 B=117</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>153</xmpG:red>
+ <xmpG:green>134</xmpG:green>
+ <xmpG:blue>117</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=115 G=99 B=87</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>115</xmpG:red>
+ <xmpG:green>99</xmpG:green>
+ <xmpG:blue>87</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=83 G=71 B=65</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>83</xmpG:red>
+ <xmpG:green>71</xmpG:green>
+ <xmpG:blue>65</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=198 G=156 B=109</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>198</xmpG:red>
+ <xmpG:green>156</xmpG:green>
+ <xmpG:blue>109</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=166 G=124 B=82</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>166</xmpG:red>
+ <xmpG:green>124</xmpG:green>
+ <xmpG:blue>82</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=140 G=98 B=57</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>140</xmpG:red>
+ <xmpG:green>98</xmpG:green>
+ <xmpG:blue>57</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=117 G=76 B=36</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>117</xmpG:red>
+ <xmpG:green>76</xmpG:green>
+ <xmpG:blue>36</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=96 G=56 B=19</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>96</xmpG:red>
+ <xmpG:green>56</xmpG:green>
+ <xmpG:blue>19</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=66 G=33 B=11</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>66</xmpG:red>
+ <xmpG:green>33</xmpG:green>
+ <xmpG:blue>11</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=0 G=0 B=0</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>0</xmpG:green>
+ <xmpG:blue>0</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=26 G=26 B=26</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>26</xmpG:red>
+ <xmpG:green>26</xmpG:green>
+ <xmpG:blue>26</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=51 G=51 B=51</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>51</xmpG:red>
+ <xmpG:green>51</xmpG:green>
+ <xmpG:blue>51</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=77 G=77 B=77</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>77</xmpG:red>
+ <xmpG:green>77</xmpG:green>
+ <xmpG:blue>77</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=102 G=102 B=102</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>102</xmpG:red>
+ <xmpG:green>102</xmpG:green>
+ <xmpG:blue>102</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=128 G=128 B=128</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>128</xmpG:red>
+ <xmpG:green>128</xmpG:green>
+ <xmpG:blue>128</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=153 G=153 B=153</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>153</xmpG:red>
+ <xmpG:green>153</xmpG:green>
+ <xmpG:blue>153</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=179 G=179 B=179</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>179</xmpG:red>
+ <xmpG:green>179</xmpG:green>
+ <xmpG:blue>179</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=204 G=204 B=204</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>204</xmpG:red>
+ <xmpG:green>204</xmpG:green>
+ <xmpG:blue>204</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=230 G=230 B=230</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>230</xmpG:red>
+ <xmpG:green>230</xmpG:green>
+ <xmpG:blue>230</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=242 G=242 B=242</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>242</xmpG:red>
+ <xmpG:green>242</xmpG:green>
+ <xmpG:blue>242</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=63 G=169 B=245</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>63</xmpG:red>
+ <xmpG:green>169</xmpG:green>
+ <xmpG:blue>245</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=122 G=201 B=67</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>122</xmpG:red>
+ <xmpG:green>201</xmpG:green>
+ <xmpG:blue>67</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=255 G=147 B=30</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>147</xmpG:green>
+ <xmpG:blue>30</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=255 G=29 B=37</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>29</xmpG:green>
+ <xmpG:blue>37</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=255 G=123 B=172</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>123</xmpG:green>
+ <xmpG:blue>172</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=189 G=204 B=212</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>189</xmpG:red>
+ <xmpG:green>204</xmpG:green>
+ <xmpG:blue>212</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=138 G=138 B=138 1</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>138</xmpG:red>
+ <xmpG:green>138</xmpG:green>
+ <xmpG:blue>138</xmpG:blue>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpG:Colorants>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <pdf:Producer>Adobe PDF library 9.00</pdf:Producer>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?>
+endstream endobj 3 0 obj <</Count 1/Kids[155 0 R]/Type/Pages>> endobj 155 0 obj <</ArtBox[0.0 73.0 508.0 701.0]/BleedBox[0.0 0.0 1024.0 768.0]/Contents 156 0 R/Group 157 0 R/LastModified(D:20090730214335-05'00')/MediaBox[0.0 0.0 1024.0 768.0]/Parent 3 0 R/PieceInfo<</Illustrator 158 0 R>>/Resources<</ColorSpace<</DefaultRGB 159 0 R>>/XObject<</Fm0 160 0 R>>>>/Thumb 161 0 R/TrimBox[0.0 0.0 1024.0 768.0]/Type/Page>> endobj 156 0 obj <</Filter/FlateDecode/Length 130>>stream
+H‰ŒÎ-Ã0 †aîSøõìø' ŸÆ‹v€©°ºûƒµ,$’õ‘<à=±FCáb¸Üï·Á8A¯-‚âFÅ{­(V(Ì\Eñ³Ããµ3>¿°Îüå¨IGIykF½µÝS><H‚朗7)dªÞ5×?úLÿè3ý£Ÿö¯ð`
+endstream endobj 157 0 obj <</CS 162 0 R/I false/K false/S/Transparency>> endobj 161 0 obj <</BitsPerComponent 8/ColorSpace 163 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 79/Length 284/Width 106>>stream
+8;Z\ui<k5l%"j!.(Yn<rGVB89DS9W38A;imV+n")c,d,Cr$jiKcnTe_@#q%%4(.C8
+HN;BSQ0K3*YFS=EP`>nRqnec:hag&4%a](-!f93L:A4D\h\gZ/n@lX;HcTPGfEHCj
+Q%6lr1C^ia9#<W0(GV,aU!d`IC%Y0XNP6><b7'6om5]6K!.0N/D61*)F/P7m\Pl,G
+gpGL0adN#/Z594=1XIk%(grE!EB@RojEgmQOd52KE0$6o\NS1_@3+<#Mt:Yj;B;Fb
+IK^@:(iq@&!<@UeLT(~>
+endstream endobj 163 0 obj [/Indexed/DeviceRGB 255 164 0 R] endobj 164 0 obj <</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
+endstream endobj 160 0 obj <</BBox[-103.108 71.3223 103.108 -71.3213]/Length 854/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ColorSpace<</CS0 165 0 R>>/ExtGState<</GS0 166 0 R>>/Font<</T1_0 154 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream
+BT
+/CS0 cs 0 0 0 scn
+/GS0 gs
+/T1_0 1 Tf
+0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 12 0 0 -12 -103.0967 -61.2773 Tm
+[(T)7(his is an A)12(dobe\256 I)-10(llustr)5(a)4(t)6(or\256 F)26(ile tha)4(t w)4(as)]TJ
+0 -1.2 TD
+[(sa)8(v)10(ed without PDF C)11(on)4(t)6(en)4(t)3(.)]TJ
+0 -1.2 TD
+[(T)71(o P)5(lac)6(e or open this \037le in other)]TJ
+0 -1.2 TD
+[(applica)4(tions)11(, it should be r)10(e)-28(-sa)8(v)10(ed fr)10(om)]TJ
+0 -1.2 TD
+[(A)12(dobe I)-10(llustr)5(a)4(t)6(or with the ")3(C)3(r)10(ea)4(t)6(e PDF)]TJ
+0 -1.2 TD
+[(C)11(ompa)4(tible F)26(ile" option tur)-4(ned on. )41(T)7(his)]TJ
+T*
+[(option is in the I)-10(llustr)5(a)4(t)6(or Na)4(tiv)10(e F)31(or)-4(ma)4(t)]TJ
+0 -1.2 TD
+[(Options dialog bo)14(x, which appears when)]TJ
+0 -1.2 TD
+[(sa)8(ving an A)12(dobe I)-10(llustr)5(a)4(t)6(or \037le using the)]TJ
+0 -1.2 TD
+[(S)-3(a)8(v)10(e A)6(s c)6(ommand)10(.)]TJ
+ET
+
+endstream endobj 154 0 obj <</BaseFont/OUPLQW+MyriadPro-Regular/Encoding 167 0 R/FirstChar 31/FontDescriptor 168 0 R/LastChar 174/Subtype/Type1/Type/Font/Widths[523 212 0 337 0 0 0 0 0 0 0 0 0 207 307 207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 612 0 580 666 0 487 0 0 239 0 0 0 0 658 689 532 0 0 493 497 0 0 0 0 0 0 0 0 0 0 0 0 482 569 448 564 501 292 559 555 234 0 0 236 834 555 549 569 0 327 396 331 551 481 736 463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 419]>> endobj 167 0 obj <</BaseEncoding/WinAnsiEncoding/Differences[31/f_i]/Type/Encoding>> endobj 168 0 obj <</Ascent 952/CapHeight 674/CharSet(/f_i/space/quotedbl/comma/hyphen/period/A/C/D/F/I/N/O/P/S/T/a/b/c/d/e/f/g/h/i/l/m/n/o/p/r/s/t/u/v/w/x/registered)/Descent -250/Flags 32/FontBBox[-157 -250 1126 952]/FontFamily(Myriad Pro)/FontFile3 169 0 R/FontName/OUPLQW+MyriadPro-Regular/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 88/Type/FontDescriptor/XHeight 484>> endobj 169 0 obj <</Filter/FlateDecode/Length 3130/Subtype/Type1C>>stream
+H‰|TyPwîffz è$ÒÕD§“î#hD”[-±o!b(/˜a¸@e0‚ §E
+D%"‰g”C ¹Ed=€ñ
+1ÆMÜ}?¬l[[•¿¶ªëõ»ú{ï}¯ëá˜ÐÃq|Ž—Ÿ·ÇWþ‹<©U
+ouÔâíÊà˜ð@µ1ÈrŸáÜl!÷ù
+Ù£¬÷ïß{ˆà¹Ïgµ|6cÔð˜O”ìß«ZÍc‡heöË—;Ø¥Ó´tµ•9,]ºtZ:ÉÖ(¢‚”2ŸC­2B#Û)RGG©µJ…lMx¸lB#S+5Ju¬ÑÉ÷¤UÊù¸,èÌÏ·÷ðÙ‘|Î:'g'[çev²ÿv/SidJ•6D©–ò
+å~ŒgÇ0†Í4Á¬0ì ³Á°/1l‰ æ„c§ó!°R ?a6F=1o,ËÇÊ°Ü—ã øþÖd­I¾É„`³@!º ¿þ!Ú :AÄN"8+¶ï›š›z™^00s6‹2ùÈö£VsQjz÷º çåM‚t!—:é=•J@j£Ð*øV¯$C·(0S9â)bÏ´«o\3eÔÑ’ : ZÁí„ãøÏatØHŸàæä&ª
+… 5X¡°ýqWAÁe¾1×ä>®¶0Ι¿<ȤRên¦vÐðéŸåìÝ»ÏÁD
+xÈÃm·™o‡Kh½Á#ùØv܃:y¾<»žçÖÈ1E[læ!/UXFV #‰çÇm
+óYÉE~ºÂ>¸h¤ ’Ç,Çá<‘r®$­”½¡±-¯(ºÑ.½£m ¾ÂTÊ=Î9Óë}“YË>s1«šžèÜg¿t«¿U¤&óäAV’¤än „ÆY´ Â@×”QšÊþ¸.¼øóÍöÛˆ¨cí*ƒ.wH¯WÜ~Ù^ðh1CÖ—ðû.ŒÜY°‘FŸ:¹Y-îù
+Läì Uå~OéFÿ]^>g/(Irq,÷ú>û Øgià^CÐý©k ÄêºBc!½fvYT p”lä졉ú5ø-Z°Íû°ZÎœó/oÈ¿N¿ÉÈsWH“ÄÈ+cÞVd&]ß´á·Þæòêï™,‚LÈÙ&!RÊô×j¤. ÙøMZRjt$H¾•Þ«,mûðÂ_õ¬äž®O˹õBxœÅà8T>#aE&ìÓèC™!‚l<9"Ê$<ªZ£ûhÀÀd Ö€µëïh¦›Ê/œÕÃONÄø”;u:óTVs¯¨µægz¢iÙ—Hà·Ún«M{<›š›–—'•øòÛÇúðêgÎæ ¥S‡&~M/ZÛ Âßï<Á²D]1{®[”¯ÙïO#‡ùG Ñ‚‰`Ýu³0ï<+i×õ+þ×lõ3¸8ÎÓc3@¡½¸:& b5̬"ç Ù¼X
+ˆÐi{~)™$!x63áú”'(&}÷¹ŸÓÜhg¹1Ì…æ‹H ›ÅÁÙ_šrŽ L Ãi œ‘?Ü Ù»bd[Ý! íëäÙÖøõeh1µšíÔ”ýÒ௤½Éhh¢gù¦šZS5™›_œ]®O÷˜Î"5ä‰ë8Â1×x—ïøûQÞo‰ã½ÕebÁ‰¹éCiçhIW‰Û+ºxæìˆÿ;åÉ6ªcs-rñ»veìö}þŠž,ë*ÿLTüõaÉ¡B·SN X’U°›‚± s¸|½IlgÝF.>Þ—×\ä‘SÇ:.¨|do·Õê¢uAL§VÊÈeï [`lÅÂh¾à'M¨8²’±7°2ŒûÙRVA¤ 
+endstream endobj 166 0 obj <</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>> endobj 165 0 obj [/ICCBased 170 0 R] endobj 170 0 obj <</Filter/FlateDecode/Length 2574/N 3>>stream
+H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó
+ 
+V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚ó
+€x¯Íú·¶Ò-
+¨ꇆ¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r 9‹\A&‘GÈ ”ˆrQ ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½Ä­ÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD ¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…åÆ’°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9
+N'çÎ)Î].ÂuæJ¸rî
+î÷ wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö
+n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=G</zÁ^Á^j¯­^—¼ Þ¡ÞZïQïBº0FX'Ü+œòáû¤útøŒû<öuñ-ôÝà{Ö÷µ__•ß˜ß-G”,ê}çïé/÷ñ¿ÀHh 8ðm W 2p[àŸƒ¸AiA«‚Ný#8$X¼?øAˆKHIÈ{!7Ä<q†¸Wüy(!46´-ôãÐaÁa†°ƒa†W†ï ¿¿@°@¹`lÁݧYÄŽˆÉH,²$òýÈÉ(Ç(YÔhÔ7ÑÎÑŠèÑ÷b<b*böÅ<Žõ‹ÕÇ~ûL&Y&9‡Ä%ÆuÇMÄsâsã‡ã¿NpJP%ìM˜I JlN<žDHJIÚtCj'•KwKg’C’—%ŸN¡§d§ §|“ꙪO=–§%§mL»½Ðu¡váx:H—¦oL¿“!ȨÉøC&13#s$ó/Y¢¬–¬³ÙÜìâì=ÙOsbsúrnåºçsOæ1óŠòvç=ËËïÏŸ\ä»hÙ¢óÖê‚#…¤Â¼Â…³‹ãoZ<]TÔUt}‰`IÃ’sK­—V-ý¤˜Y,+>TB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîÆ•Æ©ºÈº‘ºçõyõ‡Ø Ú† žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_p߶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO
+¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäüå„æ æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ
+endstream endobj 159 0 obj [/ICCBased 171 0 R] endobj 171 0 obj <</Length 3144/N 3>>stream
+
+
+
+'
+=
+T
+j
+
+ó " 9 Q i € ˜ ° È á ù  * C \ u Ž § À Ù ó & @ Z t Ž © Ã Þ ø.Id›¶Òî %A^z–³Ïì &Ca~›¹×õ1OmŒªÉè&Ed„£Ãã#Ccƒ¤Åå'Ij‹­Îð4Vx›½à&Il²ÖúAe‰®Ò÷@eŠ¯Õú Ek‘·Ý*QwžÅì;cŠ²Ú*R{£ÌõGp™Ãì@j”¾é>i”¿ê  A l ˜ Ä ð!!H!u!¡!Î!û"'"U"‚"¯"Ý#
+#8#f#”#Â#ð$$M$|$«$Ú% %8%h%—%Ç%÷&'&W&‡&·&è''I'z'«'Ü( (?(q(¢(Ô))8)k))Ð**5*h*›*Ï++6+i++Ñ,,9,n,¢,×- -A-v-«-á..L.‚.·.î/$/Z/‘/Ç/þ050l0¤0Û11J1‚1º1ò2*2c2›2Ô3 3F33¸3ñ4+4e4ž4Ø55M5‡5Â5ý676r6®6é7$7`7œ7×88P8Œ8È99B99¼9ù:6:t:²:ï;-;k;ª;è<'<e<¤<ã="=a=¡=à> >`> >à?!?a?¢?â@#@d@¦@çA)AjA¬AîB0BrBµB÷C:C}CÀDDGDŠDÎEEUEšEÞF"FgF«FðG5G{GÀHHKH‘H×IIcI©IðJ7J}JÄK KSKšKâL*LrLºMMJM“MÜN%NnN·O
+kÍ‚0‚’‚ôƒWƒº„„€„ã…G…«††r†×‡;‡ŸˆˆiˆÎ‰3‰™‰þŠdŠÊ‹0‹–‹üŒcŒÊ1˜ÿŽfŽÎ6žnÖ‘?‘¨’’z’ã“M“¶” ”Š”ô•_•É–4–Ÿ—
+—u—à˜L˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°
+¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäüå„æ æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ
+endstream endobj 158 0 obj <</LastModified(D:20090730214335-05'00')/Private 172 0 R>> endobj 172 0 obj <</AIMetaData 173 0 R/AIPrivateData1 174 0 R/AIPrivateData10 175 0 R/AIPrivateData11 176 0 R/AIPrivateData12 177 0 R/AIPrivateData13 178 0 R/AIPrivateData14 179 0 R/AIPrivateData15 180 0 R/AIPrivateData16 181 0 R/AIPrivateData2 182 0 R/AIPrivateData3 183 0 R/AIPrivateData4 184 0 R/AIPrivateData5 185 0 R/AIPrivateData6 186 0 R/AIPrivateData7 187 0 R/AIPrivateData8 188 0 R/AIPrivateData9 189 0 R/ContainerVersion 9/CreatorVersion 14/NumBlock 16/RoundtripVersion 11>> endobj 173 0 obj <</Length 894>>stream
+%!PS-Adobe-3.0
+%%Creator: Adobe Illustrator(R) 11.0
+%%AI8_CreatorVersion: 14.0.0
+%%For: (Administrator) ()
+%%Title: (colorbox.ai)
+%%CreationDate: 7/30/2009 9:43 PM
+%%Canvassize: 16383
+%%BoundingBox: 0 73 508 701
+%%HiResBoundingBox: 0 73 508 701
+%%DocumentProcessColors: Cyan Magenta Yellow Black
+%AI5_FileFormat 7.0
+%AI3_ColorUsage: Color
+%AI7_ImageSettings: 0
+%%RGBProcessColor: 0 0 0 ([Registration])
+%AI3_TemplateBox: 512.5 383.5 512.5 383.5
+%AI3_TileBox: 116 78 908 690
+%AI3_DocumentPreview: None
+%AI5_ArtSize: 14400 14400
+%AI5_RulerUnits: 6
+%AI9_ColorModel: 1
+%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
+%AI5_TargetResolution: 800
+%AI5_NumLayers: 1
+%AI9_OpenToView: 93.25 700 8 1780 1006 18 0 0 45 111 1 0 1 1 1 0 1
+%AI5_OpenViewLayers: 7
+%%PageOrigin:0 0
+%AI7_GridSettings: 100 4 100 4 1 0 0.8 0.8 0.8 0.9 0.9 0.9
+%AI9_Flatten: 1
+%AI12_CMSettings: 00.MS
+%%EndComments
+
+endstream endobj 174 0 obj <</Length 6746>>stream
+%%BoundingBox: 0 73 508 701
+%%HiResBoundingBox: 0 73 508 701
+%AI7_Thumbnail: 104 128 8
+%%BeginData: 6616 Hex Bytes
+%0000330000660000990000CC0033000033330033660033990033CC0033FF
+%0066000066330066660066990066CC0066FF009900009933009966009999
+%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
+%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
+%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
+%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
+%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
+%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
+%6666006666336666666666996666CC6666FF669900669933669966669999
+%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
+%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
+%9933009933339933669933999933CC9933FF996600996633996666996699
+%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
+%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
+%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
+%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
+%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
+%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
+%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
+%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
+%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
+%000011111111220000002200000022222222440000004400000044444444
+%550000005500000055555555770000007700000077777777880000008800
+%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
+%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
+%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
+%524C45FDA0FFA8A8A8FFA8FFA8A87DA8A8FD5DFF5227FD06FF7D27A8FD5D
+%FF5252FD06FF52277DFD5DFF5252FD06FF7D27A8FD2AFF7D527D527D527D
+%527D52A8FD04FF7D7D527D527D527D527D7DFFFFFFA8FFA8FFA8FFA8FFA8
+%FFA8FFA8FFFFFFA8FFA8A8A8FF5252FD06FF5227A8FD2AFF522727522752
+%27522752A8FD04FF7D2752275227522752277DFFA852A8A8FF527DA8FF7D
+%52527DFFA852A8CAFFA8525252A85252FD06FF7D27A8FD2AFF5227A8A8FF
+%A8A8A85227A8FD04FF52277DFFA8FFA8FF7D277DA8F82727A85227F87DA8
+%A827F87DFFA82727A8A8A8275252FF5252FD06FF5227A8FD2AFF5252FD06
+%FF7D27A8FD04FF7D27A8FD06FF277DA87D52A8A8A85252A8FF7D52527DFF
+%FF277DA8FFA8525252FF7D52FD06FF7D27A8FD2AFF5252FD06FF7D27A8FD
+%04FF5227A8FD05FF7D277DFFA8A8A8FFA8A8A8FFA8A8A8FF7DFFA8A8A8FF
+%A8A87DA87DFF5252FD06FF5227A8FD2AFF5252FD06FF7D27A8FD04FF7D27
+%A8FD05FFA8277DFFFFA8FFA8FFA8FFA8FFA8FFFFFFA8FFFFFFA8FFA8FFA8
+%FFA85252FD06FF7D27A8FD2AFF5227FFFFFFA8FFFF7DF8A8FD04FF7D277D
+%FFFFFFA8FF7D277DFFA8A8A8FFA8A87DFFA8A87DA87DFFA8A8A8FFA8FF7D
+%7D7DFF5252A8FD05FF52277DFD2AFF527DA8FFA8FFA8FF7D27A8FD04FF7D
+%27A8FFFFA8FFFFA827A8A87D52A8CAA8527DA8FFA87D52A8A8FF527DA8FF
+%A87D7DA8FF5252FD06FF7D27A8FD2AFF5252FFA8FFA8FFFF7DF8A8FD04FF
+%7D27A8FFA8FFA8FFA8277DFF7D7D7DFFA87D7DFFA8A8527D7DFFA87D7DFF
+%A8FF527D7DFF5252FD06FF5227A8FD2AFF5252A8FFA8FFA8FF7D27A8FD04
+%FF7D27A8A8FFA8FFA8A8277DFFFFA8FFA8FFA8FFA8FFFD04A8CAFFA8FFA8
+%FFFD05A85252FD06FF7D27A8FD2AFF5252FFA8FFA8FFA87D27A8FD04FF52
+%27A8FFA8FFA8FF7D277DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
+%FFA8FFA8FF5252FD06FF5227A8FD2AFF5252A8FFA8FFA8FF7D27A8FD04FF
+%7D27A8A8FFA8FFA8A8277DFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
+%FFA8FFA8FFA87D52FD06FF7D27A8FD2AFF5252FFA8FFA8FFFF7D27A8FD04
+%FF5252A8FFA8FFA8FFA8527DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
+%FFA8FFA8FFA8FF5252FD06FF5227A8FD2AFF5252A8FFA8FFA8FF5227A8FD
+%04FF7D277DA8FFA8FFA87D277DFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
+%FFA8FFA8FFA8FFA85252FD06FF7D27A8FD2AFF52FD0927A8FD04FF52FD09
+%2752FFA8CAA8FFA8CAA8FFA8CAA8FFA8CAA8FFA8CAA8FFA8CAA8FF5252A8
+%FD05FF52277DFD2AFF7DA87D7D7DA87D7D7DA8A8FD04FFA87DA87D7D7DA8
+%7D7D7DA8FD19FF5252FD06FF7D27A8FD5DFF5252FD06FF5227A8FD5DFF52
+%52FD06FF7D27A8FD5DFF5252A8FFA8FFFFFF5227A8FD5EFFFD09A8FD62FF
+%A8FFA8FDFCFFFDD3FFA87DA87DA87DA8A8FD5AFF52FD05FFA827F827F8F8
+%27FFFFFFA8FFFF7DA8FD53FFF8F82727277DFF52F85252F87DFFA8FD0427
+%F8FD54FFFD05F827FF7DF827F8F87DFF27FD05F8A8FD53FFFD05F827FFFF
+%7D272752FFFF27FD05F8FD54FFF8F827F8F827A8FD07FFF8F8F827F8F8A8
+%FD53FFF8277D522727FD08FF27F8525252F8FD54FFF852277DF827FD08FF
+%F8F852525227A8FD53FFF8275227F827FD08FF27F8275227F8FD54FFFD05
+%F827FD08FFF8F8F827F8F8A8FD53FFFD05F827FD08FF27FD05F8FD54FFFD
+%05F827FD08FF27FD05F8A8FD53FFF827525252A8FD09FFFD0452F8FD54FF
+%7DFD05FFA8FD0CFFA8A8FD53FFA8FD12FF7DFD54FFF827275227A8FD08FF
+%A852272727F8A8FD53FFFD05F827FD08FF27FD05F8FD54FFFD05F827FD08
+%FFFD06F8A8FD53FFF8F852F8F827FD08FF27F82752F8F8FD54FFF87DFF7D
+%F827FD08FFF8277DFF52F8A8FD53FF52FFFFFF52F8FD08FF2727FFFFFF52
+%FD54FFF87DA8A8F827A8FD07FFF8277DFF5227A8FD53FFF8F852F8F827FD
+%08FF27F82752F8F8FD54FFFD05F8277D525252275252A8FD05F827A8FD53
+%FFFD05F827FF27F85252F852FF27FD05F8FD54FFF8272727F8A8FF76F87D
+%52F87DFF7D27F827F8F8A8FD53FF7DFD06FFA827F8F8F8FD07FF52FD5CFF
+%A87D7DA8FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFC
+%FFFDFCFFFDFCFFFDFCFFFD80FFA8FD07FFA8FD53FF7DA8FFFFFF7DA8FFFF
+%FF7D7DFFFFFF7DA8FFFFFFA87DFD52FF52A8FFFFA87D7DFFFFFF7D7DFFFF
+%FF7D7DFFFFFF7D7DFD67FFA8FDFCFFFD26FF277DFFFFA82752FFFFFF2752
+%FFFFFF7D7DFFFFFF2752A8FD50FFA8F827FFFFA8F852FFFFFF2727FFFFFF
+%277DFFFFFF5227FD52FFA8FD09FFA8A8A8FD07FF7DA8FDFCFFFDFCFFFDA2
+%FFA8FFA8FD64FFA8FFA8FFA8FD62FFA8FD05FFA8FD66FFA8FD62FFA8FD04
+%FFA8A8FD60FFA8FD05FFA8FD22FFA8FD04FFA8527D7DFFFFFFA8FFA8FFFF
+%FFA8FFFFFFA8FFA8FFFFA8527D7D7D527D7DFFFFFFA87D52A8FD16FFA8FD
+%05FFA8FD21FFA8FD04FFA87D52A8FFFFA9FD0EFFA8527D527D527D527D7D
+%FFFFA8527DA8FD15FFA8FD05FFA8FD22FFA8FD04FFA852527DFFFFFFA87D
+%A8FFA8FF52A8A8FFA87DA8FF527D527D527D527D527DA8FF7D5252A8FD0C
+%FFA8FFA8FFA8FD05FFA8FD05FFA8FD26FFA87D52A8FFFFFFA97DFFFFFFA8
+%A8A8FFA8FF7DFFA87D527DA8FFFFFF7D7D52FFFFA8527DA8FD0BFFA8FD09
+%FFA8FD05FFA8FD27FFA852527DFFFFFFA8FFA8FFCFFFA8FFFFFFA8FFA8FF
+%52527DFD04FFA8527DA8FF7D5252A8FD0BFFA8A8FFFFFFA8FD05FFA8FD04
+%FFA8A8FD26FFA87D52A8FD04FFA8FD09FFA8FFFF7D527DFD04FFA87D7DFF
+%FFA8527DA8FD0BFFA8FD05FFA8FD09FFA8FD27FFA852527DFFFFFFA8FFA8
+%FFA8FD05FFA8FFCFFF527D7DFD04FFA8527DA8FF7D5252A8FD0BFFA8A8FD
+%09FFA8FD04FFA8A8FD26FFA87D52A8FFFFCFAF53FFA8FFA85AA8FFFFAF53
+%A9FF7D527D7DA8A8A8527D52FFFFA8527DA8FD0DFFA8FFFFFFA8FFFFFFA8
+%FD05FFA8FD22FF7DFD04FFA852527DFFFFFF847EA8FFA8A953A9A8FFA85A
+%A8FFFD07527D527DA8FF7D5252A8FD0CFFA8A8A8FFA8FD05FFA8FD05FFA8
+%FD21FFA8FD04FFA85252A8FD0AFFA8FD06FFA8527D527D527D527D7DFFFF
+%A8527DA8FD15FFA8FD05FFA8FD22FFA8FD05FF7DA8A8FD13FF7DA87DA87D
+%A8A8FFFFFFA8A87DFD17FFA8FD05FFA8FD60FFA8FD05FFA8FD4CFFA8FFA8
+%A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFFD05A8FD04FFA8A8FD60FFA8FD05FF
+%A8FD4CFFA8FD15FFA8FFFFFFA8FFA8FD62FFA8FFA8FFFFFFA8FD4AFFA8FD
+%19FFA8FFA8FD4CFFA8FD68FFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF
+%A8A8A8FFA8A8A8FDD4FFFF
+%%EndData
+
+endstream endobj 175 0 obj <</Filter[/FlateDecode]/Length 15093>>stream
+H‰ìWiw›ÈýþÎyÿoÊxY‹·$Úmy¤Ä±;/{ ZvC“¦QìùõS  ˜VVœ—|˜ã·ºëVUWÝ2ðcië¿ÿYûx$e41;ÇLÅ&Ÿü¼ûºÝzN5,zÿWÓU®S±»ñ`uk
+ñï÷îŒ!à=NV™ (ƒ¿ !Þ 6[ËKˆÏ¯TJ…RrOÈt»~‹T±™a—
+Q¼óÊýÎ $\¥„².ê,BàçTô·³"T½ÁZÕåfÿN¼¼lyM¦n‹“û‘^4 Ê $ô~¸7±æÌ9à¾[öuÚÍÊòAAÉÉ…\Òì
+ YêL‹Fé˜^Iµ`Þ× ¯Ä
+hI* U°býðÔ(ÊäŽýG|= Èù¼RÌfsÿoz`ÿø#¢jÃÆã¸U6À½ã9X&Êt>4„xG™¥‚}òpa”:¬lçˆÀ㎠Uˆt´åáN/Ü´‰‘õÃÃ?Bð
+Á_Í0›/$ÉÓ1¼œI2?:YN"¨Át€n‰™ŠM1ý²HÑDš_p¯3Ôû|¢ 6© 
+ñï÷îiBãd-§l~'•)ÐÕìú-RÅJd†MÍb«ºý§‹zDHGüœŠþvV„ª7XïÄ…——-¯ÉÔMÀbqr?Ò«ÄõõçºÃ`Þ9¸tDˆZ\7ô[P©rÌîI…æHC}g¾Ù™ªŽ!:ö}è±ùÛ6ÖtÇ.°M‰ã¦ü½ï rSQ¤ÚÄD‚bp,©A\1ob&3lc.=Ÿß
+ùü^>ö,I‘zóØùü‚”L³(ݘ0<¨Ã¥£Žu?V‡ #ŽáTljÞ©³ùYÖ\'ÚØ΢â±öÕÆÄ$ŸÍe÷ãÏJl¶%B Ï^Þpå…Ã- –àLÖw:gÈ´-ïK½ƒ“u ’7 w¢+¾p'¦Æïv"x%ï±–ºø–KuЦ¨§ß…”Ô3l!sà –Ω5Ë|FÉíÈ;²ïß”› ‡©ñ%f®º†¯¡ZÜ9bð’!ÔvÝèaíœÑ¾Nðßø.è
+«EUDÜ!`{€h•9CC1kÖXÿwOÞ»WGºy¡†™üÜ¥–ÿc~úñ„P¨Œ l9ÄôñiÌ:+©êf­K¥òäù.fÌEÕo-ʸ‹«v:±¡
+ÿà©î)§ÝvKª õÆíÛ¦&5 ï)#>œb±˜UæEeUõÏœd¤ÔáÐÿ£iy¯l<ñ¤lû¬ýS3êð¹HŒFÐךc]u'Sšˆ''¤
+¢‘>#—Ñ]¯ìÇá0Ž…çܧDƒjJ?¿9µ:ÎÝl.à^œó»æ¾>jº¸ BMz'Ëùiƒ\Ö0÷µ†{SÃý% ³Ój9XÒPYIvÓù(fcK>mt” Í_6xTL¬“û1IH0+~YáëÌâJ,Á,®ÀÌö¾Î,ûufJdK²’CT’ULuÅããÊ+45fVˆK¯Lý6ºýøQm¤F ?èJ75úÅûëƒèa©è?ªiªÄÑ°ôº}3ì¨uwO‹÷2 N¨½gÍ1î°md¹’À'Ñe“î|ëe3x·v¥k|xŠ]! p|ÇBª§h-~WÅ„Dè°E£ÚÒGxf‚£Câ1Ž88 ²â]ãwÛ Ê ´ ù¢ð0Âæ’#—Ìù”ÂÒqØ8Ìb®‡
+®©õå³^äi«Åƒ~ñòåÛwånuç2þV?îð}éø¦ñ¾th­5§‘9Ñúp¯Æ§/œZÿýU±BJäõa¿2äÕañˆÈ§õšª´>—ŽŸm\§íê‡Á
+­®5µæ£Êöþõj¹³½bŽx4®9¸Îlªu5ÿ2Sæ>—×öÖ7+Ï·>m–ª¯Uìüõôòlex¤ªèÆýK߬÷[ÃñÕŠ¼‹ŠL_ýt¨8Ó*díÙÆ6Û|ç”[õÏ.Ç¥£³á\S8º|_*›ê†±ù¤}´[4Þ=Ñ‹Å]û_Ö«t=Y‹^‹Z­Š ‚ *aRQëDkÕ:á\m­ÓýŸ$  íûž>çûþð
+X;¶Ò¤\¼9.¢ yô/ïb
+ðÜÆk­¿Ù÷÷Ƹ³„Mã£äèKvþUÝjĺ—û)9Öî„°iƒÞÝæfÁg­7í–ÕóiÑüìÿîµ›{¹þòÍs-š?êËÒ¹t£Ï­;Òëmxʚǡ¿ÝôzÈzs0îÄÑnu¨nY1žhÛÆÕˆöÝ´–údGJ•ü9d,Õ£cy'6,ßÔ<.`áþZÝ¿t¬õ‚MÓt9Ö÷ê\OþgÄ® ¼. ;ì ç­ã\‹ÿdõ'ÅõébÂs­Òç`t.AÿmýØÃ6ÿfúêjaw¤'×û CêêAF™?ªÌdùväÒÖâMÆ3}Pœ>ªó¸HËÓ©ú…ðÖ@ï¾gÔN§™ŸÇ(o•ï{Šž3áj„4-Æ`ï 7W"âËc%e¾« 5%Ó§ïhØ\¿¦Œ˜|VÊáÏ
+Í¥Š<2ÂHÚÒyŸ»
+µf²¿áŸV¹j¡Ãm{ƒ Ì k„:Ú8jkã&8kAž5ÜBr~ž6eˆ§f¤Û"P†v»«>1BX<ƹ hE•¥ç_w¬<•õ=i‘^ó ›*jî,Ôˆ8¯ÎöTÙ$üWH4¶hl»áAÀ{Æ(V¥ìõî—ýí;ESÎÙýâ¥2LŸ{îÉ×"#îÓÁ‹iˆÐçÃÆ!ÏÆ9÷|õÌ»¯¥ù§ÉñjXºƒñ?¨#Í2Å]lè î,‡[
+‡ê‡k9váMü(2€½à×ñrDgdÂÙ,»¸"š®à#43ӪǾêЃ”ê•ax²ëÛñø1V‹ÿÝh™0ïØLŽM4 Ý…õ¥ð€Ðµ^q0ZLx~Ð[c¿q*æŸaattö1@.Ì>B‡ýA ܆qq ·@¾67Ó­êxêˆCrüAØ“—t[lÞÎH#‚ºÆdÃ,=e9•Ð²C胈˜•>ZëošwÞh€Ÿ€‡+Òé
+‡t#1«BY”P¶‡’éÎêz(·;‚oë3ïÂ
+\;7 ê(u†],gùoÍ€Ô³/Ý„Ýi³ÂJÝ[DŽÉq'À½ñŽ¾[ä=W÷à"™êÝ2ò“™ÄØlþ¬£ÐfQâeùÊùj¥´ã´úedíî?›ùm
+³"˜É=²[nV@“Œ¸—KŸK¬üŒ
+kx*y¼ò§Ïú³:âcìFŽÎo:wÇÿS
+‘0&‹^Ü–üˆ3ßFšüS'HÖYlHdªÐZ“1™½å˜ù©Å…ÔIÆJH¦Äˆ±{¬›9Eóg'Ä,iáÛAËi°€´8{XNRy‹Æct<Mh„x”Lt“è ­È·Œh®—
+‹IÒé­ß(rGÞ3I5gbÜŒáXDƒ‚*jÃ؉b2ƒ˜,ºPûðx‘ÝÇKékÔb$”KC1É@ŽarN ý3‡… a³_¾Û"Ø©‰F
+é1Ɖ{çb]„ÝßJÎr¶{É“Ñ,$ËTÍeîs¥JhÝs,´3ð%n,†ªðpKÂQx40Ѓ rü"¡’HYlç/4 tTòœð¡—³"˜ú•nÜ7/ª‘ø™HßXÀòhÏ”K{-O÷Yúšñ9j1Ü&r“ŒëeG"t Š+g‹²%,¡D@oa3 ¥lm¦`èÊl²Ÿ–aÐIª1Ƶ—3ÅLxK&ˆ´ù¸3)yK”Cþ¶ÕŽlÏMìñ=BíðPbúåÙç[ÜH\"‰9]hˆÚi\‹¨ÇG0j¸xÔVåàò²qP
+Ö &0`Ó2е¨O, ¨G ËÓlMB4~b ~à.HÕÐpƒÂ颊òœ’
+—•zmáG‹O§–Y^©=¢©±o;n„çÜ¢Äï,QSÍ4'Ï©øy0ô' È-Š¨È@õíC-˜„"ÿû"|g¸ÎÞZ¦a™à­b/ÃKR¬ŽÕE™D˜í%ç/Ä[[ÿ_D«\—¹çhíK]Ö¬•8ÿ‹ÇˆDÁ1~ïñr7=âºTŠˆá2omòKg"÷ᒫ†D>âDq Ä2ùBEÎ `q#Ùe½µe¢@É Úã¡oͤéìOü ©š‘ûê¯ÓÐè­·¥ÃýàTüwv÷=KÈžÒagc5êÛ•ªþ±uú?©¯}«5uc^©º;…˱qêÄFšÎZI“Kœ@+OÁMnô¿ Òp¡(âFÐ’sé°‡2¾ƒüõ´Ú@•Èªèb6Mª‰øZtïÊépáçöª1ô櫵!S"‰æµø‰²vçùRƒÙÆE1Lå6‹°£Æhb Û;ËS%i˜=>ÄõIK4DI…¢â„A\æ¹"/N»¤6pHâ^ û 
+.—‡áìE"ÅTRœh ¨Un2C¿¦XGLüàuĽÊØçÜøñB"ã?6"òh H™«’ºgöÅð—9ç| °v¢d›á\:U©ºsyº‡€xq¾#“ð‹dŒTŽ i¢s& ¦°SÈÌ’§ÜàK½™:Ñ——9Ìs>5(mDÆKƒT†,ýM‡ŠÌE/={ÈÀÍ2U¤w¬/}Þ¨gB§AÜv‹ ºvR+'ÿüH&rè3ƒ‹WwDUwÀ‚;Pÿ¸Ýu‹Ÿà„ÝFŸ©æ}””ͧ§} 9>6£Ó1¤ê¬ ¯³ö?A#­`RŽ°ô â_iÐŽ>RQg4ž¾HFÜ)ðƒÛ÷”óµ)Ò4ro`Šº€økKNX °’b³„³§râî‡Qa¿z  ›©ûÆ£6Š±Ke`I|Ýìó>HÓ
+íJ}³1lè÷üDï¬6¼³ryV¹¨hRç½ý$T.xÌ/*Ç[ízvúÜ|½) ¾^Õ÷ࣼ°hnNy¯Ïÿ×<ÒùûQõ<#CX®/Nö÷ëg'Õ«Ic8ÜqÂacØUÊ‘>oñÜ4 »ñ}ý´mÇü¸x¸v“ý«_æ®Nƒ·Ù¸#ê2wZ“i+{ô“®=7µ¯ýÌòûý.>—ù±Röô|í иñz8OÏKÖã«3™‚òå±=OÐ+9£´Æ¾Ñ—L»[(îÿ<¶=tJ Ùoa8™}*¯—Žw«wx7˾]² }¹¯¶—ÄÖÊÝÁb}¥/ïæ}kKªöÅý’Í:/1e‡£bëEùh«ñÎz²þ…mo#Œ•{c½æ6w¤Íþ÷0w³'¥ë(_«O7•pÖòãSAhVomV^w×…Ÿ‡›úA­ÆZÆòE$ë—Rù±Æʽb¥p~NÃ,¼ß—ZCi X÷÷‚~ÙžÏY{ÛÛ¼ЇüÔfšânCêøSûL_Ú=ÎZ[Mmù¥læî÷ÃY‹¿ÃXÆ&®Þj6q«Lÿ9,~ g½éìn¼W­n+Û0š‚ÍjÎw/ê%½øÎZÎ<fkÚýM+TÓ_™Ý³Ñ®`å4Nj:§A®nlh-‚õñ¥ ¼\ôC}]Xmë-ÿ0
+4ó ß »õ¯gk<È…ý ëõ×æãœõqÿ¬Wgc¢@ý-6°FÐÄ
+X0–Ø£Æh4ñ4‰(øÿowAAXïò…»¸°ïM{3ã5 ÆÚµMOAåÆþÌÖ—<Uq
+þ¾{ÿ§`qZN‹±ÎúÄðëŒ/êC§8§ÕŸWkiÊðŸ×ë﨎Xœ~ﶡÍ2a8Õ2m8ižFkóçÿè”äæÓé®wTFÌél
+•F«ð OMz´g¦ß’cB²ÚiVô¥Å# T((NPâ}ý·$OÅ>Í/h厊´ýàßj †ÑƒÛ Ó*ÖdZþð«ªVï Á~ˆ>šéTåƒ&§Ÿ…O€Õ{×X¥÷ûˆìv
+7åùðŸÌ܇V\µ9ОýIºY¦ܸ¡ßꘙif!°GÙÇÀþ˜<ê8ñÍlÙWw ëŠÂîáw1ñ—¯(ÚÌ
+
+q›÷Ʊ!'u°MKáôAî7qÒÚš‰Vø¿]¥rJy_”°œ
+^5µ2Oác±µ-b#…—dWF
+¾;g˜p#ÃÒg¤Åt³Ð 1eÍ! ø÷ ËÜxl,¥³Ö¤?[¿á­UÃ.·í=ßô~`5øãyZÏϘâ<ãt ÙˆósNõž`–×êpyœ~!,k7ÍÐ/Éدp)¨/Yî6f£€´–%lÓìCÒN'`žS6–åayÁq:I83
+,¬± «á¾<¼·Õ ,ÓW çÒÆ0kÏ8‚³U­C³Vxø×s°p‰e“†Öà –'|ˆ—1U(E·´v¨:ëq`™Ó­¡~‘Ô,Ñû¾ýѵö8²jih„ #Cƒ¹ð 44¿V†f¸tnh07côžeQ‹ªæœÌás3 ïÉmhÞâÞ$/€gx ¨uÌ u­hLåÇЀœnÃû2wϸ‚ÌÓÐ`ê6Êf Î 6H$nõYFŽch`¿âØZÀjâþ‰´ëWAœþvcú¦Ñ±‡…Là›F‰7Í*$gˆå–_V4,Cx:ó¾@’O–dzߌ‡»ñ0ú€gà¯OÖ½!GÞ´x:I›CŽ=Ç“ï}Ä÷„N;€ò_VL¾'Å-Ç~B¾mýŠI|Ù˜B°7ÜäÈŒ%ð È­³¼²Î°ãÑàé4$K/+,¡)<˜ …”úêâk›ÆµûdÈ™å⻀g©?·µ‡VX‚ÇƧÁqåóx°„.´“±° x^ mð2L,×α´•ƒä0^Ä#b „$¨É–öW@L4‡¾âÅsa*U¿ò}h
+3‹ç,y`‚J¨™(–ùÿø`£í47ÑØúOåâíéíBzTzíBì·t#¯F¹—\GšÇË¥XíAòMkm)Öî¤#a~§BÜ€ÿ(+ý¡2¹œÅ»bGúw&˜zLÝT®ÂƒH¾p•ªŸƒñù.”×—†_9M\'´ª“oZŠ6•[9ü|+¥Â ¯ÎÔ?#é­#%c·éï
+æŸ>­óÊ%Lâ–-åó-S›¡M™^å]´M 5íäüNzµ¶>çˆ&ÜLgû¦yU1Ã1‚“û·m» ð4-]ñ'³/¶Ñª}#ÁÅuâ³Ø)~+[©nڪ̈́ã'‰»÷M™?†” ë'½÷9óW›—ù‰á`_§žx:{oAÊ·ô´UÀIðÏ Wŧÿÿ*e¶ ¯b¼4|—¢­nXñœ=‰è_5[6r«=™n‡Y“´tíÀãçáÖûu©:ÉcÓ¾.²ÍûF±½é& MÝíhMB§SõÈfÊ•Êlk¯Ó$ðV@¡…‚³±P, ]4„¥¥,ÅfSÉÛ3Huv´•£hÌP¨i aÍ “£`ȉÚ9Rè¡Ù¸Õz€‡·VøŒÝÞƒ;‡V@ŸÃXùÛ—L"Tb"®[p·äU†ã|’ÄéÇ´·ïÄ uƒùwî'~ZúP¬³C73Á·À²ï_àbêp‰iîTªVjšMÆ©.ƒð ÔËÜ@tqâ§Åì7ƒu.Qz¼¬1;WÀf´´û5³î—L9^en¸î— [¥r¹µ.è¸iQ[+ﱂûÒlÔHN<oJu߆>úà
+PB÷–?¤OÛWm¹®‚à™âÅÈ…f Pž]TR½¾,]_VüÛ훨â$ðW¶co ¤ÑG_Õ#ìWe+n2À[ýµ£Ù«^6&j\~^«(;(ÕÝ%hÊn´±æ[¸iœÇ%HîøQZ€ˆfI¹û2ùjAãqÄa$ýÙú -;ðŒ«a|[fGЪ~lØ RH‡¢Î0ÕÒLq;O¯†‡©àž5vÊƽÓ
+?Ð<‚U©0³ÃÎ"i«+KßÃß¼àÄö¶ö$ï%ê(+ŠS·Æ $r¤£áÆ&Püàºà3 Pâ( bƒ®
+(ñÚFS1öÝ·n=Zµ÷Û–uNÌ0¹5Ž´@NÃ¥óœöÊ”©5é­2\¿Þ_•‘ØxM^znðÐD ·ùί„áVƒ'Û¢NšB—¸]Ô±)1®€ý”êtÜþ/À
+endstream endobj 176 0 obj <</Filter[/FlateDecode]/Length 17828>>stream
+H‰¬WYWâÌ}¿kÝ„!B2…  ai@Ú¡‘ÿÿUUBÈP_jÙm<óÙ{ŸÁ,Î$¦_Ûh±(£EZ Ñóÿÿ£Õ‹H57ÝÜd/}Õp;µMÚÑÒ
+³1¥ ªu6À˜Âû nÎØ8áF†À VC¥Ñú<€½Ñ{É,YÿèwêeZc¸ž˜›lW´~ÑÅ;ÈëÆX¹ÝÑí6øú¼@Dºÿ–¿ò±NŸ}ÑGƘÈÛÂÒ«º7{ÇK÷Y>(fNŽxËDædõ¯_$Ú4v ‘šÝô@“o\“º½‡½éᣦI«Z£
+¦ÛõŸ¯1P¯ô1øSÀl°îMÄÈŽ€[Cóg3ª¢l@/õ·z-s¡ÓX e³¯Í…Ô!3lÁb1›¬ÆMòVö€{“‡"HQ@Kj±U@¬0®Zò’BX"ÈÐ}à þ÷ý2ÊAÓî L"è¤`Úh!‚°È5iÊôI‚oàI©×šõ‚°hOgŒíö¡ÃcÌŸ¿€j7miÒpp´ö®€{ÚÔëÄ[Æ¡h¬¹hl`Î[Í‹oö” ܘYT£U.¬¬Ux¼A” úlV~ñwΰ‹>+ßã²²‰’¡°K÷V>Èu€|ó ,Ú}Èʦ4uÉÁÊp6pYÙ”¡Z´Ã$Õ :î÷” ¯µ³ëeÁÊ&
+UÙ“•¡I<V6Ù;œ4KVÎ…h[VÖú®§ d4¬œ 1Žý*3‹Ÿ~<þ—ÈÑèQíÍ’adO#éC“G獅½„Jk.ø…{Á®l¾!1.¸a´Ä6šX°z¢¢€sÎiÌ5²¡ ’`Q’?±°ê9{´È…b&´PÜ#¾úŠ4ý¥ C®1ö%@ÕlÙSÚÁ¤ŠKˆQ_ƒ•>QÜpT©®2µ5ßhl¸âU-ð¦×ˆÉ'8Ku­ezÆï¢åTqù#™Ýµõ…$½T[Å
+‡JÎÖ@¿
+ çÀ€”)±IïÆ.±ùÅWÆ5Í4LÝòS÷¢ùÅm
+ÃÙ\¬ænIL§hÙZðîoëÅ5Í&…S´l-ð/™Ÿ¸Z«“Ö
+’´fíûlkº©­…°°†y7ñHëaTi ­'S¾srÝ€jÍÿ{•ûRn>(BM‡’¡ýQ¢ëÏ>äu•üÈ3‹·ÅÀ¹rzÑŒ•sÐt…áF§^G.©ÍЭµ¸û%7ê‰k€‰tú†kã-7ºY‡l¤’ÛöÍskÜÃÕ§ÊiD`]¹fjŒ]9GD#0¢ÿÙ¡`u°zï’Z4Ö\Â:c¤ ëÚ±l0¾û±¢å"ð~S> ‰§×°:
+±­Õ m×NÑ憞¿Ö¬ݘç\²èqi7ÜÜ’Sä(DEƒ‡(˜–šm€X°£A¬­¸ý)‘s£k,Ké’›Ä<^k¶†p ÀÊŠÖÝó+y±&+ˆÖN1”ðÎê<4„³çXšø§¸…|ãH¯L}c;‘̲™[-žé¾±Ú½ÝÑA¼Á×ç
+¨Sþ;“oßɕ€ÉÝêK^‡›&àКæ FÉF*3aFk£ 24èt°æ€ìL©{¬½_Õ‰y€àb tP:.¹–ØF#W¤ÜûPʵ[çTÎHpFäO|FAø-S”åâ=mW(Ð'Ím÷l®%0Ú?^-Ú~÷ìØà­Ž$ʉ•;P°r“ÿX¯ÖµÄ‘ ú,L@@D”{ @tÅ뀺¢#¼ÿvw’tº“NàO¾™Ý¡ªºêœS§~÷×¹ÔƇj¹t.õ°©ªn}ùNÁtäl^£œ‚ßm§×ÕP̧Y§Ô¢Lé»íœ¹õœE¡´Ï¬“à‘DZæ€ÚQ¨Iåal­ˆ‹ÇZ0QhD¡FZ裨<uq¦#ùLÃáÉ"yÖqÚ¦<z¡¹=-lo4Så§ûäÖ+C„ùwÆWY¤ša
+¥°WË•`ø4rmPSH¶…ÄÛR-Sx»PákhÔõËÛ…J’M¼§¤ä­®ÐNå»Âþx«"±¡P×oKƒBŒ
+F†#ùn( okM5©»oAM&" 
+—••·è(ô,kgÞZ ”ŠQw?¼g/OHC³ö52ŠÛ6GVÌ|Œ£$¦tGŒá5ŽU`tC%/~ß°í]èNV†‚!}¸{-øVÇÙëû­=Ásf<€Àšb$‹À[ 6b‡¾^h5PÎ*ãÅîz
+ihÀm4èí0½ÀÓF€µÅ·vL¡ m
+_㵕aH¿[‹§§qnå|4NÝÊ ÚÀóT°­dêVÎGE×y•ÅÙzLþÇåãè£o¾×t ‹gŠM>*í'ä6^ÊŒ·¥'A¿X/8ÐÃŽyßX8ZGG%I½d’Ó)#gC~s–‘F”5a«NSÎ7“Ã…à¡«E>š ªHƒ#ùñsT0ü—õ¹ô/¡I ,žnÕñº.¡ú~ðUp…Nª:Wj§Í…¬ªËjñ¬ùܶ˜%T§ 5Í™e½×'óUÕÑÔu™]w·
+ëR œ<Êo}9¼ÊýDI¿WÔÛ:·Êý)õL)Ê>_[õ×ãrö$†²zÙfÅ Çm§åÊM|1º·€#¢<;¬€æšÅ|í~l4ƒÿ®üÈ‘£"—={Úw÷•þýÍÄF‰ôåÛVHƒø»yÎK Š ñðʳº,9íÅ =
+OHâí 7ijuÐf
+w7`(Ph½&Þê¸ïFí­s­zc³Ùð8sU¿û»œbÃÈŒ>.Ͻ¢uËVC@Ä¢¥û/÷h`^…”g´,Ç-³› )Ô4kßE†h™?ò³Ç3ÃU†¥iYŽ¿œ}L½¢)bÞ³°\¤9¸þïêų¶K!Zä_úü‰¥i-ž J v¢¸J}Uú•ú_­¨ÚLÝÒyÍÍ$ _B¤ŸApýåïæi~`çbö/ßú-ý,· Ý(`Ñ¥Áÿ½Ë”/Žœþß"Y¹>/\)ýÉã³(U'ïr¢7ˆ7BG÷¢Å˜Mù‚ë¥qÝÛÞ7D§€Ä&ïm¹¯Ê­iˆM‡ÿ¦Ý72Á“ÉŽÝj3dÐ@Q<ˆÖ^ÑpkÒÉ“¬ ²ƒ~‰¯W)2•±;Ävñ‘£ÁP¿¤PºòmÅP˜éÑk\n$óuls˜:HO½@!´·Î a,RÀsøÑî;«á䣘á„p‹‚4[œ·(Žø^gŸ³á.˜Ûž¸Û¹@–êÞ„åU #Å\ø¥L–˜Fd³íj×4×p6ÈZ[NÁñq”t
+J‡•ód@”¬:è\ªzwÖÞWç.37´ÑêMÓ¢YàJíÑ.¢•ÓÇP´´X¤\¦uØ´©ðRw¿‚Ø*¬Kõ‡•B
+ҘѴϬ“ài' ÐåùYËëð‰×ãÚGP;Ò¹7>vˆ‚íúAã>Ø~z+¯uRuˆ7’zÉt™)*¯…€ÃúdÂQ7Hc½Ÿc<ÒÊ ã §º8Ij½Þ4[÷•áÓ%ëY“‰x­ù)ËY“C
+XÇ(K®ø*‹³õ ‰<–Eì^ÂkÓÅ,Llžéý/Ú7Û~~éÙ6=„Îæ%<ÚxG¨&Ì&/Ôæªb6š†~ô;‚@$ÊKøŠ¹Ã†¹%ÍÍ2Å>4g<¤[ƒ¬­÷ƒ¯Ê€+ôÁsÅpåæ+ôÛ¨çzI+úæ9¢ l /빕I»VR Ô<·öU Wu¯é¦Yî: 6À«@£º3{‡ ”ewÓ£áÏ­¼}&ñ­éT¼Ü,Û0¶ÕEÐ?iö4ŒR¾{E­!Íß0r¿L–ÖÆ ”F ñ$R‚¡ ûAL£йÌ0çèCئŠék÷èܯôšî=44Í*D.=tc MsXy]í±‡Pl ÉõC‹"(¸¦¦­‹,W+Ó·.n|…Dë—ªŽ>BÞ-5¶7x0y6M‚U&€±/i0®K˜Æ³U¬V¹Iðɲ9ÂH†Ì{3]ö¯Xï+ê‰ pÀ$X„Ó
+‹b?š´%$tXýl°–C½o` Çí¨(EÐ;r:l²¦YË6uúâ[-qï rCvsíXÒ€2Êlíƽë‘™xoJ•[Ó‚
+…ˆÐ—gnŽÛH‡Ñ 7W\¨&Íò®‰æƒNk;{ ›ŸËÈ„G±Æ.·¯c¬H§Ý ÷"Vÿs¥”}||[
+ѳHâ/ºÅ¨Ê6›ÐÍã ½ˆ ñ¥f¢Ò~ì=”KÒ×±áÉ?^îÇøhÝ•YЪßb‘=AnúÖn”àƒï˜ >DÍ¿æøâ¦L£‡½Qì†úŽØåñÍkkƒ#¦$nRBË«jVÆw{îÍ- ÂRœa„¨›-“gØ\š4;5ÏìíúæÜ« y nk8"?Î9˜ÜýèÜ §š›¸^Ы‰Ù¼Ú²[e³Í[ÙŸ„S?!BÉÔöc‡H:táÊü¸ý¡‚¾ßlèãþzŠb¥ïǺÛLL¨òot*è³g¹¶Ší—kª –ú£Ýe3Q[˜V÷gpeþkñÝñúÎÏ∗w4wÅö•v}Ó¸ÀŸêáôe¥=hòš‚r%¿¦€¶$­ULˆ ³
+~‘ºœÂhØügÖ) Í}ø‡Þ3¡€Î؆[³ü§à»ˆõBÝØÖÌ4 ü&¹ÌŽÓÝ°¹Ù€•£úM„F40H"ÈŒ‚V¨k
+h?ÓÆ \âå³õ¥›
+ ›{"¨rAGÐ&-äR@(š V†óËu›•;–ÌÒ+_P²áæÈ>‹÷O„tÕ ämAÿ +¿-¬|1 ›ÿ`ekà¡X Z»î/XùüMnƒÖþ„•;–¬çf„; ý@BͱòÅP8VÚY.ÍÊG¼íù7¬l˜<°ò…½}¥ý'+Ã=$Ç]ce„°v¤dèæ׬ }5Ö÷òõŠrã£Ê>êðÑØšìXÖ‰&ß7÷M^³‡ÜÜ1ÙÅþfƒÛ)íb‰ûå×Òý6V͘#é“´Ü xf7+no1ÅùÁ Ó*›
+Ø(Õ³iq¦làÛ*÷Ç?ë²w§¿ÌÄZñö ›_˜\{4TràÙDé­…Á{À§˜®È¡‚×°¼#é¥ÁÅ w䟄d¬Kª*uköÕg&Žï@;™ˆ]žêM¹PCÓ"y'iÐtó IH¹ó-’ê×K«»ºI¹ó-ÊÍPô0&)×j&à+¤{Ø=¯ÖþýÉ/z¼f™ih£Zo'ã }:+oƺ6G“owµÞÏ&TáУª”êÇpht°6ØSxû<…2¥`®8…%ø&•Ï;¨÷Êt¹ì[èµ®õZëîkn´¹ß·»–EÏUÁÖõAC£ã8“÷ó…9צAõ+êÒûùb‡ŒS+…¬éDbÝZÌ”¨Ò÷m}¥Vó¡ÒÎl @±ÅA“W …ÌÓ<·|î±{9øí¾Ñ
+m¿Ò¤?g»ø{¼C.H_J¯7Ç3èf{¬jäþ2½‘<¯£¨®Ó«‚“4L׋í /Õç‰%*[h]ÑB¼Ü¬˜} `x(˜s^Ìct¤˜u±Óˆ
+ iÔ{ ë\y@‘ÅŸ@±õ,€òg·*øl*ßTi¨>w%Ð|¨ ¹öh •rÏ@ÛY°ƒvô„ntýÅë+¾É諹#¥o"ëÆʺ†&“:ƒ\Ñ+0#Ìù1ÏÅË–;$:ø g­ÔKqÛL÷*:ÐzÁÛÅHÈRJ÷Ü®’’Ããùè€AàbÐ _òvŸu=@–\1¯»ŠŒ9¶ù>•Ò¾¨å\ ¶ôÕGÚ
+èü›•6¹”úzָȢÉ~oí“l*¨úsÐ Ç–òwõ”dë™V˜ïå;ONêE:}¹×–sè95W4êŽ\…Ù
+GÁâ½)~ŒJ-a:àc{!{Päzo$0‡Ñž»A$°Ã/ÖÆç¡_*¾Ã’}óœÞ‰+Æ·è¡3vq#Õ•&YûYl&
+’/bßÂy×Ñ4ç]õY%lää*燩šÅÓŠöÆ'¬ ÓK.ú¬PïUñ¤4µ8TbÖ(úk)|½ÆŸ RáBèò—Òq?MÄ‘«n5J ƒéûcÕ±ª6tI”}£ÉTŠ±ÃÃpή‰p
+å]ŠLg‘ ÙÂE4bŒÀý@|g …Æ/­d¼ÿ&rlzƒSÕµ±ß?]C}£HOO3qåÄQ %?ŠR©*f¹œ±ù„‰)ˤ8jô6ì 4­B4ƒcCXxÍ-Æ,"«Új=hªNïx‘±áŠô9lË='VÜòß!©i¦(»1wyÿ¯¿ *°K©Ï¥¼?«ÃR¥ÑÎô³iŸ‹™eÙ&÷òIȶ+Ât†»%!S)?9³ò%©lC3-5ÕZ
+1oû¤¡»ñ
+M¶°ûk4«5~–t.Ï„IæSWÚYGÐ%W´$¯V«saÚï“|©¢‘R*U Ã¹´;­ÈÙJHÁ(ǯϠ5˜<E6cÊ{“l\14ÇŸŒÚ¨n®Ù
+3Cº¹êæ™ê—ìa6…ð
+a‚o«¬x$–†¨>òJzžq‡'›SS®ØñÎÕÏ…$/-·!ý»‰øþfü…˜^NäñÊK/€“ü,²€æ}"!ˆŠ>ì@nlO˜µpxiÀí«œæ»çc˜JL˜dÕÜCO ´Þ¸`!Ñ
+w 2Æ×™\š±¯vE°Kd’áqô×>){¾ä³ €~XÚÍŽé¢EÊi§_¬V$f` †«whž¦Y{W½=q èµ²Ÿ¶ÎTjK©QZæz–“„
+ª ƒ0(\äµî¦ûÚ-ZÿB;  íiáþzظ‘&ºë ÉÞ)]ÙoT­¡)Æ&ðš ËÉŸ(z¬Tªaá¦^fÆ<+£j*êdäÊɸ?Šè—±X£¶ÓÙêBÊo m=ÐögŸØó´4Ã)ðœ=™&½U͉ÆCb­[ž­‡aƒÃ}ÕÉâs*\0Í Ýa΢‹Äé#¾Á&OpFÙâ;y§3YÊ„…Ú(©äçj—CƉûpeðÌIŒý K~»uµ¸ŽÖž.Òyašåh]Àž» ~TɨÇ÷b¬\†ø…ÎØ2£«ôGêâ»ú u™>„)¾ÎÙlv¼eŠ¬¯Å–Z[Ó6tiG›cæ&µ%ô÷ó¬Cg<ø–dKÆ„è$®;€9ëpÓnÆwN „€
+ÜÊw&ÞF^]0ö™}L诼OT˜ ¡E2n´cu¼ Qgª@¯Ã.ä
+Ð73dxK&~8¨Y€ºÖifÕ–6çzݸ…Yr6à´DÀʉ±Î)YyLsóÜÔ–ô£KÃ2tG»dV8£Å7öèFû h·?ƒ;éº:IuèòtnCí‰*½\[ ×jÝ€®¸Q·˜è`58îüÉ“mÉ#=™•£YµåÙwF}s‹qA]Å°UdönöDmi3…\gÔ5Ãþô„Šl|&0ÈØNíÌ-°×zÿb–qÆÊäüÉÂ÷^
+Ùn@úñï¢ðáŒ&¹~R®ž˜>!§Ò}"±êíxi„ƒL‹sºú¦¢ùæØ؜¥3¨ˆvò8]Q>*ß«êeê¼y§Â>Xµ«@lé (y°ÏëÊL`¥2 ohï¢7{——%âѪ†´Ã†Ú@€#gœP®«7£Œ^4ŒÚ±D{uDßEN‰{9Å-'4x<’ÖiµùPN(Ì1-Ê8­cÏܹ*BõÝÍ©a~vUôC9!²y$­ŸåÄèÔiø‚”ÿ.ª:wsjsB®óFZØÈR^ÞH‹ýaNæ¡´ɉ;ç„úæOQå°ÜÊIë›cZþöÊ÷z#-þפ
+[½Õ_ŸÈ†TËþúÕ¹ªî†óøªo„åÙÜ´{tÉé0/œûMô‹fœ‘U-¯y
+o³‚ÐëȲ3.v¶ú¹ÍIÿD%f%íPÍC§† ABØ £zÜ'Ì Ô\‰æ] ×d…Æ(’ªoáçÝÑ_KóèM‚`ÍŒ´ºW¸‚0A Eí~ZW¸‚0ø´öA+Ùx’½¼!´žJûù´Q¥Bî ‡ Uìlî@‹S*¼~ÂÕ‰Ól­€÷.´WÐ:âj0ÔEa~¤Ï_@ë
+WÿBÀZa‹Ó·¡E¨Ow)+ aºÓ{ÍZ~ª„aÆÐJ°[ù´|® ‹ŸquÐíô8kݧ¬ Bkg2„žä*£[ÐÒULb†ÕE }}n³#Ÿ+T™Òs…5q+YÍŠÅõ7Xö7{˜¾Ã²'Ší=N±—óÍc­ðmŠí*£ìÁ@Ýð?To¤7ßdY|Ú£ðR,„ù.Ë>J±og\A˜ï²ìo(özĽɲý_@w<ôÇ Ê74‰©+\]VÓû ´ìlkÜ3¤XÄFÐò¹zA±1´FŸߥØ[€þ)´–ª!e¡jþ„µîS
+ó´¤Á¯¡u…«k@ÿ€µèû3‡v(RÏÿwæÐp…Xà -±çqCë õF/lDY Õvá´à‘oB«9W ¡õäþ£½Êše–èûDÌ»]@EqDv÷QlÜm7÷]#¾§ûÛohoã̯ïÌ‹ÑteVåÉsN®^q…jóÃ`ÙéýÁ™ÃÆ•c9Œéß›9ÞAà_Aë—3Ç]ʲ½À;þø$kÙäq—²ò„Š<ô_ž9l\¡Óü6ku.?7†¿VCó·fcþŠ«»€ÆK¿€Vôù´¢§þ=Êz |üj°w %’ùÑ£ò¯ õW7üIhMfÀ\½;Íÿ-—Oîk?¥,#—ˆÝ‡Öd~ü$´>àê. ? -Ëø)e½ôŸgïQ£î@ëž×úÝqöÞ,ûŽÓ>;ΔþµÑ‚0ŸgÏhq{lºDæv¶ÎpçÚ@ÜT¹DTìD
+¨–QqU!Î<Sì·ã‘r3Ö†q ÕÅ©J¥™T]þ'$p1¯\*¸ôë_Ek•ÏôcõH`EûÈHIØäÚÙÌÉÉ7ÒbŽ8Ë¿Ëæ=Ñ#lvåäÖZ«£aõ ÔõÀH.b8¥«C
+@v0„dpœà:„ˆ‚“-]ce‹ìú%+3¯IóøPÏMÙ aØ ÅlÅV·ÓGÕÐtÙCÿTTÆ£ü3€“<K¹ŽðXê‹5{ pœâA
+z³
+[t‡èmÿ9ó\RÂèÒf6’ êèAÈî‘Ñ3#¤jžY›)ŠFKÍžr5uÔì
+O„»"U2[‰4k!Po£|5­Úíe`SLr;ëÇ”‰Ö®8(…¨,ÕÎIJ=~¾±[g-M[Á–li§!bþ†ªDŽn98> ,»„³Þôlëk@b L6OÙ¸£¨1W<…(«BÆ¢å³: 6Ó†KåÚ$èõ¼ý·e¤-ˆ^¹=Ê$…ªdö¹¨Îàñ6ðÿŽªJsº´¿zõ9˜Su>½NQLZ.aFö'‚.l[è?Šv{zt]šÍN®±t¡Ï#œn®Ë¹wMÙÓág3VÙ\/§ñ^É^KŸ1‹ôb´àE»vÄ—ÍÅ®—óäúŽ¬éJâu7ŠT{¼oÚ•F¸}’Í6{y‰«hÆàr%/ä”÷!
+ÑSÐJ¾¹â¹ÍZ.âMÕ¨ó6ú8ÜCÅ\ÆU?R•½}8ÈÝ{°…€:ïÓèÒTa=ÞÜV0Ž¹ H+º³3Â÷*¯b¥\ÊáØhÈïq{'ß)àCý àÓüÏfIÕC¨6 œ[Ä­º´XRa`¾Öå-¡"ëMDz‹K7²Á<ŠÆNºÍ9ò,ê½2Û"}ç›@¼b§Ö’inçr(Dµ ÏA½÷t“x¨8¢cc.²BïY 
+a¢ÅèfŽ6ÒèR].LÙ#"€…£»’‹%u¯¯bÛ»§iÆh¾N¥,*³œlµ¿c¬|Xªä¾‚
+‰¾K¦va ÌøìBOÚ ³Vß®úÊÄëGÔ‰|U Χńê7ÄêŇ!ÂÌËÖà„«ž ?è·l‘ë·Äànväu·‹f#è †#y÷IG*
+;{D‚Qä™ÝÁ a@Â:˜P_ïýŽÿŠ ÅZØ*mìŒøþ5’Q_¦VLt_K°m
+—^)ª)æu|nÓ:—Îu¸]c†úñ·B j"رœ×ô/RuÂ\)á…FȪbÉj%„¯½Ô­°2¯:¨Ép¨MM‚>ý‡ûú…¦èÔ·d‚N| ×/kóX=.f‹í·à×/Ì×/a¡‰4¶Óz4MÝüç,ïŒËÆÜž¿¥¿……'©PH»©‰þ¥B¸ùÞ~€Ù°T\‹
+üA`ñluÄÑ­9eÌÿ²^ÝÉ*Aø·Ø*b‰b£K좉=¯]1vôÿßÙÅr“¿x”•ÙÙ™§Ð¶þÕÖ©—?8$“§MÞ<»ËS­È²…
+2y¤cR轚‘Ȫñí1P̧MRÌ¡ž·‹ ßþ‘O
+[D»¡ÏŽ6ßcغxÆ3ä-“-_¦ÛqÒü¸Z~;oä9]ÐÿÙJcì,Ÿc+Š:ËçØJ4ž†Îò9¶ÆÐY>ÇV¢0t–ϱ•úx8ËçØJ47†Îò9¶C§‘³|Ž­Ä²ÄÈY>ÇV¢0¿ñ³´•¸ÓŒœåsl%Cgù[‰•©‘³|Ž­D mè,Ÿc+1­9ËçØÊGÆñ|Ómå±µB„‚‰K$¢šn®¢z¸µVD]]µ>
+‰ý]ËÆËY0.
+j­ÚÅÆǵž¢MoÏ!k&W
+º’Xx½V½w*Œ/Á-:1÷&„¹q»ñÉ"3•˜)ÓÑJ¿Zn0ûö?ìvcZØPžøcz`¶Ì.Ú8zj Õ„hͱ²W ­@›$µž]”þ±åE½ïD½lÖE5÷mZùãÿßR7˜ü°JßšN~|ècƒÉ-K©0„¡¸F3/|£1ö®žTÙ¾DRF;ÝÝ;Rbn‹ã8ø½Ö¶®!ìæ´ãNOÙ«´êI5×>Tª”lQ2>Ü‘HreAš™N““ïä©¿bŽM² ™&3`WiÓZxmG,~59p%]uzåYKãÄgr®€ØÕ2$EìL¨h@?îÈ)FÝÑá!:@Ïñ/» ¬rEûg“ÙN¦+Ô£<ºûùCÑñ>ëj8ttCPNÇLO‘ËÏÚd [˜qaW‡9OÖš ‡6¦Ðé¤,Ó¶0(P8˶%(ýu¡5óŒSsŒ¦ße5k’«¬Òt‘;ÔÅÖÈÖ¼<çyy—ùÞ'ç GÁëýüŠ›õ
+Ne;=à¶æd/OY“=ÁwÐ0²µäÒHTlM´«:óÂÄ!€Ø³žl¸1ˆ~ AnFΤ€fTf«³âUµ>`jJ´* ®Q…¼m´'Ûc2ïÃ*NJ,¨Šs'|›‰žYCÖ·Ÿ'ˆAÐ ,žïÕïa™ûdE(•c/êýåï‹/ æCuTäÍ7åMA1FH&ñYêHn{Éÿ  ¤Óæ S\äPQ
+Ìî0|Áì²
+[«Ùrx /€Nä*\Ä&™âªo§ÕVLô”JÚ»2c]´ÇÛøÔd›‹ÃfâYÿZ, `Vý*A§ðëL½b3£?,1SøÕÔ›x½ ¿yýZ
+PlÄŠ"a©Ÿ»žÄ¶
+ø.9á»ùqZ½âÃœH‰‹”æa ã§$n@ S±Òû´$}tÖ 9šÄŠ.’‹‘ƒ¬ƒã}Ø›”Ã0P‹³inÚl)/·¾EÍ%Êç)"¾‰wÿY€)¼ë@ßœy=ÅuM˜¬‹îë~ i¡x5Éy¾G Ïܶ„i}cA²·… Õ)×MU[U^/mãNÔ΃º.”{u=¡Àÿ^7¸[×´SØ=¨«~®+†Îï¥õ$âËcZ™ý˘ Þ÷/«ña©pÌ)ëßm²ëœÐxêi²Úã´Ú»ààáuë•xœÓâ µÀ¯Ò:æD—÷¿Êé6?Më9¥2ïkcøND¦ß¡@·wÜ÷·#
+‘ÚIü`
+Žà¹ž2…§Öh7}u§¡ŸB077|l‡­5þck¡M»—MqѾ×_[Öµ{}l£ž‘ïõ¾Ã›M¯$ðèÈo´o³ýh߉q²úiŒó}ÂÜêa¾Œ.L×öÅLÝ\ÍmÄ‚Ày{XÔ`ÅGûâAÄb …^H 
+x³­ÙjË´ç¨^aŽé»?ºÈû?tèLoijàW™xö³/[|¶.«Ô:q@Æu?¨û¼Trý‰¿AÊ3˜Âº¥˜
+ãÝŽ`—ë¼ê[ô |g23s »€0¼úíÕµ¤:¶CßoÕüƒÉÑÆ'B·3±OCC“ih‚ÁM°»fÎË|ûh›Øgέº/ª\¶¼-ioIKKŸ
+¦iT›½N~ÈBÚ±Sz§W†õ½ LMµj<^¡'åEš¤>B ×cÁPeïSrNÔ Ö¢pJó´>Ÿ‡’ÈÙPêšK.D”¤=ñ4éZ\ØBÏŠ%VrkóÐlБm›¨gÖK-ü0ZLñ• ÃK6¢)õÎí†7¦“W H4š[‹h‚ý”òŽHù{ESd¦ÀŽprµÄM¼+$¤zKÙîc8ÒöNÒ[—U6‡\DiÊaNɺ©¡·§”fâÃWØÈ4+óã…‹´ôïóÒWÓ*‹b
+†ÆhH¨~ÝÐéDòá8èÐd#1JæëüH­xœUQ¦ÝýÍ×%ûÁý¢q(û‘ƒ° ›ÒÑ3býÉ‚‚F¼®5?—¹5Ð_ÁFøªVž¢FA/Žï°‡È­?âQv ]¹çʯÞºhá4ÏA>/QfKÔ »0NÆêJ³_"¯7!†o»–1*×—ò«ªôµZ%й¿@±9¿[‘U¿Î‹q< ½þ.Ëp_«lS?
+-±À§ _ОºöÞºRÎùHèóÍAô¡P[Z6ÚºZE¹´ÛÊv$æ®Ýà,—"¥Ñ—>këìC¥}O­;¹™ÜVßMe+„„2QÖ¥üîI=£€…¼5úÊ–T®»©,ækø¥gp™((ªôµL0ÁS³z%AÒxŠ¬vª*/]¶aÄk%‘¬²‘ÈË:>HË "3pTª´ä:äZÚ2ùThzÛ8Ÿ/z+f󻶲¡z{?G(äascds¥[R•ˆä—¹Èþüøµ©7r–ªºh,xBM$o¿4P*Ž¬žüèeyÕg6ûg)G&
+@o¥jý£‘Œ',©Ú…>Ú]Ò*
+ ¢1åÖ±SBmŠD±IÆŽžž²Và~#ºCMr
+Mr“Pv©hÿ¬­öì´`½Ó*_‡2­áÃP)W^½˜ cUÕS'=ª®GLZ&Ÿ<Þg[®ãùtPÚÎS,BöÀ£ö6¯Ï¢IhSp­à9-œ±z.ò0š±Ò¹Ô“_Ør»NêSΙKsµO)öIAK"·Ë¨âÂ`ü5褿Ðñ/@t» º¹òðáBŸE3Ôò eÛû<‰Vz} ZâÇ$â×VŽÚ&]*vMUòǨÐÆÔŸ+¹ÝiŸôÁÒ^ê!f‹c¿,Ô.Ç·xÉ€)JýÑÕ÷ˆÅeïŸM­Z°I’—À“¾2⦀ú¶œz3¥q’w¬·Æ|$r¥ÄÀ™k „Ò”mpoð….7AÍB½¸©§ÛfæÁ1Ú“Öys{8d O=¯]†¤DùÌ:Ë*´å¡©©§¾Møé ,íUËj»>1CuóSE½-Ò‹5”–úÆEPý‚qdhév̇NSn5ZZ£øüü³J÷aòß
+w_ ûËb/ØpLb‹?àtUšg ’8ŒEB³¶gXdˆîÂúƒã³7áíóß
+?7ÿ[8.gáùÇ΀àY’F;ƒ=sãß4MŸ7Íe¯;ƒ}
+)ò‡eiž xGÎÓ$AgaõM†<ÊœÈ2w- )”eÀœ(2–
+endstream endobj 177 0 obj <</Filter[/FlateDecode]/Length 8499>>stream
+H‰ÌW]o\·} ÿÀ2PÓüþhž$(lÀ®QE!(’ì:XI… #õ¿ïÉË{÷ÊÒn‚"Q¼¸{–3Ι™kœTÆ;aev*áL”:¦(’T9†0oŽ>½?>zqþúôþá/Ÿ/>ßÝ^Ü&ì;ú8>Êâä¥øðã£/xŽ2…wYæ’¸)˜NPÆd‘­LQ|·Òz+V*cûwl£Œ>¦m
+à!+œPåïÃéñ‘?-~Á·_C’.ËûSÝ0cVå CLïŽL–:ÇùR“$îbg©?íÒü€§_Ö¯Ç6J“i —ÎÒ6 ² * Ú!‡LÓ^88µn¹â ”„Ð\…7ÒDç& ~|Ñ=aAI•ž<O@Ý­a-È͈i ¥,²B›8‘³Cö›VélVÈzÂ:%Õó’¢=k™¢«Ðþ¯ ¡«©–
+r'Î=¤kaà!¤B:´tqˆ
+Ð70— +ðìŒôê ¨T„P—™YdCJ3o§Hºíšr_GtàˆA7sgƒÔÚ¦ŠÙluÁŒeiµHP5}ö±ìr5å{*óf¶°¨T,X´|°R€ý\Ø+gÿ&)¼¿½½¸¹¾Ÿî/®>_ß>m^‚_­Bò¼R¤%T1hä?Ý-DH‹™=î9 ƒr4h]åÅÄ Î>ajd †–¾Â—˜"‡´,
+ Ú€Œ<») €˜ÎË×# ^ÿíîáíõåÝý"ÿý^‚Bò+½~{}±ýñâáþóÉDœ¼9ýþ¯õØÿxwÿ½d߉“Ó«»Ÿ¯ÏO¿ÏçˆèÝÃ×íõùF[ÆÉ zć«]†Í! snó'±ÈÄ„–ÿZœþ‡ê“–
+Ô£üÇjŒAÒá¸×^•ÇM}Œå±/Z|å…ŸP+Yivo”*›ú.+¥êt÷ûó6ø2ü¯*#^PÎô|‹v†ºˆˆs)3Ð)L):.„ZFˆmk
+rI†4‹äaÙ–ÁH¥x°õ2·eÉ;?"†Ã¨Þ*ˆÚb1l U(ƒÿ =-¨HñÖ®à–Áz®nÛÏŽnò5"‘øœQ”i*ôìm
+ži‹Ò"¶ bØ©ûë! (rlÝ…åUâøé ÅŽO­Ä +Ù„eË ÑŠAŠÅ€@üÆ'1Riî¡Õ0çŨ[h5JÃÔ`‘G%w8“¢Ý5Úøôø5R¡¯´1I
+y*ÅÞí§\8lª¡E”§X·ÕHo7N)Wœ‚­ÅÊsOÏô¾ê,×5Ç$0¼ŸšZýðV8 Ž ã`G¥/³5´º.ÏçÐBë= ïVH –*¸öb8S-õ•5>}i J7Ö
+G½yL„·3"¥]®¥îS³ q¤bäÙeM3x?E’éŠ&>H•lº£Ë¼Ÿ2ÉtE› ¤Î‘°AŸ x…’åŠF>H¥0]Ñ)£)•cÙÑ*é•éÚÑ+Ç(v-½Ÿ3¹ì«ÛçN.£¨ü µ!ë ¼ÙIï’Œ›…“ux>_€ç ´®ÓHh¾q¡u*Âè’ÛY=tFn‡©hç8OÌ.ûÓúÇš]Œ5˜ÑRUZƨ~³
+†±^gõ¬\˜¼÷S±0¥V= BœvzV,ŒÍR¬W
+‚Œ7yªRëÄd6•‰ÁÿT$†0j‰B­%¢ž(ÌJŸÝÆé=¯’Ƶú0^ëà iõa÷BŸÙÑÝoéè¸~e%hòÙ?×÷~“Áoðÿä±*Œ¼4FÓY;=Xdº"†’™îˆ„ÁCdB–+Baø ©éŠX˜Äƒä²vÑ{´Óg‹æ™ít–:y%ëfxT&¥E'¤»p&ØE'VpFËÔ w#y^'܃‘e'ü}$þ¼Žº¿ßµæ{`ÏÕFÆTFz }C7 úTø†ô2.oT¬©v™ªMR{éR:•Êe$0$e
+h”‡ÒFÄëÄÌ0êØôœŠ¼P£tæ6 P¥\…Sê‰FŒQÏÃ`Wœa莦¾ iWCÃÜSðûPQ: 戥TCò¦0pcbŸ‡ñ‘¨@Å5Αè›Ç¦<
+’²Óé· ZŽ€iÍ
+ÛÅW‚ú¼›îeË êP®oBê Ov5æ½lÃ<0—³#`ÕßÑL§À³@?9uœ„md‚¨—¤L‡j$ŽsÝ ëuÖ[Á”žê86]^X“Ib¸à©yP ‹·–1cl-¯z =õF„3tårHÓé»´Hæq4,l_®éó‰ê±ÁU®œÉõMÔÛVϱm²EQQÚ€$åš‹ãg[DŠþŠÆØ`”MÃ*è¶w¤Qp—‹‘:‡´t\ `r
+d¹{¸¥gšHLÎË0 Z½Y†¼X‹P]MÇîw‡Œß>÷­Ç¥ÕÂk|¦Öý_ `7 ÐÚr<8Ï…ÁÓ2BT[Sº|Ú¢
+tœJ
+ÄßƘVZ?Ƥi´•áÑ´8˜( „®µ÷>gï}î¹3ç^®3œ¥Î|³×Úß^{½¶‹®«œ sO˜Ïe,¦ÿ›  %>³°!C‘çêƒ0Æà#&4ÉÀ:
+Ö°[«ûgÅB>ž‘¼B±øD*DÕ{Dx²F!c¨}5Že5 †¡®®„·…YI𴃄š†±¦AA‡ þµ ÈIT¬}@$.³4DYK'`Mƒú\V79; !>®„ic®‹\¸™Š<P=> |ò¢¨ˆ‰è8TYƒŠ‹°#Í [+‰Í¾8—"m8ÔÜ Ë+„H,}È? R[ƒã3õ
+CmMÂLM4-˜XF*㊣Y+Sjz¸+‰Sš¡¦‰¨
+~GRJ[vI¨-;êƒ
+ê•;
+KkŽ*+’Ŷâ8Hl_mZÍkß)7–FRl,դؘ^±Ñgç¡Wj¬‹’JcݘTI*Mý… Â[ ˜^LJÁM2fEm77ˆÜ‚ýöÌ,¹Ù“›ÉOÕíÞ-çªæd‘†[Ê#T­Ë$ ¶’K¨™“Mn)ŸP5'£´[Ê©¼‹n¢{άvvo/¾â¼Ðt/‹°(Ê4^¼(Áži¼vµ×x=ßÙÆ[ϤXãmÂmÙÆÛžbQ¬7o7¯×ÿ”-ž²á0Ro‘*E¨ ŒÔ¥@ÇpÈ¡P=HWbZ…j™q™Pªf`¦@F$䬋HÆEÅS iik0“E*Q¡ÚÑHwe
+uß,3ö„8ÖD ¦P'`-˜”²oºˆ:EìI6%ìlz.«›œÝÚO'`ëü6'ëîê¬ë='`]W9‘éž0žË€µ1ÂôÅ?æQü !Ãèå<ŒÑË¡àqΆ2% B`Ä
+àCÄB5A †Bƒp**â™ÀD½šg³ª®ùgÈZ:L9Š <o`L„@'‚‰€RP9Š1lI4Äq
+–qʃÎ&êÕ<›
+ÇE¡Z/à?›¯V;?=úÒèú
+¥‚ˆþ¾íûnÞɲ }r›Ðh É9ãSœÛ¼Pš™Ø<RjDl¾¡Üž¬øÄ曋•’Uq)Y5%·!¥%«f¤dU\JVÅ¥dU\JVÅ¥dU\JVÅ¥dU\JVÅ¥dU\JVÅ¥dU\JVÅ¥dU\JVÅ¥dU\JVÅ¥dU\JVÅ¥dU\JVÅ¥dU\JVÅ¥dU\n&2ßD<¹ YÝtd¾¹X)Y—›¾Ì7#·!«›y2ߤòYÍ/±F”æ‘ØÌ”æžX>sÉ­Y>?Ïvq˜G¹Å[èh$ wvv.ÌøCgV Vwuu÷ô6žžî®…®NGgWÏ¢¾»ú–åÉÀÒþ%‹{»A'UXؽhÉÀ=÷¯|pphhh•'
+¨åq;}ŒÏO{Æx:¥ÝNpwYšáNÎëóÑ^·¿Ðá|rŸ¢2Œ ëd¾@Iƒ¢Ûéõ”‹Œ; wSê—¦TM½l©ZIô€²ºTÞËËå•ESòEXL™–âU¦^,_ØR±G®(6B1’Ð]vzð¢Ô¶ ®Ðx¦79”I¦Åøø:µSð
+ïášbŽTªÄsðê÷“|ñ$« '¨#e"œµ<žâ®¤•›+ŠðšÅþƒÈ“ Ò«<9>éíÆHï7é z.9–Êí3‰KI±ø>…A·WIâuù¥ÈÐàRÒ>7CæÁW6
+àTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTèàTè<,rÔAJ<,㨳”À©ÐyþS='Á>ÂQ'‚<šêȃUŒt´Á騂=1Ò3Άžçò)c-O9÷ªC8¬³N§«®8ñˆ ôÖë ÆšC0ôzàRôFQORTC(Š¬'LF}™¥ªÚ`ª£[,­mV«µ]ÚZ--TÉP]¥Œ`¨57Y::.–ã8
+ °.Gg‡¥É\k(Ž¢Ó›ÌÍív®»'‰F4D£‘pO7goo6›ô:yc]S»#Ž #£)QL«ÅÔèˆ íMuÆ Uze±û…ôäÔÌìÜU s³3S“i¡?h·P&½ì ;¸°01=¿°¸´œÕ°¼´¸0?=!„¹ŽF¢àÐê[:»céékÙ•Õµõ ëk«+ÙkÓéXwgK½AšˆÎHZ=Âä|öúæÖöÎM ;Û[›×³ó“BÃBuÒÄk¨VWxdjaeóÆî^.wKE.··{cseaj$ìj¥jàÔ«ªk¨662:³¸ºµ{{?Ÿ¿£"Ÿß¿½»µº83aÛ¨šê‚£ÁÊES³KkÛ{ûwîi8¸»¿·½¶4›ŠrÖ†r‡8·¼¾“ËÜ áþA>·³¾<'jâÕìÆÍ\þÞíOîÁ½|îæFöª8Pîh÷ ¤¡ãÖJŽ;· #=àiÇìÀìÀìÀìÀìÀìÀìÀìÀŽÿw‡•¡#—¯äÈç Cà¬åŽ¨8·¼¾“ËÜ áþA>·³¾<'F5ŽÔìÒÚöÞþ݃{îîïm¯-ͦÊTY\ÝÚ½½ŸÏßQ‘ÏïßÞÝZ]œ°mTÁ¡«¡Z]á‘©…•Í»{¹Ü-¹ÜÞîÍ•…©‘°«•ªÑÇ1‘´8z„ÉùìõÍ­í›v¶·6¯gç'…‡…4êŽA‡¡¾¥³;–ž¾–]Y][ßа¾¶º’½6Žuw¶Ô$G•žhìàÂÂÄôüÂâÒrVÃòÒâÂüô„æ: }UÁa¢,ö`¿žœš™»ªanvfj2-ôíÊ$;tƺ¦vG0FFS¢˜V!Š©Ñ!:Ú›êŒÒÄÁDô&ss»ëî G¢Ñ Ñh$ÜÓÍÙÛ›Í&½4 8ˆ¡ÖÜdéèt¸XŽã<*€Àº–&s­AÞDƒ©Žjl±´¶Y­Öv@hkµ´4Ru&CuÑ
+¸tÕ'Àéc•¨:„ŠÑ±ÙΊýñLœ$Ã$a õñP^‹_Î$ÆI"J$ÁС·HÂM÷ÂÃ
+ð²E¤{uÀ¯Ó>&Ô6ñBÆ*›C*'I¬äß² ÑLQý3Í%’3Ômàü`
+endstream endobj 178 0 obj <</Filter[/FlateDecode]/Length 15049>>stream
+H‰ì—}lUÀ÷§©6Ì%,_¶4-l»;ß-¨]»v]:0ÛŠe)w]e]·µÛbd ˆ3þá2•1,3Gâ㶠„„@Œòp¢ã5? K`‰Æ@âóœ¯÷¼·wYœÑ¸÷¶ïÇï¾ç¼ÏyÎóÙ1ÖÓÞÖ1ÖÞF‹®ÞéÓ7#›ÚÛöÄ?Rôî‚cMYaXgN ž•TÂ…4\Qü¡ü©ã0Z÷ÙS+QÓ„«BIQ£Tðb‡‡ÂP[B$LZî#„9B“ŽpMhÑ%¯)JD¡«IÍx1ì!A¢U€
+ïTxÁˆ°Šã~\‚hQÎb)‹ì} 1#Ö á$(Í@^†$?0m¹-Ê51ÚzâU
+¡dXKóÇdMÂ\ŽH-XNhÍxcŸè¡Ò5%e#ƒB7Tíî™U~vcàéDp.MjBkZBœ ^ÆX‘Àž£6Î*s"k–éó¤5"•Š³Hjœ
+if) RÔ+(Snwuƒ­Rµ•
+)&ì µà,R·Hδ[ŸeQ/ A¹WƒáIõœ8D¹_´„$`†£ö!Çø$RL,% ¹¬Ï v×@"ʦ‚4B¬ßZx£q„j,,ʆ愩.®‚‚ÖHþÃq¹ív\˜à¨—ÈÁH´N;çõ'ñWëmÝëØåÓª“ðÌI$X 1ùcªt7Êœ›¨¯tUé¿ÉñólRB
+Ê`¢„ÔX6•+$Ä$¨XCô®@>Å|Øóóƒ „@˜åÖD“Àç0ï*Äú Äx¯¥Ü`«vÝw cÇä´¡½mViPŸmmoSE—/û€Ùxë¿~<܆ÉLâ0a)ÖpwAs)‹À›bÁWI\­‚¯Uð}¨
+¾XÕ]òÂ[å]«¼k•w­ò®U޵ʻÿgy×1¶¢wf®r|nrçt}fÑíØÚúìv9r ÷àÁ•}xÚ†§ŽÞ!96095ÑîVNl›œ^WŸ›˜AoÄ6ˆ—£p…¯‡¥H( z‹Æ¨éusˆ?îîË?‹¿øçýŸIO“BÀ—8i:œ(ýõ¹zw!9ooj[pÅŸ«®n6øz²bÑ|Ú9¸~°«vôŽÍî· tÙ{¿yô»÷¯¯ÒåcýôéÓ?|èÎA»ìÚH—ÞùàϽöû³/žüÎ}Û7ÚküøòM~ðÜïþzáí?¾|êØ¡Ý·u:\ ì8ü“WÞºø¯¾óæ‹'ÞûùšÃ‹×ì>òÔ«€ÿñι~|ôÀ(qøš›ïzàøóçþ~áí?¼ô³Çͬ_êßx]Ïø¡ÏŸ=wö…'˜ºã³‹£(+¶:~úÙ3utuY²0 N6ß÷íï½Cãâoº}Ç—öMôÌÓÔ{ë¦5ËækpÁ§8½® ^°ð“k†¯øƒv²jz+Z‰³ôÕÉ–f<€ç*©‚‡—â±èç¹±X†×´X±rçΩ¢kxrzûÄÖF:4ýʼn™¹ÄIä}S“»vMNokäý“³õ-SéùxÕC¿Œ˜úVàèlûÑË×ÀÝ=p·Üam1º™[ÛÁ¹Öý' ÌN‚w‘0uÃð=ÍÚBe…Á&PqˆÔpbTB}€UTäøCùïª^M“ë®òÞÐ@3FEÞáƲ¬>/I–JˆeñQ6‡¾/
+ Žpæ‹ FüŠ
+ªTqè&TÃN¸íQ {6\©‹‰ó—N™Á’Ý$qó&©„Á^«0¶bIG©]+=„W<ž’ÕÇŒÖ"k„]',ô‘RÅ`¤cÕŽ<ž[m}kª­Ë4¡]
+§'V¤ŒAYhw!Ð{íÇ.C=±lTùÁcjF|éóããÂ`Í‘ÃHá ¥ÆCeHf(šÛ{ˆ?†§EB¬ƒ–rã¬f˜I„0¡ÂV b0Y6;éOcÄÞÀ½ŽKsm´ê¾f¦~ÙžÐVË»¼¶Ó³(u`½Üñ‚àvAnIE¬[e]«¬û–u±v»ä…ÿ¶Š¸V×*âZE\«ˆkqÿ“"®clEïÌ\ÿäøÜäÎéúÌþ¢Û±µõÙíþrä<îÁƒ+îð´ O½Crl`rj¢;Ý­œØ69½®>;71ƒ Þl/Gá
+_V¥%,E¢ŒPaƒ7`à] ÜÝ—ñÏû£IO“BÀ—8i:œ(ýõ¹zw!)°‘¡¶WðùÈG›Ñk»:ͧ«Ö®\2ÚúFºþ+GŽÜÂÒýÂ%ìÓkÆ:~êÔ‰oíètñªÍ3<òÔ¯~ûÆK§¾·C§§ËGö~â™×ÿ|áÂ[¯Ÿytß­78Êêyõü{ï¿ÿÞŸ~yâëã=Ÿ@Jž~åüÅ>¸xþ×O~câ3Nîå›ö ¿ùË»ïþígûòú¥ ‘ÞÐ7ºûkGþò¹7_{æñƒ£KýÛ®ZLoºëОþÅÉGï]^YÅí~øÁ{;«k럛ÞHWܵús}pÁ¢Zíúùšl»zá|ø_|Ð VMoEsp&ýoö«&DÏ«
+w)‘`A\XÞ¶”LH3¹?ï{Rè|iÚ +‰m!ÄÉdˆÓNgÒtÒ´ ]ˆQQWJպЅ `]‚µh»±bAWR7…¶Ë<çÞsî9÷›)¥
+.$ùùæýž¹ï½çžß繯e, ’¯Çñ£ÔD“6°ø~ P%‡;ñÙG–¶·7‡…•­GÖ/ΣË[O¬_Ùi¸a|¶¹qùòÆÖ¥yüØÆã«6Ûú»à¨å| üÀafpúAöcU=…å|¾= ß®AÞŸΞ3ÃÅýPE§ÞK©/F–l§ìGNï\ ‡…¥¥»×Ö®>zj{g÷†ª8CVÌtu/Aò˜Pþý~8;ùA’z !ÿ‘òB›\tÇR…@b‘Ÿ †À8RD¡B„‰ ¨H…Iã´íY»ˆJâ 8fëúeѺ,‘ìrÔÇÀLÌm-q,4¼ID’w¢p4@GCEߨmHߨÓDß³¼ ¾ëYßÈ ÅÏóјí¢NßøˆCÜd`‘~`¡“GœÆó?%üyê‚>:Eûª¥Þ5Ƀ@p´„5óaÑg;уàä‘Û°èq>b=ˆL–h‹ô¬™ˆ°èApt(YôtH=êE=r„=b ‹±–DÜIT\^ÉqËq# ñ¶Ò=B&9½ CDÕVtBújË{U[æj##êî:–}È…W¿ô* ò?/ sYN)^!BáTôWDeæµÊQ¾sT0&ô˲Ÿ&¡¿Îc:&ßÑ_ŒaLÆwôc?N$o™þ«‹Ö›ÜÑßRôÑäŽþºXd6Iè/"Þ;a¿`C‰¶&5cD~Õ>D~kɹ#¿Õ°Âˆ…üÖ+ôÜ·Þµô#á¾Å+£q÷ç1÷·8ïJ‡Ù^9ò®Ü7÷#KÏ«ò{T
+— qhûd`H`å° ž+‰a?ã‘Ô®T¬FåCºÚ"†Ä, Gje„¼P㯗•‘8‘ø@ÊñšrHCbà/y‰A7´Ô„ê…3œÊðZzY-½U­):¯ØÀŧ=Ñj´Ùßê¸]±•»ö„…kºqÒË"nëõV\ï
+gPwx ÒJC*jc Hr&I°P)¡Áš9²g—H)8£n…²„s•|á2ۖшx•òò½Õ…‚JñèMjé£Jv^à‚%/äiÔu-×¾¼E@6GëæÕâ!í—c¦[tßÉg{µwâ©85ÁóÈ¿áÁM˜júþx„yD?ÿ³(¢0mhtädCCk¹ C‚ˆ©"ÖzÏN4‘rd´Ö²!*hb¬N$$HÅÝäE9x®\õD‘´+ -IM` 8W2„^‚"H9ôVáʤšš
+}×
+k¬Äs ba¨dC=¦_cÑ*$—-çÒü(+ ´Ö%µaarA)1ô*†Ðû&›õ2¤VÙ *Å3+`Ó ¿¬Ç! œL8lL…! ˆ¡°Ú‰é7&i„Fþ¬¾Ø@oB}‘¶Š˜ÈµÚꉀÀ=ZZGs¸ŒïmÛ„ÄcÊlÛ¥Q‹5Y?($.cƒ:bÉ4¾=Îè׬Nš<¸Æ¿8ùåU‹¢¨È*œìÄñå»L
+Âî—÷(JLSR}<ÛJŽ<~U‚
+"dìßÿÌ`†3÷ï ÃÂÁáÌCËü|µü3ØpÌp?¸¾E’b’[ rG iàýq0åoOÖ˜R‡ªú@“Ȫ!„h²ÔÐâ¶id·ÜštA0Q+¯ò£?Ç#!TÅ’^Vô”Þ‰x8£îW䙦Ê,âÚšÎk—Ô,¢ k4‹j”e¬,e+ÒŸÚM¨2‰§®“ë5™ë Âz@^$Ù@b‚\±ÂÝcT2d’*ÂzFƒUô¨ª*Òç¡vênÄ"‹š«óJ‰Áwí»ª54Q' I?Þ‡µ¡FrÆ}6õê¶E£IÒ±&[5_iê¶Å_/+)";q"iqÛRûJ œâ%/K«A7´Ô„êE ï‚P†×BÐËj±è­jMÑy¤cjñiO´mö·:nWÔl¥y¢iFYƺR¶bù©]Ñ„*‰ÚsH…¸r,IÜbK°P)¡Áš9²g—H)H­Ó{ú˜«+̱‚UˆW)/ß[](¨Þ¤˜>ª”aç.XòBžF]ׂpíË‹Ô"f<A¨-µæÕâ!í—c¦[tßÉ»±Â ‹þxœïøPÿöƒ‚y. Š"J… ³nÆÌòVS~¸¹‰”EŽË ìI©AXÙÈ‹$€¨r¡D¼§«&§P¿D²¬³Š\gUÓy‚”÷ª^¤0Ökk)Û¼Óô';°IT° ¢ØTj[VY‹Þ©
+­dYé€íä‘{U‘C˜­>Õ¡Z ÿf¿Úb¬¼ªð<“΃IË%üÜ/µ‡ÿÿ÷kê0S˜iÐ6(:ÁÃÌ™8Ì03‘Ø›@iPR[ÓÆ[}­¶IK|mÚ÷Æ'S›X_äÑú }°Ñq­}]ÿ™À1a€3û|ì½öZk{ío•]¯±GBݳýæz´d*´raCÿv¹¦¦"ö†1€Ø?Æ é{œ$sèFӴб&S"å+æ^†<ž’½@kòt” §–yRø ³•ÉÓÇ7]NYGŽQÄÑ0-ôd­xH]q-r?!á~¤…þùÅ5v²1Gñ^Æ<Æ»K_ÉÔ†S¡ÓÜÉ%Sá€éTÀâ]–"pÏ1ë·β
+Ò™>”ñäs¥Ó,“%Ïõ°Ÿ¿8îRÐ\Ä»“j”L)ëÖè){z—(²kõáÅáL½WêB‹Z†J/‡aiŠÀ%×õÑæ"6‡Ñ`èãžé Io›Ñ4-4¬ÉRèk©kÀ¯‚á“ú¯a¡cS¤=D1çZ¨„N‹‚®!K¦BÓw ½ç`QúW7vqfè½o®i+ZÏ´Ð5¨v‡}èd‡ƒÚ¬4¼1‘€t—(FJ”?•4+\²Î7lXax_Èø9ÊPÏ"³¢½È¾¸gzHˆg±MÓBÚL…¾–ºOœRJǤٗÎ3/9ImBBúÓ:JA”h)«çg†“÷[@Þ8! ,¨DG"ŠD®%0P2™
+´;v[ßBôôâÅ$¥›™n{wQ诫^~ì]ó,Ï÷.“Ù¶íÙ¡¯[lssgßÌÜ@§5×™žYÈvYlßèì„ú~žÆ<;à~Å_›û†DsOg²½+~ÛÝ>Ú™zltv®=ƒìbn/G`„Ûã#’{Ö)Ñ@m{2“Áý
+¿à=
+™ZBT/V:熴“Øib—jûP(æ©ÁŒ =æ+KÐ¥2K汪Úr½ˆ5f@3–:hLæ f¤ k%JKIÌ' HÆ"Ü®€!ªh>E¼H]Ö\%‡“Ù§ÓÈá‡!)–¸?x •8£€”ø
+™‚ˆPts'ô5’"Õ@بAÚ6É~lœh ².P¬ÁZF׉ʒÚOH•좇C\Ñ~ŒòƒÕñ#<§Q•§ÿ$ª<™I0îÆYE6ƒøQ M­ai
+N’éÒL'ƒÔ€°’ý¨²RR‰Kég)ÓpJà•˜¤ ×’ØOÉti¦âŠöSìÝyë¯KæM…KÖUÆŠ¬ïä-U²ÅT?±ˆê‘é²›é~ŠEZ%'Ó•^’éuDoÕ}r1ÑË,™¯ÝϱH+¤Ÿp2¹t(k
+D«.k“ö0Aþ
+fr›ÍX†yEK›²ôÏ0¥Áž@õ}KîžÇm<O'ýñ*áoú¶ö&@`‚‚¾(–Ðþq†ýng¹Ï›KþR¨JþÞµ›·n^s×êÁá½j-·>Úl7‡¶âpç¡é3S_kàYxvþ[%eû™çŸn «Ÿ;ç¿Îzâ¹\èhšÉç_¼xœ ­7_|ÎMÐÇ/\>ÌÕÑï^zv\âP´ž¼ðQŽÃòð™'O8|ààÄÌÄãV†oÙ»‡«åÀà€°þÞ³zã–kzoQõî¿£U¯/Û·Z7n¬•‹º·¥QBôú¨¸Ñ ÌŽ»3•%}Õ˜–ðS˜ˆjd ¸bdjÉÛÝ733êÇó¬ïôÜtæØÐùv{{¶óñ¹8¯t,ãÓcí&αÙöÌ™öxóÑöBÓÍšínQ¶õMMOe‚ ú
+çþþl0k”F’>Áü²¡¸Oœ“Ѐ”¦TfG„j–
+û`?‰ÿ˜PÒ8¤ÔÓÆA7T.
+ºÖ4˜Î9µšç
+Ô6L9?ì@Â1]0‘!Pð¶dP­¹áUD
+…ÙÎ@³ µõÁúŠEr§­íi'÷TÆè,…ˆÖBe)A/¤€Dš‚Nuá
+msÙ09ˆ§~·Ðƒ ódáRAA^ÛµR+ X!‰
+0Ît5i ù«T5i%ž²ÐY:JÏ*‹ûë¨í³k ™Ê¹Á{RŠ\ËÊ tˆ†»’Zý]½6À†¼ð×F‚YGW@GkŠT¹’×q%‚dØ®åE)íñê.²x¤J;¼Wd-/ dá…¤@•+¬Ž+,pEh¼MÑ< eW<RåŠ} .¬¸6†ÜÐÕ*BÙ’×±%lQ&‹g_å"ªHBx-‹ê4®ÝwéÊ~‚’ Nm¹3à^Ž1Beb‡arf,&Y KÔ/† |/r[îtÞh‡ð¼d¡všÂ¸ÚiT¡Bí\[A«¬‚(È[F`5s”Š[ ¥ræÎ-z 6¶¤zg9 X–"@JrãBG3ÉBAÅô Ó™O³K`â~÷ [{ð¨\]¹>UÐoÄTA@[à™tH`DXC1††Ã÷Ìö•@\(ŸÁJeã3ÀaBiçsY@²„W+GaJŒ‹Z@Þ´¹6˜0H¯{¥ ù9^…„¸·¬ß­óœ­ç™X‚W¤2ój‹ØDõS×Mÿa¿zc£8®8#RWQuÁ²l0>ÏÌþ›±CZÿÇ–D8€SÇrûdÌÙØç€U5$iMP©ú!ˆ¶!DUš
+¤©´T5(%Š%ªR’(”Ð’mEèŸDH R«*‘úÞÌìÌìú
+UúéîN»³¿›Ý}óæ½÷û=ÙEPŸIðX$aGÁ¸`¹"D9#yœçÇh*ÿ1Œ Pźò1 Ù$áN’
+Ô¥; b;+FW^r6×7v$§Í‰º^"¦3RPÒ&“–‚†µn8Pß*}Ué«J_UúªÒW•¾þŸôU7ÚÜ6Sî,Ž•‹S¥ü̼×"±üìN5Ú€Ç9<HJÃÓžêÚzÃÑîâd¡Å\µ&Š¥MùÙra1x [‡a„¯Ç %¹˜ËlÁªz#Ô*ømÛo:ÿPÓÕ›ÉÄ àK¤-uÒÎ|9ßâ…¾¿bùPïòe·ü¹ãÎJ7ßCšW-Eë{{²`]ÛèìܘȠëÞóƒ#?~r06.ûÕËg~và‘±~e‚6>òô‰WßýÓÅ7Nýè‰[Ä]ürÓÖ}?}õ¿öá_ÞZ<vp÷õöºwúåÛW¯ÿçß½ÿÆ©#3'á5}»Ÿ~à}tùõ_Ù7L$|×½î?þÚå^ûðÏçýÂÁ™ÁFõÆ»[Çž|íâ勯¿thßäÃßX“˜Ò¼íàñ3¯œ}ñ;Ãm1œŒ<ñßyrsvñëÚõ­½…Ö%žª÷oí[¿ÔƒË¾æÓ»+ÀËj¾ú¥Jð-0NºJã%2Î7š0Ôq7d¢¥“ñè5@ê¬õÖã˜zÍíSS“^C±´³0žE{KfÊ' Þ1Yœž.–&²xgq6¿mÒÌo…WõŠQÌÊÁ ˆI©69ÞW;àj¤Ã€7<B¼ñ[›>Oþë§]D?:sû\òsoÈx
+©‚9TiJ]ÿƹ„ "¼Ê$0”Áqi‚(ò4…¹`0y+c\^Ç’!
+ £ e7Âc¡½¶Á¿e¾îÌ
+
+T–`+„v[cM»”¬{ª€ðd7äÊ“æ«? ×Ú-ñ iጟÝN@PÙn§‡é‘T§X8×™ÚÄ+Õ&rò^­_“^ÖV'¤ªSèH_pô*έ1·.O!Çô³Hº<…•ÊS˜”§
+_[ž¨¾fQæV³pˆØ°0¸õ‰WªO<©OŒ†jãÔ–¸±ŸÎ·w´:½#Úˆô`U7gö=J™[D›#mdÖp³b§r[,G²Èm"ëcÝ^D™­ûe6­?š¶&y¾m},‡™È1æº]“uĦ@Ó›™þÍfOeÌ
+ÓÓÀƒÓ1òö0ÝXÒ ©E1c,Ý‚BÊû"ºYU‹¸Sr8vµ¡©4•` ÏŽôLp™mzb±‰rLÑ´ÀŠnÍ"êF B1£$öœGAÉTU²ˆR.Ψ*¨Ò6¹÷’G£d!B‚Ö™ÔÙ˜I¾„J2½èä*ˆC˜)UÊ–L¢\ù؆k6ª;*…úM›D‘V|ë2’ÏÐÓ ê[å©*OUyªÊSUžªòÔÂSu£Ím3åÎâX¹8UÊÏÌ{-ÈÏîTá xœÃƒä.<Mà©®­7í.NZÌU{a¢XÚ”Ÿ-fƒ·
+¢Ð3o_¹þÙgׯüþ¥ï¾.ínÚºžð‡¿}üñ?.½ò·k]Ý1¼û»G~óÖå÷ß=÷âÂp£zÛkè½½üùË¿=uôñá¦Ô*ZxöÙ§wôÔ§×Ö2V.m¡Ù7l|°£> .[•ËݳԓËï¬Y
+þ ˆ®Ò8†ƒ è&^µÑÚ™F»ÁäF<z #k½õ8¦^sûÔÔ¤×Ð_,í,ŒgÑÞÒc…™²ÁI‚wL§§‹¥‰,ÞYœÍo›4ó[áU½bÓ/Að€TF µ1ú1§æ1™ûàj\í¸ð†Gˆ7¾’hÓçIô†&?G
+­×<Xž ½†öö¶±±¹]›¦Êyœœ6„èŒ#ڊ̛撟«vCƨŒPŸDTòÒ^C„G,+ PCÙ„Bˆô'É 8f‚ʤo1@j)ª%wG›YБÌÁõÓ¸8ÖRkD‚Œ)Ë$;¤¦Å” ‰ÄBp‰&b‰€m’qÈ?¢¾âx®´Bª!äI
+0§BoÄÃZá£mÛo:ÿPÓÕ‘›ÉZ˜À#Ò–:ivk-^Hê]~+mßm·WBW6Ô­ZŠÖw ´×.AE~÷ä–\|êðá…mÌ\×Ô²ûúF_\<ùÌtwF×tÌìîô›ï]:¿øüüæz…6 í=tâÜ…®]»záìѽ÷¯–(Ë/;û_ö«.ƪ«
+Ï3 ±BJZ¬á€ —ýö 2w  J¥jÑ †;zaœa(CˆVˆDš¦IM µÖøbª­RÒ§R+øL4þµ¶>ˆ!1­JM+®µ×93M%Ô·¹39³ï7û¬½þ×·{íí÷Þ{û/W~ú­ÎÆÛ倾ô›kï¼ÿþ;×~uþ‘±ÍNïu ¯þõúõ7ÿð‹|õþµ·!º¼=täÔ“/þú?ýþòO­õ§}lß4°ïìO~~é…§¾6´®fÅçOŸ;÷̓÷Ü]·mCgz⋼iqïöûÚw7Áž¥­Ö'g{rÁâÛfƒ·ðÁ„Ø:1Šéàz{ÊW@s¶nÇ«ˆ4ÄaóZ|½P#áË‹õ}““ãEï`wâÐØh˜xhlj:á,âíñîáÃ݉M¼¿{tdÿxÚ¿Ž¨†±ü"‚ ¦f?ÖÔ ,æðí |;y¿³ÚËŠÑ…PD»o¦Ð{×Iœ³º’«‹õ÷OO†Eo_ß–NçØWvONàæº",T Z4N:)íѪ
+ïiJI¼âBàLÀÑÃti±F”zŽ…ãBz§‰÷Gf€²*« "Ât˜×¢DFÃuË2æ'šÆþŽm’Ãý”a›ÄY"”ë¹€Çñ3ÇT0ÑZxÂQ¢&ˆ(­MF:þE©mUß]¸. fb™ÎCL,VUY1T‚™–ÕŠ¨€æ‚ØW–:0 £ËÛ4:ÛRQF¤­;‚C³Úºé똢S¦·R€Ó*õGZ_z¦¥@eKSz¾§ªhÌ;In”ÓßXîg¯bFÖ7;á½ÂÐ.¨$c!xµãJmlÝ"d°A^ ´Î c`’ÚiϬUQÊé@Ëฎ-€`d)¼ÙÂpÍ‘ÏæÓT«,™gÇÑÑÀ¿rÜAùp
+«‹2GÓ1¥ÈF$øÁ'
+"Ðü[x«Â¼ Ã.!CECÅÀÂHc=ÂyÅ£Y’Dñ2úP1å1f}B@‚oPV~ Jˆ Ë£ò÷ wÅôq¾‡)] 3
+o_¶²1°Þl…µ¦ŒõÞÁ{/¯|0³âjH\5ð‹ú6éʇJâ:Ì*w {š/&h·Sû^°\þªÐtLi|F‹ÆˆHl†RUõmŒkNE1,Tž 
+UÖ]-ÙVŠ
+ =VÆÜóƒÝp?}VR–¶6<’Ïç(ÝæÒ8K
+¹Ï …ã‹‚ú"ÕNîQ&»LÎÑÛðÑ_k…¶Ö
+}¤#ˆ=¦¬Jå^¤Bf?Ù
+“xt" V¦D‚™¨òÆ
+Vì]¸À½«‹=8¬Šëcî×Q7l:¬ØåH\dj¸ð?ó”mž²ÍS¶yÊ6OÙæ)Û<e›§ló”íÿGÙV ¯ß25ÝßíLw''F¦N¶säè!¿Üó|Ç£qøç
+÷þ矰·LàšýO\~ý­üýÍ?^úöþu\¾ëÄ÷_^ýÝ•‹OŸÜåuX²¹sê©ç.<ÿÌ3ç/<÷ÝSû7ßá¶nðë>~v¦3vò‘ÇûFw`¢Ëú÷M?2¤zzÔБ™©}[ g±¾whh —½;††ÕíNðbS¹Ì¼¬ÜÄ–%>þ‰ÅQÉEKýO"Lˆ­£˜.¥·§Œ4çë6|¸šHؼŸE/TÉêâÓ¸æÅú¾ÉÉñ¢w°;qhl´‰L<465pñöx÷ðáîÄ&Þß=:²<íßG TÃX€ÁrÖ˜å«ê–óøv¾‡¼ßY íeÅèB¨¢Ý7SêAzãêÖ¸¹ihdÐè 47îBiws«˜†žˆ5ÈÒg/ð:ÇB•2§¹ÐLJçÞç2 }’³*ƒˆhôÑÐJ3 ™ßÒöïyP™– M€0ú Ñ,;­k¡I‹ˆ8i@á•°DiÚOe4y× Ý4T~FL––À¨ð £YI|¶<j‘ö\^óÝbµãÕbð‘.&´ð?š‰T‚"Ž¶fbŠª)åíäЋ)R·Óƒ ;=ˆ×"ü¡^~ºLQCÍ\†š( âWY+é»QÈ0"?!üð`#?íJò“í4?ä\ùGlbêùŸ„©g1y(ãiJÖ¸´
+ŒÕ 6U))B<@êé‚'$³¦ÈòóÊN%-»ßfOC”L)(ï4Àn š‰ü„PO'z:ƒÑ®$?ÛÞô[{.g~(™™ k4¶´« #[¢2U½¸2ª–¾š•Ð¤à#Pó^kÞK`ê3Q|îEQ ÚÇ ®•nô1 B¬ ï /­¢òBë;‚µúŽ`2+ŠÏ–G-h›åµ[écÔÎÜÇ€7ëÐëe´S–¡ƒ‡>–ºlØéÁÜÇ¢üÔ‹¨¡f.CsuÉôMˆg¥•‘Fvx°‘LVyéÙn’r®Ü˜ÕÃò?IËbHƒÓ•1ôRµ^BåÐZOõrk^Ž`î1Q~îCÉ¡¤‡e×Óf[% ÷Ìð.ˆµLQù©ù9‚5?'0ÙågÛ›~kÏåÌ[ëa7Ãâx±åp½ß•š!„æ[t¸`nQ¬U1nT$hPU:—Cï—ÈX UJ«ªªà€J¸hâßØ ³—ãÿe¿lv¢(ܵ‰ïÀÆmãŒà€Ë¦iÓÄ0išÆ…iMnúþöþÌŒ?ÐNa ™£Æ{ðÎð1G°„ÞŽ=þPÚÁlRêÇnvsSfx>ÁW߆­4©¢ùiWŠæ?!€'83˜¤~ÍŸÓj×­õ}rvyZŠ`öNÂ뀆Á¬­QÚPÛ…1mE ƒ€Ëþ⫈ÒLJ¡Î­Íïáå…öBÀvøÏ?˜R꥚+½Î‹ LLï˜ Ä„%æ’I½Îàeš³YrîP&1玥ÒQÛÁð·J“Â;æ‚»‚s´à Î fsîÌß8ÇRn‚‘sKùhÖÖ,…ŽJˆ+cÚZä&ÎrÃS.((
+¾_£Χ}¾[éúa÷±/Ìí' CÛótòª„UÉðPÑ[«‘àT›ÏêÏÑs?ÓhßE­1<æ°Ëíïqû½]E©Jät²y™ƒ¼ê®±†IÕ3­;Xw¨]°ý#g×xŽýàÝ Ù'Þ ý㵂ô…×Ò/kÔ„¾ÑN
+„î8+ºkt„¾qªÝÝÝÝÝÝ5.ÂBKòMt­@è®2á  +ña+ýF8È?ðFAè²Ï/dC¼ã
+endstream endobj 179 0 obj <</Filter[/FlateDecode]/Length 5613>>stream
+H‰ì—}LSWǧPÚÞö¶¥-¥€À-Ø®å¥Ð7JyQÞ*¢DEHS+/JZP|¦”eÙÂ6<ËFÍMƒÑ %ã12õq$0§$è24ÆDÍÌþó9÷¶ååT)ƒ{>MÚ{ç{ßs¾ç¾ðò%à=·óréüÃí¹Ó¤ËöÜcò-í-«Ïwåí[]&coéÖ® yû}õv¬›Ç뼉Ò9Þà ÀÚ×hpM¡x9 P1!|…h€Â‹J¥ÑéN£R½€’Ð-.òÀ%4:ƒ‰²Øl€Íf¡LP¡Çb2»ˆJG˜,—Ç|ŸÇå°˜º¨ Q¼hÊæò}ýƒ1
+ †Ê2ómlë¹<0tstl||lôæÐÀ垶ƣó3ä¡À"Õ¹ö`1(4” Q&e›­õg;/ ŒŒÞ™˜|ð`râÎèÈÀ¥Î³õVsv’RÀCÁÄfU`ZRMÚ®âšÓíç¯ Þ½?õèñãGS÷ïŽ];ß~º¦xWšF&6£ZïáEg ‚Ãb3rËŽ5uô^¿yçþÃ'O§§Ÿ>yxÿÎÍë½MÇÊr3bÂlº—cqÂ`:}~yÝ™®+ƒ£SO¦Ÿ=þlúÉÔÄèà•®3uåùz]&`#³*O/„ã+ŠŒÏ4ZN6w÷ M>zúìÏ/þ|öôÑäØp_wóI‹13>RäËAœK?«2+ë[z®ŽŒ?x<ýüÅ_½x>ýøÁøÈÕž–úJ£áݪ–æеÕpiå]KÙÅåÊîuíJqùªtéàÒÝƵ;›«wQ—îØ®=\|¹öÔsñ ëâÓÜÅ7ßR\|#zϵ·¯áßôæ+— XNÄâ-…iæ*3ŠänEq²^c=;Ͷª"+Šd¡H5Š(°äJ‰Æ¶ƒ/y4@¥À^s`ÿäšq è&>¹GPD­Š‘k0…Z¾Ëg›
+yŒ&Z©U*¹J ¤ªXЯVêð¿Ç`°2z¦ùh*bä1jÎ9X¡šw*GSãÐÚ›µSkoÆÊUj] 6{ªQ—(Duu3M\;cÒ>Ø>…™S9šj‡vÎ|¶Ev¡ˆ“Ê°Ü=ıØ•l­J+-¨*µT˜­G°8¼/ÿÂ׬Z!ŠÄ8b“ã„ĔˉûTˆÃœÂœaŽdAǬ¤âU>@ŸÕì8–&ë±äê* fߥÿ*’aQ9UÖÒŠXa“&Zö™’õ:Óöý¶"ë¡¢BSfÑ“}”MægŸœ ¯°T`±:e´}vÕøŒñm†o$5±gÄ®!¶dzéEqŽã”¢¥Î
+Ö Ë@‘|ÇVS`*µS(µ˜L;ÓàçÊ-Y|
+°²H…Z«‹OHLÜäFâuZµ"R¶ pY `s¾KÜ$…Æ`ó„A¡²(MÜæÔt}¦!+k»ÉÊ2dêÓS7Çi¢d¡AB›A£Ì· ò¦PÏ/X©ŽOÙš•³'ÏhÚg6ïwfó>“1oONÖÖ”xu¤$ØÇB¨ùü¼é(W,‰Ò&éwäš
+KË+­¶ªêêêCnª²Y+ËK M¹;ôIÚ(I°‹ÒçeŽ/%ÁŠå±)Ûvï+©<ôaíÉ>n8åF>þèd퇇*KöíÞ–+
+8 ó9‹I,%‹ï¡MÉÚ[d9R×ðéÍçZÛÚÿí6ÚÛZÏ5ñiCÝKÑÞ¬mD¨?ŸE,æLàžTÇ7X¦ÚlØ[l;~êóÖ¯:»¿ýîû .\t  Ð÷ß}ÛÝùUë秎ۊ÷6«dÁ¾ÕÓÃ98åù‡Êã¶î.´Õ~r®ã›‹—ûúøÁõeÆ^eàÇþ¾Ë¿é8÷I­­p÷Ö8y¨?¥ÏFŽŽ°}‚¤êäl“åxck×Å~þùÆ­[ÿŹ½ÌEnݺñóðO?\ìjm<n1e'«¥A>ld6rà.Eè2ö¨ihéìí¼ñËد¿Ý½woÂMÜ»w÷·_Ç~¹1ØßÛÙÒPs`O†.B$Ä#w¸÷!
+Éõ߸Íh©ýìë ýC·Ç'&ÿcjê¡Û˜šúã÷ɉñÛCý¾þ¬ÖbÜ–½ÑŸË¤Q÷"pñPh(oƒD•¼ãì—{P×ÀÇyl²IHBB ! " IH@D@+>‚`1<¤ D ÄgÅ¢¶Nµ•Q±^Ñëè@}Lõvt”ªs¯£Su¬ÓÚ‡Ú©Sø[‹´p-×ëé=»y½ê‘Ìì/3a÷ã|çû³g7gËíw>uñ«[Ýw{~íí½O½½¿öÜíî¼õÕÅS‡wm´—ÿ%-!B.BÁ³è±%› Pë3gW­úpï§g¯Þè¼Ósÿ·þQÆÀ@ÿo÷{îtÞ¸zöÓ½®ªš©W+xìa–JMb–yQãÖ¶ŸýcwO_ÿƒ?ÿMƒƒ<èïëéþñëÏO´mm\dÎJÔ(=-ßð·¸DmÊžW÷ÎöŸ]úö§_zû >üà%•>èïýå§o/}v`û;uó²MÑJ ¸É"§%“”Sl]·ãàé/¾ïºÛ7
+1:Äüö«ðÉù¥K×mo;vöÊõ›·»¨ÿ…ìº}óú•³ÇÚ¶¯[Zš?Wùí!vþ²°Øä좚U›[8{ùÚ77nQ¸Ù ··n|síòÙ‡Z7¯ª)ÊNŽ “ù“»qî="(£ Sf–-mjÞsèø™s¯\½FÍÆ͵u»võÊÅsgŽÚÓÜ´´læC”R"@˜;7â…B®ŠKÉ1WÙ×7·¶9ÞqƵ íMðùó®]ð™ŽãGÚ[›×Û«Ì9)q*9ñJá±  “ëª1¤ç—TÛ›6·ìÞàðªß(Ž>°wËæ&{uI~ºAèÏõx=#&جËUZSfAI•mõúMÍ-;wíÞCåÛٞݻv¶4oZ¿ÚVURiÒªä`«ÎôxÕuN¦T‰'gæ•ÕØV¬iÚðÕoºïmhZ³ÂVSV”Ÿ™ŒG*¥C¦Òù‰ðD2L›Òs ç-XXc]b«o°ÛíË(j¨·-±Ö,\0¯07Ý„«1™ˆ‡x¼B’—L&‡/
+UO0¤däÌ2Ï/]`±”Q†Å² t~±yVANFŠa‚:4HÌçSé¶$'“Áæ
+ÄAJU4nHNÍÈÊΑ——O!yy3r³³2R“ x´J$pÙ Ï©tL&¡ÉÊC#4Úx½1)ybÊ$JI™˜œdÔÇk5¡ò@Ÿ”ôœJç5g°9<a€LŽ…G¨51±ZíJÑjcc4êˆpL. ò8l†ß0I—& AùB±T¬Pb¡aaaáÊ…bJE°L*òQ„5‚¤ó¢û1Ù—'ŠÄ©4 £ ¢šT*‹„a3ý†_nOM“ÅæpQŸ/
+lÕÖ*,†¦N«X\VYš–m*Í/«¯´-«¬(Í­\YêhUålç-š[[1£)>Î1\;1Ä%¡Ž\o8¹âÈå<µº¶2Éyœ^YUmu-n0Y YŠ;—)ŽétF,OÀæcz†ƒË&ö­‘çÎFÎ?F,Xù‰dc°˜±8PUE–$î°$,>N‡À–üIãmžçéøzZyÅFl´U_­Û+÷==xO
+Ü`$©Ô{ Iêõ^HÒ[zÏ/ùšzWÏÁ˜6ô¶Úcƨ¡·¥†CÂ3æ ½­32´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<´!<cËð5”üó ¼m4Úž' _+ÉõÆ„ák"ù ½1aèuÉÿ«7& ½(ùœzÞ’|!=ê%_BJO½Ñ–„w=ÏWëö
+UGUì¥m©·¢Ì¢z%ŒóàÅ3ž3“hòÀÇ qöìDGŠ¯¯Ÿ__2óéyDHñc0˜,›„Åb2DæÓòˆBD
+“ÅF8\”G‚r¹›E$úŒ˜Fòe0Ù—Ç÷ŠÅ’€
+©ˆÏa±y~@$)Â5¸qRFN~ásQ‘yNaAîÔTS|Œ*$PÄC˜~žÅˆR 6*”†¨bô)™3fÍ[PñVMmí¢êJKÉ켩“ Úˆ@!Êfx#J±8‰b|¬!5»°¤¢Ö¶|uãÚµo¯¨¯[øæìÜ4£V¥¸,bd)„'
+
+‹6¤æαÔÚ×lØ´eë¶m[›7¿Û¸¬®Ü<#=1&<XÌC<Š9JùK•ê„I¹s+–¬~wËG{öµ}üqûþ¿ílÞ¸fieÑôɺ(LêïY dQ‰‚Çk“²f—/iÜ´cï£ÇNvtœ<~ôà¾6¯µUÌ™–<a|°ŒÌ# ò%!j]Zþ›uooúkÛÑŽœ¿péÒ…óÿìø{û®—¤ë¢B$|RÑ=,&Ç?04Æ”õ?…§—·O[²a×á“ç.^¾|éü©Ã»7.ÞQ‘áa¥«$!ÈÍó##Ð[<ÂR*v¾qù ¬Û}ôÜÕ›wîÝ»{ëêùc{Ö/œØ˜çgg *- òB'¯ˆŒº‰SPriûŒÛœ»~ïÑÓçÏŸ=¾wãü‘+gv”¥;™¨ËŠðrÂuƒOTNÓÌ5,£ºwþú}§¯Ý{úòÍ»wo_=½íôþ óûª3ÃÝÌ5åDùàÁÒ ymK¨œúIK¶¹pûÉ«w?þôþÕ“Ûl]2©>'ÊÓR[(ºÄt¬¼bò›¦®ØyâÊýçï>}ýöíë§w/î_=±sÅ´æüXokEq$]À€WÔµñ‰+l±j÷©ë^}øòýçÏï_?¼ztýôžÕ3Z‹â|lô%àAÒÅ- ¡¤gë_Ü6kÍÞ37¿ùôíç¯_?¿}zóäæ™}kgµ'øÙê)Ip£ëÒ·õK(阽nÿ¹[Oß~þþë÷ï_ß?¿}zëÜþu³;JýlõÑt"YYßÎ?±´cP×md]·ÏX?§³4ÑßN_Í]’]sÖ8ûÙ»/?~ýùóëÇ—wÏnŸ?°~ngiH—$V]I¥sºî ëºC’®ßþü†êÚ@@WYçÜ Xu•ÑF×Á ¨º.Õ5ªkTר®§ À
+endstream endobj 180 0 obj <</Filter[/FlateDecode]/Length 9111>>stream
+H‰ìW{PTׯ^ Ëû©‚d/÷ž{îËq×RŠŽvUZ`Ôšhú°>ÒšêLŒI´1míÃG:£mª‰:¡N3hš«X1>ZGiê3¢ô;÷µ÷.`Bf2Îpavïýöû}¯s¾ßùn]û†ŽŸ¾p­ûî?~ôÅÝîkN?°cC{]yaÁ˜´¸È°áC‡| ®!C‡‡EÆ¥)(,¯D ¢Qƒ¨AÔ ê:vÊŠ:uì›Aµmر¿OTÛWDõ<~Ü£¡ö?ånÛ°P]fTדP©*jýö}G;»®Þºó çÑ£žwn]íê<¶û†67A¥ZP¡‘±©YSÊú׿¨ófÔùΣû^_ïw—M)ÈJ BÑSf׶þäµß½ûѹÏnÞ¾ÿ°§çáýÛ7¯œûè½½¯­k]X6…FÙbS2“Kk–­Ýö›Ãž½|ãó»>|pïó—Ïž<òÛmk[jJ'Ó™©±¶
+ ŒKÖÌõ,]µvÓÖí;ßÚ½{×›;^yiÝó˼óJŸÂ¹TJIË@)!F'ŒÈš L-™ãnl{þÇ7mÞ²eóK/®]ÝÞT_=Û%æ™­¨¡4g±ÉécÂÔâʞƖå«V¯Y³ú¹­M‹jªJœžkv¥9‹°Ç§ddçóSfÌ~vþBÏ’ï66~¯Áë^PU6³P Çe¤ÆCV&Wª³0[t|Jú˜<V*œþtyåœêyóªçT>S2sªŒò³3R¢mafWª3ˆ`£2Çå³Â¤§\3f͘6u²ˆ9Yé) 1‘á!WÄÄn³Ç%¥¥gŽËs°/J’(`–ž0>+cDr|tdxèp‹+ÅÙ°ádTL|RÚ¨ÑYÙãsróòòrÇg¡ÒG$'ÄÚm*È‚Òaá‘ö˜øÄä´£Ò3FÎÈ52-%)>ÖÒ¤À
+#ÀôRÝ)Àá!Æ€ôÑpHýªBž€1€Á×—@ú@~5Ä7xegÏhöLwûÝv[õ,»-ÛYÌׂ¤ÂÝê÷¶Ømev[›ÝÆRÎ¥vC•ÃÍÀűÔnÔ¿j7€Xù«^i·aI Aà)–‘iY–©&‹L Y,c
+Kͳ‚
+—EE+&P¢’­2bÊHG¶Æ0\+0µÈn«²Ûd*'—ªž«Üg×8[üÓêý ¾fwËJj"‘M"¤øPvÝ&è€ìZ“U¤¯
+ˆæ9‘"è‰fxX+ı´,’E5Ä)
+ú#¬ÂÍ ›t°Õ¶xQ Š„‡Ê±ŒH,ðV/¼ bDbè «ìeQeÏqÈ4†D9Pâ—ËY_ßÖTá󻉲µ˜yJá”æ§bx C—³"‡ò-q¬hîN.±¯Âܽè›È28 „dàA E¬?˜«§<K4‡”JéX‘Ó°Ú
+iÚ
+!IL:X2™PÌ«#™œX#6küÓzeTª”ž¥¦¿ˆæ\(—!Dˆ¸¡D,¯=˜s•”%F2–©
+Z:N—‰4{”,%Y$NZ„@Ú£–%PŒYó´Äq&3†Àœ­&ƒrÈœÒyºÓˆaÕëÕSã1tô 3ÁyÌU§pÐL·ÇK«Í]ÒàFs0¤[1’¡TŽEh,KÚñH Mh‘‘h Y¸€¥jgÇ:X²+eÊÈ™£·ü@EILƒ˜ªnÒQÆ”C” J’Ù~<%10krè¸ê¿ŽK×@]ªåÔü-"Äåê÷œ0 ¨‚2Ÿ¿Â[ïkñx=*KõW½‚
+¯»q¶nQ£r¦9‹‹ZÜžo³ÿÙE¾–&õ·Ü>ˆ¢Ò¿²Ñ[p­© œ=Ih¤/È–@Þä“lµ@Foét,ð b ó"DÅ‘Ç<!hŽ'T ߌ ËÛÇ:šU(Ó'‚W²Jˆg$Ár£Ó:ˆâÉú]íÔç;¤ÍwpFðÔr;i%ØZ2´¦Á<«òGcŽçÂR‹¡±ÄbUhÀû’Þ¡+‰3*M8T›„̤‰˜ÃB&†]ɱAŽ`¶“9!HˆÖoYð0Ë’Lp-””yZ`§6±°%•¾Yå°QíÄ LŠ26)A²,´ †ae Ò' k¬Q4dEðÂÞ‚>EʤñÊ0‚눬¬¡Á)S  «+S½CpWUs³» zl±Ö2ìx¨ŸÌAUõ½Šaeø¯L_Ä
+Ewp05Àb"žÕ’„#š•Qß&ÈP¡~Á2!1¥% õ"±8î‹Éžì+\†9™ÿ?$3ÆŽ•„¯Ifß#ýð™:+)VÆÊf‡£ÂÒ‡rM“Š€¥•àµI¹V™ÔEu ‰6&LjX€#[aÝT@¢yT€º N"샀)2W!Ò—†G]¢ j`†š¼aªWŽ
+©áÓ’ ÑÒîpÒÌmSmeëêŸêñ:J—â+mCGY¥Bÿ•®Ÿ |©Bý€‹½˜sËZjñ¥¶¡£¬Tp!ì¿C—Ü涵Öv¨µ-µÞZGás3ôƼoÙtT(­r•¦£Ú¶ÍUèP«4%>$¨TGI3øjƒé¨­P“³8´
+€¹£:¼’3%>cÉf_×o®£ð»Qƒ]®"Qx
+)½œ“52•”²ÜAHís>½kN‘R7ãëÃïZêvZ
+oD‡¨bˆ~Е'½‚
+áR®n.M Ñ›µzâË­¯1ù¶÷¼K4×yVKá‡g‚¤$üA•¢2-•ZïÒǘb éRuCM‰–fr*oD_(…LN¥š“¾TSNUìÝ81:=±dŠ_ÂÐS ï*~fnµ(¨Â¶]×ÿeU«N×D,óT+;§kd2 *|¶·ŽÍì‰Oõ³O'A•jL_aG{`‚Šðeˆœ±QÝ,FD–Ñ° A…DB¹èÒª R‹ò‚
+ªáÆ?TPI¨iÑŒ|ÁâT±ãMž¡x19¹ŒÃ¢Ô ‚j¸Ùâ-Ô¡Æo@P!»ÊÍ´ êØ© xAE>H
+{zEµžPw'4•œPr! íN'¹äÑK*6:|v¨ÈKªhÄjõ’Jj!ÐBÓß¾TUT)à^Q­ŸÉ,Õ+*ý]€ý‡8sG/¨üN*mK¥·TÁ Û'¨ZL\¤ ª-Ĺ
+j‘&¨Äœ â0à•ëU-p1ã$Jyn¨¯ä¼¦ bŸà‡Ù×õ9U9!PÀi›Vê!‰X ŸÕ6`z
+ƒ§Û)Au›œOïšSôÐÔ¯Ž>„žú°¶å‡!«THáÅÂ[‚ à9 5ðUxÞ%õi¼”†ÒDaàåŒ*zbÄ«†×zñÄ#…ÔÛnzD­:ß½’°[O\Ÿ(óãÉ‹s—PX…‘ðºÔE"aí±OÔmgË#"fîxqÞˆãZ·h0íÆ%ÿ»W1¹±ÞŒÝ«°Uú¾©0²|”üS…±[ô*¬SSô" ?W}ÜœÛðnÓÞL†ÕQôà5cG÷ ¨iVÿ¹5 ›£š/…
+D~ò§#‹Æ”`ìN‚I(ðŒ2òõr °1ÍHd¥¹|jPȘú«0òNùÅaå}ê ÁVjHMMhP,kíw8Em>Y}ð‚²ƒiërRíd>y ’—,<E,Q…“E€5 ¸)¶ó5ì³<Tõ¥µ¡j›Ž5ˆ‚F¢ª¬¶ÖtංƸePx§Æ\ÜÓ¾žPw'$
+Ê|è-³4XNgsÉm®­m]ÿ³CE^}éZ|­ *[­+-Ô(ƒ¥VãÀû:çÂZ+øZA5”ùäæBä¶ÿ]r››×Zó¡Ö¼Ôz[ýå>‘³?ä?þP ‹ªYî§Úp©¡!mÑžˆ:§n a®Y‡º'¢²Ì‡~°0ðìÍ°Ê,‹C«`%¦ûߧZ³õ˜•1Âìëúuï긧øŽ‘0¥»·õ~ â/ÚjÄEFläN<yúRx" ¾4¥våñèº0•Š: ,uÑiü5'|Jè±ÆËÅXçXÅf³OÙ°SFžÎ¤
+Çä…3Þ]JK7,ÚĆÅm3BíËûp8 „Ìß½³É"]@p8Ì>lñö.:XƒÀ’…¦€‘l븳Ñá°ÏnJp8,>a öY*ÇÝ6Ýáp×Ú¸²mà·Bq˜>Ø9w¿¯'ÔÝ ‹$Òît’KûøcøìP‘Çá8àqÖêpXkUαÊ`©Uq¸â ÷õ3™¥:ÖRaF
+Ñu:2b ]6¦bœá)´\BÛÌ'/FÌ]BØ%kZeÝêÎO›òjËc=ŠÝoN¾|íöÆ UÇî9tV
+±{Ž’AÁs4Y>JîÉÑì=G'À› Ž£S„¢]Êq4
+­~Çèûbtðœ¹iÇ ž£SÞø6MŽÞjãv<Aš,Úý'I³x”æPàQš2òýò,“<“¥;?™ž¥É¢oÀdiv ž¥9ԡƇÓú†c›z°këoýÀؾ$ƒ®_Hîâh;¢¬ æEÍ‘ŸHîÒü³åÇ›1{íÇâzö™Ô¥RߣýŽ5r’1”ç –xrˆÎ—ëÜO¥zô¾-´Þn[ä)¾ ü¬2å\]…fÊf6ú·ãqx[êKÁ»¡Ÿ1l>ò/Û§q$Zü=¾[66CèÜ Ì†#ÛüÂNÙÆÜËñ>yÚzØ·n)ÕùõâJS Ë×ÌcùšÙÕýt^ç׃’%ÇÒÓ­?¾{|v‡Z`½©<þ-káoi´ŽÑEä6Ë>—Ý»6s¶­¢7?«^]¿þç«÷š“¦ªý¿¯_¾u4g–¨i<©Oþö§Ë¿>ÿ¾í~ü9=ûñ/o^_]ã¯?þø» z•ŸÇ@2ºŒOž¾}‹^¼»~1‚Ä‚„`«pñä9>«~¢06‡’üùíËëHq‹?ã2~¾yó/tøáÅ{Üý¿xýÓˆüûwï^ý®^½~óòÝõ8•±ªñgúßûÿýûz–tøóÇo>Œ¿?_;zïG<1!ÆýÒE=ºzûö«®·mc‰¾ð и¡÷ûãÑν¸uá4@ãâæÍ%Vv«H%·iý=Cr—K[Ž©~$2² ¯Ž†Ã™ÙÙ³sVÛz½Ü<ø Á6‹ &ß¾t‚#Òš.·ÓŨĂésIm;­Õv\Sv¦Ï%µÕf3]ŒëÇh{ÉsÇ´× Í~šQõúî–øqDŽÑö r±wõrTbÝA$õä ðkUoO–7‹Õ¨ÄëƒHo²Z¯;Oƒ4¯¦³_¨ÝVóQy¦æ‘è“ûx½®ÿ¿‰õA¤ÇÂìõh~³j¹¼¨>nÏ6ß^¼9•äýGþµO*SEþñª¿LjßÌæÓíôÕ¦šµãþÓ•½_È{!íêÕýB
+;wÁ4ÿ¨†ë,CG7ï¥Ö£TÞÞRuÃÞvjŠ“LR¬ÑQ½xâš–08ïm?¥£¤Þ­£vª¨^tE¥ØxuÉ÷RÜã³:Ò\­ëyUg•eT–QŸ%¹cØqRè]·v–QYFe•eT–QYF=Ö«YFí”QÅÉíÑ V¼ÅGÉðOòâ‹öÿû)t¾àB“þŒ5ËóniUésò"«ûß[ÓŸº{ ÄºÈXÙ³–yb™'²&˼¹²¼Ëò.˻ϑÜ1no@¯&뻬ïHd}—õ]ÖwYß=W}÷œõ“Ü_?i)œÌúé@H7맬Ÿ²~úÉ5úI{+´Íú)ë§Ã™»³~Êú)맬Ÿž­~‚<ºÕO‰hbƒ¥è¥T»|T?õ’èÏé'¡÷ÐOjoý¤™´Leýt ¤;¹Z×óªs}f•uÔÁ¤öÜu”cJ³¬£²Ž:œù;먬£²ŽÊ:êÙê(Vˆ £°lÅýI—"J*ñ'uT¯žPRb/%¥÷WR‚iγ’:ÚÌÖ«m½^n²–ÊZ*k©Ï’ܱrž;a]–RYJО¥T–RYJe)õL¥ÔÝÑ V¼…bb¥²’ZˆR¦H[¥˜7V
+ /iÍ,3pVJh)Ö
+@Ä—ÖJ5¨3œã¬ ÊŒ×7ì6P5Ñ«8¢E Ñ"–Œh‹=Ày\$=€œ}:¢ÅfÉf\ÐÄ ¸QÌÐÄ Sª›@Dÿö#42<&h_ŒkZÓqí
+ÑEÎ
+$¬3Mh+–#ÐV,X ­´Õc‘¶z¨£­¸‡~âF'¼"á­Ø5‹}x«zÞzÐ{ñ–¨‘£CÄs(Csˆ@¼\€ ÷Ó–¦Ä0Í Z(*ÓÒÒÀîYÕl9]%¾:m9¦äÿoý€Òj&hKmD-˜Í´ Qa.;¡vùüŒo¿t±®xN!¶Ì€z$M;?zñ)ãèy;4%‰'íÓvÒ”ø«ŸÖoGÒ¶L!1Ë*ß¼&@ Åâ<p>~8¥Cˆ‰Á;C|‹ÖŽÀë£àa•ê1øA¯B\ò3¬”–ñÞsto‡§ˆ… ÏSLƒ†„- F'Ž¿±8ŠýzGU)7¼Yù¤ª±$çû%zÝœ³§šÇ‡¦Ñˆ”5¡]N,JŒSåÍ~x9—çM¹$m½¶1f"EAo¶Òí­ØšùƒMs[ï $'/õÑŠrØP[êL3^ =nÀ¤”ƒ8°'ˆ#F«|÷dZ“”é 4„%ANŠÖì~=Î÷áXî%ÃE„S£pCâ|£ÓI‘îC°˜½½2­)(£™Ín&jÜG\‰¯“Q?Qà'è”a›¡À=è‹ÖŒ¶¦_ƒóÔ_VÕ—KÖÖ§˜\W7‹ëm—|uðo7óíu‡FÛP,¼"@¡0ÇïßœÿxöoìÖäò£|}ùny3«°úÏ她|YPyÏ8£Êª{†ǧë5œLëjüp­½Ñ
+û[Ÿ¡|“ yŠÏÐ{¾_Ï«}2âg„ññÃrƒWÓ-vÿên[m‚瓺ž>´›]ß,çuµê¬DUø™>¶¿ßV}J~þuº¼ ¿OZÛãwxùj1´£¾é»1qú¥“šÌÖ«m½^n |`›Åˆ“o_:ÁiM—Û‹ébTbÁô¹¤¶Ö‹j;®);Óç’Ú‡j³™.Æõc´=ˆäŽ­‘W8þ FYÔë»[âÇ9FÛƒÈqÄÞÕËQ‰5v‘Ô“7À¯U½=YÞ,V£K¬"½Éj½zì< Ò¼šÎ~¡v[ÍG噚D¢Oîãõºþcü>&Ö‘ ³×£ùͪåò¢ú¸=Û|{ñæ|T’÷ù×>©üMùÇ «þ2©}3›O·ÓW›ª mLeïò^H»zu¿ÂÎD0ÍÄ?ªá:ËÐÑÍ{©õ(•··TÝ°·pãÅÉ-´•#…¤Sa%Ù:O éÜ]Q=RŠ±Âjz7­8–xTéÁ²[±°z\б݂N³]‚N±’þÇ+:»¿¢³ÜZ•Ý°ÿäj]Ï«šgA—]tŸ%¹ÿ³_.­mA
+7Š”ßF£è‰F•áÇ{TÚÞ£R¢„âQyèveţģģ^åäö‘ŸƒÁcˆQDJDj:ÀE¤D¤D¤D¤Þ¨H9ã]…Ù… ',N›„œ+ p8ä$­Þõ¡Vè¡Š“áå*:NØÅresÌ}ñV«ÏÝRz"]ÂCóó©€ï£Ë< òÉ7 Dë8q‚³%±H!$õ¥V–*‚‚PùìE\Õ¢ok¬‚œ®¯-ûÎÆãÚµV
+rå“e¦s¤À‰ë¨\5™JB1†¤Àò„ÐB¸*w°«O˜—aCmÙw>0×Nø¶˜c>FËc~5—}\›÷5ʹwCíß¾Cµr±Îµ:f€S_iÌ»÷¦¾x¾ÃC9/^0¼FyCSÿæúá)};¹¹]tùÑâûÍÝÙåÏ_‹{­x`nöQ«/üÙvâ“©
+endstream endobj 181 0 obj <</Filter[/FlateDecode]/Length 2284>>stream
+H‰ìW}lçoœÄI.$$9>Rœ6±ïÃ_G ­!ép’iÒÜ‹}8û.;_€TíP'1P¡ ›öê6UZ©:ÊH¢Jûø±j+$ªTUê¦B›ðÇP+¦R ¦‚ÂÞ;ßï.çp¡-1Òý"Ìù¹çyî÷¼ïs¯Ÿß#èâ®
+Ì7—,LVÆqWù¦#"YÝÕÃ|“Òg5¿ÄrQšGb³SzðÄŒðyÜæÊç‡àù}q˜G|Ç](ȅ΋¥Pà†E¼‹ŠŠ­%9`µZ”1–"k©md·WêÁ^•—•ƒ9 °¸´Ü¾hiõŠÚºººz€¡®¶fÙ’…P™U)°—U,®^¹¶É…á8îV0¤¹qMmU¥ÍZ(FXŠJ+ªêñ§6µ;;»´èìØÜú´·iղʲâÌC
+,ÖòÅõMëÚzB;v&hšQƒNìê'{ƒUUPIæ!E¥öêÆu!æÅý‡†GŽh1|øÀ¾døÇšj–‰¶E+ñ¶ÐàÁ£o?96®ÁØè‰c¯
+½k–”[„2Š,]ûTsðõñSï˜Ô`âÜ™Óïüáp²÷éÆe5a…ª›6…^<:þÏ?ùlú¢ÓSç?:óÎkûÈÖæš
++_z¥Ä¾ÂÕ¶cÿ§>œúüJ*uMÔ•/¦?:}ì@ÿf¤Ö^"D–Øk±àÎCÇßûäó/¯§Ó7UH§¯ùÅù3'ïêÀê*…Å•uxgbøäÙÏ®\ÿæÖm n}sýÊÔ¹ÑáD'®Ž GÆ&¦Sé[ßÞÑàÛ[éÔôÄغKÑEŸ¼˜Jß¾£}åîÜN_»89~„QEÔ»»>âÚM½ˆ›b„»ÞŒ0#Ì3ÂŒ0#̈!ýžÏ¡33äš
+Ïr‘ùë%ù`þz‡ ›×ãô¡>?ìEQ'A¸Q8¡´!N°·ìu;q¯Ï{ÆÉ‹‰’! ÙpŸ#|DÖ6ÓëVÚp·è$¥ÎÐl&É#g’mnÒ Ë™ÙLféñ’$’iJ6H®E²ÉÕŠ™³ß±l"í*D; [d#`G#Ü»]¸n¹,× s1†&Ù!xo{’ÿà—,x¤’BrViu¼U®T²UV‰vP•AߪÊ@ç"l,)^;íp`càLÇÅ^ a×6ŽÑQ¸I¨v"L
+´¡®¾$Åî¦"¡-ÔP(ã•lý2U£Àfh؃™ª³=ëwûP?ß¡€=F>Ç•ÍK (áå/ü„Á‰ìE¶‘1m#»Q§{F#g·M¿¹Q¿º¹·WÛÜ8ŠÎèmî¿ßÞ41?¡¦$Q—»kÖŽ"t:IQ¼Âª(_iË€œ¹Àx_‹ hgÅ2蔟µqÕ=–Y D<·ò-†¸×Ë·êAO¸ðà¸OÙb~ù_o çáøøpp‘Po `·Ý‹!Â?Px#P®_ØŸ¬Ñç–_S›bú6)8¨—s.”Ï»¶RdvôS±h?'¾£&Û÷Ä"\¿h¹%ó^ÑäÍš†D“«·#ØÓÞ¯ƒ¡½ø¦Ð¶x,L«ÖPˆ5Âü9ÑŽ"!ÀxI™a×F†IH–"¥<`KšÈ»Úiv$ùLr ÿœN&B‰gÕŒÃköÛ€ÆÞDœÍ$¨¾AŽ’Ž(幧ð ÷Çâ–¢¥EYI·ùnh€Ê–4ãön2>(Ýwd|¥3TåG“ É <_‘t¾‹r„šc™x2qU™* ¨ø6ß(‹ŒsÝdÔPa’ëÃRG²QŠ3Ö”¢ëÃRZ‚J&ɨ±~”}ó¢8†"êÃ0÷½Ž”(Ë ð¤"eß¼(ÒÀ²qC… ~yQÔ=vS,ˆÇ¢´¡ÂÞyQžÌV¹^(U™}dxßntÄPJ÷¼(ôžûØÏ°/ßG…w^”‡HÃWÎúÂT<ÞMíåÚ“mÝACEjCšæRÊ÷´"?øÂêÈs;ÔV‡#$G6')š‘•Õ.¤†’^¯Î’´syAFù 5œè)u´ð\¾õøRºøÕ•öVÔ^n‚×H¼à⯀BɃ(¯ÀÝ ìw2
+ÕQ ÝwÒP@:ÍYDá‚`¦ˆÊ“óÖÑÇ°Š5%”)¡L õ@Šs¡˜Ûãó{ÔgJ(SBåÏèmJ(SB™Ê”P©„
+nÿÚ=¡V:$‡(¶¹ž¿üÝ,‹S,d‹&ÉÝLÒ4Ñ5
+endstream endobj 182 0 obj <</Filter[/FlateDecode]/Length 16119>>stream
+H‰ìWkoÛÈý.@ÿaú!@ü!ÚrÈáE>SëÄ°]‹B`,Æa+“%e7ýõ=w†/Éò#Þ¤M»Ò@5CÞ™{:»x.ê÷Å+wÆÙtòâEÜùºnŽ™™f'ËåfµnhêåùbÆé©ð$˜·OþT4«²®Ž™3nW3zÿe¸¸)«²}ùˆ½<¢¥Ër½,°xU/ëæ}ýÛ,/úm!&É×XV?¸ü‡sÍô±tÙÙ©y$¯>å«Uù/< |7pi2ª7Õ¢¬®£ú·cÆ™r™Ç¦¸ Å¿–çÅêÁ'’újsST볦¾*V«˜Nµ:fñç¼b§ù5Vrö·b¹¬eÑ2¿ú'Þ O¼yV. (y“¯™2*‡'îܼün…· €îͼšŸÜ`ê¢X¯qÈ6¿ŽÆ[ÒÁh¼ü弸¶‹¿µ’/‹›Û%€1*x™y êã:ºïÅÉÌcBøLLCW_wGÔ->•Å¯ÇìM]­Na³¾°ØrG2åíüùfY4ïªr³ûfN[UOëE±ÄãÃûÙ27š!†kûÄeÞ\k˜¤^nÖ†2ïÖÞln~Ì?¾h7y{[T—õOæœÚ9ŒÆYÀ„
+ —sŸ‰Àì!=h+ÌV‚µ¿­X’A:ÙŠÀ?ƒ=Þ6åuYw‡Só×M¹ŒñLvWÚdŒ¾ºû¶'…ÞëuQuGÎ<>œÏN/hß´ZÄõ á¿2Ô…©+°`Y_·«Ã³›ÛV31‡¹Îš²"ÁÓÉ»ÌÏ–,¾nêÍíIõ¡žN^Zß½lò+<ÉÞ¾ÿGqµ†¶ÃÝŦ\pÁÛ£GD-ó*o˜Y8bíäå'¬ä8³ïae˜{ŠØ¤ø
+x Š¢0ÒQ©ÈUe„“FnäD"âa¦aBH…a¨Ã T>h-C7©BriT':Ö‘ÆCZë
+ñ¡¨ê,»–µþ ‡m}cÙÇlk­;Ø7Øcߌlkllì+[ß·Þ¯ŒƒÞÂ] Hwl,FvvMQ0XÛÚ»³t¸eé¤i7þŠÉ}Å£ÛÙgš¾=‚ÄpƱh_Þ±ÍQÚÆ â©g"Pß(:°mËRâhÐfpÓDÑþ6ט‚¿3¾i
+CÃBj ©!¤ì‚3¤¸–™Ð»è£Á(Ä 0‰¶ñÀ2yLL1q‰ß P©@B¡Ô•H÷Ê÷•ÉC‘Ü—ÉÚÚ±+Œ|“­º²ˆ÷¥aÔǪ-Ž%4và~’Âg[Œÿ„@%
+vŽ¿ù’uÓÄĽó8ˆ»ËEÑsq›z\*öíͽ…"568éý 븱Ùnmtß°¶ÍÐÖÀ˜~ÛÚè¾m½ÛÞøöbëNôW«{wuzÿè‹iH$d,:öjqê®^;üþj=ʆª/¾éK˜â
+‰ºÇW·yw%D–âÉŽ>ä‹ÏK–£t‰T‰„Ù§Ëç'˧¥ÊQ¢y:éDZ%F3Òíßì—MnÝH„÷|‡9@‹,Ö’ÅŸ9Io{1÷_LDdV>ROÝm÷èÍ0É$>²22ò ¾Ýo¸^–(½©¹
+<‡ÍSàªóà‰ðLf O†gÃÓa qF<%\8£]§E¼Ø”+WUѹñä„7z¿Î¬ãsáŽo?ó“ú‘jï…;¾ÿt{¯‡§âÍ€ àEŒ`ö"ÿ4Õ®PwàPÑ¢EÃ
+®lÞ< ás8Ò?s"Ž¦ •Nlô{ |_èkðkøk
+ „ï(ì u
+ßAø…Áå†Á‚_,
+.zù‘jR—Š [Ñ.ÙíjªMtçñí:’]òæHì)¸n–óÒ{“ü—5È…/91½øÓ‘ya²äÌUîÜÃÌ"—¦OgyõD)4 ŒëG#Ê·y7Ý›þM¯án_øÄU´pÇûÿןªòUáŽ_ý|ùÁšßë-þ>JÊßFÇþ×F«\±VþÞ ‡œ¿¼Å’ hþΊ¹.þQ×óÇÛ•©ŽÓ¿¦ù£Îóí‰~í}=ÈYKc~yÇ”Ë0óŽ ¬*ów*¸iͼãøƒËŸÓݯºåOF¾ÿç·ß~@ö§Ÿ AË ¯}¼^v®û` ‘IÀ$·X˜+춹±­,3Õ†zôñ„Ó®²ï˜=¡Q0xýçh¸i…³,. ¬ °Ó©³ie­©K(JHÅ0agñ ¥×_`Ïß¾¾¼#ñÈÐÝ?YO|šã:RW¡w…ÌíY`Ÿ¼Æ¨/ÞèÂÄÛ;? È
+„żª¨·)î5E¾Ýc”KþžÄ󞲌‘Ä2¼ég Õ;Ù[­þf›¿Ý®ÕurÚô–£&Ð>4
+§º³TME7ä)¤*ix’vM³MZ½´XèÔ¦­Ó¡-˜1”gkÅÌ·uÓÅšÕæ¾T´R_)£VJV¦±•²Â¯±q~vå£ ÇÏ 5)[-Ä›7§ã8l5Á•†€*Š øpÜ
+µõe]¦.”=¨ßºÙ¥´Ø ÚêU\yVZP'Uh5Ý"hŠ j5ôR,íu>J‡%ÒÔwëS̉MÉbóqÄd¬þl}*FŸˆOÜŠû?ÙÕï¿>¯)žzßn:§Æ±Ÿ¤ñ1Ô}„®k׳tl]»§+ÖTZÅæÅØ\ÙéüÍ7±9G¬äŦ™À+V•>¹ŒNÊKRÀÆCƒh
+K®ŒG&v“¨É©7ys¢ß>ó¹N©ŸSÕ9•ðƒÉOŠHÒ}àuV¯Óz4ë“þ~^¯4“u^J28«ËÏê~R·SúþM§4¾ŸRœPyœ‹Éé'Ñ"Ï Ëà,Š'™žb”` @É„ã½k$ˆÑ4Sšba`@Ëp{âðÁ}3YÞÃ+ÏhÁ(‡¢3U9Ñ,¢÷Ðuè6¶oÖØ4¶eNŸ›>5xk›ÍMŸšÕ7‰æŧÅf…;ã™ï8œ Î…¦½¶-`½¶.«¿Þ[vÖzJõ»s«M4½{çØ7tÆ:çÙúîʶnY§Zt‰Äʽ?ïçiJ Ê4%MÒbÏR–¤˜¢6¥¨½§(ÏPÉ
+Éi¡T#=5§U®ŒË“e¥ìÔºà4\y5Ù÷!Ç»èˆðÐQn9ÉEg¹Xqž5¢mè—Q-¹–>ÊÕ)ÅßáÖ3iœ pwtÒ´_ŒwI¼Ü@KPïª-eìÛÂ}ùr›Wó{ÚuĽuá®ßdöYÉ7œ[2ûî³ÏîŸoOП¢?Éæ[´þq‡]§—íÝÎè¬Ñ+y™…e¯ÙË¡Á·{Ѧg©‰ß¿9á[ùšì/zƇŸ¯ëê¥40ôÓ‹TU<WµHVCd«ÙÓUU¾Rºš/ÏW“'¬b {¡Áyh'RÖ œ5)i-žµ¶Ðú:ÏÒùo®ï‹3,u'W÷âº6URõ办j®®då0éx´,5›†‹˜Áô»G&<•M"”—nk(lÿ¼Q†K€=Ži¤©fÏ»–hñh¸á¡¦_i@‰×DW…·.pÙUŽ»É÷²€(Oz3o§æ•i2pp.ZC•¿7y=Å{j+Òg’veöΪ·xܪÝÑÔaëñÉíÂ]¬N'¹XV¿ÙñU¯ÚP-ú~ÒÙ{tšýOÚl³4°È/×"Y¶¢I]'÷¤±±¼6I“’¨íZ¥•*½˜?6Aäá.)§„‚Æ[%÷ÌÉ…;Ê=ÍAwQsR»ª×(¹îòÑ=ïÞ{ìݵ¾®êéÎ^NøEï!»·‰PØ· =Kê–Í O úuù ÚöùÛoógÓ—uîUg­3ö©ãÌŸ9œN׶Kß,6o}£h›ø&Éš´¢£áœisÜfÌ' œjÛ¢oŠ±OXlˆ×tÙ|=7Ãs+`¶àææÞgx5=Z¾~üi„ÛvíÞ*W…SvO Ù¸w¾ó¸;ä5ª¦¨9J'îYÞ­§3Ëf–Ër0‘QÑ)¬9UÏ^‹§.¸”2×+oYÎÚšzº*NO³ç©ž¤†ÈOGOMð½-ÒRq®š#¥ž‚"÷ZªM¼E⪑"òbBiˆÀ&ÑnPZ¹ª­©#R Él¬"´R-êZ†Éb&™$·Å4Ì4—¯½Ã™}×dÚ¤V§÷ÕgÚ&|vŽÏÎò=û¤Nõ¢«Á“ÐåhœßkjÚ¬Dl[ß |È~+SHèEð:J^¦¯Á*ö²]”d:²ê»½ïz?Úàþø:?tžÀàŽ“Ô׫ˆ‰ôx¹*­^W§šY@›Æ>5jzä5ß*GM¯ÂÓ­Æ[ ¯2†‹:u< ^ò~µ·Úþ êÙ¯–·‘+º7ààÆÀÌF¨ë5;–HÈÎH6YFºc4’t
+ÌR™ÀÜg/ÈÌ•‰3eÒdÆÊ|å:W±N“«ST&S5d®“1‰>GQµa†²¢éš
+/ð
+øçšÆŽâz²øùò…ÆPKDtt½N/ú(+.Ùî<ßßIþØ€
+C\$lK»í1ÄQ.`9ŒåÑîn0ƒ1šŸA+ÅE?¾÷áÓ-×Ì¿sAá¬,ßcLpzàç<¤1¸°£S)â¡)†ÕeI385${0@Àfs7X¬ì
+V†ˆŸFSc, )ÜÈï§uðüZ¾}Qï§ËBÞ, °ÙÕ +»¢q6q{Ôf"wí
+ÏÈw †å¥‘ú,Òʃ£ø› ^ëU[{tklŒ3}œÇUb#‚a Œ%,KLÜ„ /ñ"Õp±H¼Ð/Ü>`0üa;0\5`xk’¨‡xÁ€Wã…“HWâÅQÆZ㛑Øæ$²E jŒh³ˆÄ
+‹Õ¹¶„XÃV–@µÐ9ÕÈa
+žNˆº†©Ðq• [b‘[@YC—Þ ¬`ì„2_S@<ÃÚ´A\-Ä£s_9ïëE˜ÈKgŒ-gìX˜8ñÆÄÃÓˆ(x¸‚ˆÑˆ :GDéxØ#â(&®!¢à¡!â{˜h¨hìÒø¥ábÝá¢0 ⨰LP¸EƲC†îè8áÃW|ìÑ1W ½ìØGu|\"ÄmprÂÊ1ÀÄ 7{ìL 5g˜¸Ñëÿº¢Þ”©ek] ‰íãaÅKÆ;×D »ò1MŽ+x&š –‰ä¢‚è ]ª»D.™l׈†©+0jEí9‰t@_æ Íc!"
+<Î@e:0À¾ˆµÀ­6J¯àçhÎ@uºPî€v ÔkÍÙB;1 8rÌŽ“â™p1Aø8§ï o˜xÃÄ&þ
+!𳄇Œ¹¿žÁÂõ & ì”ÁRMaó¸
+‰ê™HK¶P5W´Ÿ–/ÎJÖhy£dŽö#…CO!QØsêi¤Ô±Ö,É„?‹0îÚSŠ&6’V0ÍøÛ
+?;É.L/^X;HŠ‰Âⓤæ&f¤ÄY¾Œ–|ăN@œèÕ!IÞI¢Y0tYGD’¶V°4Z¿9·vj§ßºŸâµß§sÕrší„¥°¢Ùû)ßr^9}»éÃéÞØ«^cÅËw•+»ùÄéžÝ=±íž~ËŠ§w_^ÛþÍt?™’]‹f6™‘¼…çÙ:øŸxž­ãÿ¹çÙ:øŸö< yp™ô™tšôšt›ô›tœôœtôtžôžtŸš#JJJJ'J/Š=‘<f)=)])}))½)Ý©æ°¢[ì;Æž±kì;ÇÞ±{ìf=dÙGv’½Ôyô“eOÙUö•eoÙ]ö—fÙeö™F'8Ö$tœ=g×ga³,n—~7 ÓA€ö‰ƒîàåáëT+õŠ½B-ßËõkÙVXÑÔÒ½T+äR§×ÜëX+÷’¯„Þ–n¦ÞÓØ;Ûºë{]ïtë¶í=¯}ÇŠºõ¿”  !aéx˜;*2ò¥Ë…ÔÅàÄ,—Å5·6\ìï`ºF-Æ Ž ïK/zƒÅŠ™ñÒÀw•’¯º[ƒiמ~¥]`Æ£¯yœÛ¬÷jëcâuëƒûgÖG„6ˆì–
+µü¦¶r]j+»ª4ov"t.?v#Wf'n•ü»Pª.FVp²Ã$†àHÙ©§°‘rÊ÷"‚M±¦LGˆó$¢¼R;DŠ½XºIìÍ\±r´q4qbáªyÛZ7±m4mmw ­ D6Wi΀òH}¤@R!)‘Ô˜À72¾–yå0a¤t·‘ãˆóTmÂ0s´˜±eYéC„8à*…Z¨§‘Q¡&ò+gs¹Ëõüµ<Só³%,ŽOT~¦¦}ujµB‚Jènb›„À‚PÕ(¤¤…|¡
+OÁñ"5VD†#f
+Ú@žm*Ìê%½*kt
+[š ‘>åt‡÷’#â[Àƒ.‰õUËJÅ»Œ"óÙ¨Ù-Á6·]3Eê#zFù/¹uQo²Ü« Õ^çSK:µ[:u›òß­ðdÅR ãSu9î’ôJ΋›ŒW^Kw¾æºIrSÝ
+lÑ1
+á £J ”¸­£0HtdVü™Ã€Ñµï¡²Ž{¦Æ—VÜY¨Ëj3»7â/°áO˜p°ÀƆ_3á»y|SÕ7U}SÕ?‡ª"DÄ‹w>ÎäÓ#ïrÜ‹½¢ª¯Y¦ªê ³Õøg ·Qù¶ØŸXëÇ'Ä~´áéœF ‘FPi#Ódª„N­ª¯”: ©¿,Djµâ{ ¹f@x‚Å7‚u•bÆ€$»Íj¡Y'D1H¹P-8M9ƒQ³;ºÍn!mç v¢7AüŽ`×,H¥Ò˜ tÊ
+26f[µAÈ9FþÇ~Ùô¸+Qt߀ÿƒ7f6 Q%qð6¢>³¼Õ[4t#Èbz‘™ÿwXEJ”ew’N0+›H`8±,U{ë¿\P¢#ØÊn×1¼'¥N¬l´ {^ð¸ú fLüêÊLŸ¨ :¨™“‘ž6òsz‚”¡D‘p´§(s”H‚£L’’l" –$Äeš”§¨kLu+W^
+™‡:ñ°'"ò°¡<d"¾ÆD¦"»Kö—ÌŲãB† '.}¦ß‘1ïÈ0+mâcOÇ$Σ|lîS­| q'+10±q³ggÈÔ\0ñ“^ÿêMq.—’f„mÚdWÇãŠGÇ»œ‰ÓaÕPžeÕ–#É:é Ó ŒìöiÑXÄÅxíÓŠ±À¨•iç!r‚Dƒú<ÌÍÐfa¬ë 05C’…œ^F¶†
+úíéàÄ„1L®žÑÀ$+Âpæ–30$âú2ËúÂêrz@(ݺ°ŒyU!€[YQÚ5´/²*Œë=HwHÆÉÒû®0Ï/ãü¬þ}q¾wÖ;ê⨎¥Ff¨ÐÑŒ¦F6P½ž¶T2ÆËeV(uF³#ÚP1÷HÕ[jßÐÅW¨ÆFÜ` ;==jéTC¿jºVá#3éã@7{zÚÒÙ†þÖt™{t ¾4Ñ÷@÷= tààÁâe&-ºzèâ¡k‡.ºrè¡ë÷(ë†.²h¤5C— ]1tÁÐõB— ]-X, »ƒríê‰Ú¢¨’£ Ê‚RZTÓÄyTw&îLÜ™¸3ñML4çOዬ¥ÕcÐÖœßx£§>»êlªGj¿þçéáÃÓû¾þŽ¿Û9Æ6ÿ­¥“½•7OÉ_™¶9Wrä{Þ=V®)ö_Ž¿H
+²‡Æ*å:i¥´VR­T/­˜ŽpêvmÔÔ.šó#>€¨uFø®+§†ïÖ<Þô]åú>~R×z5ój7z~üj:Šªª­ë6N‘–‘*°]ëüîJ1]ü?Lu'£§­y—ÛþÆ~Âå~x\9{}\ñ9nËq•G€‘K6Ó'[ ¤‰©Zð;CÊ œ$Ž–äÑ“@’H¤f"—,¸™!©°Á’YxL9.xprŽŒNF†Œùbdt ¡•Ã"Òàhžôvc£apt ŸFÇ”†Gu ­ŒŸ†…-I,›uœô6Ž” C%z …ˆcE 7†KøL D=â áࢌ›8px|,#Ž8x&Òb%q
+qŒ°óË#‘qÆÞ q’©ŽP: Ìc 49C"iM<mªmfbY–y™HAVŒ^'ñ?†ûj^æ™ ;JÜõ)êºsMŠ¸E¼ç—8àïã=|ç€ÞñË€O½ßŒø¾Ã%~añ ÷à%ž g\tx–þÖt™{d‡šéùˆK @Ñ´¸W5dTlT3”Œ¸ÜÐx¨é`Çá–ÉhØ(œqÂ!ò÷–{Ä9[¸k ¯†ÂŠmkÆaGÈ0›N[hmpâv+v¯’Gˆ ›4 åÚ-ÔµµÄDz€ö²ž:YgùzUÝ™¸3qgâÎÄ71Ñœ?<…/ÂFÞGÖý$ï+yÑ×c·Gw ݇t7¢0\Ñ¥­I7(ݦòn%±5n]iÿš¤çcºø ½÷Òÿ^R­€ '$4’®jåAˆX$‰M’ÜÃJFf#Ó‘ùX A¶…~eD)ù&N®‘Bz-HJ”‘’=%{6 ÃrÅ•Œ#%7©€‰IÒ”2±QQp¡ Nýâr/9ì-»½¦H¬[ïú”rÛ‹6)#kÍ¡“e/ÉßÚÏnßS’¸tµè«j?ì:›õ¯{»u7÷—Ÿ.¼ ÷X»|Íb§7G8x~a®ðUOHŽpÕN×]aç — ¬Ñ²;Px˜PÔ#IäõFDÁÄe¯‡bké×Sn8ÛÞ³íB+\Ѧ­)QPp $L”‚ƒ¬îx¸Ó•†yGC/4¨Ò7­g6µg½gÅãe‰ˆ·™ÈTlúW*Ž“‚+^L‹o¥¢¿5)`B=!rQRqËJoÈî'Fø>&Š”pÈ$Í1”Ù &ƒ†TPɬ 4¸C<–\Äyína¤æVfðôÜÑ銮Žt³£‡–œé™§SŽ:3ÑO/]0t V Þ=•57Ô;ª0V;ÖZ]7VY7VWj+•U§J‹ÕÙ+µ<=ÜrÙ]%‡uúæJnµÌõÔšêmÒùI/®ø“__¿bf‚·†ç²<«ã¹;jà©E *ÕYxLC½,usÔ¯£Žžz¨ðBQ õ¶TÝÁ3s.xzèÉDgÊgè“E Ž®uôΣ’€Z&ú¹PfƒŠ,jrtº£ßž®z?¡8(£ Z¸pÐÑÁˆG§b&”»Ð0ƒ’-Švh»Cåµt?á
+_þpOóëóï_>>~yý'}^>}~ÍŸývþ忯¯ÿzy>JMÛÿzz¸þ¹<Ux–îýGÖ”(Ä馯Kñ–¹é(ÈBŽ¥ UŽ“Èñ¶ GYHR¢}’å*Ê€(÷²Ü„¹Isg!OÊúá
+‘n2E¨²ÞYvš$Ôÿs_-¹‘ëHpÿ€>ÈlâŸ\R”tÿ#Mdð#J¥¶Ûváa0J¸,W•©d222¢·jmVi×Ö°¢ÄWC4®´®4¯´¯4°´p`×FF JU$Õ…RRQ©Ç_züÌaHÂýÕ¶ÀV¼¾g)c«œõ$í‘B7’Â姿fþôWˆb¬XMF!Ñ—fF7RþFù|Hˆ”¦¤a­hT GA}µÞ"¿=äxäpˆå"Í3íÎÆ1!Ì$ò]kÊx¹Ä"9
+{/£D- UE®„ð–"~%,1ì€á0U½×¼
+x5…ç §39ŵfœî°¢ž,Âü ;Ô|&¶™‹n3Üø +ö{ùÌݾoÇï~Ö ó?Êsfú/ûðwû¼¡ú7+A¬é §s-—vßmFçSÖŸó¸XÌH“é0Ò F›ØšÍ‚±—Ñ5ýãÑM¥1ôÜŽî+h&`=Ñ}j1X5 µ¤ãvC?¯hÙ„ã¢Û-:_ƒ°ÁV(hË žˆà æ°`œ(ไ̲að¯àšB à2
+œ#QÑ‘Ñ#H#âa„áj`ÅŽ#;¡éÄ”ÈR'¾&”k-€µó*#Ö)x`¯²â"G=‡ŽªÂN›8+=Ø¿È;à«(Å¢ÅÐzooX¬‰G£”øP+ëÔ³
+–Ü%²3ü’øÜ €Q?ò7'ð7>à×?†;gÁ
+$¤™`ÚÚ>Sì¤o}'ØZÒƒ6O:š SHhotÏ&vÒ- él‚´§¬þòù¯Ãfx}~%èþüªD2Ãg¦;½¾™ðîtÿžðnTö.Â…¢mÔõIùü/g€ç?çk¯ô£u ¦v°K&°ƒ“]. Í„ó”›
+°6€·Ìàž
+¼…ð‰B1MpÁ‡bÈa  ´àÐMtÑÇSÌq…ÙýîYPb“lò)¤˜rZÓ'v
+cm‘‰[†oá–]“mLu Öt—ö˜~‘€ÎBV#3#Ö
+RÏàÀ&ü/û嶣6 EÑ÷‘æ_’‹óhrùÿOêÚÛ± ` }iÕX•*†˜ÄÇ>{­žDmé‹ Û¶b.kâµ"}3Ð=û±£b¸líŠí¹Pĉ.ImuÜïèÀ'úpIÑ•)ðDÊG:u ó{úvK÷n8&[z¡ô=Òᾧ߷ôý†£Ä3²Ý6ÅD.Dò!ÀÊ‹–ìh8raa»LpI$aIÓ“8-ÉÓp4+ŽÇÂ6šÈ¦HFñŒN¬Žü:‘dµ8‹í<›Ï"‰Ì€™±¹RÛ;±}£ÖoU›Z‡Ãj\o„„ŠoõþýŠSsj½UýãšßTýûëR÷7ªþ¤îÔzWù§uYùí ¡Kæ'9mªN:4(¨Ìph»ô‡zìµò£Û?ÙUöˆìx,²ãS‘ýÝ‹5cÆÇ°Gí¯¿çÁŒwб/ãÑŒÏî9žñ'ßUÛçe/ã9œmw=Õ˜½È$•I8
+ÑËœô¿|¡1u®Œ[ÁªkÌâ˜&­™¬VŽ°²óÉr#½é6½! 8ö£?™èf0[uµžo;éj­<•'Xx¤<’ž¬=³[΢æc.T+J‹% ’I„¤B“IGlµZ‰*=š~B_OZ´‰Q°I¢©Eœ$2“gÖ%©ÒÉÑ©‹ŽëÆ-Mj·b:’éûË$ÜX¢¤Q)©”dJ:ݼEf‹¥JZu[Õz«g[ê˜Tô¼!´ª–pÙ
+j(VT£‹p6 !º gp6Õ´hžŠd¯tVK­ì©¬©Vó¼KΫ˜ÄrðšY(Y©¬”W( å´)ee©lY‹ÁëpNRÉ»7gÌRIàE€gk‘ÊŽˆ „e$6g‹eÅ‹H-;–2´’Ë™è]õòl—ÆÚQ–˜ŽÍ™ð^Ù¼’Í–b¡›„|$ì'B™VKgÃ&k7ñIò3аÌ+Ç„úhÛ²™:Ê<çG`ƒ<VÊÁ¢j›±xx‹?èªæî‘”ãky{À5Ì8¿5¦Wƒo?;¿=â~0cüÁ>˜ñZã~>†ãÁŒþ²Óûq§žy…óäg̳d½ÌZ¹)åN'-’충HdÈ,ŽY³,Q,’˜õ0ká¸Ao(:˜E0+`Ñ¿"~Yù²ìeÑËŠP&½+bW¤®è\¹,q£ÁYè<¸mvh!´¤)a´Fe˜Ng žl€ÑX-°Z ®…×l!¶ »1h׊9-ý÷—oœ ÝÂn·Ð[ð-ü€ ÁáÂpxó_2ÿEɼW šrßË ˆ5fâ?¬OÂÜǾåõ,u=ðÙ‘sü™ùþ. éûC ácÿÆÛR¿þJºv¨tÏ]ˆÒ#H¿Q†ÜP8H+G
+äá€õÆsÁ†#y;´±šc,Ôé9Ú#GܨCƒ4èì0g¤Aœ7Ì©
+ètn×u
+endstream endobj 183 0 obj <</Filter[/FlateDecode]/Length 17413>>stream
+H‰ì—mk$ÇÇß/Ìw˜7ß ‹~~0!ÐÝÓclÇä0˜ R„Bn“è΄|ûü«º{wVZ݃ï$ÜÒŽz5=]Õ¿þWUTQG³ÑñOˆ>Ƙð“cÁÏë´K"®I&T2É%›|Š)à'§”JZÒšjYe™u60›}v9ä”éZr͵ˆ"aºØb¦]ñ%ÀbÉ…®¥¬e]Ä¢`f±0¿XZÊB×Z%LW[Mu5ÀR-°ºÊUÃì´[ýêÖ0í~?í~7íÄg¾þ—f1@<¶fŸ1óŒédžÛzÆä³&ÎÛ´«ë3öܵ<c¥fìŸ- ™¸6 \EEXÏôrH!†|pÁtPAáW_ýâ‹Ï>ùèƒ÷Þyë×^yé±b„²ºÅ—]rÑçsÖ§rÒ „´àb³M6XoµÖXm••V °Õ,¦à$»`ü´3ÎXcŒ6ÊH#àª]tÖIG´×N[m´ÖJK-èŠcRTVIE”WNYe”VJI%ä:ípXyˆ{Ñüž°/^°/Í›æÏð¨ùÔ¼j~5ÏØ·iïšÉFøؼl~O›¯ÍÛæïð>ÃãæsóZ!ðüà{ó¾ùß"Ðb0¢Àqè‘h±hÑñ@D¦b‚¨p Ì|q•¦Ý/8!—tB´œÅ¥‰œÂ1J9|Ap諨¤õôÏ^Øf5[1 šîå´»¸ú<³å7m]!Ðó1*-"Ýx#T䉤䛨¬¡O)b†nŒ”Þµy¤8]קÏFëÊØí‹ô½ªû›o®oîo÷oûH¾½»ß±oæ¯~Þï¯_ßÞÌw}hö/¦Ý¹Q¸¬æ|Ãûq”j)öÔ s`3ˆK"‹"±J,[*©±H ½ 2Ê$3åÀ^åªð×´åØx"€È@c$+€‘€Ç
+’4È¡†²ÄŠå·ö‘ÚF´ŒÜ,R£[‹ˆQÌ=$'qc¸”
+y—¨‘Õ{S! ™ÛŠ¶P ÄâѺCÛ³¢XÐOf¤±¤=7?†´"Ü\PÑê"°÷¨©±Ô˜KV±¬˜yÁ2ÞЈ÷:¼Ý`
+«hV+ÖV°Æ„µ¬ØQ[‹æVAX2Y…G~%xࣃ§þ*x &a+bP‰„xïp& Ή¹8Ggªà„%D/¼¯A¼?²‘y_ƒšgÛÈÄieÞÝÈ€²neZ#¢È Ütâȧ³…íÄi@Èq6êipj u8â _˜øÂÄ&>ˆ 3_\ånKÅ¥·HŸ³¸tˆhÐ|#ð6ÜD!A+¸µbÆóôäËiwqõÑæ7ô6*4=õìM3~lû¶|Þ–‘ï/Òwöªîo¾}¸¾¹¿Ý¿í#ùöî~?ƾ™¿úy¿¿~}{3ßõ¡9ªÓîì0û”o8zT˜²çf1Û¿o€íEθ3Ó§†5oÖi™4J¥q¯6¶-«Ú_òl+¡{á{Q¸¸¢ÂŠÊªVTQIõ¸ ¢¡T@–šƒÖ$n
+¨%h "5±—Tµ·£1Œ½°ªTþÕA(?+?b‚F½Î"d†
+¡Q
+å^õ‚ˆ‹",–
+#”ü.Oõ=d,AÎPkAØj]!sX> µÞÊÕïÝ24 "‰Iyuƒª! §W}‡-ï4z
+ÛöyÆò;,ÚAÞ£ŒŸq–pìËoñS «ë²8„qHãÇ!C ‡D‘„L²H™ÄùhRyË!—C0‡dѲ9„“¥ó© b³•€h]ê ¬#CŠQv«31d:§¼á¯xèœ8~–éºdj%£ß>éå½­òa6«¢¡!8# Ÿ2Í'Ëi8/§áKöQNY‚Z_·vÒ,Dî EÔÝ-,G‚û;Þç/¥ÖåA–°Ë†{=ÏÝ^>ô{Š;¾&Nå)“<A PÈø™ß¢ð¨"*‚ŒÊ`!å˜vPwâÌ zpÞsOQUê ýŠ|ðT~?Óõ_›‘’ˆè‰åà ê1‡º *4º2{Á¡¯ÜãJÈ€æN×BHþ%ÓUH‹¡±ØXˆ‰ÂùÆF@h RÓAZ£x¡3 QjI`¤€–
+¿Ý‚­yç< ÆR%Y}\z¥Q3Ñ
+ÒkòÌÁ¹ j&Í}í
+|^jõ¶3|ÑTÐg¤öH„«8ßIf`þéë×l_*Þ:È¥«\Â}«¶wÒ~דÜPLÒÊeÌED:]ˆ@QŸJ8Wÿ {5¤‡'huÂ7‚ý^^ñιM~S.³Ë…Ø'¢;ìB{;øÌ»¾ÅæçÃ-bmÿï YìwøçOÿúÇâúêÛÏŸÿöñãß%}ý)=Ð0Åþüéw?Í?×É÷~÷Œ˜íYˆ ‚M5«c¾¡:
+^<Æ¿®xŒ²b2ÜInÁ“á³Zó']oÚè¨4Í’^‹ý@ºíÙ\gºÌîWg ø¢”W¾wÊS÷B3¼†mª6½6?SÁW
+eš§eƒÑC¯%Çab¿®¦ò°ƒ™ÅªªA@è®IÌ„<s`}æÜŠs[E:cî©á!–`@»½¥µæ ÷‹“ê@Öq7ã/9H9‡½¹·`VœÂm:XJrZN-Š´ð½NΛù¡®Å÷6p’
+bLÊ‘³´L&DÛåΠÙX#nÖa&ÈQË¢[í:é6t¨Ôf Zíó˜nµ÷ðî÷(æíÀ©¬:²À„KÃg9ÌŽ¾,y¥SfË{ã–N
+Õ âEPÕ#gkRp·Xýïf‰BPJó0¦©RÖÀÃÙALã~ÑÊ´R
+J÷Û0[òîǘ
+úè ㉠ÊG{€sì·¨¥Öätén‹¡ñWÕ¡Wড়„†„m¤ËŽcy1÷5Øä]*`Α¿1”´¦ï5G)˜‘I1G-G"FªÑˆÃ=ñR s0v¨Ì‘|e×;’È¿ÖØ—ƒº›C‰™­“DcÞyõ<-øWà³À[ ’˜¯µ-4rp¬„±ylæÑÙ‹“jšÎ,˜‹[Ô
+-™MÎÀα¼ J`-zYÄ”ÖÆÉþ
+‚˜ÁÐk4›(‡~UÞPïXP|·
+Ï+p,°ÑY¬ºîö6í6æÑÂcú‰£ÛäÿÐ]5i“¦ ìJ*ø·žmÝÿ<„ Uß̦Ÿî´Å‹$!Ûì 1€Wíê`_=JV ‚aaÍéøNkY[4z›®'
+ð/[¯>劰d2ÙÜdn-ÀæÏ L
+ßáü-´$Ó~`Ÿ59e3êÜì¦gw÷ê– ¿ö!ü´ˆ)‚ÀÁÒý*ˆíe7póá}$€µ9wä¼¾x– ” {¯:¨õ¥ ŒÐÇfä ]€\/Ha7 Oy¥ìlõN¥§k¿Æ¢ÛRçhm‚“2û¦^Ç=ÂŒtÍNµ¿µ`ÔGËEø¤M%¦|P8%õ÷Zg€Ïmn"ððC–n·›è<>t]¾×qxçÚèÓ×Nb"Ù6ç?aЊ¸Ôèæ0”[ʆ#"È ž,íБ3`ïÊvï,¹çÂÖ*¡ƒlGKíà‘€±ŒDoÊó§–Xsi~š›`÷}åï6Ä\,ûæïÏkß`xõ>Ìw–}ˆc{þŽ-.Ü{”l„A°tk‰Öú]HË'Êq«SF†.>WiwÕ!r ȶvü~¬íàêe<ÿý=ÒJ6k,$7Õ'±i6Ñoá¢ä\7×\¸P€{S‘´*`'éÚÄòìÈ6ÍÎ×ZJQ4éÍ` ñÁATeC—0-
+·Þé+AÜ•ê%~h±ëÚµªÀ«æ*ô“€™Ṽ!›b@z!(›$ÑÒ~ cm¶ÒQ&îèðc;RîŒ+ÞnÀóO|„=½®6e[œÇËOïMy2ÄÕÜóéf«Ø¡«ÆÝh_¿á·°&ãAÆô¾´¬;{>bTO°ýð!|¥ýʈq3è~mä×`Øôám­KFPÖ&¶°Y©~ûšûX…g]6ÊG䲶ËD¤µxc·JÐìVFÞøOrN*,œ/­Q[ˆs‰}.Û›iÄ’FÏ=[˜3
+é‡A¸¼ôÈܺð=ÖÕ1Àg+ñ¹cÊõbl.qjÞ
+Ðï6‹Ô8¬BÞ¡+³¨ÂújzŸ¡Oê.üZÛ””v=Àž{âmw;Âæ9kËÁ«¸Õ˜ËÀa‘MÒÆ“ÃÚ¤³eÜõíà±-Ä5Ûçu„b Î³àxôàDæŒX5Š&ùØá©Bmáâ Ôêä,5U¨NÞ†Gd¤„0#¬JåU¹Ì;†±¯ûœ` _¶p¾Üx´P7é Ö²þmž…RãkG¶:áέ֋(}PÛ<f„ût:]€Úç:ç~)Ü…Æw.io„Ü_%ˆ‚yòsè¡äˈ!:~$#,©¤¥šW…\už5Sš—ªm<9„’°1k“‡ëb;l·ö­ºô#¼@©Ñ€“,>MÆáéÎÕ°xKûÔíà%•žTV}Ë zëµE„Ò…_æ
+ }eæ$=ÒÚϽÚ&%äB·Ï͘êaÐÁ9)Ûpçq#œö.çú_Nhßó°žÉüÁÛ/ÿMÜÐö›q$ƒc²²Ã¤nFõÒR?·˜º# ¹u >c{„5${]¿ëÃiP¯kU’C‚2¬½n„²•5[ƒÝwÀ2èKÎé£k—»>ÇÛêY3‰‘¢4¶v|7R[#Hâ mä*ZÒã
+ÌׯYehF(õ‰À%Ž{Ì)?Õl."Y–­ ¹Ðy;.ñ/ÝÕ×ãÕqCß‘ø¿—H µdÆ3ž?í>¤ÝªUÓTHU!تîÑ"¾}ŽÇÇsovAHh9Ìúz<öñ9Á”È¡9ùá‰5Cê<'Ïj*§—ž%r«y?(×J&²ójyœó GJã¾h®5¬-Ô¤ +ÇêÞh Ä5.;3>g•Ùw»væ ‡Š2\?}NrcØo1Ì3Å«ŸsÀÔŽøœª»
+€E#¤Â°f“TN¿žS«§&sɬš1i#Kôn96ÆFsñ``‹Aî²³Âóõ8™Ë‰+q#~.v4è¯*‡Æ5ÕE°í
+qzâ«À¥5^zsåÜŽµ(;ÄÕb‹o(F_ý¸v¨ƒ‡42¼Çd#‚«½$‹ß%oÿºV¯äxår%o*Iµ$Ó©Æn]ô Ù™×AQaIådtærŠü[7-yG
+Xæ¢FjA4,™{#Ã0]ÌÙ½.G1Öê–&Ù5#@ _2&•F´U3·‘øÅ:=$nwŽÀY*vlçJ2®m–øÞì”üX©×˜zß} ¤©AŸKr0‚I¡‘3 aë ³£FØBü^nq·ÒB^4û½6O¸ƒË9.°ÃL¢Q2›I s ”ì>Õ@ØŪ-Jéì§XN½ë•öp±›]Þ{}KœS€Ö§›P°„V‚«› 4¡^x óI ¡G‰ƒ{Ø1pÙfWiÞS
+¹%!ØZâ%ROåˆSDÀrô͵;M'Á0k‚…Ú¶5Ài«éØ©#¤ºûl³_…lî1Çáaq²Äcf˜¡ˆP]¯¢Å"
+^-}âQ”`­)^LuåâLPL}Ž8;â÷×£x‡»,mïoœMNà
+¼‹0~÷ŠÆ-_AÖî
+^Š°÷RxyÊ.|n‰ñ:² ÍSø
+(W-Õ¯¼½Ñ4U½>³L®è1gÖÌÇ´—µôÐøÃtœƒÒ¢ë—nØN# <lªŒM iY?à9²€%Á‘¢øÌÓù”€Cóåù‡xÆT:[r¹Î›ûx5ýÕh«&9•Ïþbà¸vYB<v‘{‡3x{.ût
+{™dãxœ..ŽŽ° æÞê½ÜdDŽχ÷ÕÎaÔÁkõÕ_?ÿx÷Íû7wïÿwûúã§Ëï {ò§§—¯¿»ûøþöÇË“ïÞ½þpýâ¿×·o±KßýýӇ맗߬S/¾xêÛoxæ÷ö—í4{Ü-ŠžOϬjb› Üì-vYÒõoè;l$ü[l—á‡Û,ÙŠjÝ9"\Ž· ÜÄ‹ß·‹`–_ù…öjG’趹«|‡ íd‹$ø í 8RYpº¡ßÞ ¿Çç*«J£@Ò¨Ó4A°qd,]Ÿ ÚQVÚ-‚3§DýÁ0ÉÀNRð¶Î2ñ`Å\H®”,ßl…EÚ—
+ç$!. C`£Ï´?æf®]]µŽ­6Üÿ —©`X@Ý:I—ÓEÈ·=ý¹qXéAU4–²_Žs>>B@Ó8Õ=%c0\ñ‹ÖAÉA ‡+'¾B ݈‹|ä  ‰, Ç`+-Ò¾t0‘)Á‡A¸¹')sbqѹe€eâ-…?œAd¢(2<´oßðsãÄ6h‰ÈeôuÚ?)ÏÐê{GLÊß½á<ïM)íâtP0…G5¼g>X!Z§óby
+šÂ’m öºíKSûEãÖlð¨8­´mÜdcþ€½el+\Ó˜û8ÚÃøb0ÂÐI5ÛÊ\ÎVvr¦®ït>Æ• ÄS¾h—žè
+曾w¦HëàI!ÌšsÇ´ñõ`…l«˜Æ’‚‚¦±äƒ½²@{« wöÓ{¶â ö‡‚¬s«Â^ós‰¡kæuÔƧÐ÷’ƺ&Ü—Xq8¨ES$®}; taïK}½Ÿ‡U@©¯#—qózXè¢uPr°CR³Oí¾Ñâž—L뙃‚¦±$ƒ½´@ûÒÁDƤ¥#$NŠ§0Œç^ÒFÈ8OW‡E?#ÙõCÏ®`‹p}‡]K2®Øl41ÿ8ñ¦fU–Mß:(_ÁèÀ–ÛEë äà—@p¥|=h!YK6©$M_I8{iö¥ƒê w•h`áVãb̹†Äܳõô,ÄU7ÁÙO·xvûX‡°½w'Ë »,Œ4Ç
+©ën³AS9MÝ…,{]×­Éh#¸s0ÅÑDC›XXÙÛ-YRPÐD–|c°Wæ¬/Lcvy;l½»wñ.ÒSã"b`»íü'ŒkLM3ººÆŠg¶·YR5˳€íI Ĭ´-¦ÏÑ®`H4Ò¼h”ü” ¯}êàUZ^mÚ•ÂÁLbM×Cc½ÆùáHœÅ×U°†íù[KÉ[_˜òúÈ
+}a&
+ÿiqwSºWý±²ë¬0N6[ò™°)r­’¶rêó]QÖ—Zñ8]œžß·ï;ŒLO!õ6ôß?˜i¬©ÆŽõRó®ÿ+Îß~óŠó o98¦ýϯÿáÿÃÿõç?õ¯¿üõë×î½ôß ÿc»œ‰·—ÒªÔ÷Í‚­,ÛÓ”+¶ÛâÅ·ïœ3bÜåœJòc(¿`„¿—'’ÒŸ‡@yí QlÈñî[AÙ–…àˆF
+O8‡Òœö­ƒL³Oì ÄþHÄc}©ÈGCJuðfMlZ?K%ª«‰f
+†n£¬ö¤  ä`"+ŽldqZ^laíŸ9(h"KÂ1ØKsÚ·Ÿ\A‘ÇêU|ÈZÖÉó9& l‰S+ME†(4‘ñræg0@8³ö¤ àIÁÆ­ç÷`Ýwý¼¨ž‚‚¦±äƒ½2§}©ðÁÜ4²ºé>ŠK¬8†|±vI7½5äšáï“(€RûÜ”ŸÁPˆÖi8§  ä`+²Ü%£…B£Éƒg9((9XÂ1ØK ´/>³‚r¼O{MƒT_Ça_x; e _áSÛà£tÐôÍ25=¸ìnÎOÚ
+ÉV8ºù¶ˆci1øM]d¼BŒª@«¾½‚aÊ‹ÖÁƒŸ“ásÊãä´¬QWƒ&üöÒí¥Ãç÷P~JÖ’“„ºˆD¼ÕºôÎö$Ãk$‰Ø‰¦c^¥ŒÏ:J)/NwFà8šIÛYYB3ЗdëÁº”ö-Âú—ß¹þý7/¤ÿ•èZHiáFWѾ¼Â=u²"ƒœêñÆ«œ ¨â{뼞c¨•{7_Á-ª{®Ñ:øXHŽÉEý0-žýœ3=sPP,áJsÚ·æ3×*Ê;•C[ùú¹ñ
+›&¥á7r“•¤v“×e¬=Ê›9÷g0>ÎóŽZ%apœGòúz°B0¢³ýx
+
+šº’o•ë[…O®£p°2Wy—ø¹qx³•EažG´Ä~ê”GmFPÊã¯zWx岞¬ŽIvDŠóÕ•V5Vˆ†/´g
+
+šÂ’o…9í[….£H#Õ¢‹`×5)À„Vª{ÐV¼¥eÈÚѪI\ªî(4‰k›í
+Æ ¯*±Ñ:xRð!SUâÙ¨}=XyùšrH–‚‚Â`ùÆ`¯,ÐÞ*|r­ÜèS¼œTÐXqÂf0†hœÊ5Ÿ¦qÆïÐ4Îy–+˜ÐXª±Ñ:(9ƒâÜM”v‘~å  ‰¬ ‡`/-оtøà2Z¨ã¼÷‹jw‘/ßsä,"ÒݦBGaJP
+,¼~ÐLüÄÍ‹ÖAÉÁ¯BR‰àJ¾ž¬¨¾RÐ4Ö|C°Wæ¬/>³Šò°Â˜/‹×ÔÕUO+žQ—ps¥û\Âcç
+ ©›J]WpG
+¹\´žL\…ÑNy~=HÙ'ù¾e  Xº1Ø sÖ[ƒîƒ8àœõØvTv­!scƒ•ž¥ )¯Ö:(åáÿè´unö’ڞ؃‘?{X¾öóæ´Pm±Axä  I, Ç`/-оtøàFr‚
+b 0~n˜¾iH\jíG5ʽJyT3Ð$VK‚q¿áCŸ¬Ž| CVûúz’¢RiWšÀšnöºí­Á'÷AÃ-ÊéåÔB++œr‰‰²ÎŽ4uc 
+Åí]-ÃÔáœRØK±HîŒòÏ+á¹^:m“ä“RÚ0¨SÚJ}¯JzðdŸ95IO×ÕÌ^‡S)Ô+ÏDÌq™Ë½K6¸AuêlÅy¬ím£]À¡A §å+m-=nÐ<VÁ®ØZSÚÇ'3 Ø[Š’³ÂÕÍeà E9öF¸SЯ«;P;¼/çQ\;´ÞŒAñ–Iì0Z£¦ »1lbµÐšr„›ÿC ¯w~à HxJΨ(ÎP¹Uÿ}æŽ{ RÁ¸êE¡i
+Ñ8#e)l+U[ã–BØ
+Z»ŸNG2
+ÛÏMŒÿÔ„Y©ÈwŒ[Ÿ|§¹¿.ìº6â7·!›‰‚Ÿ¡aÈm…åœç­Dkµ'ro—j¾d®˜PÜãFk kЯ!8–‚Tî+âhÑFÒ¯)4Y°+¶ÖíáÃqÆ’/˜*E3Yð4vÑÊ&הط[–C%ªÉõšo”+&$°¶ÓÈÔdÁáF›Û®£½†ƒ›„‰©Å"×J­/Çy˜ð`Ú9*9 Œ‹ô¶Ã #åÊbp»ø ʘCwò!nHíÍ<:])îw§¸‘ý7S>vz­¬£ùœ ™»¬Õ•ZWŽtwàɼ!É
+C’gpÁ{¹dÚR´ÑQ;·‡]§;PŽ×·âª¯¿£õà­AlUÀ'*¯•s±]»Õd슭5G{øð`ây;öMpCÌdÃUá®L×b®òÆ`Šƒ¶:¿±Qz>Ý?mçŸqì#±ÌãWç¿_qnÚîw4[Y¤+¶fãÑù3A¼9V ±UƒÞ‚»Ç­á}äC—‹ö$Þ ÷†÷¼÷¶×Ï°pî´¼5¨µ‚Ûªçh.¨´Mƒê¯vÅÖš£=|x2èG–ßÙ\<Ž±-¯[«½r~ËYž–8f›êré¿PÜz)­¬A ¯A—1¡ÅósÜ40h.ףط¬´‡Oæ½{Ha¿Z4—¶äÏz õ(É9
+¥EªGØ
+>"\˜çwl°tÙñ™‚¸Û.
+TwÓ|f}ñÈ.)l´²f0A&Qy-´uL¾ÚW 2ƒ
+vÅ®5£=}x.‰Žo]bä§OO“ }b2Fû–)É)º•¨&GÚJ3V©¬@-G·z9RœA ̸þ¾€j0‹uÅ®-#==x0ŒX‡eèrŠ<nKŒlpow²€kËtm,ÁwbP YN±gÜý^6Z§uX`Ø:ÛÂzßó«¬TY¯/¶ÎíîÂsItpÓÕdý¨ÍbÁ1Ü£œv­I¡Ss Z|Å­ïN£Ô@V`T“ÅGHžÚ‹¯ø¸Üëï ȯb}±µåHɤ·‚+pjC\Hâ­á8#”MjàÉco~ÐÜ[Ô¬ãŠ1B¡d£55Øg;]éµÒâôå6 ª¿"Ø[kŽöðáÁLz?–û°Ž˜ËææN–Ã’åb±«“Õe¢­tœ¿¸“È
+Ü Ùc“OJ¼Ó2æöû êï‹XWlm9ÒÃóè­¯Õ&‘­ê2ìq i¦¤(³Ù:,­gj‡5Ë7rŵõ~Ðxk0Å[ã—Îh‡GmT¼[kŽvóáñDzŸ™vqÃþAâµÇKÎõ ƒ #LÎW˜ÏĬ˸&<ߣ÷ÏëŸFvðœËý’_gPÿ^”®÷F{RÒÀgÒèO¥ÑŸ4ýüVá“’»â.|:<ccâèˆ/S{»0vݹ•]zRœŸ¡6L‡\ÖâJŸ]4¼Ñ:p ŸÇDNu2(-ûBZ5È Iûâ䆵О>ènù«b'‹kŽ \èñþ¼í8–»Î0ð4MÇrU{ÍÆ\½½8m-†cX{ÃJë@Ö ö
+>Æq-¬0 ‘±¯TwY¯/¶Î”õtáÉø‰í"&™©#?¼í8v²Øa,·4M»Æ5Û£¢Ùdηb­¬cú‰Wwž>c…iøƒ²JPf½¾Ø3ÚÓ…'Ã'æd’ j3‡N¸9³Åˆ\qÁ’Õ↽Öj1Òe]‹Ç OWZN 6d4•×Â:WãO¯T‹Y¯/¶ÎŒöpáÉô TÏlQê±á|Ds& šåÊqîjêq/¹:P=Æ¢•×b€xh¥u kPÁñ±ƒÐÞKHÝ40È&›`Wl­íéÃäxù9ô”«™,8R …À&·<“ÆWâI†-‘Bs 7xiì°âqIάÐ:5ØU 9ɽËàµðñ\nTE¯+¶ÎŒõpá™:†É6ØBËæ®àxZ±,s”
+‰Ë$î†ÖŠÕ]H [1äõy¦þM{•Iƒ°T&ßGP“ÿw¡
+ȶÍü„Çžb*ÑÜ‹Þô°6ÚúÔÙ¯b~¼/Zc®x“œ¸ÑòÑ>[`LoíZ©Íå84{þ&þSd.©b‹ƒ/t?Öå³èˆNä2IÏ°ä¢
+ïƒK˜Úé"Kgq#µàÿ@ëÀ-:ÜL™Ñ²CfϺõ
+endstream endobj 184 0 obj <</Filter[/FlateDecode]/Length 5796>>stream
+H‰´WKÏ]GÜ[ò8$[‚“y?`eœ "HI„wÈJ ±Äg,Ë,üï©žéžî3'¡\Ž¯ëvêV×Ìô#çГ?Þ¼}þì75¦ûÑr §w9O;ûrèΚZž`w-˜ûÙRˆüa0ävöˆº·Ó÷^¯´d ‹Ap¼§ãJëÎè|Û408Œ` 6©)íÝ0üíù3w–šjé‡;Swe|¾•ð„9$|ˆ-EORMÙãïâsiŘR*“ܹ +Ü¢÷ì1ÈËt(;±¸§Ücú‚‡„¶³¤’¯œÐ9sBÈÅJ!u …%W .E¬›´”öfÁ²7yÜ°‚ðÁ×P !ÎÅT‡ñø“Sv¾†­¡fã¬s)Íßj½%µVðpB\fks-|ù\Ï•A‡“7à27Ÿ¯Á
+Ô†î¨Nô˸ð1Å਄„Š›?êM§‹Nbž
+º‚bËßR\¹†–³•Z7NÇÏ/wÕyÌp’ºÖ·ßgPÝe­l²2ÓãfÀòÖ•˜éJæŽéŽ!ºpo£Yb:
+ô!\W*‰F;ò?_6ÁL‹MáÙÖ—µ¥ƒpÈR"2ÕžùÀi_˜ùÕг—ÁXê\q‘\Ýhd ‹Ap˜ÑÅbay·MƒËbÑ«Á&³Åzwá{ È]2ËQ¡zºã•Kh_ i<ãj/Í·¦'×Ðcc»†Vúíz¥´˜­ŸŠ{zyR„”Êb.›
+²½ÿ OxªÇ•-?ö]ƒê¯—v¸‚mÊ‹öæÃ#AªT1¯U×uYq *¢/fÇól©Yh§Â¤àrõ)ß‚cñm£µàаÇÍ‚êãJÖÞa4»¤Á&XS3´7¹
+Òi'ÙT14uYpHiRˆešG¿õQ4»Ö’—E­¯æ,Á(™qm‚̪+XŠgLhÇ•e´U¿I`py¬Û‡ Ö„íÍ…G.‚¤õœ¯–w]=V<× *àù¥×ÄH ¸2ôÉû{°“=ÎÐ*84(ÃÂ[ªR³”¶—›‚nj±Š]š”!Üøö@¼úøÜ#Úuìv{ÚqLyŒj‘fV/ ȸұâvh N+—ÀŒ[ê6>Å.[ Áéæ¶qs 'åè·_ŸÿÿªSC5ÃyKž/þôü—-‚ Ç{à‡G’ÔYÁ#í
+ß_ Žy%d¹°Ú]èqSÀ ÌrM°¦eho<f%oÉAÛ²V nZ]ÈE`š•ÜpÀÙ€ËÝP{Û‚qýè]i-84è`\çACë‘êÜŒ—¿"Økj†öæÃ#WBkh÷œãfÓBñ@E\z]ðŽ“’’4š–J0àr95ÆÓò­‚¬a1(^üÏ„Í*¤°i`P]fÁ&ئ¼ho><r%åªò+ë®uYð ó@;= †ìQ”{„=(pyTš·àÔrÛhd æœ/EÚ«°R% u“Àà2Yôš`›±°Þ\˜ó6òÅðrâ-£F?‹à¹¹àe¥(§S«UpÙÔÖÔk‚±>”Ö‚$a(\q*Ç•õrÅEƒj4ë½\\ÍlÑî.¬ÝðWýêÕ§Ï_¿ÿáóû~xûéËñ[Â^üñåñÕ·Ÿ?½ÿð÷ãÅ·?½ýøî÷ÿx÷áÇ?¿ýüÓw_>¾{yüzD½úQøšc~Gÿù¯+è÷?ƒ9»“þâ«pÛI;žG”½pÜÒ§ÇÄèÜð¯7¼ä:N cTñTˆQ6±²µnÀq,(Péâ58`”ok´d ¯pm3ÿfÇ“8Ôò–æÏÕZïÚ8µ9šÉEçŽZæc»ÐZÐjûß¾w‰”4Z¥è«Ô1†¢=-CÐw€gôŽb=Óñ4Fy7ÓÖf:˜Ó¸ì A›`Ä o%Ó ![^ÆXJ2æ":çÞgGÈ”cŸ†dJ¿…³LMüo7Ëk)ó´;M‹~úíftªNÏ5¼Ñ×iœ°cAshï³QL°äDæU¿V¸^ ¡ø Ž—ùZJ)¤¡RCÏlOîc%¤3¬nÍÕЕ™ïÕ‘ŽmVÜLˆ¬—äDɾO'µ³éÎ`€ál~Úãɾqa°÷z—)»Q8p¡Õy #8ÁKvý~ø¯ù^P‚aÎ<8g¨—Õ ":ñC`ë|sÿf¿lzÛÖ•0¼?ÀùÞ8‹¦‘»IoVqÜšÔiqw-"¶4©C‘ŽÝ_©'rrMÒ¤\!hcØ#‡gæyË“|ð
+sf.ß+¼Õp!Ý]¾ùûýâ›Ín0©öy–Æ¡HivC}³×v¿g—qxP ;SmÞ‡AÙQã¼£3«›«xV—Ãþa™R3ß7½j.cxä—Ù3Š_)nïý ÏÞ ¬J³oõã{ýaþæÁ; 2­ºkÓý¢Ñ3í;ôK:0.¯€ ËšzßÏM’¹˜™ 6W{äå¼&ÉýþQQÂæú›<ä;v™Óoy9œÖ$íóff|¨Èö›“OG³<IÆFùHž¿;ÌÞ]~eæƒ2#bo¯|7”W?ùû¯‹$ÿÌ÷Š§ß&g”™¯úû¯ý»×ÙdÚÿïùç Bþz{h=ñÑqïŸÕ‚qóáž9 ¤s­ Íç“™}’<Œ bÊB <è÷ö?quÿaöŸÚŒÀ|Ï{S™Õ %aºŒŠÞĪ&Ž“EfN° |ë4Î- UŒ )ãlÁ`PVŒ•ÛkÂÚÂɧ٠Kb2ó›Qhˆ`É‚lÁˆùwÔHhš3ŽD]ùT˜¢\»¾rªRÜVô[Škš¨´œkãh¾â©Æk¹ûrk@Í(RÍ0"¿ ´&*ï¼a3Îœ¤p&á_m‰‘˜ñ¶à¸˜*ª‚ºñTLó¸kÊ
+ŒH@%êvÕ*Î}¨e=:‹D¤õnÁm@Œ…D:² ‡w±˜†ÿa±ß1y¨ãÜbðÝÎÆáÀö™H’Ä4عøŒ ïüLdT]Zk¤Ú8‰¤*^€ÂÔÚ=1®ÍVE)¨Óu){¡ØLè9ÈÈn²•Û^Av3¯z
+›' LB÷ÇõŽM^¦ß&gù3.ê†?ðÞ4Wh ô&Æ̸M µµÐÇàÜÒPÅš2ÎÌÞÁ²Bp¬,2 êk€XÛƒ8ù4;‚$ÀÏ:é©êyˆÑóИ‡@„æ¡9ãHÔÕÐ#ÕûÊ©Jp[ÑÈ©åœ2¾«3)Õ埄Tcndh×kž°$&;à41 ®7!‚¡5Ö2¤ŒÔú®–ÛÊs!“X0qƒRÚÝ’±]¯ùˆ‚¡¯N¼~Ý=4§%Ę‡Ð¢{Àô»óšåï‚h! ^¢Z6ü2ŠR@œ×ÁæŽ$ a‚¦õ-žkLËÝ×;[aî÷:bat¿×1[o[6³ÃÏI
+gþÕÀÌH|o‹‹©¢*ˆ›Ó<îš2À8•­h[pÃf*®—F—(¨j°åÁs­å\3S;Uvpø ê- 3rʸnæ¼öÌáuAÛ}‹ˆ²rt" Z3:OšYÖ§1áØJHÕãGlñ}iæ[=Ÿïñ#–§Í˜¦ #,€«s’´rä,ˆùºÕŽ8¯·ùé=zéo½lÎ_bÖŸM ËÊèþ¨ìÂŒB@¼dFÙÔ¸SÁ„<J$ÜÖ7Ta9ßËæ~w Z³Á!ìMªÂ1,)É΃1l[áÈ®w­Û" ð³nO¨ê
+e q'E˜Ã9Ž¤X`8ò0[ˆ¾S³Û ‹ u›X"Ô‘GÙ 얬(FÞ‘H!,"­íÜœ9Ü flg ¡Ø¨»?~‘4Â=ˆ·É(R×(¼€°àܼ… »µÅGLz¡Q¨tU‚maIH 0daH]¢¸îB­: Â镈·¯u‚&D§)%|Ä0“ÃAs³w„˜ŠkÌP\[ô;`ÐÄ®è¼AÃ@¼Ä Ù™.£(ÄylîH’@v!hŠ˜
+&äùS"ᶾ¡
+ËùîîBw Z³Á!ìMªÂ1,)É΃1l[á–»~BtšRÂGL#6³_O‚sªi¸g¨†Í\žƒ¼ì[©ßó.Žd‚ü©‰xÕSØ<e
+ò¾?†¨wlò2ý69ËŸqQ²O>ÍÆ”3ŒzƲÔÆù…¸IBª1þvhkÕš
+-˜H’Ä4Øe>Ì«´D$ ‰ˆ­„ÚV!“Ø8Æ›u§k¿]×Þwº†¸‚N×:]ët­ºöQšwºu­[×\–5ÈŠ´SµNÕž§jݲÖ-kªuª¶+ª6!:M)á#¦ålЉâ
+RŽaIIvÄel‡[n¢jº»6z¥6:ìÚq]umô°®è
+Ø#ë™ÿ{{È
+ÐÐë ½fŽ"‹_
+Kø•S…g,£[ªb‰XÄ +Ã] ³—qß«K[…$Ä(ae‹ƒ°[²F HH‘
+c_7‘¶0™™Ã Ê·–qÖª¬ç÷½ž?4ÿ{=óïؼ6¿Í½fÊü%F^6¶8)!¢FÝò !¢Æ¨ÖªÄÚBkšd²»¿|‘#4Ò=ˆ·E˜&ŒrDâ‚só‚ì>Ô$z¡©­Û­tU‚ma™†`$À…!U´v\oqÝ…Zu „Ó*Oß½•´L…–œ°$&ˆ3¸lN­y½l“UÁa˜uG3ä^”ÚÂ9lfIU8†%%ÙyDÛáV›?‚ ÑiJ ÕgÍm @vëÍ_HÙD’$¦†§êÛ#
+Ä"©ÙM/u]Ÿ·Qj+©#D ̪}jYN7éj¥
+xÍIù1@¤# ²æZ ˜®ÿa±é1y¨ãÜbðÝÎÆá -âÛ’éˆ^ô[5åÖšáH$Uñf…ù£‡$µûÌ¢}Ž¨ØÌé9ÈÈ.•ÓW=…ÍP¦
+ÏXF#uƵZ–°Ë:iؾ†»ö?âË aˆ¢Wñ¡Û®·ºñcu`š–’ ÞÞÒjI„Ø¿f×Ńò2ÉÌÅlmjeËL\BBÁL©yÐP™Y¤Œn ©¶º:ƒÆú›Sí–mcviÁÎ9"-åj¹qpþÊ¡žA‹Û7xŠè9e¬–ÚÖôÊÌÖ?Ÿf…M»/^ËP8xªU#Ó³$öEÒ Õ’
+}
+endstream endobj 185 0 obj <</Filter[/FlateDecode]/Length 4444>>stream
+H‰ì—_oܶÅß ô;ø¥@ Ô±×ŽÓ ûd{k#€cØ´÷¾\‘Z1á’
+EúO>ý•´»¶d_ZÇNÝ¡¶z âõ‘—?ÍpÎgåÌ;Qü²õë?ìZËn¶ÞýøÃxëçë…Ò†‹í$“Š[¡kÅÞÖÎ{íî~YýãnrQÿòç™òö—­©³RÏÛ¢K¦üJ%y@£Ùb))¿½U'úóòWÕ™v&2qÒhfï‘9÷ÏcXQxå
+ç·n–Âñ‰¸”¬:@Ô–ÿú}‡=vøΓ§â”ù¢L…«Ö8ûãEˆ¸Ý$R©éÚŒË4õ…Ø€û“ôfŒºYVÐÇFŽiêÁÓ- 0M˜
+•õa¹Vj*ª¡”¹êFSrž¹R°e€ øà*ÀÀ—¼MY"кµå /ÅfV,Ì%0|R©ðN–2²«yP
+*¹`nݳ†–
+ ²´Þíן׈÷ôt˜Z0
+ñø»§Éow’|“ ï2¤"k%U›½p„*ªN
+ÞMEœ&Õýè6ºn¸ÂÛ´4Ëi™FlË£[5ìï×ys4Ò!¼e}Úc£ëqýÀ»G@§‰m¨Z±0ÁÜÖ´©ð^–2ºní° -„œrdêŠÝ
+á:z ¤IöM.¼ËŠ¬•¤“¯›H†V»&L%¢âx”E¨ò§ê4
+Ü|j!]pî†1¹°Ì³gçNJ<™ŽÍ"7Exˆ{
+ÊÔ!½û
+n´Û¥ý⢜ƒ—USÜÓ±oÅÂ\¿´8…9¡Šüf¦Ö,’ZFGò`±`CGqºD î̼TQa0uÅn
+@¹0®ãF¥Ü& ÂáûOwýiðŽØ§#2³Ï"qGÆk^žñÈ„zèÁÐû³Ü¸B‹d®¥-#¶ÁèºbYãí,Ÿê|-·œ ¨ÅŠÂ+dÒ¯…d“åÕîA7ÎŒâÄŠ¯¾,$2gîéé6É©“. yT°¨u¥ÈÅl©©àÞvSi¿¸H»„ šbâ|Úó]Ã67lsÃ67ls±à Û\L½Úæ€9ls›°Í¥–•QY ûÜÿ…¡ßç^ë\×9 lÃ:ñ„Ö¹aÖ¹8×¹ƒÍZç œž¬sÛ£ Xè0ˆøWºÿÃç–!“uØç6aŸ[f‚SËòL&qfʇ\«O½‹aôf'V›Âñ‰¸”¬:´±5åÄí”ù¢L…«÷‚Ô‡#æÅ Ý a@R'ŒàôŠ}›4-Dh.õi /Aªkm?TyÆ^f(S¯‹ÇŠ÷ØJUW·£Œ}7S,ù2ÞZ~dr–Hwón÷ä<7J@–Së¨z±ÆÜ€;rôíT×Ë[„6V?\çiÃZê=ˆj«È7WÇrûÿ)G% ^‘ŒÉ…e.XË&Δx¶›En
+¯}2¶B¯’±CX9€äl j¦Ðk$”'w˘…¶ÞåÇ‘«³ððàB5!°ÚChŒ‘çp(ˆµt2ÅP|‹åó€ ûpÛ”l(Çɺ„w[ÊŦ8Ђ¬£ÕRgu2u¾‚N ~WBÒ–Ê5
+¯›h m
+^íÊOÃŒF¶µ á:FqðEK
+endstream endobj 186 0 obj <</Filter[/FlateDecode]/Length 17759>>stream
+H‰lWÉŽ7¼?àýCm.p'óÚ=ðÉ€OÆèªiy;H‡Áøÿ'r#‹õlKr+œE&s‰Œ<Fíí %?öVó™j¬°z|<;”Oª$få,¥eÆÒIÔôÛz¶ª‚¡•y@;¥Âx<ãhUŒûÙSL †3×^ ¤ÑÀFgn=ù ãL-³qgNý„ZøØÖÏ
+˜ZËŠ J[>ô¢x93n>L&
+€kñÙ¡XjÛqüÈvb¨Á‘æI@8ࡘxMzW=S!v€“4* ߥ$–Ißg'4ä)4Å+§WA÷`𨆴0ûù*µí¦9”Ú6Fïg.šW 1×P(nŒÕ&¯EI˜«¾+ 0L\\ýÚ HsMífœÏˆ€˜G40#?zu²€·+.w0Xµ¬-bQmÚ
+~l\ÈŠ«ØÑ‚ÞõëúóóñöŸç#úïÛŸÏG<¾ûõÛ·Ï_ûrüñßÏ_þúíÛÿŽXèû# Åÿ—JÌöù,=# Q¾Ö?ßþx>JåðüýGÿ‹æ+¥¡µ9*îûú|üÎ÷¿½=??àw8Ã
+p&¢«Ù¦F4f;>}Þ_Úþ×ñÕÁÐQûjäb—”Qc³Ø'Ï . ‹^=3INŸh4£ ]u4Ë}ÉBMé+ö¨Æ˜ÈðX†•u)V€m”6ë/ô h'Äý~7øQÑyA_€h9f+“›ž€´Nf<ºuQGÕÕ¡ÏJJ„Ü„¥]°wob0L»›–¬O@TH+`ÒnF›T”Ì°ˆµbÞ‚Gj¶È¤ ã€'w96£GÁðïNd#éÓ_<™Œ†ÇIæ ÂNÒlĵ‹²±’·Ð ³í7lå*0v£TÞç”S‹þ
+Ph'™ÀÁJ>PrÖª4´ÜÅóÆ]
+‡ÈmI8v ½-ù©…dÈŒ¢$?]AØldLßN6Q*g`œÂÓ/é±(z ~H£6î¹ #ë°F¥„Zm0wÜ sp˜.`y0—uS
+±æ<¯' Ò—3†#«^ˆÚ—þ¨Hª lJH
+VÍ\‹2|X-ðœywePy‰
+)åc–x3¹
+ávS=9j‰ ;‹°z?)•· ‹‚(Â4'D0}‘Òì ›%,Š©€9q8,9íÓ Ê ¯~X£ Ê@ó:ñxà¿
+ƒy3i¯.3pÅ(=ùi$§ULËÕäWè– ²†Ý”^º½†Z¢——ï¸nX0$¯*(ÀÔ½D *9•›1º+ªñJ*Ø•Ö_*
+0ó xq%Qf‘¨ZIIú…75Oâ,(—2B]uä’8)±lÅUy2¾J§´I/-Ùeºj›µÛ«ú3pLÏýf<Û«róÞŠŒ1-OÛcµµ 9qsËÚWéìÂôYC[&pPS9
+ ‡8^.eeGßä-"ù~â/‘•#ö—g÷è“LpÝOxí)¡mÁܶ¦wÀ¢ñn¦©÷á¹¾øaðÇ—ÄC‹ÅîÞz•
+¹ æ^Š‹y–¯W*«×Y¾^Óºo¼7@«Ø3‹L¢Ù,8ðL¤²Î›Š¹po@àI){ukÃsBˆ{__AÀš<q=q2Š^/T¹ÑÏÅÕIU—'9Öó…þÒò¾Nþ4ª¼u‘ªf@'öÆÀ+]B×Ùsh‰½»TŽ›m
+HÉTÚG†ÔVëÛlá2„ª¼!®ØÜwS)íTöÑ&}úËÔ¦É7ãÙ]kº®NÜ'ñjÛËØž½m³}ÿ﯊àççã÷çã‡_Ÿü
+G8>}y>ÚñÝ÷ǧÿ3ö·ü
+,/Âñ‹«æDÂðµ$$ñë\HxÉ’‚,1(£¼r-Zº¹Ål`Ö™Œ:ÜÀJÒÐÈ$l†x‹vScùž³åû"”²ª*ä;Ƈª˜B4¼–îÆY„Aó
+¼<dU£cVÒê,üjÙ(-›¥ª±¥4ÓœÕS4U¢1̃Æt"Ô„¸W½ UÝŠ.:èêfíO'–Ž¢ E_ ·(e‚a`Õ¾
+º†¨å?Œ€Ìü-·²ÎDOšqá•C¶¢’s3”ÅA¸õÃÛ¤!>T¬
+•E"”owÙÜtU4Çþ8dOš¤×ÀÃCV¢Ê±'´Ôådû‡ ¢Ò¿dªÎ¨\9#ï^ EçÃyd|9u[´|¯C­EÍ9mÕÜÙu‘]p¡q£‹ŠŽ9€qè^'¤SÛü˜Ó;Hx®Æ¨€îÆ)GÔ¤ÀÅäµ
+‰¥&´ t\ZÖ~pœèLŒË|!˜€Éù™=/?||ùÂ.¯¼¿¿¼»¾Zn/¯n¯ï?-ùd9¥=¢sЧ$j1_ d+ÈÍ.$-äçáwà»1᧞Ü)r; kœZ4“\¤2¶%…•,|NŠË”†¥Ñ&æ ¤… BÏ}½‰–jŸÈ„ê–Ãñï~ëá/kÑ„ÞÌ}éH:¬¯^}x{öøéÝíñÓíÃýåãÓò%ÅÌòö=jøúì½5Ëñáî÷‡?ÿþrùûõr÷pu}²üƒŽ}E?^¾pZF(µ§çUÜÿã[êÿ¼o{ð]üáëû«žî>>üÖ‡ë›Ûûz}¸¼º¹^@=Ëw—÷7×'/ÍrF¯¸ø<Äæwôc~ä7øíWÄ>/aùvùég³\á“ß 5Ââxæýh¸EcÚÈ´A“´p.󇿠pvÅ÷p¦Áàã@€O¾Å©•‘Õ¦'s.ƒ„¿œ88l@ ¯PE¼`±Á+ø¼³ø¤³¸;Zå ««Y•€Žø ÛT
+yžXv©ƒyyEn_
+ãDP>ß ðÎ7u'CéZ“‚}@ú¹‡‚<m{
+‡K¡W›vub˜[&¾ŸÇÎðLþsæð‡E8r~)ÌÜV’3Ƕ•äéO¼²zÑWG×ýY]=÷“SIuÛÿUêŒܸ}ê¯QFcOgT’Á‹ <ŠCAú®îú£8?B6:*‡_ž'gëÊÉ‚ýRCI`g(”LÚ,Ž—iÞ±³§iäïÓö‡ÈÄ*x¢ÇcK5v~Ãì~Aó ¿7ðE1Ùhùú7N7Ð/%`*ýÓÄRçUÈé\\N`3Ðý:È´ÐT’p1„Qä'‹Öb½¤É:=Ïz@[
+ Ϲ-”TWò3lTYy)½1%×qµ‘½q㛌U+ñ•.€†qA²a0H•reI¦-&-(–K Î ì,Ç®5JÖx­e‘®ë¾'h;ù<^˜s/ü§|D)L†xµ_¤ëKÊBШC‡)Nù¨äaa@³¥ÐËñ&Sc·*¨²uŠÂ?ºUè`Š“Ø­e@§z~â†^ÑE†7F‰˜k¬`Á©"D‡ks‡”'d¬DFˆY!Ë-×8>]ŒªeFÈŠ
+«!`è¤Ý̲Ae?a€çàö1@bc–yrÏÅÈ=gÞòÉrŠo)žÔì`ë àf¹ûvçÝ` í̾­¢úËiØð4cŽ¨-ñ
+ñئ»D£ñj%ÌOdUJ±€,A—™Ö[P/Àx%·= kÖSˆì!Äà¼Õ þÛv
+:In 8¼˜•8Ä~ÕþUo¾”Ü® PˆÚ<íÀ5ñþ€®2ÞHɱ÷ïalFVjröÓ‹,¡zŽ
+Ë´LœÈ á|áIEÙ qyzš“:¾Šéj7
+)+”Þ’fH°ˆÂÿÏ©Ñö½-D—|ýÙ®:Óˆð›!L¨’‹cŒ@c\€aî¸ÍÓV"P GxÕŸ3Â5 ]t
+\Έ‘­’Â`ÊúS0ÝÂ@o†™‚Ú‡Ét!%Gnÿ&Óp~ÃwÀ¨ AüêÁ<T½˜ç\µ=»+~„+ȹ?-ÆuÚ2¯á3Á((ÙÎ@ûWЦÝ"ƒ•Ü´b²ÎŠç®`Ì]ûp<éy)œÛ%;Õ`öHß ÝùpWPâ´´TÐP„¼ºñNŽ‚ 5›¶5ND8÷9–VÕ>öFD 1‰?‹Gfß éc3ÁNñ@(¶<—“qó•%ùLÜK-m×ï’„3&¿°Ë²Ž¹6@®'%‰³aSPz³µÔ²›‚B.SeHÙ`ê}ô«×f¦€'XUFñ HÉwÀ/31fïP’…ËÑʈó&3
+½æ£°¬Xg¾Õ‚ ÄÜ;‡´ .ß¾DH^2·[±`¬aTÞ`Ür… ²øŠW«
+§ZÈ$;oiÑK¢Ù"D áDs’(–O"%dŽ^é’7JÍ[èàYëþÛ]rU=÷‹;§Ã6ž' a?ïàx€Û/ì×Úæâx×yÜ)š žÅçø蘜¹WoÅ
+Q½AlÓ\» 63l±úãš-±bµÝsxÙ¶=²jñ×l‹lóÂm4"—b2ûÃÑ%/.n´’1©Ç®z”€òš’—Ëø6C¾ý°’$…Ë<oæ§Ý9ü¼aÉ7]î}×^ºîH›ïø°¹óÈ›eT²)ùŽ0›¿ÏÅÁôG2Ú²pÇ(Ñq¤Gæµ)OéL¤©I¸¢œèX‘³íÜ'zw¥Ã§‰ßþýý-?þö2³%Ll›YIÏD¹ú#NeN¾ÕŸË§×bGË“d"×:ªâò|yX+†Öy˜= ÝÆbÉ5\‹Ùj)½,5wƒî7lbýõ3¿¥™ÅOÛ†©â
+” 0ņ@GŠ0èÕØMµ…c¢é„5›ZDÚ*Æ=ËÀ`R…þŒ#€Â.L7‡`߸+ £)’c uõÈEk³:=åè/e[ÜÜVQkOѧ½„iì9”ÎvêŸëÂwJUlm\ >žL§âúOaÞ8¾½gêóq½*Š«(¸v  ö­Õ¶›˜ø#bÖnâäÓˆéÞÄ–6SßsäŽr”5†íáB±ôWÇĵp\6²{éžm`æÓgÅÍ0$Òx.x±ñ\õ†"×Z‹0n»ùÑ¢C à– §iÞ~{jœ±%8 ¶þ؇í~r³{|”³Ažt­èö¾É‘D®k“Zk^·0…<Ù<aÙc^aj¿;ʠץ椗2ùñÖ¢üÒx8±L~ZŸãðš' rk<¯áãaŽñõIÅïzŒ¯Ï4<nß0zÇ~¥`Á†?”%Ò âMÉ,á@Ô‹RöFëÀuRÊ7®Ï¢?ÀQ
+ž8w FÑχÍÚf5¨ê¸Ò aØ×ú+ûô=øÓ¨òxÔMªÚÙôfàÝ.¡ëê=´ÆÄ.S rs©€ŒL_·dÈl º´…Ç°Q}–!žØJ÷RíÒni$zÑAM}ZèÚ꺑x+ñ†í!ÛmÓöKþ?^Áïo¿½¿}÷Óûþ¤Gz|þåým<¾ùöñùŸ_¯ý%Û‹ôø‡ JN2O
+‡¤F㬳‘ld:+Í ÁYKMª&»4IüäKÈù¤.…°ÀC$§þš9lê²raÿšu®›®³™:ë즔B0¾­†
+Ü¡¢;”¦ºŽK¤¡—ÀÑ“ƒ¬1ƒA+b¼Q¬­“_bˆåã*Âe7]iYÞ²¸þ¥1B8ïòßWõšô¸b虿%&`þ›‘,䵊ï
+ 2ÊçÒÌd§R]A«¦!r—Û<†-¨´‚>«%ÆiqôRâÜ•¨Ü‹9O•à -âi™ÑŸ ‘ñKXÏ\³ÖˆÇäyÖj‹}BD†©Å/î~Ñ€×Åò¨Z\DVÌ”,W@ýªï€wMÉ"dµ™Øýqzr%IšÿŇLÜpö‡„ª:Nú^40Q§I8(JáçEÝŒðîÅàµzç¶x›‘«Áï@Í•õ8.Ø‹»ÌÓݯÀ•g»Ÿ EŒëqQD«óK'ˆÓdy^œ\—ŽŽ1 ûÀà›?…W¹È©,M²ä
+#éÉÕDœ‹9{£ÐaÞ@ùQ ÀfÅCµ(à°£* ¡“)^åf
+PØ5` (‚µ´UÕHr Èpüï{8$ï̽»rU×6dÍÙY‡CÖõf*"Íw}Wjiyn
+'h<L̨’ 7}æmLÉÀÅ©ϹP’÷2‰zV-ã0‘"Èεn‹ühâ™A&j «ˆèÑK}!gbËØŠWÏF ¸jåû­Åµ³ð AÈÜ*JÞ†èeri2ƒ¯eA
+ÿD`ûUÉÁ9(ÏM¬üÔÍ£.É<¥‡CÔßzs“š²^ñÑF7_0ÚC<X~l~$ze”1‡$!ѪÎT:¥™B†é)‚ƒJÆ­ˆÄ²Þ3niÈä‹Ûø†æ
+Roü”3ƒ!àý¶úIJ9Ÿ ˜Z‹˜PV›¢rñœ#¨§¨$!É&ö óL]0<윢¤ƒv¬ÎpCï@lP¸vÙeÈ\C=hIÀ2}•Í¥$½å@¬ž…’áv°U ¹Tiv†HžÁ„ ²Å„<}̯#BT‘—r¦Qhñ<+{HÉn¡ÏÐÒvó\%)'ovó³=[FÛÌwêŒÖ´TIò4ÖVDPçPAÚsMnú¯ióêô¹©oˆóQ½PƒŽÍR¥òÌPÆC€4²I{Mç'!„¶j ˆa””j X'`{ÒEÛ¼M£ -pÍ“k 5Ñæë–ÒƒzË<… :% àhZæ'»”?Éñ8Ô-Ø$›­ËrZµ7€ ±XL+ Yu5kß7Z]ØL-BÜe-@•ƒj˜Ž>å×e;ND-Ѭí1²m
+Cß°üLÙ‰À”„‡Í®èœ§»)+mzó°é&I™`GÓ%x’åTF%¢“"/‚&¼ÓÑ°1*w{Ræ \KÏaP ³>¨ÞX¯-¸+MÛc³³Ìå¤á!g©«§gÙ>ð4šHD럯K·[‰:ˆÔÚú@KsÚV-¸bdsŽµˆ…àÚ³ª¡ãðµÙ‚ñÓIËFiYcÓ2JÉr”7‚,BÊëÝÙzÊX;ìæty¬íÍö‡X¶¿˜/Àpêi‘[¿û||Ï7?¿xywÿêêüþêÃíîîóôGÂþD?NžTÝøÍˬùù»Û‹7ŸoÞ¸V`³¿¼ºUèéf÷Û/ûûg'fzIg½ûÔ’öÛô¯${ ^Ô@7†Vðíã(@§ÕXé øòŽ¾`Îÿˆßþ ìÓ¦Ÿ¦¿ÿÃL8ëÝk¦ˆZÓDm@’š$5A8ÔåHO'ó‰K™
+% õ¬÷Ê~)‡œ%‹´2ÅÏf½ì}XIÑñ¼3G ˜Í ¾‰e{êY Q#¨x÷3öú;·d_áw<“$xŪãGÖœ¢¡ãf £h±V¹b|VúEldì\u£Mõ [í1›vuþV—ÀÏ¡ùž­q¨6—ã´8 wl›Ž)Ø…_bÜŽ™ k¶ÇCÆÅ'˜mdîXs€ûÅ1£iœs„0ù&Ù83#Aüz«;fÓ­Îßê÷^sÀû­ûaC|ºcË`öKŒ›ã1³qíÃöxÈæ`–ÅlÊ:˜Ü/ÐrÛí*4'ñÆ1˜ÅCÅ°>ë[Ý1›nu>;Üáe0¼ßº6ħ;¶ f¿Ä¸93×>l‡lfM§Ñ¹ƒ2à~ñJV²[D˜‘c0k@sOe¹Õ³éWçÏÚAàe0¼ßº6ħ;¶ f¿Ä¸93›Ö>l‡Œƒùí[M#PIScØ¢é‰yÖ⢠F®Y™ó¤TP–á–@,štÊF¢]`rt°èx ®<êu³ªÁÎ\òÁ‘HJÔ²ª¤l› É{ŸçQ K¢ÚŒ[ ´l2ûâûÚòç¬Ú¶ˆµ›Ò 5U6X†ŒmÛÔ]ÏuæKÉÞë,6¹z J¹ÚÞ
+Ñ0pô…¶Z a¼°4<¨_Ûäæ"b˜„ÚþfÅÛŽûæ[#VL›yšk<¤á]Náà~¡\2µÖ° À1|²ô Kyx†³š_j°ÜŸsŽÍ,¼8[ëGÜËB¬h†Óœ—å –ú0hÍHxÆMaw‘ª¨Y¿L8u°°UudbkÍ4ë@æ¨jòB$8”l›GSÉåÑB2x•d4ói2©¹ž ‡¼Æ‰&™áîYüœó
+´hˆœg ÛU”pÕê! ΔÏU‚ÄF:H©BÙ}4ÎÛ…BC\ßØC)ê;e>Å9´&ð¡ÁðÔ¥þÇpµs+
+®ÈÒUfƒ ®Z…æÓ<×,!ùÕf‰‹kv0ÛÁ…œíf‡KFà|¦âÇ7½ø#ÜS þ¯»ûûýÝíw¿ÿúáîþoŸÝ?›þ@{ÌôbóáÃõrÓíîýõþûWûßd›=4õSÌo÷w;:r0ˆÉ+”‰ªÍ£ ÛxZ¦
+YWžÑ$9xŒWжsÉÉ+ðÏÍåɇi-¢ƒÐú¹.ZÝÒ‘P²{s#L±Ù´%úÛxØ>Åå"ü‡Q°¦-~(2dö4šXÀ¼ø¨bªÓ»ÝZíŠøØ·¡—™»IYˆ³š\×=¤iPZÅD”VÅVt=˜nJí%5ÓA÷æFݯ‡”Z&ÔÒÇn‹ï É´L%úîŸ{ïc´jš{^iÒ˧t˜ç,‹óB£Á+¯ZŽuLš’D£?ÑöÄîcLı¨x¥à•8¥&š»ó½¶‹[žlÚ¨àâäIRÊ9†}ìéÆ$r)!–8Ôó„áh~Ü`eˆBƒÆYKäW 6Ø%Ø:C=ª3„äˆ%냋ýØŸn¶]9,ð™¦}$­2ZˆyÞÚê`Šêï1Cý‚Ã-
+ËØ-@ä‰N"ÚV0i«}R&Áµº
+½®BŸ° ¶:ÓÁ†ÒcþÄVE_Zíà|³Í7ëPulta¿¦iáÖcæ% ÷|þB»á`°­;Ë”9ˆrÑlÉBië Ñg5 £þ€gŸƒ•èÞÄŒyÏÑ¿kM6é“ö¡ÏŠ
+ÄP9½»éßÆO°ÿ/_NW5Ì}þÿ½ùŠ£#Ý#·£ç¦ñ…¢×ž¤Ê`µ£þü”yA•VºÕpv^÷ún3hËVmì 1ï[‘`*ÆÌ%ŸŠúâØ/·Ý6Ž$ ¿ÊÜ°/4ÛçÃ¥i{
+×€ d“k9IA(~ûý»§O53$%Ã’„7‚¦Ø]}¨êªÿËßIâÉÎ9g
+N=jÛ¬œŸ1}ÁdãÃãKæÇ[ÞíÞœdèN"¥d
+ÅI3í\(WÌ;&}®I™!×缩 åÑø]ï×Û5„s_Ãq†›ä^E[‰sãXd ñ5|7ùE³‹î±úÎ2‹æÕ¨lfšl…`iª®B¨e²âéðQ% $t'àM.4ïjFµûѼfy¨uãBœÑ„d´®›Ê.¼ïšs½&§$u{®ÞÎæ\L¨²~V m½ŸÕÐ# ½CAOtv÷L:¨É•EB+Ë¥Ý'¡%
+€`VÝZ
+"™ãìŸ
+àšÔùãV]<~U„C
+ÿt¤¨sÜ…E˜» ùPãÛÚYcW½³#O@Wn:¾Í“Ø¿*Ç¡8Lƃn„ÊùÜÚQÍÚõœ=Ÿw|®ÆÞÒE9_T$åžê¾²}f¿ÍúIļžÞk{À4“ï^ú!÷=k§û™µF˜”“ì)æ±¾ÿ–óïíõýùõr†bŽ óã@F¸—a@¯Pƒ™Š
+1ªÆ-K¥–*¶;®¸>ŽžlÚ³½“uõ§ØÒ^z¨`vâ â„;0Û0H Ç'¥æ‘kÿ µÃ•jëø¨ÖDuê$÷Ìbž‘ð(¦hÿ±–ó M™¡VCÊjá£låºÕd‘ê‚Ì1âJg1®WÓ0§¡Ø“Ó[§.¨Äï:ý®ƒzήÚÀý™{˜[zäb½
+°]T Ì°ÌzóPª«éßË·?èSL1÷í_WÛëÛpñüÛí%´9ÿx¹úùîËru“†ñ©«30ïÍíuÜYãp¼»ŸBaùãífùîëúãö2˜½É¦‹»ËËÕmwÒ®þwû°û*Ü݇ûZdÞ™K;â/øïOØî;ÕýÚýö;ë–˜þálÄ†ëŒ ‰jMÚD¾•8³¥›¾•[ù»¡Úê52Eś¨ pz]‘"Qmž‘‚xM–*¹tßÊîü]wÞxM§Ë SöQï#ÕS–îrq1_[9j+*ª:oøOh¦BÃAçä\7©°
+/Rj¿OòÇ C˜ºéQct¬j¥.e’AÁc
+½.hE®q˜¨¤8w±9 Š“fÚ¹P®˜wLú\“2H®3A$Ø S
+¥ñ»Þ¯!·kì6¾†ã 7+ȽŠª¸ìƱÈâkønò‹fÝcõ5œ!eÍ«QÙÌHÙªÁ ®’¨e²2êðQu $ˆ'êM.4ïjFµûѼfy¨uãB¦Ñg´®›Ê.¼ïšs½&§$u{®ÞΨæ\L¨¼~V!m½ŸÒ#½CFOTtv÷L*:¨É•EG+˥ݧ£%
+€`VâZp
+Zõ‰ôxˆ´Í9Â,&¯Gvë{¡J.4vÄ™Ø՜݄lÈ95oÇj1u32ûýf¼¶32Ð#>5™4¼dàìñiS¬ûq¶œ•öȇ×M]¥¡À Ôæ™›i7‰ év˜Ç÷®vÄc´Á=öƒ¤ò„ räpÊÙ—ÏGP9‚ÊTŽ r•#¨üAÅ¡ÊÚ˜z R2"PbPT-M4fÂ$—vÊ<Æö•¦lu(•ÉŸVD>ïXAî œvÿ\Ð\=V&ë.¾aÝ'†D†‰ÜVLè" Z’¡”ªÈîÆ܆ Ù75û!9WgÍ„u/c;;`'Zz|Úë:Všõ‰?Ï
+Äì²îHÏ_]2SîAP2ÉèÉP
++³ö#¬ü`Xyu$•#©IåH*GR9’Ê?‘TP4½Óƒ†TVš¬§ŠÝÊÞòš—²JMíPW8FÖÇLȪ¤2ŽŽ×/÷Ùó~Nwìó» Æ();y†UÆê?ä B½ž GÛ:0W…weÇÀò¨e'Àò€e¹ùD¼BÏ$áaí`oj€tu|kÇ ÚÕœ aE›(VåD™µS?ÄÞ¬ë$paÆîCbi1ÝçähŸ$¿[+ŠJ]q1=YÖŽó‰z¾z¯»ìÔÁ.fnu²Ë=öƒô"{®8êÿÐËc]ÿ½èåöv»A;éþs}¾ù¼ša˜oÆ«Ñ×C/ò¥#X %&£àÏvêPQbÚ¡B£M’¢1…÷&•êˆG‡ôf0–å³q þ™à=f&Dò×:â$H÷d¹ÆøÞ«m7Žãˆ~Aþa^ HA´ê{w%O"ã8Nd ü`À zE8 xh:6ÿ>§º«o3»+S±Ô왞ªêºžªf P7Ø/:¨¯àùo˜K:…ÂfL$œ¬lFyj0½0„¾œð
+MðyM…Ø=9®oÊÊ“‘}¯)Ÿ©VZ”ƒ[ý6 ¼¢H~™$"iª{¦Bì>ž ·û˜¥#ÅIˆgÒ$mê°G¾AÝüAb¿èohgÕ[O\-tzHÖ‹_aè¨\å*ÑPH ¬ºå¯×GÕÎ’?€‹ˆMŒlhÉBzéiÌiƒCˆÖ] ¯è>¨0‚†‹½žX«2ÍHÚ‘Ÿw4‹à6Äa9ùqð8æѹ™<YåÙǨô<Ž9ôþ¥­r–ûÊÙë¼·î”Ö)³é2í¹qy…‚ãÆ¥ˆ[Xm\šûg‰®'×púm8ûQtÜâ"b®h„[Þ'.l7+<pŽRÝé”=”I+'ðòÆz‡ŒD9âødÙtªêù_ˆù4ÄÎa4YÍaC¾uNçó´TÚ­AÿÓëÛv:× ô¿„mc™„×Æ ¿¥ëa…
+Ôù› ¶~Å­UŽtÑØ©[ƒº©ƒ°|ŸA~Ÿo½ð+¸šš×«Ù¨\8JÖ9«½‹Ìw"x¤¡™ï(1ˆ‹(`û:ÿÁ¯=wš¨ÚÓuŸ}”nøm‡µÕ2¦ÖsMq i&¯
+,ñ-O<VØGulyâ°o,“8\Ư3eçäÊÎä,&Û¿åj0­jDÅ
+iGQ×ÉÍ&p«ƒ±>àeÇ°–dQ1Õ™4ñ]ANˆhHuV†Áõ¬YU„Û¡(õ¦Lö«2ɹ騕‰‘ªsÔ[j¶^°u©¼.–&a]Ž6å²_•K7=ƒ…7·;2¦“Š+wð&À}&×EAM•›œ| Rç9/ŽL|š x%Þ
+¨|¦KJ|ejÃÒ7à
+‡Õ~&G±Ê 3g+â%66d@¯ÕBˆÕŽŒs`ëZÄkªŠ™¢Í[e+,5©šh¾LG&œcü¾óÀ ÷3}ºÎ³ÑÉ.„»ô!œÐ­` jÇ&g¸SMÞ懈"ÊœšÙnæÆÞPî/X…ÚM´®c1QQÕ9Ö®ÖamGaŠ¼Š˜ #ÂnÚ{²Á×’l8ä©`«dÔFõFÄ ¼çõgß½|uÿðç«ýÃÕÝíÅýãòGÆž½
+\$8‡²uA8!ÙX5Ž¹iÄ8‰…8Šúò±Öƒ¥…ßò§:šéZ¬$GðÄ 7Þ"ÊÝìZuUÖÏAÀ*ˆÌ
+H:ó`€6®Ö3-¸Âßœ¨+í2o«²õ(áð!é–¡®ä]Ð š%Éð©v©ìF;g4IŠDç3×q ¨i•öž¿ •-¡¨÷TS>ìñèsád±6 ØK/Û Eí†RÍæ¾®8õ|-³&í&pÉkoOødv- Ƭ"¶M®ó#IwšJmåfyù%xÎ34lû‹‡‡ËûÛÏywÿðõãûK™jyyvww=º½øþúò‹Ÿ®Þ]þ(ÇôVÔL€îóÀ‚ScgM šþ·‹C?3ilœ‰¹¿|syqýÕf×/üÅ$•Þ^_í/ßî/®1ؾ¸¿z÷÷ËÇ#ãìWM¦¿^^¿_O¥ÿÓHò‹FíÁÔ= ºŸû›EªxiI«Ü±â"ý÷µèDý-RÓÆD£„¨4« ®l_ºC¡ç2M<ÆT™ äòáÔx4ÍhEwÓå]ÀWÙÚfw¶ZËå‹vyÛî;Hè®™”9[k§6€ý
+[ßîZŠ•@IY´/Oâv®çÈ}Ôó¨”b™R¶-õ›¤ê÷€†«©½% !2fÁ-msÐW<¯såÜÐBa˜@ÉC™LY‚ÉÞYâú¦Ž¤6a¶õL1Õ÷|Ÿ¨ÛÛ~éAD÷ЬÏQƒqì×8àã}ëP¬ëH( œŠ·É›jÊ8®fu ã+•¹ÄĘdX7P"‚1 C®†KÀBT11¿¨2NoAÍ©¢Í—DseÓ‹§-ºSI1˜IF}òa­ª >ñL/nÒ;ÞÕ^WØ
+¥²Å«…¶$b?NËøÆä°Uø_»œÆ
+Å”™Ö%ûyá‘Ãy¿÷ÄÂ4*(Ḫ¡Õa<ªìKÎ „Ò£¨Šµ¸qóNäõÓ†+øR"”(È 5ÚÐ
+DL¼ª—p\I#Ú‚Iu‰2±ô¸(¼:¯¯Êê*¿Ø0¼÷`EKñŒ$!.£0 Åí¹Ì{c]s£)L8|n| ¢ãœpbVÀ¨TæߌŠª¸¦òEH£/uÎwwå0xžŸ!ðÁÐéÉ„ƒ9 ña7Ø`ìAœçL^S­‘°!
+ü`
+endstream endobj 187 0 obj <</Filter[/FlateDecode]/Length 14501>>stream
+H‰ÌWÛnÇ}'Àè¤aû^Ýö—r&’2L ˆåîŠÙ€äë,þ}Nõe¦g–ŽhƒbÒÌٞ꺞ª"ïLgIjùNjåĻÃò6vd¤cÜtÊû
+ÛNûÈpQÑ0þñð@Š7éwª8Òg ö±‹1}VàwØSú<cçt¿Sì´4ªàª”h»@1|Ð||~Ï¢lð×?àÿ¯nN϶»7ëÅn½yœoŸÄ·Œiqzñ¸GgÊü}¾Û­¶ßþe³Ý}xúeu,¾á3RœÎ6›ûñ¡Çùíýêí§õrõk9¦öE]®îÖ¿î¶s¾²¨¨3ÞYát'£WÂRGNz¡\•BâÏéåj~ÿ~¾Û®?ó'#±ñê~½X]-æ÷ëÇ»·Ûõòo«§"ú;þë𠊣cqý3^ð™¼ùþqyõôp»¹¯À Š=VèèÇí­8³ûO«ãC)Î8G®;<øtx ÄÙ/üú#?ª¤~{bè¯xú7°ß„ïÅ?þ)Å__æäcK„ÂwÚS²«Áu§-‚Ź%;ÒÄq6‘ß)æÇEÎê4éþWRp2b$¢Ë}éãw¸7b$1•Tpý¥õ=ß<èÕœ,h$î› ³[vSþ3û;ðè§ÇÇùÃj)î¶óåz…d1渜€{;euȯvR‰¥Œï,¨ùÐy mfw‡ÆÀ,íÓÙb/H£ŠIz æg¥èg³ß+Ó§?lv—«Åf»„ž9[_¦×^žŸ]¼-v~ø¸Ù>äßjž"¡—›ÛÕÍÙE¼RW»§ûÕÍ É8Ù=×Ë}—ê/¹´ü›ÎßU7øZŸÒÿ²äx›Þ5!XI^—ìEâ(émƒsŠ©.˜œb± ´3 T¨´ªùØ㮂­X¯q}6–·>C4¾=ƒ+Ÿ’®‘5€£‹|ÐrÚØ3¶û|ßï^–Ùʇcq";)•µ™c`¼±ŽÎª@a/8Æv
+ÿ央/év°¤Õ¹ AjœÔˆà×Å.X2
+y
+ñZáARÐЕÜ&8‘¿L¹\ÚÊk¯ç½‰ìZWÛ êðU0{Ðæ¹/ã¬î>¯î.8Ü­M,ÑËd_=vwzÏ#œ¥<:Ç™ãBM³"±G×7x£k/¶7i0Ÿý…ãø¦q†²^“µq*$*è3'š ÁÒ‹V¢ÃFŽ(ïç[?>×ð q
+,5Ò¡‚Y‡Aáæpcò vß/l˜ÊþzGÚSáüXu¬…N#öà…qŒðEpŠ¿ˆª3ÒR­ƒ˜¸]vMiÆϨ3h:ï½kÀ"×iirØçÑb$µÇª‹J ‡1‹‘ÔÈœÕX…
+ ½¾íáÁàFìž^#BœÆf‡ŸÔ—ªoo°£q²:’RÀ¼¡ ÈãaŠƒé´­Q‘:²•Þ`qÈUƒ­IΫ`ïÔ`£Ÿh’*LÄ`Ñ¡HèqBÁ[ëÄH,éÎÅèÇ:T°KQ¸=ܛ֊ÝóÃk„Åb±²”N}éõ­—9»¬…ÖåÍwÆèa‰¬0&gíRŒQAÙdI2õD²¨Óœ½ÌWxôˆÉat>ˆ˜ˆÀ¬Â¢2j…c?§÷R½D‡Œ&ŒTèÁ"¡êÛn,Äîyá5b‚²öʸ“úRÔÕ’†Ë&|6c]çtêµÄ©uÓÀÇ ƒ˜#¥Ôh$„|ö‚×Ìä0L™â±˜UBÜÃQ‰±T¡ò‚بPÀ"aз9ÜÜ‹záUÚ “°”æ†S^ªºZÕËÌ^Õ
+•cG¸•á°Çâô
+ß?Þ‰£Ùìl±øôp¹ÙÍùt•È±ÁJ\/sBê?šS
+ËÞóâèX\ÿœˆèÌ»4»¼YbBØ\ª^äq©3H]LÛ—è Šr9a ¯D•ò4s^%›¨à²Œ·hï1–Æ*&UtãyvQ¹1D_n#“Ë ESLédÛ)˜b„ÓÃü†Ã”f*äv–Dbà³ä:¤.¹ÏóÒ’ÉŠ©Ö×µGvšœÍx’œA :ªd¥ê.äU0Àžó:1Y2>ã2L‡P‡tWÕ“HüYZBΡɦŒ‡Ñéß´èACv9⦡»CI\É_…ÌNŠàH8ì5ìÒYЦCÂÊ%µ.•ò$›âåx¾Oôä±î ™¡h04îTÚ=#@i”8Å„‘;±Ž2E“¸‘›OxîãçnO<ƒÆI+ØXæŸý–›¡K݇ÙʺÂQ/Õ<É—š è#˜W¡©?®ÿ[)$+Ê\ÿ¿°Ù*på¥Ý ¬MiÙ*b•C÷b£ˆK\C’ç$rŸ/…NÒ"º201o©LÓ\¦=±è5Ï@eƒ–UªT†28쎲¤)ߦcb6Œ­^™¤.žHå$„U¼‹TøYÕGB`<3Ï2ü]b°4•AN%½<71WÉŠ§>Ìc˜b2* k™@ƒª  6ƒiÂüóU×bÉmDAþC¿²†¹H*I%=îŽHpXH0,„`l¯q<›`0&ÿ>§>Ô­î{Ù½ã¹c&ñÜZu©T§Îq2‰µj5\²îwŽªÈVšñÆ‹•xZáµÖöĺ uqAÊ´áÙ9
+0ò FƒÙ”n:ˆxˆrsःŠ#ƒ²ba†uÞ›p_dO*v°kàœ)™dEp¿Nµ§Œ]
+S4v„çwÕ\8) ‰×eCªhê;ZÛ°Põ“*Je톚IÈZ“¾€ì£èÑÖyuùº1©Ì„T-º
+Í–Ö7Œv5‡ëR1*…d“%#„
+Çõº¦$u…¨UF¤D
+8œ@Gˆ
++çg…¤€
+ˆ–‡
+•³zgÊ¢(EFÖ
+©æq°®œYúá FpqMNtrwlAÅtØõ …âÄŠ\\{„¶š ‡‹Q°¬dFêa
+ñN¤^ºc‹®Ú.LXž¦º ?5욊zJg`¦¡}‰¤Š3NFgÛÙÈ—!,)3[ pO.Ù@g
+Ë]'j¦Q/~.4Ø‹!dPLÐ6^„à@!¨T]Í\w» 
+l ŸBâ" T’yñ[!«Ü%çÐp ÿîÒíÊÐåû„>µ}™”•Ý„=²VσJè%Š)”—
+È’$œ“ U—Ø›p„ˆ|J· ¨~ {†ú\„!¹•é'60+„ºÑb!éµ:L¡XX@e_Å45°ÑóSÆqˆRtUÇ´”ˤ“DÔˆp¿ôé¥{c0Ä -‚mÄ ~/}YQ\Ü,%
+'È(é/ÿWF}fsçb6ú}úñdÇ¢Õ ¿óˆ]“±×KÇoÇŒ5®éÜö‚Éãùs3‚§ìÍ?/ãÑ+?ôb@°÷¬­S‘Š
+¢áå ø8_Æö”î!4«Öd,Yº;Y¸M/#ŽnÓúÄq»2®ßjÞæ”^š½]J?¹þ~¾°û´DÐ1(ÏÃhÂjžìÒ\µ8?jªµf#’bŠ£W»pìØê2»­àa¼ö¡ÿZ»°uªóW(ÄÞ×fÜ]<Ù·(7§Ó{öï¾?OÅ—×õtLíÕ¢"æ,òðxŒ›`aŽ RäXʧˆÿY;&RA
+#\[rM Ì ¬z
+?AÞá¿!-ïó!¹’<!8Ì$`gˆ ã‘ÁÁ¶‚ñ0ñÛç«Ãßj©;“–-}ánUïCí:¬ZË8’¡fþjÆs5ü¬»<¬Šc0í`-+²É$AUá–Í^²‹#“Ú Ü¥Æ4Û4£R3×•é ¯ ´™cÜ>­Öc6’¾ˆ×³¶ýD\¼VBm6š¥B¢*È{4æH…+ÕG5ShÂêö2Õì-˜Ãsi¾¸à±ãè¾2·¾¦e¡v¹.Iä¡h0ê¤
+h5íĨ ÓÉ$c?ôf¸dÕoÕ­ã3ñhÅk­ìs×­­È©ä¥
+Ï.QР÷i¢´ZP± /…›C€‡6jðÅMä§4-‡t±vüpö+XQŠdaÈ5µdieIØþþÔf*F!c \”7JÏg^…»ÌÓT«L–£n¼‰ÌÎ.˜OèKníàV²BV1èŠÁÜÑŽ«x]¶7¡Ö㞀êΙzœBEò¾˜Š{ 5²r†YŒÁ8¥BÎÄ Ô¥_1ñ•“B`¡‚ÈÛ°Q(¢j?_·§!öÚÄX^fì}nR•jdÖ® CUtaðØ!?ÑÈw)ÒÔ&¦h4‰çO- VÆV­‡›1™o;j Xºb#Vé»Ágʪˆú/¯HI‘Õz@­Na7La„³E7"»¡k󬕲ëu©§"ع*¦ 3±–ƒ¹ø|­7²Êôe1ÐâÓ­”>·çÎ9NQ¨Ã@jÒæšLmÑBnN#3@ª
+Ùõ¼&)¨[¥Fʨ
+MYxq:t¯2i-N…·œ‰ç5ù"¥V` Ò"”î^$ß]³ô`D*·
+=VQNp¾(€5 «1W8c)ÕŒUçñW2ò&§¶æ>”–ÊikŠB‘‚P+^!ÜŸQì:ªšU¥f¢”l±@d‰.+G0>5½Ôtå6ä¨æšMíz–g¾87ãS”m
+ÝW*.Zfô×µ £Ïµ»ÂÄ›gb/sñÔ©$âE±qŠ÷*k#P›’¨X@¼ ‚~æâ"/£R\„E¢½–$§umM”®¥¯ˆ‡|¤ÚLÁXÓ†q!LŠ„‹ÂÿÆþn*@ž
+¡þ‡qb…£”  $/3}Ô½FxZÁ¥@àì$’šµY3„ í±&z´”mÖ…Áº¶t·ä<Ñ3ôüUp%Ó*»hì†Þ×
+®u£Ô £Y§ÒÿÒ>Í„U^y£¥–]Á‰½J¦Í>£¯U²¬6‘6¶˜‘y]ض̆¬síà E¸¸E§;e:´±R«¿¡æ¸ËLkÃ{DSJ³0rzU‚•-›1‹ð´¤SñIì%˜
+MÍÍ5Íq· ª`ƒ‚
+¿‰ ©óà^¡¬}JÌ‘r©ÄUÁéºìO!5—I™Ù½ð£;æêaP‰ZÊȈú5€R’÷ß”p à)MÉŽˆõÝŠ1)e
+BÛ¶h5QPB(’B„P,¦àJ† 7µË„s[¨Ò²¨ÁÙÓz@Iѽ€ Ž1L(t¢¹bŽsB6 fÊjä¹L/ 9få[×þ
+å×b+8™Õ]ƒFâÀh^2nØubû‹LË3æ9|1S}_ <]@_ïÑŒI¤©'Óa· ‡eâÑR«F§#í~"¾€+M¢¬š A-þ2—¡µ°$”)”–8‡p„Ø›V IMœ¤ÙKe† CH"91ä>œ"o4Wļ5G)rÅü!CÐUºi0Fö6§ÂrS¦ †)7¾”ÅAê#Š¿Äþ¨kahaàfau@ãÀ¾Fb‹¦…ðN*áüXoU/Ž”4Ï‚§¥ßUº{n˜dþ¶ó×
+ ôG´Í ÂÂÓÈd‚äÁ<Í™”0ŒÌÁo@7\YŸÊ$Iÿ€ÂD@JrSÄCþ¤!C YÙq]µ’.á@žò<í¹üÊv"29@ÑùÉç_~~çËG1Õe&Ü Å8&ÄÒ½Göä~YüŸFüAÎÙmAý|usÅÜù~8rîÞvá7gOcxñ‡÷¯žz÷ãÕÛÕpþú§7ïWÓɳçÏý&,gréÅ/
+
+ÁAá/JdkHQê®iÞCJÂifˆPwúåm ËŸøö/l¿,eù~ùû?ÂòŠ‹.žY;„Cç9Ð[
+ÞW‹%¢diÿo¶N©n~Þ]ˆöÁŽ¬áâ)÷'rý,èŽ[1úî÷üè{îxò›éõpÁW:çütu}µòœË0&þð¹å/!·$Üâ:EzóÍBœØÅà&3z©1bˆsÖ4-ÆÖ
+å̬;Ø) I’/:¥bFñìÕ(X–FÒÚgdåÐLs5öÁiÈ:/Ò•sKzö[pœuuìÙâŒÔ@PcNv0¼9näKí·(³N¬†Z±4x>#Eªº¦jC½†¤¡Æ§@”m‡¼ö¨n±C/ úº¾‘Q÷BeVcþ.©ñ×y¬d'ýÑeÇ–@Š}ÝnyŒ’ÔÅÑ
+åá ó3kf!zÌ*#˜ËPçi¨¶ÔDq\SwöÊ Ôu#Nˆ =Ý8â¾’ÒƳR¶¡¨€À…“¡j¬—@¨! CÂb€!MdÉN±%,Õ¨‹“sn•ä“ú±ë,íb¯qboÌ‹XBÌÑé1pÑÖ”&q_&Éé‘ä12ýáÕGèô»‰<“¯ß¯~| ¼z½ún³ùi»ýpùâúV¹rN~‡šù—D¾€1tÎý©f”ìÈ4úãÑ÷öìfu²zvsöûþuRø¦ÿÑt-‘v‘ 5‰ùm}H§OË«Q´PŽ
+*Ï;V¯³¨L«aœ]ÑŠ–
+ Ô³S_XQ5q7Q/…ùR”ÊÜïmŒLŽœiÿRÅ`~ìÙ aÚüj™'ÿmÞh3}uuuv¹;_½¾9;»Cvx´U”"š0º½M–A Ž…ÔŠ&šƒíïæõ7ñpY öý¤1¥‚â²u
+5Ym.µ’ð³Íص1abJ•ŽY•½tl&rúnçk%¬W´p8ÏaÚDS÷9 ¥~˜4h½—CókL݃°û . eŒƒ²£Ù]M=Òßµ£…! &‘HR *ÚÁå!¥Ç vh\^‹æ t&2½jÌ µhj§Á"H ¯³xZÀ°Ž’Êæ|)
+s[]E`ÃÙågG‡³’Ó£c0%ßÅ}éó¦Á‡t7¿Šðp¤ˆ)~ŽÆŒ
+ar2êîë®°"°fu Òù{ 
+?b
+Òð•uùÏ¥ü4pgË «ø©¸½€f‹ #ð­6ÛO~ëæ¾oEÿ*Y9µV3VÉ[‡®q”’܈6nµ½¾|wýáê|õþÍÙ»Ýêòú|7‡¿‡ ÷e±‡½¥~™l÷
+‹øyñzª"Dñqèʇº¹@W¦ÃÐ5Ø ]¹ÃË}˜+~6æ
+d.Þ;ö§!W=‚\uátA.ïž¹ò£‹ï\ùQÈÅO\ÇðÊ=^ÑŽWü¼Bj«²<€±Ò1–?ÌXîs2În´'=±””vPý÷`,š0ÖÃߺ¹ï[ÿ\Œõ‰¸óvûßÏ‹ÝùÓáN
+Z{ÑŽA $3hG<4óãé³÷¥,"U_ƒ@>±5ТÒR
+òr°ï'ý‹8=¯ñ'Š;¥AC`g õ¡³®ŠíeóR䃃SÈ>8Ç\ì †IxK°¬$ŸCœ—Ä,÷’HVöƒÕÜî{]*SSîþ !nkXÉB"÷¸Ö’Z½+c‰|‹ °7Žl=v/.±‚0S3Î8ÄOÒÖ¥2Y#é{È '¦~Á0¹ê°Óè‰ÓNL“ÐŒ†ZLÂj’ÍÉvVcÿ>¾šìlì ­¦¿Ž ¾íŠÝaÈbê®Õ½ó¹'ˆQl¬ïãÄÞŒ”S7–ÑèóÄ8„;'×h 8Ù§¤šp+[g¤¡ü‹ÄHžhü>fÎÌ+’€¬ün^|z:óðÇYê_Íàê«v~AÚ™’AW!{‘ÎBÞ©0bf=Ø—Î
+±¤á ¥D:‹†$ (I>Ä\ÁøôU5¿ªæŸZ5%Ô.è –FL² MÌ8%Ó¡1²YÔ}¥–…Qv۶υ˜IæKeôJžÛ0ŒŒ0Ør0IEÊ‹ 5Å’K´Å:bÊ®õá‚íÚ‹ Ö»eÛ3ŽEv†er Ëä:úlfœª~3%¬ – óW…h /¡
+Ô|·Ô¤I•`ÄÌd;`q‰lqt±®fÞ”mÇN4÷üö®‘4 ×àçIôH]þ\{ª~É¡ÖAtî$ˆÇä8MŽx›Œ‹Á™úÔn­R™,˘u&Åc•é°@%óáŸæ€XVé&™âË:~ê[7÷|kµ9)÷RײÇþHzÇ8yx&› g-©SOSátˆ¹j‘­ÌIuíŠj–Ð~¬MÄŽÀ±Ç5•Ú”áCûÓZŸÙS•õ b÷ìUvJA¿²ÍË`‰K&×¼NÁ¥^0°ç¢š‚w¸’Ôa8^.²C‰ÿg¿J{ÛƵè÷ùü2@L®Z^?Å]Þt^ÛM0(03[MÜ:’!+É´¿þ’¢K^âlÄq“ÊW$/yyî¹çö|ßò¡¨CTã9Ôgó]õ²¥°+§÷ÎN¥ Ýx:– ñ›Û@}ò}W¥©và_pje¬ëgBÂ
+á/Ã
+ÊÓÕ€RJø&Í1×çž2sîœë¤BOë N-qê”[×oe¿ ŸzF§@C‡xšMu-ô‚µ’½]µ/J»r¢Œ¾“Ù¾2à×wA•*6»‹µ—ìiî’CuY!…4TAe| MÒ¶/Æ!Å­hA7º3”
+ØÆá.ʬG5Ïàž=¤™¸>$-n4*,€t1'}ú`>Â]f(ºÝC"3=”sÐ+fj£‡ú¯±°žÏþŠ>A—ÜW†ìAEh']7‡üdÙé‰@ºùËÀÉc jz7èQ<
+†,'Cs Z6á•Š[ÂZÛsχíR}iŽo¥]7úŠ€ëûñª ®ìúRÚž„«•›qdø¬‰Âh «¨Â^\1â ™V‹è{wð-ÝÕÅÞìÊL¶A2;O&3Ú÷·H<„;úH *$_”PB,Ç¥õ:“fù¥s™´œIˆ9î¯ãWÀkw©K¥ƒáåf/«ÑaÚ%ß6]‹ºJÔÍ!ºjA˜.Ím\¼\¼.´
+jIl¡
+  fÁ‹zdú–eॷzºðÞÔ{-ïÊG½G¶(òŽ%0¿k tK`Á» ½±ÏzÞQèíÀV¡÷jCk…Þç¤UèíЙB盧гn ¬.qç, j¼6ÃWÝ(ίø»Ø‘TJhlèò)f°áÂàQ q>Sôwe
+´ïï~Ú=ÑÑ9yµ˜.j÷æÎ]¥Ý[æxQ»7wîÚíÞ­ôŽÒßO>¦Éa6JòQr¶»[Ø ª¿ÙzñqbÞöÝáøN¿ÆƒBi˜žÆ¤Ÿ]NÏɇ(‰Îâ ¢ig;Ë^ûöU4€‹ÉùhP =NÓñä×$«Ïí¡ e½F}‚Z8¡c¨]ãí8Ê—Nf§ô26ÇÚ5:føóf´Çgaª=÷{FùycíWçQ6H«sb”]£cìqüON^®FûâUíÑ$ΪGy–~‹±·^qû@LóîïGs"¤áRŽù®ã¥ÿQjÍ7›0tñ®×ÜAHëŸëGÐí9ßìÞ|‹Ùà |ÜÑkŸ{qn#¯óÄúVD9òÂsr홯»cÂƜݓs6æ>>7Žù]§HWîêí9N°[Ý#®äÚQ˜@øq¶=bbÇz¼,»·ˆã¼m7èdvsœvïé^wT#ĹÁÊã,!^µ9 -†'}]—)‡4Ò\ú–3u{böNWßû:Àí;í(ÿ>Ž§[/öþ—¤×‰ù¦Ëÿö~’&;dï#ŽC~Åë}ˆƒ«¸|¿÷*½˜hD¿qF3È%ıf«ÍöŠ1¿vO;Ê£Á·›O[Å[?šŽ W<‹'qóe|ƒõ:ui„˜¤ù§xB Í[;° i¶#”üŽ§¯°]I>?ÿ¦d¸…wŸ*)¶÷:þB^’­d»¶ÔŽ^û%1¾ ´Ù;Œ²¼óXýqœ —„bñÌ
+ÍðNPÛyµÂü/>Å«4^Žòy'hN¾#@蛾Mà0´:@c2ß\ÅÉÁphŽo TÅSw©= ëöž§xhüPˆBÐ M!e¡g${hÑ_>|ŽfÝÅÈb³È*7ôÔqõdŽ„9oþ‰—z/ö¥Y¢›ª ~p|=?[–!¯Ò,‰³éŽ‰AmÒvãu/M°1[¶0(v[ÜžYeïx”Wà[ô§8BÎeÑpt9]€ç5‹Í3©7âÛG"Î[eÂ{ªXå0÷M(>σ)Ć)ž SX‰åtÔÜûy5µ8*6;^gé„GÃôºµ—ó3£±ÂªyÁ\H'Ñ(›L_Q®#‘êÂ<PιU©žtÁ»m(§ƒ±ÝNÿ.ÉÉö`š vŠmÚô=O³MËUœåÖB©³ £ì›];uÆtÙÅJ.8_fn1ãïtœ [ÿeA¨çQhOm
+ÃÆ;ÐCÖ/”&<O°@ÿÇ™b
+*Ó/ªß‡()s’é]ü“ÿŽ×."õnPCfV.gXg8Ë¿OÔRõ@ªÐÓEàñ„œ!FA÷)n÷3W‰þi…÷V6½Ž 6EmSÔžd·£ÈÙc·1O˜7 olxãIò†¯¨VQ=Ͻ@˜ʹV\!ežtq{
+É8`™€ä¸W,¡ŽÍ+ÍuÎ/ÈLÅîÁ0¢û%«Ã\RÓ‹RSñÕÿ#¡õç ƒ<äâÙÔ,‡$¢tÎÌ-ÈA”Îz•h×;%JK¨MãAZu- À-{x`8¥ƒ srBªb€å~ ^OxæÛ€
+î9ùå
+¦Àªe´b­X°W,
+endstream endobj 188 0 obj <</Filter[/FlateDecode]/Length 6788>>stream
+H‰ìWkOËýŽÄè/‘@ŠÙ~?®ÅÖ/ÝäÚF‡#˺vØËx–Ìvð¯OUõôÌô.ð#ÉÌŠeèé>]}ªêT5ãìÍõögbœýÆûÈ4{ÉÞ¾ãl¾ ïŽðüooMž–§ì1ÛÞb;ÏUuÜ^Wå.ûãöÖc6yº˜µì1¼šMKƒã&Óbµ˜Áª¶lØOÛ[;óåIÉ~®køÿEµü¸ ;s6éfÀŠ§Íò’Ÿóåǽbq¹ `ÕÕÙ¢†)å«â}I“Æ
+ÉlÕÌhà‘Ü6“óeó)Ö›Ñà‡²‰EÈô½Ä¼h.hˆï¹þŠº¼,"¤…KJ<©®òOªzþC—oÑå·0^\Uí»±4/Þ_Vƒ4Q®EWqI÷K¬WHh%<.¬NÇ?xH¬‰k‡ Mmv¸?ü~}VÏš–Œ_ÑÁ¡__-ëÃ,ê³Gºñi ©vXTeÛ–QtOîoöÎÛ#X¿j›Y~·K}ó IÍ_loÎJàÎßÏmÙ/½'‘E)T¿Í=CPÁ{–mÖ¯9z1eGå|XeEðrl`°F@Že–Žÿ£¬*P§´ÞJgIX†­z¨|ዦ,ë~.(7ÞWH£BÈ—‹aù“ëbXí½²ÖÀ\gƒ°7}”VO««biCàxf„ru£w²Õ/‹3h‹@Ø
+Ή$
+蘢©/#A´:,²Q£Çìà18%RÚ
+Wï(ܤåÖÂÓ Å1ù—áqdÓ ¹æ ‡ÍXp€HèÌO"9¾?tL‘WéþÌBŒ½Ö¤©{²TgLç&颩‚”ÂnšjQ„qƒÌGiy{0ÔâÉc¹@"Q#-nÕÁê˜h©”Cîzgqh¤Õy
+G AT"€£ÜÉZ КHÐÉØX[¤…yŽÂÚHx^b;å’Š )—(•P³磀7’L­]²†ïRzŒ
+=H6˜õ+%Ǽç¡}ƒÛu0†,
+€Úº™2ýKk¢çúüt©,=ä'è"Òéœä7‚{A* ql¹'O3ïcI`xô0R'ÑÉÔAF)õNRȨNV*£•½,ÉÄeà74+ ú†ëµÌjV”}ØÛa¼e%K‘“¤
+µô˜× ZR…AgÍŠKd±ªá–Ãáo yO©4¢
+†¦LtcNI°Ösª26Ž’2i ¯Á?˶PšRÞ¤96/(¤Î<sd3Pé‹kª**+® X\Ñó~„ëLìÏ,ׂpÁCžà ƒ >MõÚ9MÆÐáz4˜ßš³ÖE1õ*?,Ôð¨}mT@,ZI;ʱϰ†
+5
+Ø7­6
+l=¥²V×÷¿)t¸¦n«|ýˆ×†î|LÑ×gó»^²oý¡oH8Ýì0ÞåøB
+ý[.Ml†‡»+Aùßþ¢K-”Æ0€ï!Vc¨C Ð2»ÞöÝ=ntqYçhUs£¦Š Ïx„¶<fS?¢SãàRg"ã}xŶz·Ù÷Šâ
+Fjäÿêiø%¿U~ú8÷¾ý‹…_HZÜÉÇ3%ìÛgξˆ„É„å—ÐçµúÌ/?û(ä£<¤ô>Édþ7~ûD¿“M*ÿ¸©.Á;.’gÎdý²ê=Æ$ä»âÿ¾$ìéjF·4-žæŒÑüNùîÊ»Z+éG!ÈÁüß{yÑ×ò÷››c(yÜõ@4z¿o…ròÃÇÃjÉÓâ§þ‘ÿý;¾*¬Eëâ¿3’=Ñ"7 A|£|È6OYÞ×ÇG%Û¤y*¯úW_“(–µ7ŸøŽÕ^ÜÓïuÅÖµÇYî—vD„µ—ÿæB¿ûU,ó¿
+Â"£̌ùb¶‘’³ü4Ÿx9¬½\eCV¼©kÊ?Wø2aDÕwŠRþxSÿNùn”¿S碌2 žhèWå;tØù99Üè‚äU¬•£¥´Ç3ù‰›U~Ì>™ŸûŸ¾ ô‹«åcÈ„3"Çÿ}¸ÿÌsyúã_®zûUÊrAŸH)’åFÒìæêg%.Ïæßø3oôW ]'i(òŠ”ªáÕ`ž§ªú¸øGÖôøqïŸ,û¶%"ûåæjð˜ÿÕµ[R‹£¸ø {AÈÈJëŽÑdõÇ‹OãŒB²”ò¼ BPš´ôg€Ë„…yÀ.2?3T~V4
+¸{ëx¾§J{ÛE‚oÖÀ¶«´(܈¦t( ¬VdK…ü˜&jx=ÆÙKýTÃ\’à©8n,qšr Ö:Æ\<Ãëh¨Qàå[ÎŒó6ŸÐ4]нœgw‹‡{dó+×Ë×'vüê¡v„D’~FUhÌ6ÙéÔY=/$]9Á(sŽÄRð®mdßbšD1Ì€i)ŠâZÉvI(cØQ‰…«}ô—Zˆ_6 ]×÷’‹
+ÈÕ]2
+÷ ¨=¢±è
+÷ ¨=¢±è
+ _> 5
+¼ã쥆ªa.IðT7‚8M9
+Pkc.žáu4Ô(ðr£2ã¼Í¨è½ržÝ-îAͯ4×ÍV”7ÊÈ»'vüê¡v„D’~FUhÌ6ÙéÔY=/$]9Á(wŽÄRð® °äÄ4‰b˜ÓR3ĵ’í’PÆ °£ Wûè/µÃl8º®/î%!«»d
+žf뻤
+H@w‘T.HbÓÒKA“DDv—i饠­h–‘6+-
+¸Át2ò'#ÇslmWì`k`ÛUZŒ€nD
+S:PV#²¥B·PC¯Ç8{©Ÿj˜K<Ç… NSŽÔZǘ‹gx 5
+¼|¬Ì8oó)zÁœgw‹‡{dó+ͽ³å2òz¨]!‘¤ŸQ$³ÍD6B:uVÏ IWE0Ê‚#±¼ëFsûJÓ$ŠaLKQ ÏŽ¶KBƒÈŽJ`Öá_j!ŽÙ°t]_ÝK.B*\Èí]B
+H@{‘T.HbÓÒKA“DDv—i饠­h–‘6+-
+¸Á­7M'Cç”®ÆXì`k`ÛUZŒ€nD
+S:PV#²¥B·PC¯Ç8{©Ÿj˜K<Ç… NSŽÔZǘ‹gx 5
+¼ÜxÍ8oó)zÁœgw‹‡{dó+ͽ³å2òî‰=åƒÎj×AH$égT…Él3‘NÕóBÒ•CŒ2‡àH,ïºÑÆÖ… ¦IÃü—–¢!ž}yÛ%¡ŒAdG%
+0ëè/µ¿lº®/î%!CÈÝ]B
+
+šf2àØ8«¤·‚¶æJ±
+qjQ©nÌõ¼˜¿BÝ'ÝÓó$Ê…<ruÇjÈç5µ;ÏgšÝ+^š†x¶ëÈŽI‡rõ<“ªÈ‘0¦ÜaK ï»Ð\Çx„<
+Bl«¤$zˆm$ûˆ|B`ßJ*\§[ÿ—Y˜]߃{)¤Ï%2º¿
+ª…¹dÞ{‘n‰q6å$@q …üÄãØP“ÀË•G!N-*Õyù¢žóW²û¤{užD¹G®îØñ_7µ;ÏgšÝ+^š†x¶ëÈŽI‡rõ<“ªÈ‘0¦ÜéX¢`S ¹×wÍOFSãyò(±m°’’ègŽefûˆ|BhßJdæ“2ƒ˜2"<îƒhíˆ
+endstream endobj 189 0 obj <</Filter[/FlateDecode]/Length 3958>>stream
+H‰ì—Qoã8Ç߸ï0@q@¸Eã4IÛÛ§¹6)\ƒ¦÷vPd: *K$§í·?ÚÓm­Ä‰h4måŒý0ƒ™6"Eþù;¿_ŠXƒüíÛ?ÿþ·ü/úv:‘ö[ç)RÅð{þ‡}^ÁËÏßNgV/åÂ5X3‘ýeÑŠ?@|¥„Òæ·j{ÉÒ¿Ìÿøù×é§ÿùùö¯â_×Kn—J2ýüó?þxóg_8Ï,˜—7œ~ךmÛœ‹çD³ûebGm÷‘QÝLÆc¥SfƒˆÆ2½
+x…Óçܬ·¢òd)€^Žùf1îÅ ¿Bþ­”ØW"šI³bøFþL+Ç!ˆÒèúîPÆÐè^,ƒÀê€ß\¥â5ÄYàw±PziïSp•[ô]oéj%„Zƒž2cAÿ`[Ö®£Ú€®öl7ˬºÍÓFƒ-›7„Pª)~
+­Fbt‚ ìœŒ‹‡rwÓz´ih¬þŒ.%^4Á8Ä$²yc¹Èb¸b«<2"¥ëio0ôS™¥ô5ªl`Ôõê…ç ÎÐ$M@nxêÅ|„y±7ÖÝò Ï?I2³ûâU¤·žNÚò9¦5ÐÝÌè‰qZ‰¼ÚÖ:¢ÝÁW­¹¥à çyÿ¹csARLŸSÑ流?@LïÄMá*²U4™‘D[ Ã}dT7“ñXi”^ADc™^€áÞ‚vËþW÷¡ªŸ÷`O®IýhÛ)Œ™å«(‡<Y
+ ×Ÿc~L“*òN*«™4+†oäÏ´òp‚( ¯rÊÝ‹eXð›ë]cØaÔgE€õ„Z•[ô~‘¥•j zÊŒÅe‚ lY$Ų˳!Ü,³ê6O ¶lÞB©¦øi(´‰Ñu‚²s2.ÊÝMëѦ¡±"‰M01m'*™7†‹,†+¶Ê##Rº.AöCß8•YJ_£ÊÖA
+W‘­¢ÉŒ$Úî#£º™ŒÇJ£ô
+"Ëôì ÷´;Xö¿ºõ}ËÅž\“úѶS3ËWQy²@¯?Çü˜&UäTV3iV ßÈŸiåá8Q^å&”14ºË °:à7׻ưè!Ί
+ —¢c~LC+ò-«™4+†oäÏ´q‚(ÿhÆüâ²D\¬ÞŒB'Õ´´íRÖ Ç!ÊÎɸx(—;­G›†ÆJ’+P0N¬Ø²y0‚Òß±[9p
+czamõú{‹ËaO–è¥è˜ÓÔŠ¼SËj&ÍŠáù3­@‡ ŠÃ?›1¿¸C÷7ã†Ð¹ /eßp‚ ìœŒ‹‡r¹Óz´ih¬-)ßV^Šœ,™£(ý»•çóËáYwà]e[9ÐÊV´r •±¶r •“ƒþÙù°×­²kå@+Z9ÐÊV´r •¿„ˆ¢Á`؆çç­hõ@«Z=ÐêV´zà—Õ½þàübpýrz࢕­¨ª ð›k ”ú¬ð»X(½´÷)‰»Ê-zÿpÑJµ=eÇÆ&ðrï:ª èjφp³ÌªÛ<m4زyC[!Ø
+AW~5ao0ôÉ™¥ENH’¬l`Ôíú
+W‘­¢ÉŒ$Úî#£ò®¯ŸŽezv†rí–þ¯nD§Ñå êºçÝKßðr`rMjMÛNaŒ/,®^ou9ìÉR
+¼ý*†iS+C§4g)ÖgÉÒ/Ûüðv¤·NÚò9¦5ÐÝìø™ Z‰¼Ù¶º¢æàÙþà UÿyàsIRL_Sѧ’Z<BFïÄ]árÙrMf¬ÐèpŸÕdš¦Ú ôŠ"š‚›%÷¸· ÝÁ²ÿÝ}蜖ô»Î.ÿ¦7¤Î´íÇô
+Õ–G¾XI W¢g~L3‹gVa¸²kŽ/´òð¢(à;ÚZÝ«eX= ðÌMÓ@ö d¥ °dÛå}Xn-¥Þ€™q[àZÁ%¶,’viòì7/ }W¥[7ï¡Ò3<œj#1úQPöÎR÷QÞnÞŽ6•°)|h’ ÈhÛQͼ3„B–\óu‘Òw‰‚t\…Æ©*súBU·Žõƒz!Ã9ˆsŒ
+ú°Ü2ZJ½3ã¶Àµ‚KlY$íÒäÙn^ú®J ¶nÞB¥gx48ÕFbô¢ ì¥î£¼Ý¼m+a5RøÐ$Ѷ£šyg…,3¸æë*2"¥ïé ¹
+SUæô…ªn ëõB†sçŠ& ßyDÄ|‚¹Û Û€nùDŠ÷¿X”¶ùáíHo;´åsLk¡»Ùñ3´y³muEÍÁ³ýÁ.ªþóÀç’¤˜¾¦¢?N%µx„ŒÞ‰»Âå²åšÌX¡-Ðá>3ªÉ4MµAéE47K(îqoA»ƒeÿ»ûÐù ß%¿ú—Ipvù0½!u¦m§8¦×íŸÉàrouyì‹•z-zæÇ4µXpj†+»æøGñB+Ï!ŠâÏfÌ/nKÄÍê¿qG蔞ÕÖ]ʾá9DAÙ;KÝGyÜy;Ú<6V‚–TX’ bÅÖÍ£Q”áŽ}Ò‡Ò£á þ(=Òš'5ðƒÕÀþw µµ4ºWË(°z$à™ T<Ê—Òø[.µYsð.·(èÃ#Óh)õÌŒ[†·\bËjºªwл=;ÂÍËBßUi£ÁÖÍ;Bx’·'yëËÛ.
+YfpÍ×UdDJß%
+ÒAr§ªÌ]õ‘$uÝ:
+@Öê… ç Î0T³€ü'À
+endstream endobj 162 0 obj [/ICCBased 170 0 R] endobj 190 0 obj <</CreationDate(D:20090527042239-04'00')/Creator(Adobe Illustrator CS4)/ModDate(D:20090730214335-05'00')/Producer(Adobe PDF library 9.00)/Title(colorbox)>> endobj xref
+0 191
+0000000004 65535 f
+0000000016 00000 n
+0000000076 00000 n
+0000048436 00000 n
+0000000005 00000 f
+0000000006 00000 f
+0000000007 00000 f
+0000000008 00000 f
+0000000009 00000 f
+0000000010 00000 f
+0000000011 00000 f
+0000000012 00000 f
+0000000013 00000 f
+0000000014 00000 f
+0000000015 00000 f
+0000000016 00000 f
+0000000017 00000 f
+0000000018 00000 f
+0000000019 00000 f
+0000000020 00000 f
+0000000021 00000 f
+0000000022 00000 f
+0000000023 00000 f
+0000000024 00000 f
+0000000025 00000 f
+0000000026 00000 f
+0000000027 00000 f
+0000000028 00000 f
+0000000029 00000 f
+0000000030 00000 f
+0000000031 00000 f
+0000000032 00000 f
+0000000033 00000 f
+0000000034 00000 f
+0000000035 00000 f
+0000000036 00000 f
+0000000037 00000 f
+0000000038 00000 f
+0000000039 00000 f
+0000000040 00000 f
+0000000041 00000 f
+0000000042 00000 f
+0000000043 00000 f
+0000000044 00000 f
+0000000045 00000 f
+0000000046 00000 f
+0000000047 00000 f
+0000000048 00000 f
+0000000049 00000 f
+0000000050 00000 f
+0000000051 00000 f
+0000000052 00000 f
+0000000053 00000 f
+0000000054 00000 f
+0000000055 00000 f
+0000000056 00000 f
+0000000057 00000 f
+0000000058 00000 f
+0000000059 00000 f
+0000000060 00000 f
+0000000061 00000 f
+0000000062 00000 f
+0000000063 00000 f
+0000000064 00000 f
+0000000065 00000 f
+0000000066 00000 f
+0000000067 00000 f
+0000000068 00000 f
+0000000069 00000 f
+0000000070 00000 f
+0000000071 00000 f
+0000000072 00000 f
+0000000073 00000 f
+0000000074 00000 f
+0000000075 00000 f
+0000000076 00000 f
+0000000077 00000 f
+0000000078 00000 f
+0000000079 00000 f
+0000000080 00000 f
+0000000081 00000 f
+0000000082 00000 f
+0000000083 00000 f
+0000000084 00000 f
+0000000085 00000 f
+0000000086 00000 f
+0000000087 00000 f
+0000000088 00000 f
+0000000089 00000 f
+0000000090 00000 f
+0000000091 00000 f
+0000000092 00000 f
+0000000093 00000 f
+0000000094 00000 f
+0000000095 00000 f
+0000000096 00000 f
+0000000097 00000 f
+0000000098 00000 f
+0000000099 00000 f
+0000000100 00000 f
+0000000101 00000 f
+0000000102 00000 f
+0000000103 00000 f
+0000000104 00000 f
+0000000105 00000 f
+0000000106 00000 f
+0000000107 00000 f
+0000000108 00000 f
+0000000109 00000 f
+0000000110 00000 f
+0000000111 00000 f
+0000000112 00000 f
+0000000113 00000 f
+0000000114 00000 f
+0000000115 00000 f
+0000000117 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000051202 00000 n
+0000048489 00000 n
+0000048844 00000 n
+0000049045 00000 n
+0000061445 00000 n
+0000058207 00000 n
+0000050103 00000 n
+0000049109 00000 n
+0000231123 00000 n
+0000049538 00000 n
+0000049588 00000 n
+0000055520 00000 n
+0000055406 00000 n
+0000051720 00000 n
+0000051805 00000 n
+0000052189 00000 n
+0000055557 00000 n
+0000058244 00000 n
+0000061521 00000 n
+0000062006 00000 n
+0000062952 00000 n
+0000069751 00000 n
+0000084919 00000 n
+0000102822 00000 n
+0000111395 00000 n
+0000126519 00000 n
+0000132206 00000 n
+0000141391 00000 n
+0000143749 00000 n
+0000159943 00000 n
+0000177431 00000 n
+0000183301 00000 n
+0000187819 00000 n
+0000205653 00000 n
+0000220229 00000 n
+0000227091 00000 n
+0000231160 00000 n
+trailer
+<</Size 191/Root 1 0 R/Info 190 0 R/ID[<7EB5FF43BD08164184F35B8300F050C9><E617EB833E197F43BC059F7255614CEE>]>>
+startxref
+231333
+%%EOF
diff --git a/library/colorbox/colorbox.css b/library/colorbox/colorbox.css
new file mode 100644
index 000000000..544a76f3b
--- /dev/null
+++ b/library/colorbox/colorbox.css
@@ -0,0 +1,52 @@
+/*
+ ColorBox Core Style:
+ The following CSS is consistent between example themes and should not be altered.
+*/
+#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
+#cboxOverlay{position:fixed; width:100%; height:100%;}
+#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
+#cboxContent{position:relative;}
+#cboxLoadedContent{overflow:auto;}
+#cboxTitle{margin:0;}
+#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
+#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
+.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none;}
+.cboxIframe{width:100%; height:100%; display:block; border:0;}
+#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
+
+/*
+ User Style:
+ Change the following styles to modify the appearance of ColorBox. They are
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
+*/
+#cboxOverlay{background:#000;}
+#colorbox{}
+ #cboxTopLeft{width:14px; height:14px; background:url(images/controls.png) no-repeat 0 0;}
+ #cboxTopCenter{height:14px; background:url(images/border.png) repeat-x top left;}
+ #cboxTopRight{width:14px; height:14px; background:url(images/controls.png) no-repeat -36px 0;}
+ #cboxBottomLeft{width:14px; height:43px; background:url(images/controls.png) no-repeat 0 -32px;}
+ #cboxBottomCenter{height:43px; background:url(images/border.png) repeat-x bottom left;}
+ #cboxBottomRight{width:14px; height:43px; background:url(images/controls.png) no-repeat -36px -32px;}
+ #cboxMiddleLeft{width:14px; background:url(images/controls.png) repeat-y -175px 0;}
+ #cboxMiddleRight{width:14px; background:url(images/controls.png) repeat-y -211px 0;}
+ #cboxContent{background:#fff; overflow:visible;}
+ .cboxIframe{background:#fff;}
+ #cboxError{padding:50px; border:1px solid #ccc;}
+ #cboxLoadedContent{margin-bottom:5px;}
+ #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
+ #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
+ #cboxTitle{position:absolute; bottom:-25px; left:0; text-align:center; width:100%; font-weight:bold; color:#7C7C7C;}
+ #cboxCurrent{position:absolute; bottom:-25px; left:58px; font-weight:bold; color:#7C7C7C;}
+
+ #cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{position:absolute; bottom:-29px; background:url(images/controls.png) no-repeat 0px 0px; width:23px; height:23px; text-indent:-9999px;}
+ #cboxPrevious{left:0px; background-position: -51px -25px;}
+ #cboxPrevious:hover{background-position:-51px 0px;}
+ #cboxNext{left:27px; background-position:-75px -25px;}
+ #cboxNext:hover{background-position:-75px 0px;}
+ #cboxClose{right:0; background-position:-100px -25px;}
+ #cboxClose:hover{background-position:-100px 0px;}
+
+ .cboxSlideshow_on #cboxSlideshow{background-position:-125px 0px; right:27px;}
+ .cboxSlideshow_on #cboxSlideshow:hover{background-position:-150px 0px;}
+ .cboxSlideshow_off #cboxSlideshow{background-position:-150px -25px; right:27px;}
+ .cboxSlideshow_off #cboxSlideshow:hover{background-position:-125px 0px;} \ No newline at end of file
diff --git a/library/colorbox/colorbox.jquery.json b/library/colorbox/colorbox.jquery.json
new file mode 100644
index 000000000..dd517a5f4
--- /dev/null
+++ b/library/colorbox/colorbox.jquery.json
@@ -0,0 +1,30 @@
+{
+ "name": "colorbox",
+ "title": "ColorBox",
+ "description": "A lightweight customizable lightbox plugin",
+ "keywords": [
+ "modal",
+ "lightbox",
+ "window",
+ "popup",
+ "ui"
+ ],
+ "version": "1.3.32",
+ "author": {
+ "name": "Jack Moore",
+ "url": "http://www.jacklmoore.com",
+ "email": "jack@colorpowered.com"
+ },
+ "licenses": [
+ {
+ "type": "MIT",
+ "url": "http://www.opensource.org/licenses/mit-license.php"
+ }
+ ],
+ "homepage": "http://jacklmoore.com/colorbox",
+ "demo": "http://jacklmoore.com/colorbox",
+ "download": "http://jacklmoore.com/colorbox/colorbox.zip",
+ "dependencies": {
+ "jquery": ">=1.3.2"
+ }
+} \ No newline at end of file
diff --git a/library/colorbox/component.json b/library/colorbox/component.json
new file mode 100644
index 000000000..171764fbf
--- /dev/null
+++ b/library/colorbox/component.json
@@ -0,0 +1,8 @@
+{
+ "name": "jquery-autosize",
+ "version": "1.3.32",
+ "main": "./jquery.autosize.js",
+ "dependencies": {
+ "jquery": ">=1.3.2"
+ }
+} \ No newline at end of file
diff --git a/library/colorbox/content/ajax.html b/library/colorbox/content/ajax.html
new file mode 100644
index 000000000..e772638ad
--- /dev/null
+++ b/library/colorbox/content/ajax.html
@@ -0,0 +1,11 @@
+<div id='homer' style="background:url(../content/homer.jpg) right center no-repeat #ececec; height:135px; width:280px; padding:30px 10px;">
+ <strong>Homer</strong><br/>
+ <em>\noun\</em><br/>
+ <strong>1.</strong> American bonehead<br/>
+ <strong>2. Pull a Homer-</strong><br/>
+ to succeed despite<br/>
+ idiocy
+</div>
+<script>
+ $('#homer strong').css({color:'red'});
+</script> \ No newline at end of file
diff --git a/library/colorbox/content/homer.jpg b/library/colorbox/content/homer.jpg
new file mode 100644
index 000000000..87ec76c99
--- /dev/null
+++ b/library/colorbox/content/homer.jpg
Binary files differ
diff --git a/library/colorbox/content/marylou.jpg b/library/colorbox/content/marylou.jpg
new file mode 100644
index 000000000..4c717d276
--- /dev/null
+++ b/library/colorbox/content/marylou.jpg
Binary files differ
diff --git a/library/colorbox/content/ohoopee1.jpg b/library/colorbox/content/ohoopee1.jpg
new file mode 100644
index 000000000..aae19a3e6
--- /dev/null
+++ b/library/colorbox/content/ohoopee1.jpg
Binary files differ
diff --git a/library/colorbox/content/ohoopee2.jpg b/library/colorbox/content/ohoopee2.jpg
new file mode 100644
index 000000000..206894489
--- /dev/null
+++ b/library/colorbox/content/ohoopee2.jpg
Binary files differ
diff --git a/library/colorbox/content/ohoopee3.jpg b/library/colorbox/content/ohoopee3.jpg
new file mode 100644
index 000000000..4d64d2400
--- /dev/null
+++ b/library/colorbox/content/ohoopee3.jpg
Binary files differ
diff --git a/library/colorbox/example1/colorbox.css b/library/colorbox/example1/colorbox.css
new file mode 100644
index 000000000..5ee3feba9
--- /dev/null
+++ b/library/colorbox/example1/colorbox.css
@@ -0,0 +1,86 @@
+/*
+ ColorBox Core Style:
+ The following CSS is consistent between example themes and should not be altered.
+*/
+#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
+#cboxOverlay{position:fixed; width:100%; height:100%;}
+#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
+#cboxContent{position:relative;}
+#cboxLoadedContent{overflow:auto;}
+#cboxTitle{margin:0;}
+#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
+#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
+.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none;}
+.cboxIframe{width:100%; height:100%; display:block; border:0;}
+#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
+
+/*
+ User Style:
+ Change the following styles to modify the appearance of ColorBox. They are
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
+*/
+#cboxOverlay{background:url(images/overlay.png) repeat 0 0;}
+#colorbox{}
+ #cboxTopLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px 0;}
+ #cboxTopRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px 0;}
+ #cboxBottomLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px -29px;}
+ #cboxBottomRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px -29px;}
+ #cboxMiddleLeft{width:21px; background:url(images/controls.png) left top repeat-y;}
+ #cboxMiddleRight{width:21px; background:url(images/controls.png) right top repeat-y;}
+ #cboxTopCenter{height:21px; background:url(images/border.png) 0 0 repeat-x;}
+ #cboxBottomCenter{height:21px; background:url(images/border.png) 0 -29px repeat-x;}
+ #cboxContent{background:#fff; overflow:hidden;}
+ .cboxIframe{background:#fff;}
+ #cboxError{padding:50px; border:1px solid #ccc;}
+ #cboxLoadedContent{margin-bottom:28px;}
+ #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;}
+ #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;}
+ #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;}
+ #cboxPrevious{position:absolute; bottom:0; left:0; background:url(images/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;}
+ #cboxPrevious:hover{background-position:-75px -25px;}
+ #cboxNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;}
+ #cboxNext:hover{background-position:-50px -25px;}
+ #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
+ #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
+ #cboxClose{position:absolute; bottom:0; right:0; background:url(images/controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;}
+ #cboxClose:hover{background-position:-25px -25px;}
+
+/*
+ The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
+ when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9.
+ See: http://jacklmoore.com/notes/ie-transparency-problems/
+*/
+.cboxIE #cboxTopLeft,
+.cboxIE #cboxTopCenter,
+.cboxIE #cboxTopRight,
+.cboxIE #cboxBottomLeft,
+.cboxIE #cboxBottomCenter,
+.cboxIE #cboxBottomRight,
+.cboxIE #cboxMiddleLeft,
+.cboxIE #cboxMiddleRight {
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
+}
+
+/*
+ The following provides PNG transparency support for IE6
+ Feel free to remove this and the /ie6/ directory if you have dropped IE6 support.
+*/
+.cboxIE6 #cboxTopLeft{background:url(images/ie6/borderTopLeft.png);}
+.cboxIE6 #cboxTopCenter{background:url(images/ie6/borderTopCenter.png);}
+.cboxIE6 #cboxTopRight{background:url(images/ie6/borderTopRight.png);}
+.cboxIE6 #cboxBottomLeft{background:url(images/ie6/borderBottomLeft.png);}
+.cboxIE6 #cboxBottomCenter{background:url(images/ie6/borderBottomCenter.png);}
+.cboxIE6 #cboxBottomRight{background:url(images/ie6/borderBottomRight.png);}
+.cboxIE6 #cboxMiddleLeft{background:url(images/ie6/borderMiddleLeft.png);}
+.cboxIE6 #cboxMiddleRight{background:url(images/ie6/borderMiddleRight.png);}
+
+.cboxIE6 #cboxTopLeft,
+.cboxIE6 #cboxTopCenter,
+.cboxIE6 #cboxTopRight,
+.cboxIE6 #cboxBottomLeft,
+.cboxIE6 #cboxBottomCenter,
+.cboxIE6 #cboxBottomRight,
+.cboxIE6 #cboxMiddleLeft,
+.cboxIE6 #cboxMiddleRight {
+ _behavior: expression(this.src = this.src ? this.src : this.currentStyle.backgroundImage.split('"')[1], this.style.background = "none", this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + this.src + ", sizingMethod='scale')");
+}
diff --git a/library/colorbox/example1/images/border.png b/library/colorbox/example1/images/border.png
new file mode 100644
index 000000000..f463a10d8
--- /dev/null
+++ b/library/colorbox/example1/images/border.png
Binary files differ
diff --git a/library/colorbox/example1/images/controls.png b/library/colorbox/example1/images/controls.png
new file mode 100644
index 000000000..dcfd6fb9f
--- /dev/null
+++ b/library/colorbox/example1/images/controls.png
Binary files differ
diff --git a/library/colorbox/example1/images/ie6/borderBottomCenter.png b/library/colorbox/example1/images/ie6/borderBottomCenter.png
new file mode 100644
index 000000000..0d4475edf
--- /dev/null
+++ b/library/colorbox/example1/images/ie6/borderBottomCenter.png
Binary files differ
diff --git a/library/colorbox/example1/images/ie6/borderBottomLeft.png b/library/colorbox/example1/images/ie6/borderBottomLeft.png
new file mode 100644
index 000000000..2775eba89
--- /dev/null
+++ b/library/colorbox/example1/images/ie6/borderBottomLeft.png
Binary files differ
diff --git a/library/colorbox/example1/images/ie6/borderBottomRight.png b/library/colorbox/example1/images/ie6/borderBottomRight.png
new file mode 100644
index 000000000..f7f51379c
--- /dev/null
+++ b/library/colorbox/example1/images/ie6/borderBottomRight.png
Binary files differ
diff --git a/library/colorbox/example1/images/ie6/borderMiddleLeft.png b/library/colorbox/example1/images/ie6/borderMiddleLeft.png
new file mode 100644
index 000000000..a2d63d156
--- /dev/null
+++ b/library/colorbox/example1/images/ie6/borderMiddleLeft.png
Binary files differ
diff --git a/library/colorbox/example1/images/ie6/borderMiddleRight.png b/library/colorbox/example1/images/ie6/borderMiddleRight.png
new file mode 100644
index 000000000..fd7c3e849
--- /dev/null
+++ b/library/colorbox/example1/images/ie6/borderMiddleRight.png
Binary files differ
diff --git a/library/colorbox/example1/images/ie6/borderTopCenter.png b/library/colorbox/example1/images/ie6/borderTopCenter.png
new file mode 100644
index 000000000..2937a9cf9
--- /dev/null
+++ b/library/colorbox/example1/images/ie6/borderTopCenter.png
Binary files differ
diff --git a/library/colorbox/example1/images/ie6/borderTopLeft.png b/library/colorbox/example1/images/ie6/borderTopLeft.png
new file mode 100644
index 000000000..f9d458b5b
--- /dev/null
+++ b/library/colorbox/example1/images/ie6/borderTopLeft.png
Binary files differ
diff --git a/library/colorbox/example1/images/ie6/borderTopRight.png b/library/colorbox/example1/images/ie6/borderTopRight.png
new file mode 100644
index 000000000..74b8583cf
--- /dev/null
+++ b/library/colorbox/example1/images/ie6/borderTopRight.png
Binary files differ
diff --git a/library/colorbox/example1/images/loading.gif b/library/colorbox/example1/images/loading.gif
new file mode 100644
index 000000000..b4695d811
--- /dev/null
+++ b/library/colorbox/example1/images/loading.gif
Binary files differ
diff --git a/library/colorbox/example1/images/loading_background.png b/library/colorbox/example1/images/loading_background.png
new file mode 100644
index 000000000..6ae83e697
--- /dev/null
+++ b/library/colorbox/example1/images/loading_background.png
Binary files differ
diff --git a/library/colorbox/example1/images/overlay.png b/library/colorbox/example1/images/overlay.png
new file mode 100644
index 000000000..53ea98f70
--- /dev/null
+++ b/library/colorbox/example1/images/overlay.png
Binary files differ
diff --git a/library/colorbox/example1/index.html b/library/colorbox/example1/index.html
new file mode 100644
index 000000000..727fe78d7
--- /dev/null
+++ b/library/colorbox/example1/index.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset='utf-8'/>
+ <title>ColorBox Examples</title>
+ <style>
+ body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
+ a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
+ h2{font-size:13px; margin:15px 0 0 0;}
+ </style>
+ <link rel="stylesheet" href="colorbox.css" />
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
+ <script src="../jquery.colorbox.js"></script>
+ <script>
+ $(document).ready(function(){
+ //Examples of how to assign the ColorBox event to elements
+ $(".group1").colorbox({rel:'group1'});
+ $(".group2").colorbox({rel:'group2', transition:"fade"});
+ $(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
+ $(".group4").colorbox({rel:'group4', slideshow:true});
+ $(".ajax").colorbox();
+ $(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
+ $(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
+ $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
+ $(".inline").colorbox({inline:true, width:"50%"});
+ $(".callbacks").colorbox({
+ onOpen:function(){ alert('onOpen: colorbox is about to open'); },
+ onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
+ onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
+ onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
+ onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
+ });
+
+ //Example of preserving a JavaScript event for inline calls.
+ $("#click").click(function(){
+ $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
+ return false;
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <h1>ColorBox Demonstration</h1>
+ <h2>Elastic Transition</h2>
+ <p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Fade Transition</h2>
+ <p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
+ <p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>No Transition + fixed width and height (75% of screen size)</h2>
+ <p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Slideshow</h2>
+ <p><a class="group4" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group4" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group4" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Other Content Types</h2>
+ <p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
+ <p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
+ <p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
+ <p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
+ <p><a class='inline' href="#inline_content">Inline HTML</a></p>
+
+ <h2>Demonstration of using callbacks</h2>
+ <p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
+
+ <!-- This contains the hidden content for inline calls -->
+ <div style='display:none'>
+ <div id='inline_content' style='padding:10px; background:#fff;'>
+ <p><strong>This content comes from a hidden element on this page.</strong></p>
+ <p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
+ <p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
+
+ <p><strong>If you try to open a new ColorBox while it is already open, it will update itself with the new content.</strong></p>
+ <p>Updating Content Example:<br />
+ <a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/library/colorbox/example2/colorbox.css b/library/colorbox/example2/colorbox.css
new file mode 100644
index 000000000..3bb3d8121
--- /dev/null
+++ b/library/colorbox/example2/colorbox.css
@@ -0,0 +1,43 @@
+/*
+ ColorBox Core Style:
+ The following CSS is consistent between example themes and should not be altered.
+*/
+#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
+#cboxOverlay{position:fixed; width:100%; height:100%;}
+#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
+#cboxContent{position:relative;}
+#cboxLoadedContent{overflow:auto;}
+#cboxTitle{margin:0;}
+#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
+#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
+.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none;}
+.cboxIframe{width:100%; height:100%; display:block; border:0;}
+#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
+
+/*
+ User Style:
+ Change the following styles to modify the appearance of ColorBox. They are
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
+*/
+#cboxOverlay{background:#fff;}
+#colorbox{}
+ #cboxContent{margin-top:32px; overflow:visible;}
+ .cboxIframe{background:#fff;}
+ #cboxError{padding:50px; border:1px solid #ccc;}
+ #cboxLoadedContent{background:#000; padding:1px;}
+ #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
+ #cboxLoadingOverlay{background:#000;}
+ #cboxTitle{position:absolute; top:-22px; left:0; color:#000;}
+ #cboxCurrent{position:absolute; top:-22px; right:205px; text-indent:-9999px;}
+ #cboxSlideshow, #cboxPrevious, #cboxNext, #cboxClose{text-indent:-9999px; width:20px; height:20px; position:absolute; top:-20px; background:url(images/controls.png) no-repeat 0 0;}
+ #cboxPrevious{background-position:0px 0px; right:44px;}
+ #cboxPrevious:hover{background-position:0px -25px;}
+ #cboxNext{background-position:-25px 0px; right:22px;}
+ #cboxNext:hover{background-position:-25px -25px;}
+ #cboxClose{background-position:-50px 0px; right:0;}
+ #cboxClose:hover{background-position:-50px -25px;}
+ .cboxSlideshow_on #cboxPrevious, .cboxSlideshow_off #cboxPrevious{right:66px;}
+ .cboxSlideshow_on #cboxSlideshow{background-position:-75px -25px; right:44px;}
+ .cboxSlideshow_on #cboxSlideshow:hover{background-position:-100px -25px;}
+ .cboxSlideshow_off #cboxSlideshow{background-position:-100px 0px; right:44px;}
+ .cboxSlideshow_off #cboxSlideshow:hover{background-position:-75px -25px;}
diff --git a/library/colorbox/example2/images/controls.png b/library/colorbox/example2/images/controls.png
new file mode 100644
index 000000000..8569b57f1
--- /dev/null
+++ b/library/colorbox/example2/images/controls.png
Binary files differ
diff --git a/library/colorbox/example2/images/loading.gif b/library/colorbox/example2/images/loading.gif
new file mode 100644
index 000000000..19c67bbd0
--- /dev/null
+++ b/library/colorbox/example2/images/loading.gif
Binary files differ
diff --git a/library/colorbox/example2/index.html b/library/colorbox/example2/index.html
new file mode 100644
index 000000000..727fe78d7
--- /dev/null
+++ b/library/colorbox/example2/index.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset='utf-8'/>
+ <title>ColorBox Examples</title>
+ <style>
+ body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
+ a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
+ h2{font-size:13px; margin:15px 0 0 0;}
+ </style>
+ <link rel="stylesheet" href="colorbox.css" />
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
+ <script src="../jquery.colorbox.js"></script>
+ <script>
+ $(document).ready(function(){
+ //Examples of how to assign the ColorBox event to elements
+ $(".group1").colorbox({rel:'group1'});
+ $(".group2").colorbox({rel:'group2', transition:"fade"});
+ $(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
+ $(".group4").colorbox({rel:'group4', slideshow:true});
+ $(".ajax").colorbox();
+ $(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
+ $(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
+ $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
+ $(".inline").colorbox({inline:true, width:"50%"});
+ $(".callbacks").colorbox({
+ onOpen:function(){ alert('onOpen: colorbox is about to open'); },
+ onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
+ onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
+ onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
+ onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
+ });
+
+ //Example of preserving a JavaScript event for inline calls.
+ $("#click").click(function(){
+ $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
+ return false;
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <h1>ColorBox Demonstration</h1>
+ <h2>Elastic Transition</h2>
+ <p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Fade Transition</h2>
+ <p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
+ <p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>No Transition + fixed width and height (75% of screen size)</h2>
+ <p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Slideshow</h2>
+ <p><a class="group4" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group4" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group4" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Other Content Types</h2>
+ <p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
+ <p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
+ <p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
+ <p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
+ <p><a class='inline' href="#inline_content">Inline HTML</a></p>
+
+ <h2>Demonstration of using callbacks</h2>
+ <p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
+
+ <!-- This contains the hidden content for inline calls -->
+ <div style='display:none'>
+ <div id='inline_content' style='padding:10px; background:#fff;'>
+ <p><strong>This content comes from a hidden element on this page.</strong></p>
+ <p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
+ <p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
+
+ <p><strong>If you try to open a new ColorBox while it is already open, it will update itself with the new content.</strong></p>
+ <p>Updating Content Example:<br />
+ <a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/library/colorbox/example3/colorbox.css b/library/colorbox/example3/colorbox.css
new file mode 100644
index 000000000..153e32e6f
--- /dev/null
+++ b/library/colorbox/example3/colorbox.css
@@ -0,0 +1,38 @@
+/*
+ ColorBox Core Style:
+ The following CSS is consistent between example themes and should not be altered.
+*/
+#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
+#cboxOverlay{position:fixed; width:100%; height:100%;}
+#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
+#cboxContent{position:relative;}
+#cboxLoadedContent{overflow:auto;}
+#cboxTitle{margin:0;}
+#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
+#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
+.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none;}
+.cboxIframe{width:100%; height:100%; display:block; border:0;}
+#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
+
+/*
+ User Style:
+ Change the following styles to modify the appearance of ColorBox. They are
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
+*/
+#cboxOverlay{background:#000;}
+#colorbox{}
+ #cboxContent{margin-top:20px;}
+ .cboxIframe{background:#fff;}
+ #cboxError{padding:50px; border:1px solid #ccc;}
+ #cboxLoadedContent{border:5px solid #000; background:#fff;}
+ #cboxTitle{position:absolute; top:-20px; left:0; color:#ccc;}
+ #cboxCurrent{position:absolute; top:-20px; right:0px; color:#ccc;}
+ #cboxSlideshow{position:absolute; top:-20px; right:90px; color:#fff;}
+ #cboxPrevious{position:absolute; top:50%; left:5px; margin-top:-32px; background:url(images/controls.png) no-repeat top left; width:28px; height:65px; text-indent:-9999px;}
+ #cboxPrevious:hover{background-position:bottom left;}
+ #cboxNext{position:absolute; top:50%; right:5px; margin-top:-32px; background:url(images/controls.png) no-repeat top right; width:28px; height:65px; text-indent:-9999px;}
+ #cboxNext:hover{background-position:bottom right;}
+ #cboxLoadingOverlay{background:#000;}
+ #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
+ #cboxClose{position:absolute; top:5px; right:5px; display:block; background:url(images/controls.png) no-repeat top center; width:38px; height:19px; text-indent:-9999px;}
+ #cboxClose:hover{background-position:bottom center;} \ No newline at end of file
diff --git a/library/colorbox/example3/images/controls.png b/library/colorbox/example3/images/controls.png
new file mode 100644
index 000000000..e1e97982a
--- /dev/null
+++ b/library/colorbox/example3/images/controls.png
Binary files differ
diff --git a/library/colorbox/example3/images/loading.gif b/library/colorbox/example3/images/loading.gif
new file mode 100644
index 000000000..19c67bbd0
--- /dev/null
+++ b/library/colorbox/example3/images/loading.gif
Binary files differ
diff --git a/library/colorbox/example3/index.html b/library/colorbox/example3/index.html
new file mode 100644
index 000000000..727fe78d7
--- /dev/null
+++ b/library/colorbox/example3/index.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset='utf-8'/>
+ <title>ColorBox Examples</title>
+ <style>
+ body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
+ a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
+ h2{font-size:13px; margin:15px 0 0 0;}
+ </style>
+ <link rel="stylesheet" href="colorbox.css" />
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
+ <script src="../jquery.colorbox.js"></script>
+ <script>
+ $(document).ready(function(){
+ //Examples of how to assign the ColorBox event to elements
+ $(".group1").colorbox({rel:'group1'});
+ $(".group2").colorbox({rel:'group2', transition:"fade"});
+ $(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
+ $(".group4").colorbox({rel:'group4', slideshow:true});
+ $(".ajax").colorbox();
+ $(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
+ $(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
+ $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
+ $(".inline").colorbox({inline:true, width:"50%"});
+ $(".callbacks").colorbox({
+ onOpen:function(){ alert('onOpen: colorbox is about to open'); },
+ onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
+ onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
+ onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
+ onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
+ });
+
+ //Example of preserving a JavaScript event for inline calls.
+ $("#click").click(function(){
+ $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
+ return false;
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <h1>ColorBox Demonstration</h1>
+ <h2>Elastic Transition</h2>
+ <p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Fade Transition</h2>
+ <p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
+ <p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>No Transition + fixed width and height (75% of screen size)</h2>
+ <p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Slideshow</h2>
+ <p><a class="group4" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group4" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group4" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Other Content Types</h2>
+ <p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
+ <p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
+ <p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
+ <p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
+ <p><a class='inline' href="#inline_content">Inline HTML</a></p>
+
+ <h2>Demonstration of using callbacks</h2>
+ <p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
+
+ <!-- This contains the hidden content for inline calls -->
+ <div style='display:none'>
+ <div id='inline_content' style='padding:10px; background:#fff;'>
+ <p><strong>This content comes from a hidden element on this page.</strong></p>
+ <p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
+ <p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
+
+ <p><strong>If you try to open a new ColorBox while it is already open, it will update itself with the new content.</strong></p>
+ <p>Updating Content Example:<br />
+ <a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/library/colorbox/example4/colorbox.css b/library/colorbox/example4/colorbox.css
new file mode 100644
index 000000000..54560688a
--- /dev/null
+++ b/library/colorbox/example4/colorbox.css
@@ -0,0 +1,82 @@
+/*
+ ColorBox Core Style:
+ The following CSS is consistent between example themes and should not be altered.
+*/
+#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
+#cboxOverlay{position:fixed; width:100%; height:100%;}
+#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
+#cboxContent{position:relative;}
+#cboxLoadedContent{overflow:auto;}
+#cboxTitle{margin:0;}
+#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
+#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
+.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none;}
+.cboxIframe{width:100%; height:100%; display:block; border:0;}
+#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
+
+/*
+ User Style:
+ Change the following styles to modify the appearance of ColorBox. They are
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
+*/
+#cboxOverlay{background:#fff;}
+#colorbox{}
+ #cboxTopLeft{width:25px; height:25px; background:url(images/border1.png) no-repeat 0 0;}
+ #cboxTopCenter{height:25px; background:url(images/border1.png) repeat-x 0 -50px;}
+ #cboxTopRight{width:25px; height:25px; background:url(images/border1.png) no-repeat -25px 0;}
+ #cboxBottomLeft{width:25px; height:25px; background:url(images/border1.png) no-repeat 0 -25px;}
+ #cboxBottomCenter{height:25px; background:url(images/border1.png) repeat-x 0 -75px;}
+ #cboxBottomRight{width:25px; height:25px; background:url(images/border1.png) no-repeat -25px -25px;}
+ #cboxMiddleLeft{width:25px; background:url(images/border2.png) repeat-y 0 0;}
+ #cboxMiddleRight{width:25px; background:url(images/border2.png) repeat-y -25px 0;}
+ #cboxContent{background:#fff; overflow:hidden;}
+ .cboxIframe{background:#fff;}
+ #cboxError{padding:50px; border:1px solid #ccc;}
+ #cboxLoadedContent{margin-bottom:20px;}
+ #cboxTitle{position:absolute; bottom:0px; left:0; text-align:center; width:100%; color:#999;}
+ #cboxCurrent{position:absolute; bottom:0px; left:100px; color:#999;}
+ #cboxSlideshow{position:absolute; bottom:0px; right:42px; color:#444;}
+ #cboxPrevious{position:absolute; bottom:0px; left:0; color:#444;}
+ #cboxNext{position:absolute; bottom:0px; left:63px; color:#444;}
+ #cboxLoadingOverlay{background:#fff url(images/loading.gif) no-repeat 5px 5px;}
+ #cboxClose{position:absolute; bottom:0; right:0; display:block; color:#444;}
+
+/*
+ The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
+ when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9.
+ See: http://jacklmoore.com/notes/ie-transparency-problems/
+*/
+.cboxIE #cboxTopLeft,
+.cboxIE #cboxTopCenter,
+.cboxIE #cboxTopRight,
+.cboxIE #cboxBottomLeft,
+.cboxIE #cboxBottomCenter,
+.cboxIE #cboxBottomRight,
+.cboxIE #cboxMiddleLeft,
+.cboxIE #cboxMiddleRight {
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
+}
+
+/*
+ The following provides PNG transparency support for IE6
+ Feel free to remove this and the /ie6/ directory if you have dropped IE6 support.
+*/
+.cboxIE6 #cboxTopLeft{background:url(images/ie6/borderTopLeft.png);}
+.cboxIE6 #cboxTopCenter{background:url(images/ie6/borderTopCenter.png);}
+.cboxIE6 #cboxTopRight{background:url(images/ie6/borderTopRight.png);}
+.cboxIE6 #cboxBottomLeft{background:url(images/ie6/borderBottomLeft.png);}
+.cboxIE6 #cboxBottomCenter{background:url(images/ie6/borderBottomCenter.png);}
+.cboxIE6 #cboxBottomRight{background:url(images/ie6/borderBottomRight.png);}
+.cboxIE6 #cboxMiddleLeft{background:url(images/ie6/borderMiddleLeft.png);}
+.cboxIE6 #cboxMiddleRight{background:url(images/ie6/borderMiddleRight.png);}
+
+.cboxIE6 #cboxTopLeft,
+.cboxIE6 #cboxTopCenter,
+.cboxIE6 #cboxTopRight,
+.cboxIE6 #cboxBottomLeft,
+.cboxIE6 #cboxBottomCenter,
+.cboxIE6 #cboxBottomRight,
+.cboxIE6 #cboxMiddleLeft,
+.cboxIE6 #cboxMiddleRight {
+ _behavior: expression(this.src = this.src ? this.src : this.currentStyle.backgroundImage.split('"')[1], this.style.background = "none", this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + this.src + ", sizingMethod='scale')");
+}
diff --git a/library/colorbox/example4/images/border1.png b/library/colorbox/example4/images/border1.png
new file mode 100644
index 000000000..0ddc70405
--- /dev/null
+++ b/library/colorbox/example4/images/border1.png
Binary files differ
diff --git a/library/colorbox/example4/images/border2.png b/library/colorbox/example4/images/border2.png
new file mode 100644
index 000000000..aa62a0b72
--- /dev/null
+++ b/library/colorbox/example4/images/border2.png
Binary files differ
diff --git a/library/colorbox/example4/images/ie6/borderBottomCenter.png b/library/colorbox/example4/images/ie6/borderBottomCenter.png
new file mode 100644
index 000000000..12e0e9ac0
--- /dev/null
+++ b/library/colorbox/example4/images/ie6/borderBottomCenter.png
Binary files differ
diff --git a/library/colorbox/example4/images/ie6/borderBottomLeft.png b/library/colorbox/example4/images/ie6/borderBottomLeft.png
new file mode 100644
index 000000000..b7a474ae0
--- /dev/null
+++ b/library/colorbox/example4/images/ie6/borderBottomLeft.png
Binary files differ
diff --git a/library/colorbox/example4/images/ie6/borderBottomRight.png b/library/colorbox/example4/images/ie6/borderBottomRight.png
new file mode 100644
index 000000000..6b6cb159b
--- /dev/null
+++ b/library/colorbox/example4/images/ie6/borderBottomRight.png
Binary files differ
diff --git a/library/colorbox/example4/images/ie6/borderMiddleLeft.png b/library/colorbox/example4/images/ie6/borderMiddleLeft.png
new file mode 100644
index 000000000..8d0eb739d
--- /dev/null
+++ b/library/colorbox/example4/images/ie6/borderMiddleLeft.png
Binary files differ
diff --git a/library/colorbox/example4/images/ie6/borderMiddleRight.png b/library/colorbox/example4/images/ie6/borderMiddleRight.png
new file mode 100644
index 000000000..d65509e30
--- /dev/null
+++ b/library/colorbox/example4/images/ie6/borderMiddleRight.png
Binary files differ
diff --git a/library/colorbox/example4/images/ie6/borderTopCenter.png b/library/colorbox/example4/images/ie6/borderTopCenter.png
new file mode 100644
index 000000000..35d8da2d0
--- /dev/null
+++ b/library/colorbox/example4/images/ie6/borderTopCenter.png
Binary files differ
diff --git a/library/colorbox/example4/images/ie6/borderTopLeft.png b/library/colorbox/example4/images/ie6/borderTopLeft.png
new file mode 100644
index 000000000..ae9bda040
--- /dev/null
+++ b/library/colorbox/example4/images/ie6/borderTopLeft.png
Binary files differ
diff --git a/library/colorbox/example4/images/ie6/borderTopRight.png b/library/colorbox/example4/images/ie6/borderTopRight.png
new file mode 100644
index 000000000..0d8868399
--- /dev/null
+++ b/library/colorbox/example4/images/ie6/borderTopRight.png
Binary files differ
diff --git a/library/colorbox/example4/images/loading.gif b/library/colorbox/example4/images/loading.gif
new file mode 100644
index 000000000..602ce3c3a
--- /dev/null
+++ b/library/colorbox/example4/images/loading.gif
Binary files differ
diff --git a/library/colorbox/example4/index.html b/library/colorbox/example4/index.html
new file mode 100644
index 000000000..727fe78d7
--- /dev/null
+++ b/library/colorbox/example4/index.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset='utf-8'/>
+ <title>ColorBox Examples</title>
+ <style>
+ body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
+ a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
+ h2{font-size:13px; margin:15px 0 0 0;}
+ </style>
+ <link rel="stylesheet" href="colorbox.css" />
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
+ <script src="../jquery.colorbox.js"></script>
+ <script>
+ $(document).ready(function(){
+ //Examples of how to assign the ColorBox event to elements
+ $(".group1").colorbox({rel:'group1'});
+ $(".group2").colorbox({rel:'group2', transition:"fade"});
+ $(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
+ $(".group4").colorbox({rel:'group4', slideshow:true});
+ $(".ajax").colorbox();
+ $(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
+ $(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
+ $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
+ $(".inline").colorbox({inline:true, width:"50%"});
+ $(".callbacks").colorbox({
+ onOpen:function(){ alert('onOpen: colorbox is about to open'); },
+ onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
+ onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
+ onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
+ onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
+ });
+
+ //Example of preserving a JavaScript event for inline calls.
+ $("#click").click(function(){
+ $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
+ return false;
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <h1>ColorBox Demonstration</h1>
+ <h2>Elastic Transition</h2>
+ <p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Fade Transition</h2>
+ <p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
+ <p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>No Transition + fixed width and height (75% of screen size)</h2>
+ <p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Slideshow</h2>
+ <p><a class="group4" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group4" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group4" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Other Content Types</h2>
+ <p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
+ <p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
+ <p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
+ <p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
+ <p><a class='inline' href="#inline_content">Inline HTML</a></p>
+
+ <h2>Demonstration of using callbacks</h2>
+ <p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
+
+ <!-- This contains the hidden content for inline calls -->
+ <div style='display:none'>
+ <div id='inline_content' style='padding:10px; background:#fff;'>
+ <p><strong>This content comes from a hidden element on this page.</strong></p>
+ <p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
+ <p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
+
+ <p><strong>If you try to open a new ColorBox while it is already open, it will update itself with the new content.</strong></p>
+ <p>Updating Content Example:<br />
+ <a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/library/colorbox/example5/colorbox.css b/library/colorbox/example5/colorbox.css
new file mode 100644
index 000000000..544a76f3b
--- /dev/null
+++ b/library/colorbox/example5/colorbox.css
@@ -0,0 +1,52 @@
+/*
+ ColorBox Core Style:
+ The following CSS is consistent between example themes and should not be altered.
+*/
+#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
+#cboxOverlay{position:fixed; width:100%; height:100%;}
+#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
+#cboxContent{position:relative;}
+#cboxLoadedContent{overflow:auto;}
+#cboxTitle{margin:0;}
+#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
+#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
+.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none;}
+.cboxIframe{width:100%; height:100%; display:block; border:0;}
+#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
+
+/*
+ User Style:
+ Change the following styles to modify the appearance of ColorBox. They are
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
+*/
+#cboxOverlay{background:#000;}
+#colorbox{}
+ #cboxTopLeft{width:14px; height:14px; background:url(images/controls.png) no-repeat 0 0;}
+ #cboxTopCenter{height:14px; background:url(images/border.png) repeat-x top left;}
+ #cboxTopRight{width:14px; height:14px; background:url(images/controls.png) no-repeat -36px 0;}
+ #cboxBottomLeft{width:14px; height:43px; background:url(images/controls.png) no-repeat 0 -32px;}
+ #cboxBottomCenter{height:43px; background:url(images/border.png) repeat-x bottom left;}
+ #cboxBottomRight{width:14px; height:43px; background:url(images/controls.png) no-repeat -36px -32px;}
+ #cboxMiddleLeft{width:14px; background:url(images/controls.png) repeat-y -175px 0;}
+ #cboxMiddleRight{width:14px; background:url(images/controls.png) repeat-y -211px 0;}
+ #cboxContent{background:#fff; overflow:visible;}
+ .cboxIframe{background:#fff;}
+ #cboxError{padding:50px; border:1px solid #ccc;}
+ #cboxLoadedContent{margin-bottom:5px;}
+ #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
+ #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
+ #cboxTitle{position:absolute; bottom:-25px; left:0; text-align:center; width:100%; font-weight:bold; color:#7C7C7C;}
+ #cboxCurrent{position:absolute; bottom:-25px; left:58px; font-weight:bold; color:#7C7C7C;}
+
+ #cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{position:absolute; bottom:-29px; background:url(images/controls.png) no-repeat 0px 0px; width:23px; height:23px; text-indent:-9999px;}
+ #cboxPrevious{left:0px; background-position: -51px -25px;}
+ #cboxPrevious:hover{background-position:-51px 0px;}
+ #cboxNext{left:27px; background-position:-75px -25px;}
+ #cboxNext:hover{background-position:-75px 0px;}
+ #cboxClose{right:0; background-position:-100px -25px;}
+ #cboxClose:hover{background-position:-100px 0px;}
+
+ .cboxSlideshow_on #cboxSlideshow{background-position:-125px 0px; right:27px;}
+ .cboxSlideshow_on #cboxSlideshow:hover{background-position:-150px 0px;}
+ .cboxSlideshow_off #cboxSlideshow{background-position:-150px -25px; right:27px;}
+ .cboxSlideshow_off #cboxSlideshow:hover{background-position:-125px 0px;} \ No newline at end of file
diff --git a/library/colorbox/example5/images/border.png b/library/colorbox/example5/images/border.png
new file mode 100644
index 000000000..df13bb6da
--- /dev/null
+++ b/library/colorbox/example5/images/border.png
Binary files differ
diff --git a/library/colorbox/example5/images/controls.png b/library/colorbox/example5/images/controls.png
new file mode 100644
index 000000000..65cfd1dc9
--- /dev/null
+++ b/library/colorbox/example5/images/controls.png
Binary files differ
diff --git a/library/colorbox/example5/images/loading.gif b/library/colorbox/example5/images/loading.gif
new file mode 100644
index 000000000..b4695d811
--- /dev/null
+++ b/library/colorbox/example5/images/loading.gif
Binary files differ
diff --git a/library/colorbox/example5/images/loading_background.png b/library/colorbox/example5/images/loading_background.png
new file mode 100644
index 000000000..9de11f467
--- /dev/null
+++ b/library/colorbox/example5/images/loading_background.png
Binary files differ
diff --git a/library/colorbox/example5/index.html b/library/colorbox/example5/index.html
new file mode 100644
index 000000000..727fe78d7
--- /dev/null
+++ b/library/colorbox/example5/index.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset='utf-8'/>
+ <title>ColorBox Examples</title>
+ <style>
+ body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
+ a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
+ h2{font-size:13px; margin:15px 0 0 0;}
+ </style>
+ <link rel="stylesheet" href="colorbox.css" />
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
+ <script src="../jquery.colorbox.js"></script>
+ <script>
+ $(document).ready(function(){
+ //Examples of how to assign the ColorBox event to elements
+ $(".group1").colorbox({rel:'group1'});
+ $(".group2").colorbox({rel:'group2', transition:"fade"});
+ $(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
+ $(".group4").colorbox({rel:'group4', slideshow:true});
+ $(".ajax").colorbox();
+ $(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
+ $(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
+ $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
+ $(".inline").colorbox({inline:true, width:"50%"});
+ $(".callbacks").colorbox({
+ onOpen:function(){ alert('onOpen: colorbox is about to open'); },
+ onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
+ onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
+ onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
+ onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
+ });
+
+ //Example of preserving a JavaScript event for inline calls.
+ $("#click").click(function(){
+ $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
+ return false;
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <h1>ColorBox Demonstration</h1>
+ <h2>Elastic Transition</h2>
+ <p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Fade Transition</h2>
+ <p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
+ <p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>No Transition + fixed width and height (75% of screen size)</h2>
+ <p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Slideshow</h2>
+ <p><a class="group4" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+ <p><a class="group4" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+ <p><a class="group4" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+
+ <h2>Other Content Types</h2>
+ <p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
+ <p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
+ <p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
+ <p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
+ <p><a class='inline' href="#inline_content">Inline HTML</a></p>
+
+ <h2>Demonstration of using callbacks</h2>
+ <p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
+
+ <!-- This contains the hidden content for inline calls -->
+ <div style='display:none'>
+ <div id='inline_content' style='padding:10px; background:#fff;'>
+ <p><strong>This content comes from a hidden element on this page.</strong></p>
+ <p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
+ <p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
+
+ <p><strong>If you try to open a new ColorBox while it is already open, it will update itself with the new content.</strong></p>
+ <p>Updating Content Example:<br />
+ <a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/library/colorbox/i18n/jquery.colorbox-cs.js b/library/colorbox/i18n/jquery.colorbox-cs.js
new file mode 100644
index 000000000..42114c0a7
--- /dev/null
+++ b/library/colorbox/i18n/jquery.colorbox-cs.js
@@ -0,0 +1,14 @@
+/*
+ jQuery ColorBox language configuration
+ language: Czech (cs)
+ translated by: Filip Novak
+ site: mame.napilno.cz/filip-novak
+*/
+jQuery.extend(jQuery.colorbox.settings, {
+ current: "{current}. obrázek z {total}",
+ previous: "Předchozí",
+ next: "Následující",
+ close: "Zavřít",
+ xhrError: "Obsah se nepodaÅ™ilo naÄíst.",
+ imgError: "Obrázek se nepodaÅ™ilo naÄíst."
+}); \ No newline at end of file
diff --git a/library/colorbox/i18n/jquery.colorbox-da.js b/library/colorbox/i18n/jquery.colorbox-da.js
new file mode 100644
index 000000000..66bfb6cd0
--- /dev/null
+++ b/library/colorbox/i18n/jquery.colorbox-da.js
@@ -0,0 +1,14 @@
+/*
+ jQuery ColorBox language configuration
+ language: Danish (da)
+ translated by: danieljuhl
+ site: danieljuhl.dk
+*/
+jQuery.extend(jQuery.colorbox.settings, {
+ current: "Billede {current} af {total}",
+ previous: "Forrige",
+ next: "Næste",
+ close: "Luk",
+ xhrError: "Indholdet fejlede i indlæsningen.",
+ imgError: "Billedet fejlede i indlæsningen."
+});
diff --git a/library/colorbox/i18n/jquery.colorbox-de.js b/library/colorbox/i18n/jquery.colorbox-de.js
new file mode 100644
index 000000000..3d6e2e147
--- /dev/null
+++ b/library/colorbox/i18n/jquery.colorbox-de.js
@@ -0,0 +1,13 @@
+/*
+ jQuery ColorBox language configuration
+ language: German (de)
+ translated by: wallenium
+*/
+jQuery.extend(jQuery.colorbox.settings, {
+ current: "Bild {current} von {total}",
+ previous: "Zurück",
+ next: "Vor",
+ close: "Schließen",
+ xhrError: "Dieser Inhalt konnte nicht geladen werden.",
+ imgError: "Dieses Bild konnte nicht geladen werden."
+}); \ No newline at end of file
diff --git a/library/colorbox/i18n/jquery.colorbox-es.js b/library/colorbox/i18n/jquery.colorbox-es.js
new file mode 100644
index 000000000..6449c66f8
--- /dev/null
+++ b/library/colorbox/i18n/jquery.colorbox-es.js
@@ -0,0 +1,13 @@
+/*
+ jQuery ColorBox language configuration
+ language: Spanish (es)
+ translated by: migolo
+*/
+jQuery.extend(jQuery.colorbox.settings, {
+ current: "Imagen {current} de {total}",
+ previous: "Anterior",
+ next: "Siguiente",
+ close: "Cerrar",
+ xhrError: "Error en la carga del contenido.",
+ imgError: "Error en la carga de la imagen."
+});
diff --git a/library/colorbox/i18n/jquery.colorbox-fr.js b/library/colorbox/i18n/jquery.colorbox-fr.js
new file mode 100644
index 000000000..f6afe3fd4
--- /dev/null
+++ b/library/colorbox/i18n/jquery.colorbox-fr.js
@@ -0,0 +1,14 @@
+/*
+ jQuery ColorBox language configuration
+ language: French (fr)
+ translated by: oaubert
+*/
+jQuery.extend(jQuery.colorbox.settings, {
+current: "image {current} sur {total}",
+previous: "pr&eacute;c&eacute;dente",
+next: "suivante",
+close: "fermer",
+xhrError: "Impossible de charger ce contenu.",
+imgError: "Impossible de charger cette image."
+});
+
diff --git a/library/colorbox/i18n/jquery.colorbox-it.js b/library/colorbox/i18n/jquery.colorbox-it.js
new file mode 100644
index 000000000..d67d76cf7
--- /dev/null
+++ b/library/colorbox/i18n/jquery.colorbox-it.js
@@ -0,0 +1,13 @@
+/*
+ jQuery ColorBox language configuration
+ language: Italian (it)
+ translated by: maur8ino
+*/
+jQuery.extend(jQuery.colorbox.settings, {
+ current: "Immagine {current} di {total}",
+ previous: "Precedente",
+ next: "Successiva",
+ close: "Chiudi",
+ xhrError: "Errore nel caricamento del contenuto.",
+ imgError: "Errore nel caricamento dell'immagine."
+});
diff --git a/library/colorbox/i18n/jquery.colorbox-ru.js b/library/colorbox/i18n/jquery.colorbox-ru.js
new file mode 100644
index 000000000..c9c220068
--- /dev/null
+++ b/library/colorbox/i18n/jquery.colorbox-ru.js
@@ -0,0 +1,14 @@
+/*
+ jQuery ColorBox language configuration
+ language: Russian (ru)
+ translated by: Marfa
+ site: themarfa.name
+*/
+jQuery.extend(jQuery.colorbox.settings, {
+ current: "изображение {current} из {total}",
+ previous: "предыдущее",
+ next: "Ñледующее",
+ close: "закрыть",
+ xhrError: "Ðе удалоÑÑŒ загрузить Ñодержимое.",
+ imgError: "Ðе удалоÑÑŒ загрузить изображение."
+}); \ No newline at end of file
diff --git a/library/colorbox/images/border.png b/library/colorbox/images/border.png
new file mode 100644
index 000000000..df13bb6da
--- /dev/null
+++ b/library/colorbox/images/border.png
Binary files differ
diff --git a/library/colorbox/images/controls.png b/library/colorbox/images/controls.png
new file mode 100644
index 000000000..65cfd1dc9
--- /dev/null
+++ b/library/colorbox/images/controls.png
Binary files differ
diff --git a/library/colorbox/images/loading.gif b/library/colorbox/images/loading.gif
new file mode 100644
index 000000000..b4695d811
--- /dev/null
+++ b/library/colorbox/images/loading.gif
Binary files differ
diff --git a/library/colorbox/images/loading_background.png b/library/colorbox/images/loading_background.png
new file mode 100644
index 000000000..9de11f467
--- /dev/null
+++ b/library/colorbox/images/loading_background.png
Binary files differ
diff --git a/library/colorbox/jquery.colorbox-min.js b/library/colorbox/jquery.colorbox-min.js
new file mode 100644
index 000000000..969064042
--- /dev/null
+++ b/library/colorbox/jquery.colorbox-min.js
@@ -0,0 +1 @@
+(function($,document,window){var defaults={transition:"elastic",speed:300,width:false,initialWidth:"600",innerWidth:false,maxWidth:false,height:false,initialHeight:"450",innerHeight:false,maxHeight:false,scalePhotos:true,scrolling:true,inline:false,html:false,iframe:false,fastIframe:true,photo:false,href:false,title:false,rel:false,opacity:.9,preloading:true,className:false,current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",open:false,returnFocus:true,reposition:true,loop:true,slideshow:false,slideshowAuto:true,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",onOpen:false,onLoad:false,onComplete:false,onCleanup:false,onClosed:false,overlayClose:true,escKey:true,arrowKey:true,top:false,bottom:false,left:false,right:false,fixed:false,data:undefined},colorbox="colorbox",prefix="cbox",boxElement=prefix+"Element",event_open=prefix+"_open",event_load=prefix+"_load",event_complete=prefix+"_complete",event_cleanup=prefix+"_cleanup",event_closed=prefix+"_closed",event_purge=prefix+"_purge",isIE=!$.support.leadingWhitespace,isIE6=isIE&&!window.XMLHttpRequest,event_ie6=prefix+"_IE6",$overlay,$box,$wrap,$content,$topBorder,$leftBorder,$rightBorder,$bottomBorder,$related,$window,$loaded,$loadingBay,$loadingOverlay,$title,$current,$slideshow,$next,$prev,$close,$groupControls,$events=$({}),settings,interfaceHeight,interfaceWidth,loadedHeight,loadedWidth,element,index,photo,open,active,closing,loadingTimer,publicMethod,div="div",className,init;function $tag(tag,id,css){var element=document.createElement(tag);if(id){element.id=prefix+id}if(css){element.style.cssText=css}return $(element)}function getIndex(increment){var max=$related.length,newIndex=(index+increment)%max;return newIndex<0?max+newIndex:newIndex}function setSize(size,dimension){return Math.round((/%/.test(size)?(dimension==="x"?$window.width():$window.height())/100:1)*parseInt(size,10))}function isImage(url){return settings.photo||/\.(gif|png|jp(e|g|eg)|bmp|ico)((#|\?).*)?$/i.test(url)}function makeSettings(){var i,data=$.data(element,colorbox);if(data==null){settings=$.extend({},defaults);if(console&&console.log){console.log("Error: cboxElement missing settings object")}}else{settings=$.extend({},data)}for(i in settings){if($.isFunction(settings[i])&&i.slice(0,2)!=="on"){settings[i]=settings[i].call(element)}}settings.rel=settings.rel||element.rel||$(element).data("rel")||"nofollow";settings.href=settings.href||$(element).attr("href");settings.title=settings.title||element.title;if(typeof settings.href==="string"){settings.href=$.trim(settings.href)}}function trigger(event,callback){$(document).trigger(event);$events.trigger(event);if($.isFunction(callback)){callback.call(element)}}function slideshow(){var timeOut,className=prefix+"Slideshow_",click="click."+prefix,clear,set,start,stop;if(settings.slideshow&&$related[1]){clear=function(){clearTimeout(timeOut)};set=function(){if(settings.loop||$related[index+1]){timeOut=setTimeout(publicMethod.next,settings.slideshowSpeed)}};start=function(){$slideshow.html(settings.slideshowStop).unbind(click).one(click,stop);$events.bind(event_complete,set).bind(event_load,clear).bind(event_cleanup,stop);$box.removeClass(className+"off").addClass(className+"on")};stop=function(){clear();$events.unbind(event_complete,set).unbind(event_load,clear).unbind(event_cleanup,stop);$slideshow.html(settings.slideshowStart).unbind(click).one(click,function(){publicMethod.next();start()});$box.removeClass(className+"on").addClass(className+"off")};if(settings.slideshowAuto){start()}else{stop()}}else{$box.removeClass(className+"off "+className+"on")}}function launch(target){if(!closing){element=target;makeSettings();$related=$(element);index=0;if(settings.rel!=="nofollow"){$related=$("."+boxElement).filter(function(){var data=$.data(this,colorbox),relRelated;if(data){relRelated=$(this).data("rel")||data.rel||this.rel}return relRelated===settings.rel});index=$related.index(element);if(index===-1){$related=$related.add(element);index=$related.length-1}}if(!open){open=active=true;$box.css({visibility:"hidden",display:"block"});$loaded=$tag(div,"LoadedContent","width:0; height:0; overflow:hidden").appendTo($content);interfaceHeight=$topBorder.height()+$bottomBorder.height()+$content.outerHeight(true)-$content.height();interfaceWidth=$leftBorder.width()+$rightBorder.width()+$content.outerWidth(true)-$content.width();loadedHeight=$loaded.outerHeight(true);loadedWidth=$loaded.outerWidth(true);if(settings.returnFocus){$(element).blur();$events.one(event_closed,function(){$(element).focus()})}$overlay.css({opacity:parseFloat(settings.opacity),cursor:settings.overlayClose?"pointer":"auto",visibility:"visible"}).show();settings.w=setSize(settings.initialWidth,"x");settings.h=setSize(settings.initialHeight,"y");publicMethod.position();if(isIE6){$window.bind("resize."+event_ie6+" scroll."+event_ie6,function(){$overlay.css({width:$window.width(),height:$window.height(),top:$window.scrollTop(),left:$window.scrollLeft()})}).trigger("resize."+event_ie6)}slideshow();trigger(event_open,settings.onOpen);$groupControls.add($title).hide();$close.html(settings.close).show()}publicMethod.load(true)}}function appendHTML(){if(!$box&&document.body){init=false;$window=$(window);$box=$tag(div).attr({id:colorbox,"class":isIE?prefix+(isIE6?"IE6":"IE"):""}).hide();$overlay=$tag(div,"Overlay",isIE6?"position:absolute":"").hide();$loadingOverlay=$tag(div,"LoadingOverlay").add($tag(div,"LoadingGraphic"));$wrap=$tag(div,"Wrapper");$content=$tag(div,"Content").append($title=$tag(div,"Title"),$current=$tag(div,"Current"),$next=$tag(div,"Next"),$prev=$tag(div,"Previous"),$slideshow=$tag(div,"Slideshow"),$close=$tag(div,"Close"));$wrap.append($tag(div).append($tag(div,"TopLeft"),$topBorder=$tag(div,"TopCenter"),$tag(div,"TopRight")),$tag(div,false,"clear:left").append($leftBorder=$tag(div,"MiddleLeft"),$content,$rightBorder=$tag(div,"MiddleRight")),$tag(div,false,"clear:left").append($tag(div,"BottomLeft"),$bottomBorder=$tag(div,"BottomCenter"),$tag(div,"BottomRight"))).find("div div").css({"float":"left"});$loadingBay=$tag(div,false,"position:absolute; width:9999px; visibility:hidden; display:none");$groupControls=$next.add($prev).add($current).add($slideshow);$(document.body).append($overlay,$box.append($wrap,$loadingBay))}}function addBindings(){function clickHandler(e){if(!(e.which>1||e.shiftKey||e.altKey||e.metaKey)){e.preventDefault();launch(this)}}if($box){if(!init){init=true;$next.click(function(){publicMethod.next()});$prev.click(function(){publicMethod.prev()});$close.click(function(){publicMethod.close()});$overlay.click(function(){if(settings.overlayClose){publicMethod.close()}});$(document).bind("keydown."+prefix,function(e){var key=e.keyCode;if(open&&settings.escKey&&key===27){e.preventDefault();publicMethod.close()}if(open&&settings.arrowKey&&$related[1]){if(key===37){e.preventDefault();$prev.click()}else if(key===39){e.preventDefault();$next.click()}}});if($.isFunction($.fn.on)){$(document).on("click."+prefix,"."+boxElement,clickHandler)}else{$("."+boxElement).live("click."+prefix,clickHandler)}}return true}return false}if($.colorbox){return}$(appendHTML);publicMethod=$.fn[colorbox]=$[colorbox]=function(options,callback){var $this=this;options=options||{};appendHTML();if(addBindings()){if($.isFunction($this)){$this=$("<a/>");options.open=true}else if(!$this[0]){return $this}if(callback){options.onComplete=callback}$this.each(function(){$.data(this,colorbox,$.extend({},$.data(this,colorbox)||defaults,options))}).addClass(boxElement);if($.isFunction(options.open)&&options.open.call($this)||options.open){launch($this[0])}}return $this};publicMethod.position=function(speed,loadedCallback){var css,top=0,left=0,offset=$box.offset(),scrollTop,scrollLeft;$window.unbind("resize."+prefix);$box.css({top:-9e4,left:-9e4});scrollTop=$window.scrollTop();scrollLeft=$window.scrollLeft();if(settings.fixed&&!isIE6){offset.top-=scrollTop;offset.left-=scrollLeft;$box.css({position:"fixed"})}else{top=scrollTop;left=scrollLeft;$box.css({position:"absolute"})}if(settings.right!==false){left+=Math.max($window.width()-settings.w-loadedWidth-interfaceWidth-setSize(settings.right,"x"),0)}else if(settings.left!==false){left+=setSize(settings.left,"x")}else{left+=Math.round(Math.max($window.width()-settings.w-loadedWidth-interfaceWidth,0)/2)}if(settings.bottom!==false){top+=Math.max($window.height()-settings.h-loadedHeight-interfaceHeight-setSize(settings.bottom,"y"),0)}else if(settings.top!==false){top+=setSize(settings.top,"y")}else{top+=Math.round(Math.max($window.height()-settings.h-loadedHeight-interfaceHeight,0)/2)}$box.css({top:offset.top,left:offset.left,visibility:"visible"});speed=$box.width()===settings.w+loadedWidth&&$box.height()===settings.h+loadedHeight?0:speed||0;$wrap[0].style.width=$wrap[0].style.height="9999px";function modalDimensions(that){$topBorder[0].style.width=$bottomBorder[0].style.width=$content[0].style.width=parseInt(that.style.width,10)-interfaceWidth+"px";$content[0].style.height=$leftBorder[0].style.height=$rightBorder[0].style.height=parseInt(that.style.height,10)-interfaceHeight+"px"}css={width:settings.w+loadedWidth+interfaceWidth,height:settings.h+loadedHeight+interfaceHeight,top:top,left:left};if(speed===0){$box.css(css)}$box.dequeue().animate(css,{duration:speed,complete:function(){modalDimensions(this);active=false;$wrap[0].style.width=settings.w+loadedWidth+interfaceWidth+"px";$wrap[0].style.height=settings.h+loadedHeight+interfaceHeight+"px";if(settings.reposition){setTimeout(function(){$window.bind("resize."+prefix,publicMethod.position)},1)}if(loadedCallback){loadedCallback()}},step:function(){modalDimensions(this)}})};publicMethod.resize=function(options){if(open){options=options||{};if(options.width){settings.w=setSize(options.width,"x")-loadedWidth-interfaceWidth}if(options.innerWidth){settings.w=setSize(options.innerWidth,"x")}$loaded.css({width:settings.w});if(options.height){settings.h=setSize(options.height,"y")-loadedHeight-interfaceHeight}if(options.innerHeight){settings.h=setSize(options.innerHeight,"y")}if(!options.innerHeight&&!options.height){$loaded.css({height:"auto"});settings.h=$loaded.height()}$loaded.css({height:settings.h});publicMethod.position(settings.transition==="none"?0:settings.speed)}};publicMethod.prep=function(object){if(!open){return}var callback,speed=settings.transition==="none"?0:settings.speed;$loaded.empty().remove();$loaded=$tag(div,"LoadedContent").append(object);function getWidth(){settings.w=settings.w||$loaded.width();settings.w=settings.mw&&settings.mw<settings.w?settings.mw:settings.w;return settings.w}function getHeight(){settings.h=settings.h||$loaded.height();settings.h=settings.mh&&settings.mh<settings.h?settings.mh:settings.h;return settings.h}$loaded.hide().appendTo($loadingBay.show()).css({width:getWidth(),overflow:settings.scrolling?"auto":"hidden"}).css({height:getHeight()}).prependTo($content);$loadingBay.hide();$(photo).css({"float":"none"});callback=function(){var total=$related.length,iframe,frameBorder="frameBorder",allowTransparency="allowTransparency",complete;if(!open){return}function removeFilter(){if(isIE){$box[0].style.removeAttribute("filter")}}complete=function(){clearTimeout(loadingTimer);$loadingOverlay.remove();trigger(event_complete,settings.onComplete)};if(isIE){if(photo){$loaded.fadeIn(100)}}$title.html(settings.title).add($loaded).show();if(total>1){if(typeof settings.current==="string"){$current.html(settings.current.replace("{current}",index+1).replace("{total}",total)).show()}$next[settings.loop||index<total-1?"show":"hide"]().html(settings.next);$prev[settings.loop||index?"show":"hide"]().html(settings.previous);if(settings.slideshow){$slideshow.show()}if(settings.preloading){$.each([getIndex(-1),getIndex(1)],function(){var src,img,i=$related[this],data=$.data(i,colorbox);if(data&&data.href){src=data.href;if($.isFunction(src)){src=src.call(i)}}else{src=$(i).attr("href")}if(src&&(isImage(src)||data.photo)){img=new Image;img.src=src}})}}else{$groupControls.hide()}if(settings.iframe){iframe=$tag("iframe")[0];if(frameBorder in iframe){iframe[frameBorder]=0}if(allowTransparency in iframe){iframe[allowTransparency]="true"}if(!settings.scrolling){iframe.scrolling="no"}$(iframe).attr({src:settings.href,name:(new Date).getTime(),"class":prefix+"Iframe",allowFullScreen:true,webkitAllowFullScreen:true,mozallowfullscreen:true}).one("load",complete).appendTo($loaded);$events.one(event_purge,function(){iframe.src="//about:blank"});if(settings.fastIframe){$(iframe).trigger("load")}}else{complete()}if(settings.transition==="fade"){$box.fadeTo(speed,1,removeFilter)}else{removeFilter()}};if(settings.transition==="fade"){$box.fadeTo(speed,0,function(){publicMethod.position(0,callback)})}else{publicMethod.position(speed,callback)}};publicMethod.load=function(launched){var href,setResize,prep=publicMethod.prep,$inline;active=true;photo=false;element=$related[index];if(!launched){makeSettings()}if(className){$box.add($overlay).removeClass(className)}if(settings.className){$box.add($overlay).addClass(settings.className)}className=settings.className;trigger(event_purge);trigger(event_load,settings.onLoad);settings.h=settings.height?setSize(settings.height,"y")-loadedHeight-interfaceHeight:settings.innerHeight&&setSize(settings.innerHeight,"y");settings.w=settings.width?setSize(settings.width,"x")-loadedWidth-interfaceWidth:settings.innerWidth&&setSize(settings.innerWidth,"x");settings.mw=settings.w;settings.mh=settings.h;if(settings.maxWidth){settings.mw=setSize(settings.maxWidth,"x")-loadedWidth-interfaceWidth;settings.mw=settings.w&&settings.w<settings.mw?settings.w:settings.mw}if(settings.maxHeight){settings.mh=setSize(settings.maxHeight,"y")-loadedHeight-interfaceHeight;settings.mh=settings.h&&settings.h<settings.mh?settings.h:settings.mh}href=settings.href;loadingTimer=setTimeout(function(){$loadingOverlay.appendTo($content)},100);if(settings.inline){$inline=$tag(div).hide().insertBefore($(href)[0]);$events.one(event_purge,function(){$inline.replaceWith($loaded.children())});prep($(href))}else if(settings.iframe){prep(" ")}else if(settings.html){prep(settings.html)}else if(isImage(href)){$(photo=new Image).addClass(prefix+"Photo").bind("error",function(){settings.title=false;prep($tag(div,"Error").html(settings.imgError))}).one("load",function(){var percent;if(settings.scalePhotos){setResize=function(){photo.height-=photo.height*percent;photo.width-=photo.width*percent};if(settings.mw&&photo.width>settings.mw){percent=(photo.width-settings.mw)/photo.width;setResize()}if(settings.mh&&photo.height>settings.mh){percent=(photo.height-settings.mh)/photo.height;setResize()}}if(settings.h){photo.style.marginTop=Math.max(settings.mh-photo.height,0)/2+"px"}if($related[1]&&(settings.loop||$related[index+1])){photo.style.cursor="pointer";photo.onclick=function(){publicMethod.next()}}if(isIE){photo.style.msInterpolationMode="bicubic"}setTimeout(function(){prep(photo)},1)});setTimeout(function(){photo.src=href},1)}else if(href){$loadingBay.load(href,settings.data,function(data,status){prep(status==="error"?$tag(div,"Error").html(settings.xhrError):$(this).contents())})}};publicMethod.next=function(){if(!active&&$related[1]&&(settings.loop||$related[index+1])){index=getIndex(1);publicMethod.load()}};publicMethod.prev=function(){if(!active&&$related[1]&&(settings.loop||index)){index=getIndex(-1);publicMethod.load()}};publicMethod.close=function(){if(open&&!closing){closing=true;open=false;trigger(event_cleanup,settings.onCleanup);$window.unbind("."+prefix+" ."+event_ie6);$overlay.fadeTo(200,0);$box.stop().fadeTo(300,0,function(){$box.add($overlay).css({opacity:1,cursor:"auto"}).hide();trigger(event_purge);$loaded.empty().remove();setTimeout(function(){closing=false;trigger(event_closed,settings.onClosed)},1)})}};publicMethod.remove=function(){$([]).add($box).add($overlay).remove();$box=null;$("."+boxElement).removeData(colorbox).removeClass(boxElement);$(document).unbind("click."+prefix)};publicMethod.element=function(){return $(element)};publicMethod.settings=defaults})(jQuery,document,window); \ No newline at end of file
diff --git a/library/colorbox/jquery.colorbox.js b/library/colorbox/jquery.colorbox.js
new file mode 100644
index 000000000..5b9aecdc2
--- /dev/null
+++ b/library/colorbox/jquery.colorbox.js
@@ -0,0 +1,975 @@
+/*
+ jQuery ColorBox v1.3.32 - 2013-01-31
+ (c) 2013 Jack Moore - jacklmoore.com/colorbox
+ license: http://www.opensource.org/licenses/mit-license.php
+*/
+(function ($, document, window) {
+ var
+ // Default settings object.
+ // See http://jacklmoore.com/colorbox for details.
+ defaults = {
+ transition: "elastic",
+ speed: 300,
+ width: false,
+ initialWidth: "600",
+ innerWidth: false,
+ maxWidth: false,
+ height: false,
+ initialHeight: "450",
+ innerHeight: false,
+ maxHeight: false,
+ scalePhotos: true,
+ scrolling: true,
+ inline: false,
+ html: false,
+ iframe: false,
+ fastIframe: true,
+ photo: false,
+ href: false,
+ title: false,
+ rel: false,
+ opacity: 0.9,
+ preloading: true,
+ className: false,
+
+ current: "image {current} of {total}",
+ previous: "previous",
+ next: "next",
+ close: "close",
+ xhrError: "This content failed to load.",
+ imgError: "This image failed to load.",
+
+ open: false,
+ returnFocus: true,
+ reposition: true,
+ loop: true,
+ slideshow: false,
+ slideshowAuto: true,
+ slideshowSpeed: 2500,
+ slideshowStart: "start slideshow",
+ slideshowStop: "stop slideshow",
+ onOpen: false,
+ onLoad: false,
+ onComplete: false,
+ onCleanup: false,
+ onClosed: false,
+ overlayClose: true,
+ escKey: true,
+ arrowKey: true,
+ top: false,
+ bottom: false,
+ left: false,
+ right: false,
+ fixed: false,
+ data: undefined
+ },
+
+ // Abstracting the HTML and event identifiers for easy rebranding
+ colorbox = 'colorbox',
+ prefix = 'cbox',
+ boxElement = prefix + 'Element',
+
+ // Events
+ event_open = prefix + '_open',
+ event_load = prefix + '_load',
+ event_complete = prefix + '_complete',
+ event_cleanup = prefix + '_cleanup',
+ event_closed = prefix + '_closed',
+ event_purge = prefix + '_purge',
+
+ // Special Handling for IE
+ isIE = !$.support.leadingWhitespace, // IE6 to IE8
+ isIE6 = isIE && !window.XMLHttpRequest, // IE6
+ event_ie6 = prefix + '_IE6',
+
+ // Cached jQuery Object Variables
+ $overlay,
+ $box,
+ $wrap,
+ $content,
+ $topBorder,
+ $leftBorder,
+ $rightBorder,
+ $bottomBorder,
+ $related,
+ $window,
+ $loaded,
+ $loadingBay,
+ $loadingOverlay,
+ $title,
+ $current,
+ $slideshow,
+ $next,
+ $prev,
+ $close,
+ $groupControls,
+ $events = $({}),
+
+ // Variables for cached values or use across multiple functions
+ settings,
+ interfaceHeight,
+ interfaceWidth,
+ loadedHeight,
+ loadedWidth,
+ element,
+ index,
+ photo,
+ open,
+ active,
+ closing,
+ loadingTimer,
+ publicMethod,
+ div = "div",
+ className,
+ init;
+
+ // ****************
+ // HELPER FUNCTIONS
+ // ****************
+
+ // Convience function for creating new jQuery objects
+ function $tag(tag, id, css) {
+ var element = document.createElement(tag);
+
+ if (id) {
+ element.id = prefix + id;
+ }
+
+ if (css) {
+ element.style.cssText = css;
+ }
+
+ return $(element);
+ }
+
+ // Determine the next and previous members in a group.
+ function getIndex(increment) {
+ var
+ max = $related.length,
+ newIndex = (index + increment) % max;
+
+ return (newIndex < 0) ? max + newIndex : newIndex;
+ }
+
+ // Convert '%' and 'px' values to integers
+ function setSize(size, dimension) {
+ return Math.round((/%/.test(size) ? ((dimension === 'x' ? $window.width() : $window.height()) / 100) : 1) * parseInt(size, 10));
+ }
+
+ // Checks an href to see if it is a photo.
+ // There is a force photo option (photo: true) for hrefs that cannot be matched by this regex.
+ function isImage(url) {
+ return settings.photo || /\.(gif|png|jp(e|g|eg)|bmp|ico)((#|\?).*)?$/i.test(url);
+ }
+
+ // Assigns function results to their respective properties
+ function makeSettings() {
+ var i,
+ data = $.data(element, colorbox);
+
+ if (data == null) {
+ settings = $.extend({}, defaults);
+ if (console && console.log) {
+ console.log('Error: cboxElement missing settings object');
+ }
+ } else {
+ settings = $.extend({}, data);
+ }
+
+ for (i in settings) {
+ if ($.isFunction(settings[i]) && i.slice(0, 2) !== 'on') { // checks to make sure the function isn't one of the callbacks, they will be handled at the appropriate time.
+ settings[i] = settings[i].call(element);
+ }
+ }
+
+ settings.rel = settings.rel || element.rel || $(element).data('rel') || 'nofollow';
+ settings.href = settings.href || $(element).attr('href');
+ settings.title = settings.title || element.title;
+
+ if (typeof settings.href === "string") {
+ settings.href = $.trim(settings.href);
+ }
+ }
+
+ function trigger(event, callback) {
+ // for external use
+ $(document).trigger(event);
+
+ // for internal use
+ $events.trigger(event);
+
+ if ($.isFunction(callback)) {
+ callback.call(element);
+ }
+ }
+
+ // Slideshow functionality
+ function slideshow() {
+ var
+ timeOut,
+ className = prefix + "Slideshow_",
+ click = "click." + prefix,
+ clear,
+ set,
+ start,
+ stop;
+
+ if (settings.slideshow && $related[1]) {
+ clear = function () {
+ clearTimeout(timeOut);
+ };
+
+ set = function () {
+ if (settings.loop || $related[index + 1]) {
+ timeOut = setTimeout(publicMethod.next, settings.slideshowSpeed);
+ }
+ };
+
+ start = function () {
+ $slideshow
+ .html(settings.slideshowStop)
+ .unbind(click)
+ .one(click, stop);
+
+ $events
+ .bind(event_complete, set)
+ .bind(event_load, clear)
+ .bind(event_cleanup, stop);
+
+ $box.removeClass(className + "off").addClass(className + "on");
+ };
+
+ stop = function () {
+ clear();
+
+ $events
+ .unbind(event_complete, set)
+ .unbind(event_load, clear)
+ .unbind(event_cleanup, stop);
+
+ $slideshow
+ .html(settings.slideshowStart)
+ .unbind(click)
+ .one(click, function () {
+ publicMethod.next();
+ start();
+ });
+
+ $box.removeClass(className + "on").addClass(className + "off");
+ };
+
+ if (settings.slideshowAuto) {
+ start();
+ } else {
+ stop();
+ }
+ } else {
+ $box.removeClass(className + "off " + className + "on");
+ }
+ }
+
+ function launch(target) {
+ if (!closing) {
+
+ element = target;
+
+ makeSettings();
+
+ $related = $(element);
+
+ index = 0;
+
+ if (settings.rel !== 'nofollow') {
+ $related = $('.' + boxElement).filter(function () {
+ var data = $.data(this, colorbox),
+ relRelated;
+
+ if (data) {
+ relRelated = $(this).data('rel') || data.rel || this.rel;
+ }
+
+ return (relRelated === settings.rel);
+ });
+ index = $related.index(element);
+
+ // Check direct calls to ColorBox.
+ if (index === -1) {
+ $related = $related.add(element);
+ index = $related.length - 1;
+ }
+ }
+
+ if (!open) {
+ open = active = true; // Prevents the page-change action from queuing up if the visitor holds down the left or right keys.
+
+ // Show colorbox so the sizes can be calculated in older versions of jQuery
+ $box.css({visibility:'hidden', display:'block'});
+
+ $loaded = $tag(div, 'LoadedContent', 'width:0; height:0; overflow:hidden').appendTo($content);
+
+ // Cache values needed for size calculations
+ interfaceHeight = $topBorder.height() + $bottomBorder.height() + $content.outerHeight(true) - $content.height();//Subtraction needed for IE6
+ interfaceWidth = $leftBorder.width() + $rightBorder.width() + $content.outerWidth(true) - $content.width();
+ loadedHeight = $loaded.outerHeight(true);
+ loadedWidth = $loaded.outerWidth(true);
+
+ if (settings.returnFocus) {
+ $(element).blur();
+ $events.one(event_closed, function () {
+ $(element).focus();
+ });
+ }
+
+ $overlay.css({
+ opacity: parseFloat(settings.opacity),
+ cursor: settings.overlayClose ? "pointer" : "auto",
+ visibility: 'visible'
+ }).show();
+
+ // Opens inital empty ColorBox prior to content being loaded.
+ settings.w = setSize(settings.initialWidth, 'x');
+ settings.h = setSize(settings.initialHeight, 'y');
+ publicMethod.position();
+
+ if (isIE6) {
+ $window.bind('resize.' + event_ie6 + ' scroll.' + event_ie6, function () {
+ $overlay.css({width: $window.width(), height: $window.height(), top: $window.scrollTop(), left: $window.scrollLeft()});
+ }).trigger('resize.' + event_ie6);
+ }
+
+ slideshow();
+
+ trigger(event_open, settings.onOpen);
+
+ $groupControls.add($title).hide();
+
+ $close.html(settings.close).show();
+ }
+
+ publicMethod.load(true);
+ }
+ }
+
+ // ColorBox's markup needs to be added to the DOM prior to being called
+ // so that the browser will go ahead and load the CSS background images.
+ function appendHTML() {
+ if (!$box && document.body) {
+ init = false;
+
+ $window = $(window);
+ $box = $tag(div).attr({id: colorbox, 'class': isIE ? prefix + (isIE6 ? 'IE6' : 'IE') : ''}).hide();
+ $overlay = $tag(div, "Overlay", isIE6 ? 'position:absolute' : '').hide();
+ $loadingOverlay = $tag(div, "LoadingOverlay").add($tag(div, "LoadingGraphic"));
+ $wrap = $tag(div, "Wrapper");
+ $content = $tag(div, "Content").append(
+ $title = $tag(div, "Title"),
+ $current = $tag(div, "Current"),
+ $next = $tag(div, "Next"),
+ $prev = $tag(div, "Previous"),
+ $slideshow = $tag(div, "Slideshow"),
+ $close = $tag(div, "Close")
+ );
+
+ $wrap.append( // The 3x3 Grid that makes up ColorBox
+ $tag(div).append(
+ $tag(div, "TopLeft"),
+ $topBorder = $tag(div, "TopCenter"),
+ $tag(div, "TopRight")
+ ),
+ $tag(div, false, 'clear:left').append(
+ $leftBorder = $tag(div, "MiddleLeft"),
+ $content,
+ $rightBorder = $tag(div, "MiddleRight")
+ ),
+ $tag(div, false, 'clear:left').append(
+ $tag(div, "BottomLeft"),
+ $bottomBorder = $tag(div, "BottomCenter"),
+ $tag(div, "BottomRight")
+ )
+ ).find('div div').css({'float': 'left'});
+
+ $loadingBay = $tag(div, false, 'position:absolute; width:9999px; visibility:hidden; display:none');
+
+ $groupControls = $next.add($prev).add($current).add($slideshow);
+
+ $(document.body).append($overlay, $box.append($wrap, $loadingBay));
+ }
+ }
+
+ // Add ColorBox's event bindings
+ function addBindings() {
+ function clickHandler(e) {
+ // ignore non-left-mouse-clicks and clicks modified with ctrl / command, shift, or alt.
+ // See: http://jacklmoore.com/notes/click-events/
+ if (!(e.which > 1 || e.shiftKey || e.altKey || e.metaKey)) {
+ e.preventDefault();
+ launch(this);
+ }
+ }
+
+ if ($box) {
+ if (!init) {
+ init = true;
+
+ // Anonymous functions here keep the public method from being cached, thereby allowing them to be redefined on the fly.
+ $next.click(function () {
+ publicMethod.next();
+ });
+ $prev.click(function () {
+ publicMethod.prev();
+ });
+ $close.click(function () {
+ publicMethod.close();
+ });
+ $overlay.click(function () {
+ if (settings.overlayClose) {
+ publicMethod.close();
+ }
+ });
+
+ // Key Bindings
+ $(document).bind('keydown.' + prefix, function (e) {
+ var key = e.keyCode;
+ if (open && settings.escKey && key === 27) {
+ e.preventDefault();
+ publicMethod.close();
+ }
+ if (open && settings.arrowKey && $related[1]) {
+ if (key === 37) {
+ e.preventDefault();
+ $prev.click();
+ } else if (key === 39) {
+ e.preventDefault();
+ $next.click();
+ }
+ }
+ });
+
+ if ($.isFunction($.fn.on)) {
+ $(document).on('click.'+prefix, '.'+boxElement, clickHandler);
+ } else { // For jQuery 1.3.x -> 1.6.x
+ $('.'+boxElement).live('click.'+prefix, clickHandler);
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
+ // Don't do anything if ColorBox already exists.
+ if ($.colorbox) {
+ return;
+ }
+
+ // Append the HTML when the DOM loads
+ $(appendHTML);
+
+
+ // ****************
+ // PUBLIC FUNCTIONS
+ // Usage format: $.fn.colorbox.close();
+ // Usage from within an iframe: parent.$.fn.colorbox.close();
+ // ****************
+
+ publicMethod = $.fn[colorbox] = $[colorbox] = function (options, callback) {
+ var $this = this;
+
+ options = options || {};
+
+ appendHTML();
+
+ if (addBindings()) {
+ if ($.isFunction($this)) { // assume a call to $.colorbox
+ $this = $('<a/>');
+ options.open = true;
+ } else if (!$this[0]) { // colorbox being applied to empty collection
+ return $this;
+ }
+
+ if (callback) {
+ options.onComplete = callback;
+ }
+
+ $this.each(function () {
+ $.data(this, colorbox, $.extend({}, $.data(this, colorbox) || defaults, options));
+ }).addClass(boxElement);
+
+ if (($.isFunction(options.open) && options.open.call($this)) || options.open) {
+ launch($this[0]);
+ }
+ }
+
+ return $this;
+ };
+
+ publicMethod.position = function (speed, loadedCallback) {
+ var
+ css,
+ top = 0,
+ left = 0,
+ offset = $box.offset(),
+ scrollTop,
+ scrollLeft;
+
+ $window.unbind('resize.' + prefix);
+
+ // remove the modal so that it doesn't influence the document width/height
+ $box.css({top: -9e4, left: -9e4});
+
+ scrollTop = $window.scrollTop();
+ scrollLeft = $window.scrollLeft();
+
+ if (settings.fixed && !isIE6) {
+ offset.top -= scrollTop;
+ offset.left -= scrollLeft;
+ $box.css({position: 'fixed'});
+ } else {
+ top = scrollTop;
+ left = scrollLeft;
+ $box.css({position: 'absolute'});
+ }
+
+ // keeps the top and left positions within the browser's viewport.
+ if (settings.right !== false) {
+ left += Math.max($window.width() - settings.w - loadedWidth - interfaceWidth - setSize(settings.right, 'x'), 0);
+ } else if (settings.left !== false) {
+ left += setSize(settings.left, 'x');
+ } else {
+ left += Math.round(Math.max($window.width() - settings.w - loadedWidth - interfaceWidth, 0) / 2);
+ }
+
+ if (settings.bottom !== false) {
+ top += Math.max($window.height() - settings.h - loadedHeight - interfaceHeight - setSize(settings.bottom, 'y'), 0);
+ } else if (settings.top !== false) {
+ top += setSize(settings.top, 'y');
+ } else {
+ top += Math.round(Math.max($window.height() - settings.h - loadedHeight - interfaceHeight, 0) / 2);
+ }
+
+ $box.css({top: offset.top, left: offset.left, visibility:'visible'});
+
+ // setting the speed to 0 to reduce the delay between same-sized content.
+ speed = ($box.width() === settings.w + loadedWidth && $box.height() === settings.h + loadedHeight) ? 0 : speed || 0;
+
+ // this gives the wrapper plenty of breathing room so it's floated contents can move around smoothly,
+ // but it has to be shrank down around the size of div#colorbox when it's done. If not,
+ // it can invoke an obscure IE bug when using iframes.
+ $wrap[0].style.width = $wrap[0].style.height = "9999px";
+
+ function modalDimensions(that) {
+ $topBorder[0].style.width = $bottomBorder[0].style.width = $content[0].style.width = (parseInt(that.style.width,10) - interfaceWidth)+'px';
+ $content[0].style.height = $leftBorder[0].style.height = $rightBorder[0].style.height = (parseInt(that.style.height,10) - interfaceHeight)+'px';
+ }
+
+ css = {width: settings.w + loadedWidth + interfaceWidth, height: settings.h + loadedHeight + interfaceHeight, top: top, left: left};
+
+ if(speed===0){ // temporary workaround to side-step jQuery-UI 1.8 bug (http://bugs.jquery.com/ticket/12273)
+ $box.css(css);
+ }
+ $box.dequeue().animate(css, {
+ duration: speed,
+ complete: function () {
+ modalDimensions(this);
+
+ active = false;
+
+ // shrink the wrapper down to exactly the size of colorbox to avoid a bug in IE's iframe implementation.
+ $wrap[0].style.width = (settings.w + loadedWidth + interfaceWidth) + "px";
+ $wrap[0].style.height = (settings.h + loadedHeight + interfaceHeight) + "px";
+
+ if (settings.reposition) {
+ setTimeout(function () { // small delay before binding onresize due to an IE8 bug.
+ $window.bind('resize.' + prefix, publicMethod.position);
+ }, 1);
+ }
+
+ if (loadedCallback) {
+ loadedCallback();
+ }
+ },
+ step: function () {
+ modalDimensions(this);
+ }
+ });
+ };
+
+ publicMethod.resize = function (options) {
+ if (open) {
+ options = options || {};
+
+ if (options.width) {
+ settings.w = setSize(options.width, 'x') - loadedWidth - interfaceWidth;
+ }
+ if (options.innerWidth) {
+ settings.w = setSize(options.innerWidth, 'x');
+ }
+ $loaded.css({width: settings.w});
+
+ if (options.height) {
+ settings.h = setSize(options.height, 'y') - loadedHeight - interfaceHeight;
+ }
+ if (options.innerHeight) {
+ settings.h = setSize(options.innerHeight, 'y');
+ }
+ if (!options.innerHeight && !options.height) {
+ $loaded.css({height: "auto"});
+ settings.h = $loaded.height();
+ }
+ $loaded.css({height: settings.h});
+
+ publicMethod.position(settings.transition === "none" ? 0 : settings.speed);
+ }
+ };
+
+ publicMethod.prep = function (object) {
+ if (!open) {
+ return;
+ }
+
+ var callback, speed = settings.transition === "none" ? 0 : settings.speed;
+
+ $loaded.empty().remove(); // Using empty first may prevent some IE7 issues.
+
+ $loaded = $tag(div, 'LoadedContent').append(object);
+
+ function getWidth() {
+ settings.w = settings.w || $loaded.width();
+ settings.w = settings.mw && settings.mw < settings.w ? settings.mw : settings.w;
+ return settings.w;
+ }
+ function getHeight() {
+ settings.h = settings.h || $loaded.height();
+ settings.h = settings.mh && settings.mh < settings.h ? settings.mh : settings.h;
+ return settings.h;
+ }
+
+ $loaded.hide()
+ .appendTo($loadingBay.show())// content has to be appended to the DOM for accurate size calculations.
+ .css({width: getWidth(), overflow: settings.scrolling ? 'auto' : 'hidden'})
+ .css({height: getHeight()})// sets the height independently from the width in case the new width influences the value of height.
+ .prependTo($content);
+
+ $loadingBay.hide();
+
+ // floating the IMG removes the bottom line-height and fixed a problem where IE miscalculates the width of the parent element as 100% of the document width.
+ //$(photo).css({'float': 'none', marginLeft: 'auto', marginRight: 'auto'});
+
+ $(photo).css({'float': 'none'});
+
+
+ callback = function () {
+ var total = $related.length,
+ iframe,
+ frameBorder = 'frameBorder',
+ allowTransparency = 'allowTransparency',
+ complete;
+
+ if (!open) {
+ return;
+ }
+
+ function removeFilter() {
+ if (isIE) {
+ $box[0].style.removeAttribute('filter');
+ }
+ }
+
+ complete = function () {
+ clearTimeout(loadingTimer);
+ $loadingOverlay.remove();
+ trigger(event_complete, settings.onComplete);
+ };
+
+ if (isIE) {
+ //This fadeIn helps the bicubic resampling to kick-in.
+ if (photo) {
+ $loaded.fadeIn(100);
+ }
+ }
+
+ $title.html(settings.title).add($loaded).show();
+
+ if (total > 1) { // handle grouping
+ if (typeof settings.current === "string") {
+ $current.html(settings.current.replace('{current}', index + 1).replace('{total}', total)).show();
+ }
+
+ $next[(settings.loop || index < total - 1) ? "show" : "hide"]().html(settings.next);
+ $prev[(settings.loop || index) ? "show" : "hide"]().html(settings.previous);
+
+ if (settings.slideshow) {
+ $slideshow.show();
+ }
+
+ // Preloads images within a rel group
+ if (settings.preloading) {
+ $.each([getIndex(-1), getIndex(1)], function(){
+ var src,
+ img,
+ i = $related[this],
+ data = $.data(i, colorbox);
+
+ if (data && data.href) {
+ src = data.href;
+ if ($.isFunction(src)) {
+ src = src.call(i);
+ }
+ } else {
+ src = $(i).attr('href');
+ }
+
+ if (src && (isImage(src) || data.photo)) {
+ img = new Image();
+ img.src = src;
+ }
+ });
+ }
+ } else {
+ $groupControls.hide();
+ }
+
+ if (settings.iframe) {
+ iframe = $tag('iframe')[0];
+
+ if (frameBorder in iframe) {
+ iframe[frameBorder] = 0;
+ }
+
+ if (allowTransparency in iframe) {
+ iframe[allowTransparency] = "true";
+ }
+
+ if (!settings.scrolling) {
+ iframe.scrolling = "no";
+ }
+
+ $(iframe)
+ .attr({
+ src: settings.href,
+ name: (new Date()).getTime(), // give the iframe a unique name to prevent caching
+ 'class': prefix + 'Iframe',
+ allowFullScreen : true, // allow HTML5 video to go fullscreen
+ webkitAllowFullScreen : true,
+ mozallowfullscreen : true
+ })
+ .one('load', complete)
+ .appendTo($loaded);
+
+ $events.one(event_purge, function () {
+ iframe.src = "//about:blank";
+ });
+
+ if (settings.fastIframe) {
+ $(iframe).trigger('load');
+ }
+ } else {
+ complete();
+ }
+
+ if (settings.transition === 'fade') {
+ $box.fadeTo(speed, 1, removeFilter);
+ } else {
+ removeFilter();
+ }
+ };
+
+ if (settings.transition === 'fade') {
+ $box.fadeTo(speed, 0, function () {
+ publicMethod.position(0, callback);
+ });
+ } else {
+ publicMethod.position(speed, callback);
+ }
+ };
+
+ publicMethod.load = function (launched) {
+ var href, setResize, prep = publicMethod.prep, $inline;
+
+ active = true;
+
+ photo = false;
+
+ element = $related[index];
+
+ if (!launched) {
+ makeSettings();
+ }
+
+ if (className) {
+ $box.add($overlay).removeClass(className);
+ }
+ if (settings.className) {
+ $box.add($overlay).addClass(settings.className);
+ }
+ className = settings.className;
+
+ trigger(event_purge);
+
+ trigger(event_load, settings.onLoad);
+
+ settings.h = settings.height ?
+ setSize(settings.height, 'y') - loadedHeight - interfaceHeight :
+ settings.innerHeight && setSize(settings.innerHeight, 'y');
+
+ settings.w = settings.width ?
+ setSize(settings.width, 'x') - loadedWidth - interfaceWidth :
+ settings.innerWidth && setSize(settings.innerWidth, 'x');
+
+ // Sets the minimum dimensions for use in image scaling
+ settings.mw = settings.w;
+ settings.mh = settings.h;
+
+ // Re-evaluate the minimum width and height based on maxWidth and maxHeight values.
+ // If the width or height exceed the maxWidth or maxHeight, use the maximum values instead.
+ if (settings.maxWidth) {
+ settings.mw = setSize(settings.maxWidth, 'x') - loadedWidth - interfaceWidth;
+ settings.mw = settings.w && settings.w < settings.mw ? settings.w : settings.mw;
+ }
+ if (settings.maxHeight) {
+ settings.mh = setSize(settings.maxHeight, 'y') - loadedHeight - interfaceHeight;
+ settings.mh = settings.h && settings.h < settings.mh ? settings.h : settings.mh;
+ }
+
+ href = settings.href;
+
+ loadingTimer = setTimeout(function () {
+ $loadingOverlay.appendTo($content);
+ }, 100);
+
+ if (settings.inline) {
+ // Inserts an empty placeholder where inline content is being pulled from.
+ // An event is bound to put inline content back when ColorBox closes or loads new content.
+ $inline = $tag(div).hide().insertBefore($(href)[0]);
+
+ $events.one(event_purge, function () {
+ $inline.replaceWith($loaded.children());
+ });
+
+ prep($(href));
+ } else if (settings.iframe) {
+ // IFrame element won't be added to the DOM until it is ready to be displayed,
+ // to avoid problems with DOM-ready JS that might be trying to run in that iframe.
+ prep(" ");
+ } else if (settings.html) {
+ prep(settings.html);
+ } else if (isImage(href)) {
+ $(photo = new Image())
+ .addClass(prefix + 'Photo')
+ .bind('error',function () {
+ settings.title = false;
+ prep($tag(div, 'Error').html(settings.imgError));
+ })
+ .one('load', function () {
+ var percent;
+
+ if (settings.scalePhotos) {
+ setResize = function () {
+ photo.height -= photo.height * percent;
+ photo.width -= photo.width * percent;
+ };
+ if (settings.mw && photo.width > settings.mw) {
+ percent = (photo.width - settings.mw) / photo.width;
+ setResize();
+ }
+ if (settings.mh && photo.height > settings.mh) {
+ percent = (photo.height - settings.mh) / photo.height;
+ setResize();
+ }
+ }
+
+ if (settings.h) {
+ photo.style.marginTop = Math.max(settings.mh - photo.height, 0) / 2 + 'px';
+ }
+
+ if ($related[1] && (settings.loop || $related[index + 1])) {
+ photo.style.cursor = 'pointer';
+ photo.onclick = function () {
+ publicMethod.next();
+ };
+ }
+
+ if (isIE) {
+ photo.style.msInterpolationMode = 'bicubic';
+ }
+
+ setTimeout(function () { // A pause because Chrome will sometimes report a 0 by 0 size otherwise.
+ prep(photo);
+ }, 1);
+ });
+
+ setTimeout(function () { // A pause because Opera 10.6+ will sometimes not run the onload function otherwise.
+ photo.src = href;
+ }, 1);
+ } else if (href) {
+ $loadingBay.load(href, settings.data, function (data, status) {
+ prep(status === 'error' ? $tag(div, 'Error').html(settings.xhrError) : $(this).contents());
+ });
+ }
+ };
+
+ // Navigates to the next page/image in a set.
+ publicMethod.next = function () {
+ if (!active && $related[1] && (settings.loop || $related[index + 1])) {
+ index = getIndex(1);
+ publicMethod.load();
+ }
+ };
+
+ publicMethod.prev = function () {
+ if (!active && $related[1] && (settings.loop || index)) {
+ index = getIndex(-1);
+ publicMethod.load();
+ }
+ };
+
+ // Note: to use this within an iframe use the following format: parent.$.fn.colorbox.close();
+ publicMethod.close = function () {
+ if (open && !closing) {
+
+ closing = true;
+
+ open = false;
+
+ trigger(event_cleanup, settings.onCleanup);
+
+ $window.unbind('.' + prefix + ' .' + event_ie6);
+
+ $overlay.fadeTo(200, 0);
+
+ $box.stop().fadeTo(300, 0, function () {
+
+ $box.add($overlay).css({'opacity': 1, cursor: 'auto'}).hide();
+
+ trigger(event_purge);
+
+ $loaded.empty().remove(); // Using empty first may prevent some IE7 issues.
+
+ setTimeout(function () {
+ closing = false;
+ trigger(event_closed, settings.onClosed);
+ }, 1);
+ });
+ }
+ };
+
+ // Removes changes ColorBox made to the document, but does not remove the plugin
+ // from jQuery.
+ publicMethod.remove = function () {
+ $([]).add($box).add($overlay).remove();
+ $box = null;
+ $('.' + boxElement)
+ .removeData(colorbox)
+ .removeClass(boxElement);
+
+ $(document).unbind('click.'+prefix);
+ };
+
+ // A method for fetching the current element ColorBox is referencing.
+ // returns a jQuery object.
+ publicMethod.element = function () {
+ return $(element);
+ };
+
+ publicMethod.settings = defaults;
+
+}(jQuery, document, window));
diff --git a/library/fancybox/jquery.fancybox-1.3.4.js b/library/fancybox/jquery.fancybox-1.3.4.js
index be7727537..43e2cd56b 100644
--- a/library/fancybox/jquery.fancybox-1.3.4.js
+++ b/library/fancybox/jquery.fancybox-1.3.4.js
@@ -26,7 +26,8 @@
titleHeight = 0, titleStr = '', start_pos, final_pos, busy = false, fx = $.extend($('<div/>')[0], { prop: 0 }),
- isIE6 = $.browser.msie && $.browser.version < 7 && !window.XMLHttpRequest,
+ isIE6 = false,
+// $.browser.msie && $.browser.version < 7 && !window.XMLHttpRequest,
/*
* Private methods
@@ -612,7 +613,7 @@
}
if (currentOpts.type == 'iframe') {
- $('<iframe id="fancybox-frame" name="fancybox-frame' + new Date().getTime() + '" frameborder="0" hspace="0" ' + ($.browser.msie ? 'allowtransparency="true""' : '') + ' scrolling="' + selectedOpts.scrolling + '" src="' + currentOpts.href + '"></iframe>').appendTo(content);
+ $('<iframe id="fancybox-frame" name="fancybox-frame' + new Date().getTime() + '" frameborder="0" hspace="0" ' + ' scrolling="' + selectedOpts.scrolling + '" src="' + currentOpts.href + '"></iframe>').appendTo(content);
}
wrap.show();
diff --git a/library/fullcalendar/changelog.txt b/library/fullcalendar/changelog.txt
index 17b31f862..549631ad0 100644
--- a/library/fullcalendar/changelog.txt
+++ b/library/fullcalendar/changelog.txt
@@ -1,4 +1,28 @@
+version 1.6.0 (3/18/13)
+ - visual facelift, with bootstrap-inspired buttons and colors
+ - simplified HTML/CSS for events and buttons
+ - dayRender, for modifying a day cell (issue 191, thx althaus)
+ - week numbers on side of calendar (issue 295)
+ - weekNumber
+ - weekNumberCalculation
+ - weekNumberTitle
+ - "W" formatting variable
+ - finer snapping granularity for agenda view events (issue 495, thx ms-doodle-com)
+ - eventAfterAllRender (issue 753, thx pdrakeweb)
+ - eventDataTransform (thx joeyspo)
+ - data-date attributes on cells (thx Jae)
+ - expose $.fullCalendar.dateFormatters
+ - when clicking fast on buttons, prevent text selection
+ - bundled with latest jQuery (1.9.1) and jQuery UI (1.10.2)
+ - Grunt/Lumbar build system for internal development
+ - build for Bower package manager
+ - build for jQuery plugin site
+
+version 1.5.4 (9/5/12)
+ - made compatible with jQuery 1.8.* (thx archaeron)
+ - bundled with jQuery 1.8.1 and jQuery UI 1.8.23
+
version 1.5.3 (2/6/12)
- fixed dragging issue with jQuery UI 1.8.16 (issue 1168)
- bundled with jQuery 1.7.1 and jQuery UI 1.8.17
diff --git a/library/fullcalendar/fullcalendar.css b/library/fullcalendar/fullcalendar.css
index 04f118493..db0544543 100644
--- a/library/fullcalendar/fullcalendar.css
+++ b/library/fullcalendar/fullcalendar.css
@@ -1,12 +1,7 @@
-/*
- * FullCalendar v1.5.3 Stylesheet
- *
- * Copyright (c) 2011 Adam Shaw
- * Dual licensed under the MIT and GPL licenses, located in
- * MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
- *
- * Date: Mon Feb 6 22:40:40 2012 -0800
- *
+/*!
+ * FullCalendar v1.6.0 Stylesheet
+ * Docs & License: http://arshaw.com/fullcalendar/
+ * (c) 2013 Adam Shaw
*/
@@ -79,11 +74,8 @@ html .fc,
margin-right: -1px;
}
-.fc-header .fc-corner-right {
- margin-right: 1px; /* back to normal */
- }
-
-.fc-header .ui-corner-right {
+.fc-header .fc-corner-right, /* non-theme */
+.fc-header .ui-corner-right { /* theme */
margin-right: 0; /* back to normal */
}
@@ -124,17 +116,17 @@ html .fc,
.fc-widget-header, /* <th>, usually */
.fc-widget-content { /* <td>, usually */
- border: 1px solid #ccc;
+ border: 1px solid #ddd;
}
.fc-state-highlight { /* <td> today cell */ /* TODO: add .fc-today to <th> */
- background: #ffc;
+ background: #fcf8e3;
}
.fc-cell-overlay { /* semi-transparent rectangle while dragging */
- background: #9cf;
- opacity: .2;
- filter: alpha(opacity=20); /* for IE */
+ background: #bce8f1;
+ opacity: .3;
+ filter: alpha(opacity=30); /* for IE */
}
@@ -145,43 +137,54 @@ html .fc,
.fc-button {
position: relative;
display: inline-block;
+ padding: 0 .6em;
+ overflow: hidden;
+ height: 1.9em;
+ line-height: 1.9em;
+ white-space: nowrap;
cursor: pointer;
}
.fc-state-default { /* non-theme */
- border-style: solid;
- border-width: 1px 0;
+ border: 1px solid;
}
-
-.fc-button-inner {
- position: relative;
- float: left;
- overflow: hidden;
+
+.fc-state-default.fc-corner-left { /* non-theme */
+ border-top-left-radius: 4px;
+ border-bottom-left-radius: 4px;
}
-
-.fc-state-default .fc-button-inner { /* non-theme */
- border-style: solid;
- border-width: 0 1px;
+
+.fc-state-default.fc-corner-right { /* non-theme */
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
}
-
-.fc-button-content {
- position: relative;
- float: left;
- height: 1.9em;
- line-height: 1.9em;
- padding: 0 .6em;
- white-space: nowrap;
+
+/*
+ Our default prev/next buttons use HTML entities like &lsaquo; &rsaquo; &laquo; &raquo;
+ and we'll try to make them look good cross-browser.
+*/
+
+.fc-text-arrow {
+ margin: 0 .1em;
+ font-size: 2em;
+ font-family: "Courier New", Courier, monospace;
+ vertical-align: baseline; /* for IE7 */
+ }
+
+.fc-button-prev .fc-text-arrow,
+.fc-button-next .fc-text-arrow { /* for &lsaquo; &rsaquo; */
+ font-weight: bold;
}
/* icon (for jquery ui) */
-.fc-button-content .fc-icon-wrap {
+.fc-button .fc-icon-wrap {
position: relative;
float: left;
top: 50%;
}
-.fc-button-content .ui-icon {
+.fc-button .ui-icon {
position: relative;
float: left;
margin-top: -50%;
@@ -189,107 +192,89 @@ html .fc,
*top: -50%;
}
-/* gloss effect */
-
-.fc-state-default .fc-button-effect {
- position: absolute;
- top: 50%;
- left: 0;
- }
-
-.fc-state-default .fc-button-effect span {
- position: absolute;
- top: -100px;
- left: 0;
- width: 500px;
- height: 100px;
- border-width: 100px 0 0 1px;
- border-style: solid;
- border-color: #fff;
- background: #444;
- opacity: .09;
- filter: alpha(opacity=9);
- }
-
-/* button states (determines colors) */
-
-.fc-state-default,
-.fc-state-default .fc-button-inner {
- border-style: solid;
- border-color: #ccc #bbb #aaa;
- background: #F3F3F3;
- color: #000;
+/*
+ button states
+ borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/)
+*/
+
+.fc-state-default {
+ background-color: #f5f5f5;
+ background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
+ background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
+ background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
+ background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
+ background-repeat: repeat-x;
+ border-color: #e6e6e6 #e6e6e6 #bfbfbf;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ color: #333;
+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
}
-
+
.fc-state-hover,
-.fc-state-hover .fc-button-inner {
- border-color: #999;
- }
-
.fc-state-down,
-.fc-state-down .fc-button-inner {
- border-color: #555;
- background: #777;
- }
-
.fc-state-active,
-.fc-state-active .fc-button-inner {
- border-color: #555;
- background: #777;
- color: #fff;
+.fc-state-disabled {
+ color: #333333;
+ background-color: #e6e6e6;
}
-
-.fc-state-disabled,
-.fc-state-disabled .fc-button-inner {
- color: #999;
- border-color: #ddd;
+
+.fc-state-hover {
+ color: #333333;
+ text-decoration: none;
+ background-position: 0 -15px;
+ -webkit-transition: background-position 0.1s linear;
+ -moz-transition: background-position 0.1s linear;
+ -o-transition: background-position 0.1s linear;
+ transition: background-position 0.1s linear;
}
-
+
+.fc-state-down,
+.fc-state-active {
+ background-color: #cccccc;
+ background-image: none;
+ outline: 0;
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+ }
+
.fc-state-disabled {
cursor: default;
+ background-image: none;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ box-shadow: none;
}
-
-.fc-state-disabled .fc-button-effect {
- display: none;
- }
-
+
/* Global Event Styles
------------------------------------------------------------------------*/
.fc-event {
- border-style: solid;
- border-width: 0;
+ border: 1px solid #3a87ad; /* default BORDER color */
+ background-color: #3a87ad; /* default BACKGROUND color */
+ color: #fff; /* default TEXT color */
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
font-size: .85em;
cursor: default;
}
+
+a.fc-event {
+ text-decoration: none;
+ }
a.fc-event,
.fc-event-draggable {
cursor: pointer;
}
-a.fc-event {
- text-decoration: none;
- }
-
.fc-rtl .fc-event {
text-align: right;
}
-
-.fc-event-skin {
- border-color: #36c; /* default BORDER color */
- background-color: #36c; /* default BACKGROUND color */
- color: #fff; /* default TEXT color */
- }
-
+
.fc-event-inner {
- position: relative;
width: 100%;
- height: 100%;
- border-style: solid;
- border-width: 0;
overflow: hidden;
}
@@ -298,7 +283,7 @@ a.fc-event {
padding: 0 1px;
}
-.fc .ui-resizable-handle { /*** TODO: don't use ui-resizable anymore, change class ***/
+.fc .ui-resizable-handle {
display: block;
position: absolute;
z-index: 99999;
@@ -316,6 +301,20 @@ a.fc-event {
border-width: 1px 0;
margin-bottom: 1px;
}
+
+.fc-ltr .fc-event-hori.fc-event-start,
+.fc-rtl .fc-event-hori.fc-event-end {
+ border-left-width: 1px;
+ border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ }
+
+.fc-ltr .fc-event-hori.fc-event-end,
+.fc-rtl .fc-event-hori.fc-event-start {
+ border-right-width: 1px;
+ border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ }
/* resizable */
@@ -341,66 +340,6 @@ a.fc-event {
-/* Fake Rounded Corners (for buttons and events)
-------------------------------------------------------------*/
-
-.fc-corner-left {
- margin-left: 1px;
- }
-
-.fc-corner-left .fc-button-inner,
-.fc-corner-left .fc-event-inner {
- margin-left: -1px;
- }
-
-.fc-corner-right {
- margin-right: 1px;
- }
-
-.fc-corner-right .fc-button-inner,
-.fc-corner-right .fc-event-inner {
- margin-right: -1px;
- }
-
-.fc-corner-top {
- margin-top: 1px;
- }
-
-.fc-corner-top .fc-event-inner {
- margin-top: -1px;
- }
-
-.fc-corner-bottom {
- margin-bottom: 1px;
- }
-
-.fc-corner-bottom .fc-event-inner {
- margin-bottom: -1px;
- }
-
-
-
-/* Fake Rounded Corners SPECIFICALLY FOR EVENTS
------------------------------------------------------------------*/
-
-.fc-corner-left .fc-event-inner {
- border-left-width: 1px;
- }
-
-.fc-corner-right .fc-event-inner {
- border-right-width: 1px;
- }
-
-.fc-corner-top .fc-event-inner {
- border-top-width: 1px;
- }
-
-.fc-corner-bottom .fc-event-inner {
- border-bottom-width: 1px;
- }
-
-
-
/* Reusable Separate-border Table
------------------------------------------------------------*/
@@ -436,6 +375,15 @@ table.fc-border-separate {
.fc-grid th {
text-align: center;
}
+
+.fc .fc-week-number {
+ width: 22px;
+ text-align: center;
+ }
+
+.fc .fc-week-number div {
+ padding: 0 2px;
+ }
.fc-grid .fc-day-number {
float: right;
@@ -492,6 +440,10 @@ table.fc-border-separate {
white-space: nowrap;
font-weight: normal;
}
+
+.fc-agenda .fc-week-number {
+ font-weight: bold;
+ }
.fc-agenda .fc-day-content {
padding: 2px 2px 1px;
@@ -566,19 +518,28 @@ table.fc-border-separate {
.fc-event-vert {
border-width: 0 1px;
}
-
-.fc-event-vert .fc-event-head,
-.fc-event-vert .fc-event-content {
- position: relative;
- z-index: 2;
- width: 100%;
- overflow: hidden;
+
+.fc-event-vert.fc-event-start {
+ border-top-width: 1px;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+ }
+
+.fc-event-vert.fc-event-end {
+ border-bottom-width: 1px;
+ border-bottom-left-radius: 3px;
+ border-bottom-right-radius: 3px;
}
.fc-event-vert .fc-event-time {
white-space: nowrap;
font-size: 10px;
}
+
+.fc-event-vert .fc-event-inner {
+ position: relative;
+ z-index: 2;
+ }
.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */
position: absolute;
diff --git a/library/fullcalendar/fullcalendar.js b/library/fullcalendar/fullcalendar.js
index 779a313c7..648938fee 100644
--- a/library/fullcalendar/fullcalendar.js
+++ b/library/fullcalendar/fullcalendar.js
@@ -1,23 +1,20 @@
-/**
- * @preserve
- * FullCalendar v1.5.3
- * http://arshaw.com/fullcalendar/
- *
+/*!
+ * FullCalendar v1.6.0
+ * Docs & License: http://arshaw.com/fullcalendar/
+ * (c) 2013 Adam Shaw
+ */
+
+/*
* Use fullcalendar.css for basic styling.
* For event drag & drop, requires jQuery UI draggable.
* For event resizing, requires jQuery UI resizable.
- *
- * Copyright (c) 2011 Adam Shaw
- * Dual licensed under the MIT and GPL licenses, located in
- * MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
- *
- * Date: Mon Feb 6 22:40:40 2012 -0800
- *
*/
(function($, undefined) {
+;;
+
var defaults = {
// display
@@ -29,6 +26,9 @@ var defaults = {
right: 'today prev,next'
},
weekends: true,
+ weekNumbers: false,
+ weekNumberCalculation: 'iso',
+ weekNumberTitle: 'W',
// editing
//editable: false,
@@ -66,10 +66,10 @@ var defaults = {
dayNames: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
dayNamesShort: ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],
buttonText: {
- prev: '&nbsp;&#9668;&nbsp;',
- next: '&nbsp;&#9658;&nbsp;',
- prevYear: '&nbsp;&lt;&lt;&nbsp;',
- nextYear: '&nbsp;&gt;&gt;&nbsp;',
+ prev: "<span class='fc-text-arrow'>&lsaquo;</span>",
+ next: "<span class='fc-text-arrow'>&rsaquo;</span>",
+ prevYear: "<span class='fc-text-arrow'>&laquo;</span>",
+ nextYear: "<span class='fc-text-arrow'>&raquo;</span>",
today: 'today',
month: 'month',
week: 'week',
@@ -98,10 +98,10 @@ var rtlDefaults = {
right: 'title'
},
buttonText: {
- prev: '&nbsp;&#9658;&nbsp;',
- next: '&nbsp;&#9668;&nbsp;',
- prevYear: '&nbsp;&gt;&gt;&nbsp;',
- nextYear: '&nbsp;&lt;&lt;&nbsp;'
+ prev: "<span class='fc-text-arrow'>&rsaquo;</span>",
+ next: "<span class='fc-text-arrow'>&lsaquo;</span>",
+ prevYear: "<span class='fc-text-arrow'>&raquo;</span>",
+ nextYear: "<span class='fc-text-arrow'>&laquo;</span>"
},
buttonIcons: {
prev: 'circle-triangle-e',
@@ -111,7 +111,9 @@ var rtlDefaults = {
-var fc = $.fullCalendar = { version: "1.5.3" };
+;;
+
+var fc = $.fullCalendar = { version: "1.6.0" };
var fcViews = fc.views = {};
@@ -177,6 +179,8 @@ function setDefaults(d) {
+;;
+
function Calendar(element, options, eventSources) {
var t = this;
@@ -258,6 +262,9 @@ function Calendar(element, options, eventSources) {
if (options.isRTL) {
element.addClass('fc-rtl');
}
+ else {
+ element.addClass('fc-ltr');
+ }
if (options.theme) {
element.addClass('ui-widget');
}
@@ -674,6 +681,8 @@ function Calendar(element, options, eventSources) {
}
+;;
+
function Header(calendar, options) {
var t = this;
@@ -747,54 +756,47 @@ function Header(calendar, options) {
var text = smartProperty(options.buttonText, buttonName); // why are we using smartProperty here?
var button = $(
"<span class='fc-button fc-button-" + buttonName + " " + tm + "-state-default'>" +
- "<span class='fc-button-inner'>" +
- "<span class='fc-button-content'>" +
- (icon ?
- "<span class='fc-icon-wrap'>" +
- "<span class='ui-icon ui-icon-" + icon + "'/>" +
- "</span>" :
- text
- ) +
- "</span>" +
- "<span class='fc-button-effect'><span></span></span>" +
- "</span>" +
+ (icon ?
+ "<span class='fc-icon-wrap'>" +
+ "<span class='ui-icon ui-icon-" + icon + "'/>" +
+ "</span>" :
+ text
+ ) +
"</span>"
- );
- if (button) {
- button
- .click(function() {
- if (!button.hasClass(tm + '-state-disabled')) {
- buttonClick();
- }
- })
- .mousedown(function() {
+ )
+ .click(function() {
+ if (!button.hasClass(tm + '-state-disabled')) {
+ buttonClick();
+ }
+ })
+ .mousedown(function() {
+ button
+ .not('.' + tm + '-state-active')
+ .not('.' + tm + '-state-disabled')
+ .addClass(tm + '-state-down');
+ })
+ .mouseup(function() {
+ button.removeClass(tm + '-state-down');
+ })
+ .hover(
+ function() {
button
.not('.' + tm + '-state-active')
.not('.' + tm + '-state-disabled')
- .addClass(tm + '-state-down');
- })
- .mouseup(function() {
- button.removeClass(tm + '-state-down');
- })
- .hover(
- function() {
- button
- .not('.' + tm + '-state-active')
- .not('.' + tm + '-state-disabled')
- .addClass(tm + '-state-hover');
- },
- function() {
- button
- .removeClass(tm + '-state-hover')
- .removeClass(tm + '-state-down');
- }
- )
- .appendTo(e);
- if (!prevButton) {
- button.addClass(tm + '-corner-left');
- }
- prevButton = button;
+ .addClass(tm + '-state-hover');
+ },
+ function() {
+ button
+ .removeClass(tm + '-state-hover')
+ .removeClass(tm + '-state-down');
+ }
+ )
+ .appendTo(e);
+ disableTextSelection(button);
+ if (!prevButton) {
+ button.addClass(tm + '-corner-left');
}
+ prevButton = button;
}
}
});
@@ -839,6 +841,8 @@ function Header(calendar, options) {
}
+;;
+
fc.sourceNormalizers = [];
fc.sourceFetchers = [];
@@ -914,6 +918,16 @@ function EventManager(options, _sources) {
_fetchEventSource(source, function(events) {
if (fetchID == currentFetchID) {
if (events) {
+
+ if (options.eventDataTransform) {
+ events = $.map(events, options.eventDataTransform);
+ }
+ if (source.eventDataTransform) {
+ events = $.map(events, source.eventDataTransform);
+ }
+ // TODO: this technique is not ideal for static array event sources.
+ // For arrays, we'll want to process all events right in the beginning, then never again.
+
for (var i=0; i<events.length; i++) {
events[i].source = source;
normalizeEvent(events[i]);
@@ -1227,6 +1241,8 @@ function EventManager(options, _sources) {
}
+;;
+
fc.addDays = addDays;
fc.cloneDate = cloneDate;
@@ -1581,10 +1597,38 @@ var dateFormatters = {
return 'th';
}
return ['st', 'nd', 'rd'][date%10-1] || 'th';
+ },
+ w : function(d, o) { // local
+ return o.weekNumberCalculation(d);
+ },
+ W : function(d) { // ISO
+ return iso8601Week(d);
}
};
+fc.dateFormatters = dateFormatters;
+
+
+/* thanks jQuery UI (https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js)
+ *
+ * Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
+ * @param date Date - the date to get the week for
+ * @return number - the number of the week within the year that contains this date
+ */
+function iso8601Week(date) {
+ var time;
+ var checkDate = new Date(date.getTime());
+
+ // Find Thursday of this week starting on Monday
+ checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
+
+ time = checkDate.getTime();
+ checkDate.setMonth(0); // Compare with Jan 1
+ checkDate.setDate(1);
+ return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
+}
+;;
fc.applyAll = applyAll;
@@ -1658,7 +1702,7 @@ function sliceSegs(events, visEventEnds, start, end) {
msLength: segEnd - segStart
});
}
- }
+ }
return segs.sort(segCmp);
}
@@ -1742,29 +1786,26 @@ function setOuterHeight(element, height, includeMargins) {
}
-// TODO: curCSS has been deprecated (jQuery 1.4.3 - 10/16/2010)
-
-
function hsides(element, includeMargins) {
return hpadding(element) + hborders(element) + (includeMargins ? hmargins(element) : 0);
}
function hpadding(element) {
- return (parseFloat($.curCSS(element[0], 'paddingLeft', true)) || 0) +
- (parseFloat($.curCSS(element[0], 'paddingRight', true)) || 0);
+ return (parseFloat($.css(element[0], 'paddingLeft', true)) || 0) +
+ (parseFloat($.css(element[0], 'paddingRight', true)) || 0);
}
function hmargins(element) {
- return (parseFloat($.curCSS(element[0], 'marginLeft', true)) || 0) +
- (parseFloat($.curCSS(element[0], 'marginRight', true)) || 0);
+ return (parseFloat($.css(element[0], 'marginLeft', true)) || 0) +
+ (parseFloat($.css(element[0], 'marginRight', true)) || 0);
}
function hborders(element) {
- return (parseFloat($.curCSS(element[0], 'borderLeftWidth', true)) || 0) +
- (parseFloat($.curCSS(element[0], 'borderRightWidth', true)) || 0);
+ return (parseFloat($.css(element[0], 'borderLeftWidth', true)) || 0) +
+ (parseFloat($.css(element[0], 'borderRightWidth', true)) || 0);
}
@@ -1774,20 +1815,20 @@ function vsides(element, includeMargins) {
function vpadding(element) {
- return (parseFloat($.curCSS(element[0], 'paddingTop', true)) || 0) +
- (parseFloat($.curCSS(element[0], 'paddingBottom', true)) || 0);
+ return (parseFloat($.css(element[0], 'paddingTop', true)) || 0) +
+ (parseFloat($.css(element[0], 'paddingBottom', true)) || 0);
}
function vmargins(element) {
- return (parseFloat($.curCSS(element[0], 'marginTop', true)) || 0) +
- (parseFloat($.curCSS(element[0], 'marginBottom', true)) || 0);
+ return (parseFloat($.css(element[0], 'marginTop', true)) || 0) +
+ (parseFloat($.css(element[0], 'marginBottom', true)) || 0);
}
function vborders(element) {
- return (parseFloat($.curCSS(element[0], 'borderTopWidth', true)) || 0) +
- (parseFloat($.curCSS(element[0], 'borderBottomWidth', true)) || 0);
+ return (parseFloat($.css(element[0], 'borderTopWidth', true)) || 0) +
+ (parseFloat($.css(element[0], 'borderBottomWidth', true)) || 0);
}
@@ -1956,6 +1997,7 @@ function firstDefined() {
}
+;;
fcViews.month = MonthView;
@@ -2003,12 +2045,14 @@ function MonthView(element, calendar) {
t.end = end;
t.visStart = visStart;
t.visEnd = visEnd;
- renderBasic(6, rowCnt, nwe ? 5 : 7, true);
+ renderBasic(rowCnt, nwe ? 5 : 7, true);
}
}
+;;
+
fcViews.basicWeek = BasicWeekView;
function BasicWeekView(element, calendar) {
@@ -2049,12 +2093,14 @@ function BasicWeekView(element, calendar) {
t.end = end;
t.visStart = visStart;
t.visEnd = visEnd;
- renderBasic(1, 1, weekends ? 7 : 5, false);
+ renderBasic(1, weekends ? 7 : 5, false);
}
}
+;;
+
fcViews.basicDay = BasicDayView;
//TODO: when calendar's date starts out on a weekend, shouldn't happen
@@ -2086,12 +2132,14 @@ function BasicDayView(element, calendar) {
t.title = formatDate(date, opt('titleFormat'));
t.start = t.visStart = cloneDate(date, true);
t.end = t.visEnd = addDays(cloneDate(t.start), 1);
- renderBasic(1, 1, 1, false);
+ renderBasic(1, 1, false);
}
}
+;;
+
setDefaults({
weekMode: 'fixed'
});
@@ -2144,6 +2192,7 @@ function BasicView(element, calendar, viewName) {
// locals
+ var table;
var head;
var headCells;
var body;
@@ -2156,6 +2205,7 @@ function BasicView(element, calendar, viewName) {
var viewWidth;
var viewHeight;
var colWidth;
+ var weekNumberWidth;
var rowCnt, colCnt;
var coordinateGrid;
@@ -2164,9 +2214,12 @@ function BasicView(element, calendar, viewName) {
var rtl, dis, dit;
var firstDay;
- var nwe;
+ var nwe; // no weekends? a 0 or 1 for easy computations
var tm;
var colFormat;
+ var showWeekNumbers;
+ var weekNumberTitle;
+ var weekNumberFormat;
@@ -2177,17 +2230,17 @@ function BasicView(element, calendar, viewName) {
disableTextSelection(element.addClass('fc-grid'));
- function renderBasic(maxr, r, c, showNumbers) {
+ function renderBasic(r, c, showNumbers) {
rowCnt = r;
colCnt = c;
updateOptions();
var firstTime = !body;
if (firstTime) {
- buildSkeleton(maxr, showNumbers);
+ buildEventContainer();
}else{
clearEvents();
}
- updateCells(firstTime);
+ buildTable(showNumbers);
}
@@ -2205,124 +2258,141 @@ function BasicView(element, calendar, viewName) {
nwe = opt('weekends') ? 0 : 1;
tm = opt('theme') ? 'ui' : 'fc';
colFormat = opt('columnFormat');
+
+ // week # options. (TODO: bad, logic also in other views)
+ showWeekNumbers = opt('weekNumbers');
+ weekNumberTitle = opt('weekNumberTitle');
+ if (opt('weekNumberCalculation') != 'iso') {
+ weekNumberFormat = "w";
+ }
+ else {
+ weekNumberFormat = "W";
+ }
}
- function buildSkeleton(maxRowCnt, showNumbers) {
- var s;
+ function buildEventContainer() {
+ daySegmentContainer =
+ $("<div style='position:absolute;z-index:8;top:0;left:0'/>")
+ .appendTo(element);
+ }
+
+
+
+ function buildTable(showNumbers) {
+ var html = '';
+ var i, j;
var headerClass = tm + "-widget-header";
var contentClass = tm + "-widget-content";
- var i, j;
- var table;
-
- s =
- "<table class='fc-border-separate' style='width:100%' cellspacing='0'>" +
- "<thead>" +
- "<tr>";
+ var month = t.start.getMonth();
+ var today = clearTime(new Date());
+ var cellDate; // not to be confused with local function. TODO: better names
+ var cellClasses;
+ var cell;
+
+ html += "<table class='fc-border-separate' style='width:100%' cellspacing='0'>" +
+ "<thead>" +
+ "<tr>";
+
+ if (showWeekNumbers) {
+ html += "<th class='fc-week-number " + headerClass + "'/>";
+ }
+
for (i=0; i<colCnt; i++) {
- s +=
- "<th class='fc- " + headerClass + "'/>"; // need fc- for setDayID
+ html += "<th class='fc-day-header fc-" + dayIDs[i] + " " + headerClass + "'/>";
}
- s +=
- "</tr>" +
- "</thead>" +
- "<tbody>";
- for (i=0; i<maxRowCnt; i++) {
- s +=
- "<tr class='fc-week" + i + "'>";
+
+ html += "</tr>" +
+ "</thead>" +
+ "<tbody>";
+
+ for (i=0; i<rowCnt; i++) {
+ html += "<tr class='fc-week'>";
+
+ if (showWeekNumbers) {
+ html += "<td class='fc-week-number " + contentClass + "'>" +
+ "<div/>" +
+ "</td>";
+ }
+
for (j=0; j<colCnt; j++) {
- s +=
- "<td class='fc- " + contentClass + " fc-day" + (i*colCnt+j) + "'>" + // need fc- for setDayID
- "<div>" +
- (showNumbers ?
- "<div class='fc-day-number'/>" :
- ''
- ) +
- "<div class='fc-day-content'>" +
- "<div style='position:relative'>&nbsp;</div>" +
- "</div>" +
- "</div>" +
- "</td>";
+ cellDate = _cellDate(i, j); // a little confusing. cellDate is local variable. _cellDate is private function
+
+ cellClasses = [
+ 'fc-day',
+ 'fc-' + dayIDs[cellDate.getDay()],
+ contentClass
+ ];
+ if (cellDate.getMonth() != month) {
+ cellClasses.push('fc-other-month');
+ }
+ if (+cellDate == +today) {
+ cellClasses.push('fc-today');
+ cellClasses.push(tm + '-state-highlight');
+ }
+
+ html += "<td" +
+ " class='" + cellClasses.join(' ') + "'" +
+ " data-date='" + formatDate(cellDate, 'yyyy-MM-dd') + "'" +
+ ">" +
+ "<div>";
+ if (showNumbers) {
+ html += "<div class='fc-day-number'>" + cellDate.getDate() + "</div>";
+ }
+ html += "<div class='fc-day-content'>" +
+ "<div style='position:relative'>&nbsp;</div>" +
+ "</div>" +
+ "</div>" +
+ "</td>";
}
- s +=
- "</tr>";
+
+ html += "</tr>";
}
- s +=
- "</tbody>" +
- "</table>";
- table = $(s).appendTo(element);
-
+ html += "</tbody>" +
+ "</table>";
+
+ lockHeight(); // the unlock happens later, in setHeight()...
+ if (table) {
+ table.remove();
+ }
+ table = $(html).appendTo(element);
+
head = table.find('thead');
- headCells = head.find('th');
+ headCells = head.find('.fc-day-header');
body = table.find('tbody');
bodyRows = body.find('tr');
- bodyCells = body.find('td');
- bodyFirstCells = bodyCells.filter(':first-child');
- bodyCellTopInners = bodyRows.eq(0).find('div.fc-day-content div');
+ bodyCells = body.find('.fc-day');
+ bodyFirstCells = bodyRows.find('td:first-child');
+ bodyCellTopInners = bodyRows.eq(0).find('.fc-day-content > div');
markFirstLast(head.add(head.find('tr'))); // marks first+last tr/th's
markFirstLast(bodyRows); // marks first+last td's
- bodyRows.eq(0).addClass('fc-first'); // fc-last is done in updateCells
-
- dayBind(bodyCells);
-
- daySegmentContainer =
- $("<div style='position:absolute;z-index:8;top:0;left:0'/>")
- .appendTo(element);
- }
+ bodyRows.eq(0).addClass('fc-first');
+ bodyRows.filter(':last').addClass('fc-last');
-
-
- function updateCells(firstTime) {
- var dowDirty = firstTime || rowCnt == 1; // could the cells' day-of-weeks need updating?
- var month = t.start.getMonth();
- var today = clearTime(new Date());
- var cell;
- var date;
- var row;
-
- if (dowDirty) {
- headCells.each(function(i, _cell) {
- cell = $(_cell);
- date = indexDate(i);
- cell.html(formatDate(date, colFormat));
- setDayID(cell, date);
+ if (showWeekNumbers) {
+ head.find('.fc-week-number').text(weekNumberTitle);
+ }
+
+ headCells.each(function(i, _cell) {
+ var date = indexDate(i);
+ $(_cell).text(formatDate(date, colFormat));
+ });
+
+ if (showWeekNumbers) {
+ body.find('.fc-week-number > div').each(function(i, _cell) {
+ var weekStart = _cellDate(i, 0);
+ $(_cell).text(formatDate(weekStart, weekNumberFormat));
});
}
bodyCells.each(function(i, _cell) {
- cell = $(_cell);
- date = indexDate(i);
- if (date.getMonth() == month) {
- cell.removeClass('fc-other-month');
- }else{
- cell.addClass('fc-other-month');
- }
- if (+date == +today) {
- cell.addClass(tm + '-state-highlight fc-today');
- }else{
- cell.removeClass(tm + '-state-highlight fc-today');
- }
- cell.find('div.fc-day-number').text(date.getDate());
- if (dowDirty) {
- setDayID(cell, date);
- }
- });
-
- bodyRows.each(function(i, _row) {
- row = $(_row);
- if (i < rowCnt) {
- row.show();
- if (i == rowCnt-1) {
- row.addClass('fc-last');
- }else{
- row.removeClass('fc-last');
- }
- }else{
- row.hide();
- }
+ var date = indexDate(i);
+ trigger('dayRender', t, date, $(_cell));
});
+
+ dayBind(bodyCells);
}
@@ -2352,13 +2422,20 @@ function BasicView(element, calendar, viewName) {
}
});
+ unlockHeight();
}
function setWidth(width) {
viewWidth = width;
colContentPositions.clear();
- colWidth = Math.floor(viewWidth / colCnt);
+
+ weekNumberWidth = 0;
+ if (showWeekNumbers) {
+ weekNumberWidth = head.find('th.fc-week-number').outerWidth();
+ }
+
+ colWidth = Math.floor((viewWidth - weekNumberWidth) / colCnt);
setOuterWidth(headCells.slice(0, -1), colWidth);
}
@@ -2376,8 +2453,7 @@ function BasicView(element, calendar, viewName) {
function dayClick(ev) {
if (!opt('selectable')) { // if selectable, SelectionManager will worry about dayClick
- var index = parseInt(this.className.match(/fc\-day(\d+)/)[1]); // TODO: maybe use .data
- var date = indexDate(index);
+ var date = parseISO8601($(this).data('date'));
trigger('dayClick', this, date, true, ev);
}
}
@@ -2568,15 +2644,34 @@ function BasicView(element, calendar, viewName) {
function allDayBounds(i) {
+ var left = 0;
+ if (showWeekNumbers) {
+ left += weekNumberWidth;
+ }
return {
- left: 0,
+ left: left,
right: viewWidth
};
}
-
+
+
+
+ // makes sure height doesn't collapse while we destroy/render new cells
+ // (this causes a bad end-user scrollbar jump)
+ // TODO: generalize this for all view rendering. (also in Calendar.js)
+
+ function lockHeight() {
+ setMinHeight(element, element.height());
+ }
+
+ function unlockHeight() {
+ setMinHeight(element, 1);
+ }
}
+;;
+
function BasicEventRenderer() {
var t = this;
@@ -2619,6 +2714,7 @@ function BasicEventRenderer() {
function renderEvents(events, modifiedEventId) {
reportEvents(events);
renderDaySegs(compileSegs(events), modifiedEventId);
+ trigger('eventAfterAllRender');
}
@@ -2718,6 +2814,8 @@ function BasicEventRenderer() {
}
+;;
+
fcViews.agendaWeek = AgendaWeekView;
function AgendaWeekView(element, calendar) {
@@ -2764,6 +2862,8 @@ function AgendaWeekView(element, calendar) {
}
+;;
+
fcViews.agendaDay = AgendaDayView;
function AgendaDayView(element, calendar) {
@@ -2800,6 +2900,8 @@ function AgendaDayView(element, calendar) {
}
+;;
+
setDefaults({
allDaySlot: true,
allDayText: 'all-day',
@@ -2851,7 +2953,8 @@ function AgendaView(element, calendar, viewName) {
t.getRowCnt = function() { return 1 };
t.getColCnt = function() { return colCnt };
t.getColWidth = function() { return colWidth };
- t.getSlotHeight = function() { return slotHeight };
+ t.getSnapHeight = function() { return snapHeight };
+ t.getSnapMinutes = function() { return snapMinutes };
t.defaultSelectionEnd = defaultSelectionEnd;
t.renderDayOverlay = renderDayOverlay;
t.renderSelection = renderSelection;
@@ -2907,7 +3010,10 @@ function AgendaView(element, calendar, viewName) {
var colWidth;
var gutterWidth;
var slotHeight; // TODO: what if slotHeight changes? (see issue 650)
- var savedScrollTop;
+
+ var snapMinutes;
+ var snapRatio; // ratio of number of "selection" slots to normal slots. (ex: 1, 2, 4)
+ var snapHeight; // holds the pixel hight of a "selection" slot
var colCnt;
var slotCnt;
@@ -2915,6 +3021,7 @@ function AgendaView(element, calendar, viewName) {
var hoverListener;
var colContentPositions;
var slotTopCache = {};
+ var savedScrollTop;
var tm;
var firstDay;
@@ -2922,6 +3029,9 @@ function AgendaView(element, calendar, viewName) {
var rtl, dis, dit; // day index sign / translate
var minMinute, maxMinute;
var colFormat;
+ var showWeekNumbers;
+ var weekNumberTitle;
+ var weekNumberFormat;
@@ -2959,6 +3069,18 @@ function AgendaView(element, calendar, viewName) {
minMinute = parseTime(opt('minTime'));
maxMinute = parseTime(opt('maxTime'));
colFormat = opt('columnFormat');
+
+ // week # options. (TODO: bad, logic also in other views)
+ showWeekNumbers = opt('weekNumbers');
+ weekNumberTitle = opt('weekNumberTitle');
+ if (opt('weekNumberCalculation') != 'iso') {
+ weekNumberFormat = "w";
+ }
+ else {
+ weekNumberFormat = "W";
+ }
+
+ snapMinutes = opt('snapMinutes') || opt('slotMinutes');
}
@@ -2976,8 +3098,15 @@ function AgendaView(element, calendar, viewName) {
s =
"<table style='width:100%' class='fc-agenda-days fc-border-separate' cellspacing='0'>" +
"<thead>" +
- "<tr>" +
- "<th class='fc-agenda-axis " + headerClass + "'>&nbsp;</th>";
+ "<tr>";
+
+ if (showWeekNumbers) {
+ s += "<th class='fc-agenda-axis fc-week-number " + headerClass + "'/>";
+ }
+ else {
+ s += "<th class='fc-agenda-axis " + headerClass + "'>&nbsp;</th>";
+ }
+
for (i=0; i<colCnt; i++) {
s +=
"<th class='fc- fc-col" + i + ' ' + headerClass + "'/>"; // fc- needed for setDayID
@@ -3111,6 +3240,18 @@ function AgendaView(element, calendar, viewName) {
var bodyCell;
var date;
var today = clearTime(new Date());
+
+ if (showWeekNumbers) {
+ var weekText = formatDate(colDate(0), weekNumberFormat);
+ if (rtl) {
+ weekText = weekText + weekNumberTitle;
+ }
+ else {
+ weekText = weekNumberTitle + weekText;
+ }
+ dayHead.find('.fc-week-number').text(weekText);
+ }
+
for (i=0; i<colCnt; i++) {
date = colDate(i);
headCell = dayHeadCells.eq(i);
@@ -3149,6 +3290,9 @@ function AgendaView(element, calendar, viewName) {
slotScroller.height(bodyHeight - allDayHeight - 1);
slotHeight = slotTableFirstInner.height() + 1; // +1 for border
+
+ snapRatio = opt('slotMinutes') / snapMinutes;
+ snapHeight = slotHeight / snapRatio;
if (dateChanged) {
resetScroll();
@@ -3337,10 +3481,10 @@ function AgendaView(element, calendar, viewName) {
function constrain(n) {
return Math.max(slotScrollerTop, Math.min(slotScrollerBottom, n));
}
- for (var i=0; i<slotCnt; i++) {
+ for (var i=0; i<slotCnt*snapRatio; i++) { // adapt slot count to increased/decreased selection slot count
rows.push([
- constrain(slotTableTop + slotHeight*i),
- constrain(slotTableTop + slotHeight*(i+1))
+ constrain(slotTableTop + snapHeight*i),
+ constrain(slotTableTop + snapHeight*(i+1))
]);
}
});
@@ -3381,7 +3525,7 @@ function AgendaView(element, calendar, viewName) {
slotIndex--;
}
if (slotIndex >= 0) {
- addMinutes(d, minMinute + slotIndex * opt('slotMinutes'));
+ addMinutes(d, minMinute + slotIndex * snapMinutes);
}
return d;
}
@@ -3544,9 +3688,9 @@ function AgendaView(element, calendar, viewName) {
var d2 = cellDate(cell);
dates = [
d1,
- addMinutes(cloneDate(d1), opt('slotMinutes')),
+ addMinutes(cloneDate(d1), snapMinutes), // calculate minutes depending on selection slot minutes
d2,
- addMinutes(cloneDate(d2), opt('slotMinutes'))
+ addMinutes(cloneDate(d2), snapMinutes)
].sort(cmp);
renderSlotSelection(dates[0], dates[3]);
}else{
@@ -3603,6 +3747,8 @@ function AgendaView(element, calendar, viewName) {
}
+;;
+
function AgendaEventRenderer() {
var t = this;
@@ -3639,7 +3785,8 @@ function AgendaEventRenderer() {
var resizableDayEvent = t.resizableDayEvent; // TODO: streamline binding architecture
var getColCnt = t.getColCnt;
var getColWidth = t.getColWidth;
- var getSlotHeight = t.getSlotHeight;
+ var getSnapHeight = t.getSnapHeight;
+ var getSnapMinutes = t.getSnapMinutes;
var getBodyContent = t.getBodyContent;
var reportEventElement = t.reportEventElement;
var showEvents = t.showEvents;
@@ -3675,6 +3822,7 @@ function AgendaEventRenderer() {
setHeight(); // no params means set to viewHeight
}
renderSlotSegs(compileSlotSegs(slotEvents), modifiedEventId);
+ trigger('eventAfterAllRender');
}
@@ -3760,7 +3908,7 @@ function AgendaEventRenderer() {
vsideCache={},
hsideCache={},
key, val,
- contentElement,
+ titleElement,
height,
slotSegmentContainer = getSlotSegmentContainer(),
rtl, dis, dit,
@@ -3849,9 +3997,9 @@ function AgendaEventRenderer() {
seg.vsides = val === undefined ? (vsideCache[key] = vsides(eventElement, true)) : val;
val = hsideCache[key];
seg.hsides = val === undefined ? (hsideCache[key] = hsides(eventElement, true)) : val;
- contentElement = eventElement.find('div.fc-event-content');
- if (contentElement.length) {
- seg.contentTop = contentElement[0].offsetTop;
+ titleElement = eventElement.find('.fc-event-title');
+ if (titleElement.length) {
+ seg.contentTop = titleElement[0].offsetTop;
}
}
}
@@ -3865,7 +4013,7 @@ function AgendaEventRenderer() {
eventElement[0].style.height = height + 'px';
event = seg.event;
if (seg.contentTop !== undefined && height - seg.contentTop < 10) {
- // not enough room for title, put it in the time header
+ // not enough room for title, put it in the time (TODO: maybe make both display:inline instead)
eventElement.find('div.fc-event-time')
.text(formatDate(event.start, opt('timeFormat')) + ' - ' + event.title);
eventElement.find('div.fc-event-title')
@@ -3882,16 +4030,15 @@ function AgendaEventRenderer() {
var html = "<";
var url = event.url;
var skinCss = getSkinCss(event, opt);
- var skinCssAttr = (skinCss ? " style='" + skinCss + "'" : '');
- var classes = ['fc-event', 'fc-event-skin', 'fc-event-vert'];
+ var classes = ['fc-event', 'fc-event-vert'];
if (isEventDraggable(event)) {
classes.push('fc-event-draggable');
}
if (seg.isStart) {
- classes.push('fc-corner-top');
+ classes.push('fc-event-start');
}
if (seg.isEnd) {
- classes.push('fc-corner-bottom');
+ classes.push('fc-event-end');
}
classes = classes.concat(event.className);
if (event.source) {
@@ -3906,19 +4053,15 @@ function AgendaEventRenderer() {
" class='" + classes.join(' ') + "'" +
" style='position:absolute;z-index:8;top:" + seg.top + "px;left:" + seg.left + "px;" + skinCss + "'" +
">" +
- "<div class='fc-event-inner fc-event-skin'" + skinCssAttr + ">" +
- "<div class='fc-event-head fc-event-skin'" + skinCssAttr + ">" +
+ "<div class='fc-event-inner'>" +
"<div class='fc-event-time'>" +
htmlEscape(formatDates(event.start, event.end, opt('timeFormat'))) +
"</div>" +
- "</div>" +
- "<div class='fc-event-content'>" +
"<div class='fc-event-title'>" +
htmlEscape(event.title) +
"</div>" +
"</div>" +
- "<div class='fc-event-bg'></div>" +
- "</div>"; // close inner
+ "<div class='fc-event-bg'></div>";
if (seg.isEnd && isEventResizable(event)) {
html +=
"<div class='ui-resizable-handle ui-resizable-s'>=</div>";
@@ -3968,7 +4111,8 @@ function AgendaEventRenderer() {
var dis = opt('isRTL') ? -1 : 1;
var hoverListener = getHoverListener();
var colWidth = getColWidth();
- var slotHeight = getSlotHeight();
+ var snapHeight = getSnapHeight();
+ var snapMinutes = getSnapMinutes();
var minMinute = getMinMinute();
eventElement.draggable({
zIndex: 9,
@@ -3999,9 +4143,9 @@ function AgendaEventRenderer() {
eventElement.width(colWidth - 10); // don't use entire width
setOuterHeight(
eventElement,
- slotHeight * Math.round(
- (event.end ? ((event.end - event.start) / MINUTE_MS) : opt('defaultEventMinutes'))
- / opt('slotMinutes')
+ snapHeight * Math.round(
+ (event.end ? ((event.end - event.start) / MINUTE_MS) : opt('defaultEventMinutes')) /
+ snapMinutes
)
);
eventElement.draggable('option', 'grid', [colWidth, 1]);
@@ -4033,8 +4177,8 @@ function AgendaEventRenderer() {
// changed!
var minuteDelta = 0;
if (!allDay) {
- minuteDelta = Math.round((eventElement.offset().top - getBodyContent().offset().top) / slotHeight)
- * opt('slotMinutes')
+ minuteDelta = Math.round((eventElement.offset().top - getBodyContent().offset().top) / snapHeight)
+ * snapMinutes
+ minMinute
- (event.start.getHours() * 60 + event.start.getMinutes());
}
@@ -4067,11 +4211,12 @@ function AgendaEventRenderer() {
var hoverListener = getHoverListener();
var colCnt = getColCnt();
var colWidth = getColWidth();
- var slotHeight = getSlotHeight();
+ var snapHeight = getSnapHeight();
+ var snapMinutes = getSnapMinutes();
eventElement.draggable({
zIndex: 9,
scroll: false,
- grid: [colWidth, slotHeight],
+ grid: [colWidth, snapHeight],
axis: colCnt==1 ? 'y' : false,
opacity: opt('dragOpacity'),
revertDuration: opt('dragRevertDuration'),
@@ -4105,7 +4250,7 @@ function AgendaEventRenderer() {
}, ev, 'drag');
},
drag: function(ev, ui) {
- minuteDelta = Math.round((ui.position.top - origPosition.top) / slotHeight) * opt('slotMinutes');
+ minuteDelta = Math.round((ui.position.top - origPosition.top) / snapHeight) * snapMinutes;
if (minuteDelta != prevMinuteDelta) {
if (!allDay) {
updateTimeText(minuteDelta);
@@ -4142,7 +4287,7 @@ function AgendaEventRenderer() {
// convert back to original slot-event
if (allDay) {
timeElement.css('display', ''); // show() was causing display=inline
- eventElement.draggable('option', 'grid', [colWidth, slotHeight]);
+ eventElement.draggable('option', 'grid', [colWidth, snapHeight]);
allDay = false;
}
}
@@ -4155,38 +4300,39 @@ function AgendaEventRenderer() {
function resizableSlotEvent(event, eventElement, timeElement) {
- var slotDelta, prevSlotDelta;
- var slotHeight = getSlotHeight();
+ var snapDelta, prevSnapDelta;
+ var snapHeight = getSnapHeight();
+ var snapMinutes = getSnapMinutes();
eventElement.resizable({
handles: {
- s: 'div.ui-resizable-s'
+ s: '.ui-resizable-handle'
},
- grid: slotHeight,
+ grid: snapHeight,
start: function(ev, ui) {
- slotDelta = prevSlotDelta = 0;
+ snapDelta = prevSnapDelta = 0;
hideEvents(event, eventElement);
eventElement.css('z-index', 9);
trigger('eventResizeStart', this, event, ev, ui);
},
resize: function(ev, ui) {
// don't rely on ui.size.height, doesn't take grid into account
- slotDelta = Math.round((Math.max(slotHeight, eventElement.height()) - ui.originalSize.height) / slotHeight);
- if (slotDelta != prevSlotDelta) {
+ snapDelta = Math.round((Math.max(snapHeight, eventElement.height()) - ui.originalSize.height) / snapHeight);
+ if (snapDelta != prevSnapDelta) {
timeElement.text(
formatDates(
event.start,
- (!slotDelta && !event.end) ? null : // no change, so don't display time range
- addMinutes(eventEnd(event), opt('slotMinutes')*slotDelta),
+ (!snapDelta && !event.end) ? null : // no change, so don't display time range
+ addMinutes(eventEnd(event), snapMinutes*snapDelta),
opt('timeFormat')
)
);
- prevSlotDelta = slotDelta;
+ prevSnapDelta = snapDelta;
}
},
stop: function(ev, ui) {
trigger('eventResizeStop', this, event, ev, ui);
- if (slotDelta) {
- eventResize(this, event, 0, opt('slotMinutes')*slotDelta, ev, ui);
+ if (snapDelta) {
+ eventResize(this, event, 0, snapMinutes*snapDelta, ev, ui);
}else{
eventElement.css('z-index', 8);
showEvents(event, eventElement);
@@ -4218,6 +4364,8 @@ function countForwardSegs(levels) {
+;;
+
function View(element, calendar, viewName) {
var t = this;
@@ -4472,6 +4620,8 @@ function View(element, calendar, viewName) {
}
+;;
+
function DayEventRenderer() {
var t = this;
@@ -4609,28 +4759,22 @@ function DayEventRenderer() {
for (i=0; i<segCnt; i++) {
seg = segs[i];
event = seg.event;
- classes = ['fc-event', 'fc-event-skin', 'fc-event-hori'];
+ classes = ['fc-event', 'fc-event-hori'];
if (isEventDraggable(event)) {
classes.push('fc-event-draggable');
}
+ if (seg.isStart) {
+ classes.push('fc-event-start');
+ }
+ if (seg.isEnd) {
+ classes.push('fc-event-end');
+ }
if (rtl) {
- if (seg.isStart) {
- classes.push('fc-corner-right');
- }
- if (seg.isEnd) {
- classes.push('fc-corner-left');
- }
leftCol = dayOfWeekCol(seg.end.getDay()-1);
rightCol = dayOfWeekCol(seg.start.getDay());
left = seg.isEnd ? colContentLeft(leftCol) : minLeft;
right = seg.isStart ? colContentRight(rightCol) : maxLeft;
}else{
- if (seg.isStart) {
- classes.push('fc-corner-left');
- }
- if (seg.isEnd) {
- classes.push('fc-corner-right');
- }
leftCol = dayOfWeekCol(seg.start.getDay());
rightCol = dayOfWeekCol(seg.end.getDay()-1);
left = seg.isStart ? colContentLeft(leftCol) : minLeft;
@@ -4651,10 +4795,7 @@ function DayEventRenderer() {
" class='" + classes.join(' ') + "'" +
" style='position:absolute;z-index:8;left:"+left+"px;" + skinCss + "'" +
">" +
- "<div" +
- " class='fc-event-inner fc-event-skin'" +
- (skinCss ? " style='" + skinCss + "'" : '') +
- ">";
+ "<div class='fc-event-inner'>";
if (!event.allDay && seg.isStart) {
html +=
"<span class='fc-event-time'>" +
@@ -4816,7 +4957,7 @@ function DayEventRenderer() {
var rowDivs = [];
for (i=0; i<rowCnt; i++) {
rowDivs[i] = allDayRow(i)
- .find('td:first div.fc-day-content > div'); // optimal selector?
+ .find('div.fc-day-content > div'); // optimal selector?
}
return rowDivs;
}
@@ -4859,7 +5000,7 @@ function DayEventRenderer() {
function resizableDayEvent(event, element, seg) {
var rtl = opt('isRTL');
var direction = rtl ? 'w' : 'e';
- var handle = element.find('div.ui-resizable-' + direction);
+ var handle = element.find('.ui-resizable-' + direction); // TODO: stop using this class because we aren't using jqui for this
var isResizing = false;
// TODO: look into using jquery-ui mouse widget for this stuff
@@ -4955,6 +5096,8 @@ function DayEventRenderer() {
}
+;;
+
//BUG: unselect needs to be triggered when events are dragged+dropped
function SelectionManager() {
@@ -5052,6 +5195,8 @@ function SelectionManager() {
}
+
+;;
function OverlayManager() {
var t = this;
@@ -5090,6 +5235,8 @@ function OverlayManager() {
}
+;;
+
function CoordinateGrid(buildFunc) {
var t = this;
@@ -5136,6 +5283,8 @@ function CoordinateGrid(buildFunc) {
}
+;;
+
function HoverListener(coordinateGrid) {
@@ -5194,6 +5343,8 @@ function _fixUIEvent(event) { // for issue 1168
event.pageY = event.originalEvent.pageY;
}
}
+;;
+
function HorizontalPositionCache(getElement) {
var t = this,
@@ -5220,5 +5371,7 @@ function HorizontalPositionCache(getElement) {
};
}
-
-})(jQuery);
+
+;;
+
+})(jQuery); \ No newline at end of file
diff --git a/library/fullcalendar/fullcalendar.min.js b/library/fullcalendar/fullcalendar.min.js
index df37bdfd8..2f07418e3 100644
--- a/library/fullcalendar/fullcalendar.min.js
+++ b/library/fullcalendar/fullcalendar.min.js
@@ -1,114 +1,7 @@
-/*
-
- FullCalendar v1.5.3
- http://arshaw.com/fullcalendar/
-
- Use fullcalendar.css for basic styling.
- For event drag & drop, requires jQuery UI draggable.
- For event resizing, requires jQuery UI resizable.
-
- Copyright (c) 2011 Adam Shaw
- Dual licensed under the MIT and GPL licenses, located in
- MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
-
- Date: Mon Feb 6 22:40:40 2012 -0800
-
-*/
-(function(m,ma){function wb(a){m.extend(true,Ya,a)}function Yb(a,b,e){function d(k){if(E){u();q();na();S(k)}else f()}function f(){B=b.theme?"ui":"fc";a.addClass("fc");b.isRTL&&a.addClass("fc-rtl");b.theme&&a.addClass("ui-widget");E=m("<div class='fc-content' style='position:relative'/>").prependTo(a);C=new Zb(X,b);(P=C.render())&&a.prepend(P);y(b.defaultView);m(window).resize(oa);t()||g()}function g(){setTimeout(function(){!n.start&&t()&&S()},0)}function l(){m(window).unbind("resize",oa);C.destroy();
-E.remove();a.removeClass("fc fc-rtl ui-widget")}function j(){return i.offsetWidth!==0}function t(){return m("body")[0].offsetWidth!==0}function y(k){if(!n||k!=n.name){F++;pa();var D=n,Z;if(D){(D.beforeHide||xb)();Za(E,E.height());D.element.hide()}else Za(E,1);E.css("overflow","hidden");if(n=Y[k])n.element.show();else n=Y[k]=new Ja[k](Z=s=m("<div class='fc-view fc-view-"+k+"' style='position:absolute'/>").appendTo(E),X);D&&C.deactivateButton(D.name);C.activateButton(k);S();E.css("overflow","");D&&
-Za(E,1);Z||(n.afterShow||xb)();F--}}function S(k){if(j()){F++;pa();o===ma&&u();var D=false;if(!n.start||k||r<n.start||r>=n.end){n.render(r,k||0);fa(true);D=true}else if(n.sizeDirty){n.clearEvents();fa();D=true}else if(n.eventsDirty){n.clearEvents();D=true}n.sizeDirty=false;n.eventsDirty=false;ga(D);W=a.outerWidth();C.updateTitle(n.title);k=new Date;k>=n.start&&k<n.end?C.disableButton("today"):C.enableButton("today");F--;n.trigger("viewDisplay",i)}}function Q(){q();if(j()){u();fa();pa();n.clearEvents();
-n.renderEvents(J);n.sizeDirty=false}}function q(){m.each(Y,function(k,D){D.sizeDirty=true})}function u(){o=b.contentHeight?b.contentHeight:b.height?b.height-(P?P.height():0)-Sa(E):Math.round(E.width()/Math.max(b.aspectRatio,0.5))}function fa(k){F++;n.setHeight(o,k);if(s){s.css("position","relative");s=null}n.setWidth(E.width(),k);F--}function oa(){if(!F)if(n.start){var k=++v;setTimeout(function(){if(k==v&&!F&&j())if(W!=(W=a.outerWidth())){F++;Q();n.trigger("windowResize",i);F--}},200)}else g()}function ga(k){if(!b.lazyFetching||
-ya(n.visStart,n.visEnd))ra();else k&&da()}function ra(){K(n.visStart,n.visEnd)}function sa(k){J=k;da()}function ha(k){da(k)}function da(k){na();if(j()){n.clearEvents();n.renderEvents(J,k);n.eventsDirty=false}}function na(){m.each(Y,function(k,D){D.eventsDirty=true})}function ua(k,D,Z){n.select(k,D,Z===ma?true:Z)}function pa(){n&&n.unselect()}function U(){S(-1)}function ca(){S(1)}function ka(){gb(r,-1);S()}function qa(){gb(r,1);S()}function G(){r=new Date;S()}function p(k,D,Z){if(k instanceof Date)r=
-N(k);else yb(r,k,D,Z);S()}function L(k,D,Z){k!==ma&&gb(r,k);D!==ma&&hb(r,D);Z!==ma&&ba(r,Z);S()}function c(){return N(r)}function z(){return n}function H(k,D){if(D===ma)return b[k];if(k=="height"||k=="contentHeight"||k=="aspectRatio"){b[k]=D;Q()}}function T(k,D){if(b[k])return b[k].apply(D||i,Array.prototype.slice.call(arguments,2))}var X=this;X.options=b;X.render=d;X.destroy=l;X.refetchEvents=ra;X.reportEvents=sa;X.reportEventChange=ha;X.rerenderEvents=da;X.changeView=y;X.select=ua;X.unselect=pa;
-X.prev=U;X.next=ca;X.prevYear=ka;X.nextYear=qa;X.today=G;X.gotoDate=p;X.incrementDate=L;X.formatDate=function(k,D){return Oa(k,D,b)};X.formatDates=function(k,D,Z){return ib(k,D,Z,b)};X.getDate=c;X.getView=z;X.option=H;X.trigger=T;$b.call(X,b,e);var ya=X.isFetchNeeded,K=X.fetchEvents,i=a[0],C,P,E,B,n,Y={},W,o,s,v=0,F=0,r=new Date,J=[],M;yb(r,b.year,b.month,b.date);b.droppable&&m(document).bind("dragstart",function(k,D){var Z=k.target,ja=m(Z);if(!ja.parents(".fc").length){var ia=b.dropAccept;if(m.isFunction(ia)?
-ia.call(Z,ja):ja.is(ia)){M=Z;n.dragStart(M,k,D)}}}).bind("dragstop",function(k,D){if(M){n.dragStop(M,k,D);M=null}})}function Zb(a,b){function e(){q=b.theme?"ui":"fc";if(b.header)return Q=m("<table class='fc-header' style='width:100%'/>").append(m("<tr/>").append(f("left")).append(f("center")).append(f("right")))}function d(){Q.remove()}function f(u){var fa=m("<td class='fc-header-"+u+"'/>");(u=b.header[u])&&m.each(u.split(" "),function(oa){oa>0&&fa.append("<span class='fc-header-space'/>");var ga;
-m.each(this.split(","),function(ra,sa){if(sa=="title"){fa.append("<span class='fc-header-title'><h2>&nbsp;</h2></span>");ga&&ga.addClass(q+"-corner-right");ga=null}else{var ha;if(a[sa])ha=a[sa];else if(Ja[sa])ha=function(){na.removeClass(q+"-state-hover");a.changeView(sa)};if(ha){ra=b.theme?jb(b.buttonIcons,sa):null;var da=jb(b.buttonText,sa),na=m("<span class='fc-button fc-button-"+sa+" "+q+"-state-default'><span class='fc-button-inner'><span class='fc-button-content'>"+(ra?"<span class='fc-icon-wrap'><span class='ui-icon ui-icon-"+
-ra+"'/></span>":da)+"</span><span class='fc-button-effect'><span></span></span></span></span>");if(na){na.click(function(){na.hasClass(q+"-state-disabled")||ha()}).mousedown(function(){na.not("."+q+"-state-active").not("."+q+"-state-disabled").addClass(q+"-state-down")}).mouseup(function(){na.removeClass(q+"-state-down")}).hover(function(){na.not("."+q+"-state-active").not("."+q+"-state-disabled").addClass(q+"-state-hover")},function(){na.removeClass(q+"-state-hover").removeClass(q+"-state-down")}).appendTo(fa);
-ga||na.addClass(q+"-corner-left");ga=na}}}});ga&&ga.addClass(q+"-corner-right")});return fa}function g(u){Q.find("h2").html(u)}function l(u){Q.find("span.fc-button-"+u).addClass(q+"-state-active")}function j(u){Q.find("span.fc-button-"+u).removeClass(q+"-state-active")}function t(u){Q.find("span.fc-button-"+u).addClass(q+"-state-disabled")}function y(u){Q.find("span.fc-button-"+u).removeClass(q+"-state-disabled")}var S=this;S.render=e;S.destroy=d;S.updateTitle=g;S.activateButton=l;S.deactivateButton=
-j;S.disableButton=t;S.enableButton=y;var Q=m([]),q}function $b(a,b){function e(c,z){return!ca||c<ca||z>ka}function d(c,z){ca=c;ka=z;L=[];c=++qa;G=z=U.length;for(var H=0;H<z;H++)f(U[H],c)}function f(c,z){g(c,function(H){if(z==qa){if(H){for(var T=0;T<H.length;T++){H[T].source=c;oa(H[T])}L=L.concat(H)}G--;G||ua(L)}})}function g(c,z){var H,T=Aa.sourceFetchers,X;for(H=0;H<T.length;H++){X=T[H](c,ca,ka,z);if(X===true)return;else if(typeof X=="object"){g(X,z);return}}if(H=c.events)if(m.isFunction(H)){u();
-H(N(ca),N(ka),function(C){z(C);fa()})}else m.isArray(H)?z(H):z();else if(c.url){var ya=c.success,K=c.error,i=c.complete;H=m.extend({},c.data||{});T=Ta(c.startParam,a.startParam);X=Ta(c.endParam,a.endParam);if(T)H[T]=Math.round(+ca/1E3);if(X)H[X]=Math.round(+ka/1E3);u();m.ajax(m.extend({},ac,c,{data:H,success:function(C){C=C||[];var P=$a(ya,this,arguments);if(m.isArray(P))C=P;z(C)},error:function(){$a(K,this,arguments);z()},complete:function(){$a(i,this,arguments);fa()}}))}else z()}function l(c){if(c=
-j(c)){G++;f(c,qa)}}function j(c){if(m.isFunction(c)||m.isArray(c))c={events:c};else if(typeof c=="string")c={url:c};if(typeof c=="object"){ga(c);U.push(c);return c}}function t(c){U=m.grep(U,function(z){return!ra(z,c)});L=m.grep(L,function(z){return!ra(z.source,c)});ua(L)}function y(c){var z,H=L.length,T,X=na().defaultEventEnd,ya=c.start-c._start,K=c.end?c.end-(c._end||X(c)):0;for(z=0;z<H;z++){T=L[z];if(T._id==c._id&&T!=c){T.start=new Date(+T.start+ya);T.end=c.end?T.end?new Date(+T.end+K):new Date(+X(T)+
-K):null;T.title=c.title;T.url=c.url;T.allDay=c.allDay;T.className=c.className;T.editable=c.editable;T.color=c.color;T.backgroudColor=c.backgroudColor;T.borderColor=c.borderColor;T.textColor=c.textColor;oa(T)}}oa(c);ua(L)}function S(c,z){oa(c);if(!c.source){if(z){pa.events.push(c);c.source=pa}L.push(c)}ua(L)}function Q(c){if(c){if(!m.isFunction(c)){var z=c+"";c=function(T){return T._id==z}}L=m.grep(L,c,true);for(H=0;H<U.length;H++)if(m.isArray(U[H].events))U[H].events=m.grep(U[H].events,c,true)}else{L=
-[];for(var H=0;H<U.length;H++)if(m.isArray(U[H].events))U[H].events=[]}ua(L)}function q(c){if(m.isFunction(c))return m.grep(L,c);else if(c){c+="";return m.grep(L,function(z){return z._id==c})}return L}function u(){p++||da("loading",null,true)}function fa(){--p||da("loading",null,false)}function oa(c){var z=c.source||{},H=Ta(z.ignoreTimezone,a.ignoreTimezone);c._id=c._id||(c.id===ma?"_fc"+bc++:c.id+"");if(c.date){if(!c.start)c.start=c.date;delete c.date}c._start=N(c.start=kb(c.start,H));c.end=kb(c.end,
-H);if(c.end&&c.end<=c.start)c.end=null;c._end=c.end?N(c.end):null;if(c.allDay===ma)c.allDay=Ta(z.allDayDefault,a.allDayDefault);if(c.className){if(typeof c.className=="string")c.className=c.className.split(/\s+/)}else c.className=[]}function ga(c){if(c.className){if(typeof c.className=="string")c.className=c.className.split(/\s+/)}else c.className=[];for(var z=Aa.sourceNormalizers,H=0;H<z.length;H++)z[H](c)}function ra(c,z){return c&&z&&sa(c)==sa(z)}function sa(c){return(typeof c=="object"?c.events||
-c.url:"")||c}var ha=this;ha.isFetchNeeded=e;ha.fetchEvents=d;ha.addEventSource=l;ha.removeEventSource=t;ha.updateEvent=y;ha.renderEvent=S;ha.removeEvents=Q;ha.clientEvents=q;ha.normalizeEvent=oa;var da=ha.trigger,na=ha.getView,ua=ha.reportEvents,pa={events:[]},U=[pa],ca,ka,qa=0,G=0,p=0,L=[];for(ha=0;ha<b.length;ha++)j(b[ha])}function gb(a,b,e){a.setFullYear(a.getFullYear()+b);e||Ka(a);return a}function hb(a,b,e){if(+a){b=a.getMonth()+b;var d=N(a);d.setDate(1);d.setMonth(b);a.setMonth(b);for(e||Ka(a);a.getMonth()!=
-d.getMonth();)a.setDate(a.getDate()+(a<d?1:-1))}return a}function ba(a,b,e){if(+a){b=a.getDate()+b;var d=N(a);d.setHours(9);d.setDate(b);a.setDate(b);e||Ka(a);lb(a,d)}return a}function lb(a,b){if(+a)for(;a.getDate()!=b.getDate();)a.setTime(+a+(a<b?1:-1)*cc)}function xa(a,b){a.setMinutes(a.getMinutes()+b);return a}function Ka(a){a.setHours(0);a.setMinutes(0);a.setSeconds(0);a.setMilliseconds(0);return a}function N(a,b){if(b)return Ka(new Date(+a));return new Date(+a)}function zb(){var a=0,b;do b=new Date(1970,
-a++,1);while(b.getHours());return b}function Fa(a,b,e){for(b=b||1;!a.getDay()||e&&a.getDay()==1||!e&&a.getDay()==6;)ba(a,b);return a}function Ca(a,b){return Math.round((N(a,true)-N(b,true))/Ab)}function yb(a,b,e,d){if(b!==ma&&b!=a.getFullYear()){a.setDate(1);a.setMonth(0);a.setFullYear(b)}if(e!==ma&&e!=a.getMonth()){a.setDate(1);a.setMonth(e)}d!==ma&&a.setDate(d)}function kb(a,b){if(typeof a=="object")return a;if(typeof a=="number")return new Date(a*1E3);if(typeof a=="string"){if(a.match(/^\d+(\.\d+)?$/))return new Date(parseFloat(a)*
-1E3);if(b===ma)b=true;return Bb(a,b)||(a?new Date(a):null)}return null}function Bb(a,b){a=a.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2})(:?([0-9]{2}))?))?)?)?)?$/);if(!a)return null;var e=new Date(a[1],0,1);if(b||!a[13]){b=new Date(a[1],0,1,9,0);if(a[3]){e.setMonth(a[3]-1);b.setMonth(a[3]-1)}if(a[5]){e.setDate(a[5]);b.setDate(a[5])}lb(e,b);a[7]&&e.setHours(a[7]);a[8]&&e.setMinutes(a[8]);a[10]&&e.setSeconds(a[10]);a[12]&&e.setMilliseconds(Number("0."+
-a[12])*1E3);lb(e,b)}else{e.setUTCFullYear(a[1],a[3]?a[3]-1:0,a[5]||1);e.setUTCHours(a[7]||0,a[8]||0,a[10]||0,a[12]?Number("0."+a[12])*1E3:0);if(a[14]){b=Number(a[16])*60+(a[18]?Number(a[18]):0);b*=a[15]=="-"?1:-1;e=new Date(+e+b*60*1E3)}}return e}function mb(a){if(typeof a=="number")return a*60;if(typeof a=="object")return a.getHours()*60+a.getMinutes();if(a=a.match(/(\d+)(?::(\d+))?\s*(\w+)?/)){var b=parseInt(a[1],10);if(a[3]){b%=12;if(a[3].toLowerCase().charAt(0)=="p")b+=12}return b*60+(a[2]?parseInt(a[2],
-10):0)}}function Oa(a,b,e){return ib(a,null,b,e)}function ib(a,b,e,d){d=d||Ya;var f=a,g=b,l,j=e.length,t,y,S,Q="";for(l=0;l<j;l++){t=e.charAt(l);if(t=="'")for(y=l+1;y<j;y++){if(e.charAt(y)=="'"){if(f){Q+=y==l+1?"'":e.substring(l+1,y);l=y}break}}else if(t=="(")for(y=l+1;y<j;y++){if(e.charAt(y)==")"){l=Oa(f,e.substring(l+1,y),d);if(parseInt(l.replace(/\D/,""),10))Q+=l;l=y;break}}else if(t=="[")for(y=l+1;y<j;y++){if(e.charAt(y)=="]"){t=e.substring(l+1,y);l=Oa(f,t,d);if(l!=Oa(g,t,d))Q+=l;l=y;break}}else if(t==
-"{"){f=b;g=a}else if(t=="}"){f=a;g=b}else{for(y=j;y>l;y--)if(S=dc[e.substring(l,y)]){if(f)Q+=S(f,d);l=y-1;break}if(y==l)if(f)Q+=t}}return Q}function Ua(a){return a.end?ec(a.end,a.allDay):ba(N(a.start),1)}function ec(a,b){a=N(a);return b||a.getHours()||a.getMinutes()?ba(a,1):Ka(a)}function fc(a,b){return(b.msLength-a.msLength)*100+(a.event.start-b.event.start)}function Cb(a,b){return a.end>b.start&&a.start<b.end}function nb(a,b,e,d){var f=[],g,l=a.length,j,t,y,S,Q;for(g=0;g<l;g++){j=a[g];t=j.start;
-y=b[g];if(y>e&&t<d){if(t<e){t=N(e);S=false}else{t=t;S=true}if(y>d){y=N(d);Q=false}else{y=y;Q=true}f.push({event:j,start:t,end:y,isStart:S,isEnd:Q,msLength:y-t})}}return f.sort(fc)}function ob(a){var b=[],e,d=a.length,f,g,l,j;for(e=0;e<d;e++){f=a[e];for(g=0;;){l=false;if(b[g])for(j=0;j<b[g].length;j++)if(Cb(b[g][j],f)){l=true;break}if(l)g++;else break}if(b[g])b[g].push(f);else b[g]=[f]}return b}function Db(a,b,e){a.unbind("mouseover").mouseover(function(d){for(var f=d.target,g;f!=this;){g=f;f=f.parentNode}if((f=
-g._fci)!==ma){g._fci=ma;g=b[f];e(g.event,g.element,g);m(d.target).trigger(d)}d.stopPropagation()})}function Va(a,b,e){for(var d=0,f;d<a.length;d++){f=m(a[d]);f.width(Math.max(0,b-pb(f,e)))}}function Eb(a,b,e){for(var d=0,f;d<a.length;d++){f=m(a[d]);f.height(Math.max(0,b-Sa(f,e)))}}function pb(a,b){return gc(a)+hc(a)+(b?ic(a):0)}function gc(a){return(parseFloat(m.curCSS(a[0],"paddingLeft",true))||0)+(parseFloat(m.curCSS(a[0],"paddingRight",true))||0)}function ic(a){return(parseFloat(m.curCSS(a[0],
-"marginLeft",true))||0)+(parseFloat(m.curCSS(a[0],"marginRight",true))||0)}function hc(a){return(parseFloat(m.curCSS(a[0],"borderLeftWidth",true))||0)+(parseFloat(m.curCSS(a[0],"borderRightWidth",true))||0)}function Sa(a,b){return jc(a)+kc(a)+(b?Fb(a):0)}function jc(a){return(parseFloat(m.curCSS(a[0],"paddingTop",true))||0)+(parseFloat(m.curCSS(a[0],"paddingBottom",true))||0)}function Fb(a){return(parseFloat(m.curCSS(a[0],"marginTop",true))||0)+(parseFloat(m.curCSS(a[0],"marginBottom",true))||0)}
-function kc(a){return(parseFloat(m.curCSS(a[0],"borderTopWidth",true))||0)+(parseFloat(m.curCSS(a[0],"borderBottomWidth",true))||0)}function Za(a,b){b=typeof b=="number"?b+"px":b;a.each(function(e,d){d.style.cssText+=";min-height:"+b+";_height:"+b})}function xb(){}function Gb(a,b){return a-b}function Hb(a){return Math.max.apply(Math,a)}function Pa(a){return(a<10?"0":"")+a}function jb(a,b){if(a[b]!==ma)return a[b];b=b.split(/(?=[A-Z])/);for(var e=b.length-1,d;e>=0;e--){d=a[b[e].toLowerCase()];if(d!==
-ma)return d}return a[""]}function Qa(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#039;").replace(/"/g,"&quot;").replace(/\n/g,"<br />")}function Ib(a){return a.id+"/"+a.className+"/"+a.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/ig,"")}function qb(a){a.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})}function ab(a){a.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")}
-function rb(a,b){a.each(function(e,d){d.className=d.className.replace(/^fc-\w*/,"fc-"+lc[b.getDay()])})}function Jb(a,b){var e=a.source||{},d=a.color,f=e.color,g=b("eventColor"),l=a.backgroundColor||d||e.backgroundColor||f||b("eventBackgroundColor")||g;d=a.borderColor||d||e.borderColor||f||b("eventBorderColor")||g;a=a.textColor||e.textColor||b("eventTextColor");b=[];l&&b.push("background-color:"+l);d&&b.push("border-color:"+d);a&&b.push("color:"+a);return b.join(";")}function $a(a,b,e){if(m.isFunction(a))a=
-[a];if(a){var d,f;for(d=0;d<a.length;d++)f=a[d].apply(b,e)||f;return f}}function Ta(){for(var a=0;a<arguments.length;a++)if(arguments[a]!==ma)return arguments[a]}function mc(a,b){function e(j,t){if(t){hb(j,t);j.setDate(1)}j=N(j,true);j.setDate(1);t=hb(N(j),1);var y=N(j),S=N(t),Q=f("firstDay"),q=f("weekends")?0:1;if(q){Fa(y);Fa(S,-1,true)}ba(y,-((y.getDay()-Math.max(Q,q)+7)%7));ba(S,(7-S.getDay()+Math.max(Q,q))%7);Q=Math.round((S-y)/(Ab*7));if(f("weekMode")=="fixed"){ba(S,(6-Q)*7);Q=6}d.title=l(j,
-f("titleFormat"));d.start=j;d.end=t;d.visStart=y;d.visEnd=S;g(6,Q,q?5:7,true)}var d=this;d.render=e;sb.call(d,a,b,"month");var f=d.opt,g=d.renderBasic,l=b.formatDate}function nc(a,b){function e(j,t){t&&ba(j,t*7);j=ba(N(j),-((j.getDay()-f("firstDay")+7)%7));t=ba(N(j),7);var y=N(j),S=N(t),Q=f("weekends");if(!Q){Fa(y);Fa(S,-1,true)}d.title=l(y,ba(N(S),-1),f("titleFormat"));d.start=j;d.end=t;d.visStart=y;d.visEnd=S;g(1,1,Q?7:5,false)}var d=this;d.render=e;sb.call(d,a,b,"basicWeek");var f=d.opt,g=d.renderBasic,
-l=b.formatDates}function oc(a,b){function e(j,t){if(t){ba(j,t);f("weekends")||Fa(j,t<0?-1:1)}d.title=l(j,f("titleFormat"));d.start=d.visStart=N(j,true);d.end=d.visEnd=ba(N(d.start),1);g(1,1,1,false)}var d=this;d.render=e;sb.call(d,a,b,"basicDay");var f=d.opt,g=d.renderBasic,l=b.formatDate}function sb(a,b,e){function d(w,I,R,V){v=I;F=R;f();(I=!C)?g(w,V):z();l(I)}function f(){if(k=L("isRTL")){D=-1;Z=F-1}else{D=1;Z=0}ja=L("firstDay");ia=L("weekends")?0:1;la=L("theme")?"ui":"fc";$=L("columnFormat")}function g(w,
-I){var R,V=la+"-widget-header",ea=la+"-widget-content",aa;R="<table class='fc-border-separate' style='width:100%' cellspacing='0'><thead><tr>";for(aa=0;aa<F;aa++)R+="<th class='fc- "+V+"'/>";R+="</tr></thead><tbody>";for(aa=0;aa<w;aa++){R+="<tr class='fc-week"+aa+"'>";for(V=0;V<F;V++)R+="<td class='fc- "+ea+" fc-day"+(aa*F+V)+"'><div>"+(I?"<div class='fc-day-number'/>":"")+"<div class='fc-day-content'><div style='position:relative'>&nbsp;</div></div></div></td>";R+="</tr>"}R+="</tbody></table>";w=
-m(R).appendTo(a);K=w.find("thead");i=K.find("th");C=w.find("tbody");P=C.find("tr");E=C.find("td");B=E.filter(":first-child");n=P.eq(0).find("div.fc-day-content div");ab(K.add(K.find("tr")));ab(P);P.eq(0).addClass("fc-first");y(E);Y=m("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(a)}function l(w){var I=w||v==1,R=p.start.getMonth(),V=Ka(new Date),ea,aa,va;I&&i.each(function(wa,Ga){ea=m(Ga);aa=ca(wa);ea.html(ya(aa,$));rb(ea,aa)});E.each(function(wa,Ga){ea=m(Ga);aa=ca(wa);aa.getMonth()==
-R?ea.removeClass("fc-other-month"):ea.addClass("fc-other-month");+aa==+V?ea.addClass(la+"-state-highlight fc-today"):ea.removeClass(la+"-state-highlight fc-today");ea.find("div.fc-day-number").text(aa.getDate());I&&rb(ea,aa)});P.each(function(wa,Ga){va=m(Ga);if(wa<v){va.show();wa==v-1?va.addClass("fc-last"):va.removeClass("fc-last")}else va.hide()})}function j(w){o=w;w=o-K.height();var I,R,V;if(L("weekMode")=="variable")I=R=Math.floor(w/(v==1?2:6));else{I=Math.floor(w/v);R=w-I*(v-1)}B.each(function(ea,
-aa){if(ea<v){V=m(aa);Za(V.find("> div"),(ea==v-1?R:I)-Sa(V))}})}function t(w){W=w;M.clear();s=Math.floor(W/F);Va(i.slice(0,-1),s)}function y(w){w.click(S).mousedown(X)}function S(w){if(!L("selectable")){var I=parseInt(this.className.match(/fc\-day(\d+)/)[1]);I=ca(I);c("dayClick",this,I,true,w)}}function Q(w,I,R){R&&r.build();R=N(p.visStart);for(var V=ba(N(R),F),ea=0;ea<v;ea++){var aa=new Date(Math.max(R,w)),va=new Date(Math.min(V,I));if(aa<va){var wa;if(k){wa=Ca(va,R)*D+Z+1;aa=Ca(aa,R)*D+Z+1}else{wa=
-Ca(aa,R);aa=Ca(va,R)}y(q(ea,wa,ea,aa-1))}ba(R,7);ba(V,7)}}function q(w,I,R,V){w=r.rect(w,I,R,V,a);return H(w,a)}function u(w){return N(w)}function fa(w,I){Q(w,ba(N(I),1),true)}function oa(){T()}function ga(w,I,R){var V=ua(w);c("dayClick",E[V.row*F+V.col],w,I,R)}function ra(w,I){J.start(function(R){T();R&&q(R.row,R.col,R.row,R.col)},I)}function sa(w,I,R){var V=J.stop();T();if(V){V=pa(V);c("drop",w,V,true,I,R)}}function ha(w){return N(w.start)}function da(w){return M.left(w)}function na(w){return M.right(w)}
-function ua(w){return{row:Math.floor(Ca(w,p.visStart)/7),col:ka(w.getDay())}}function pa(w){return U(w.row,w.col)}function U(w,I){return ba(N(p.visStart),w*7+I*D+Z)}function ca(w){return U(Math.floor(w/F),w%F)}function ka(w){return(w-Math.max(ja,ia)+F)%F*D+Z}function qa(w){return P.eq(w)}function G(){return{left:0,right:W}}var p=this;p.renderBasic=d;p.setHeight=j;p.setWidth=t;p.renderDayOverlay=Q;p.defaultSelectionEnd=u;p.renderSelection=fa;p.clearSelection=oa;p.reportDayClick=ga;p.dragStart=ra;p.dragStop=
-sa;p.defaultEventEnd=ha;p.getHoverListener=function(){return J};p.colContentLeft=da;p.colContentRight=na;p.dayOfWeekCol=ka;p.dateCell=ua;p.cellDate=pa;p.cellIsAllDay=function(){return true};p.allDayRow=qa;p.allDayBounds=G;p.getRowCnt=function(){return v};p.getColCnt=function(){return F};p.getColWidth=function(){return s};p.getDaySegmentContainer=function(){return Y};Kb.call(p,a,b,e);Lb.call(p);Mb.call(p);pc.call(p);var L=p.opt,c=p.trigger,z=p.clearEvents,H=p.renderOverlay,T=p.clearOverlays,X=p.daySelectionMousedown,
-ya=b.formatDate,K,i,C,P,E,B,n,Y,W,o,s,v,F,r,J,M,k,D,Z,ja,ia,la,$;qb(a.addClass("fc-grid"));r=new Nb(function(w,I){var R,V,ea;i.each(function(aa,va){R=m(va);V=R.offset().left;if(aa)ea[1]=V;ea=[V];I[aa]=ea});ea[1]=V+R.outerWidth();P.each(function(aa,va){if(aa<v){R=m(va);V=R.offset().top;if(aa)ea[1]=V;ea=[V];w[aa]=ea}});ea[1]=V+R.outerHeight()});J=new Ob(r);M=new Pb(function(w){return n.eq(w)})}function pc(){function a(U,ca){S(U);ua(e(U),ca)}function b(){Q();ga().empty()}function e(U){var ca=da(),ka=
-na(),qa=N(g.visStart);ka=ba(N(qa),ka);var G=m.map(U,Ua),p,L,c,z,H,T,X=[];for(p=0;p<ca;p++){L=ob(nb(U,G,qa,ka));for(c=0;c<L.length;c++){z=L[c];for(H=0;H<z.length;H++){T=z[H];T.row=p;T.level=c;X.push(T)}}ba(qa,7);ba(ka,7)}return X}function d(U,ca,ka){t(U)&&f(U,ca);ka.isEnd&&y(U)&&pa(U,ca,ka);q(U,ca)}function f(U,ca){var ka=ra(),qa;ca.draggable({zIndex:9,delay:50,opacity:l("dragOpacity"),revertDuration:l("dragRevertDuration"),start:function(G,p){j("eventDragStart",ca,U,G,p);fa(U,ca);ka.start(function(L,
-c,z,H){ca.draggable("option","revert",!L||!z&&!H);ha();if(L){qa=z*7+H*(l("isRTL")?-1:1);sa(ba(N(U.start),qa),ba(Ua(U),qa))}else qa=0},G,"drag")},stop:function(G,p){ka.stop();ha();j("eventDragStop",ca,U,G,p);if(qa)oa(this,U,qa,0,U.allDay,G,p);else{ca.css("filter","");u(U,ca)}}})}var g=this;g.renderEvents=a;g.compileDaySegs=e;g.clearEvents=b;g.bindDaySeg=d;Qb.call(g);var l=g.opt,j=g.trigger,t=g.isEventDraggable,y=g.isEventResizable,S=g.reportEvents,Q=g.reportEventClear,q=g.eventElementHandlers,u=g.showEvents,
-fa=g.hideEvents,oa=g.eventDrop,ga=g.getDaySegmentContainer,ra=g.getHoverListener,sa=g.renderDayOverlay,ha=g.clearOverlays,da=g.getRowCnt,na=g.getColCnt,ua=g.renderDaySegs,pa=g.resizableDayEvent}function qc(a,b){function e(j,t){t&&ba(j,t*7);j=ba(N(j),-((j.getDay()-f("firstDay")+7)%7));t=ba(N(j),7);var y=N(j),S=N(t),Q=f("weekends");if(!Q){Fa(y);Fa(S,-1,true)}d.title=l(y,ba(N(S),-1),f("titleFormat"));d.start=j;d.end=t;d.visStart=y;d.visEnd=S;g(Q?7:5)}var d=this;d.render=e;Rb.call(d,a,b,"agendaWeek");
-var f=d.opt,g=d.renderAgenda,l=b.formatDates}function rc(a,b){function e(j,t){if(t){ba(j,t);f("weekends")||Fa(j,t<0?-1:1)}t=N(j,true);var y=ba(N(t),1);d.title=l(j,f("titleFormat"));d.start=d.visStart=t;d.end=d.visEnd=y;g(1)}var d=this;d.render=e;Rb.call(d,a,b,"agendaDay");var f=d.opt,g=d.renderAgenda,l=b.formatDate}function Rb(a,b,e){function d(h){Ba=h;f();v?P():g();l()}function f(){Wa=i("theme")?"ui":"fc";Sb=i("weekends")?0:1;Tb=i("firstDay");if(Ub=i("isRTL")){Ha=-1;Ia=Ba-1}else{Ha=1;Ia=0}La=mb(i("minTime"));
-bb=mb(i("maxTime"));Vb=i("columnFormat")}function g(){var h=Wa+"-widget-header",O=Wa+"-widget-content",x,A,ta,za,Da,Ea=i("slotMinutes")%15==0;x="<table style='width:100%' class='fc-agenda-days fc-border-separate' cellspacing='0'><thead><tr><th class='fc-agenda-axis "+h+"'>&nbsp;</th>";for(A=0;A<Ba;A++)x+="<th class='fc- fc-col"+A+" "+h+"'/>";x+="<th class='fc-agenda-gutter "+h+"'>&nbsp;</th></tr></thead><tbody><tr><th class='fc-agenda-axis "+h+"'>&nbsp;</th>";for(A=0;A<Ba;A++)x+="<td class='fc- fc-col"+
-A+" "+O+"'><div><div class='fc-day-content'><div style='position:relative'>&nbsp;</div></div></div></td>";x+="<td class='fc-agenda-gutter "+O+"'>&nbsp;</td></tr></tbody></table>";v=m(x).appendTo(a);F=v.find("thead");r=F.find("th").slice(1,-1);J=v.find("tbody");M=J.find("td").slice(0,-1);k=M.find("div.fc-day-content div");D=M.eq(0);Z=D.find("> div");ab(F.add(F.find("tr")));ab(J.add(J.find("tr")));aa=F.find("th:first");va=v.find(".fc-agenda-gutter");ja=m("<div style='position:absolute;z-index:2;left:0;width:100%'/>").appendTo(a);
-if(i("allDaySlot")){ia=m("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(ja);x="<table style='width:100%' class='fc-agenda-allday' cellspacing='0'><tr><th class='"+h+" fc-agenda-axis'>"+i("allDayText")+"</th><td><div class='fc-day-content'><div style='position:relative'/></div></td><th class='"+h+" fc-agenda-gutter'>&nbsp;</th></tr></table>";la=m(x).appendTo(ja);$=la.find("tr");q($.find("td"));aa=aa.add(la.find("th:first"));va=va.add(la.find("th.fc-agenda-gutter"));ja.append("<div class='fc-agenda-divider "+
-h+"'><div class='fc-agenda-divider-inner'/></div>")}else ia=m([]);w=m("<div style='position:absolute;width:100%;overflow-x:hidden;overflow-y:auto'/>").appendTo(ja);I=m("<div style='position:relative;width:100%;overflow:hidden'/>").appendTo(w);R=m("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(I);x="<table class='fc-agenda-slots' style='width:100%' cellspacing='0'><tbody>";ta=zb();za=xa(N(ta),bb);xa(ta,La);for(A=tb=0;ta<za;A++){Da=ta.getMinutes();x+="<tr class='fc-slot"+A+" "+
-(!Da?"":"fc-minor")+"'><th class='fc-agenda-axis "+h+"'>"+(!Ea||!Da?s(ta,i("axisFormat")):"&nbsp;")+"</th><td class='"+O+"'><div style='position:relative'>&nbsp;</div></td></tr>";xa(ta,i("slotMinutes"));tb++}x+="</tbody></table>";V=m(x).appendTo(I);ea=V.find("div:first");u(V.find("td"));aa=aa.add(V.find("th:first"))}function l(){var h,O,x,A,ta=Ka(new Date);for(h=0;h<Ba;h++){A=ua(h);O=r.eq(h);O.html(s(A,Vb));x=M.eq(h);+A==+ta?x.addClass(Wa+"-state-highlight fc-today"):x.removeClass(Wa+"-state-highlight fc-today");
-rb(O.add(x),A)}}function j(h,O){if(h===ma)h=Wb;Wb=h;ub={};var x=J.position().top,A=w.position().top;h=Math.min(h-x,V.height()+A+1);Z.height(h-Sa(D));ja.css("top",x);w.height(h-A-1);Xa=ea.height()+1;O&&y()}function t(h){Ga=h;cb.clear();Ma=0;Va(aa.width("").each(function(O,x){Ma=Math.max(Ma,m(x).outerWidth())}),Ma);h=w[0].clientWidth;if(vb=w.width()-h){Va(va,vb);va.show().prev().removeClass("fc-last")}else va.hide().prev().addClass("fc-last");db=Math.floor((h-Ma)/Ba);Va(r.slice(0,-1),db)}function y(){function h(){w.scrollTop(A)}
-var O=zb(),x=N(O);x.setHours(i("firstHour"));var A=ca(O,x)+1;h();setTimeout(h,0)}function S(){Xb=w.scrollTop()}function Q(){w.scrollTop(Xb)}function q(h){h.click(fa).mousedown(W)}function u(h){h.click(fa).mousedown(H)}function fa(h){if(!i("selectable")){var O=Math.min(Ba-1,Math.floor((h.pageX-v.offset().left-Ma)/db)),x=ua(O),A=this.parentNode.className.match(/fc-slot(\d+)/);if(A){A=parseInt(A[1])*i("slotMinutes");var ta=Math.floor(A/60);x.setHours(ta);x.setMinutes(A%60+La);C("dayClick",M[O],x,false,
-h)}else C("dayClick",M[O],x,true,h)}}function oa(h,O,x){x&&Na.build();var A=N(K.visStart);if(Ub){x=Ca(O,A)*Ha+Ia+1;h=Ca(h,A)*Ha+Ia+1}else{x=Ca(h,A);h=Ca(O,A)}x=Math.max(0,x);h=Math.min(Ba,h);x<h&&q(ga(0,x,0,h-1))}function ga(h,O,x,A){h=Na.rect(h,O,x,A,ja);return E(h,ja)}function ra(h,O){for(var x=N(K.visStart),A=ba(N(x),1),ta=0;ta<Ba;ta++){var za=new Date(Math.max(x,h)),Da=new Date(Math.min(A,O));if(za<Da){var Ea=ta*Ha+Ia;Ea=Na.rect(0,Ea,0,Ea,I);za=ca(x,za);Da=ca(x,Da);Ea.top=za;Ea.height=Da-za;u(E(Ea,
-I))}ba(x,1);ba(A,1)}}function sa(h){return cb.left(h)}function ha(h){return cb.right(h)}function da(h){return{row:Math.floor(Ca(h,K.visStart)/7),col:U(h.getDay())}}function na(h){var O=ua(h.col);h=h.row;i("allDaySlot")&&h--;h>=0&&xa(O,La+h*i("slotMinutes"));return O}function ua(h){return ba(N(K.visStart),h*Ha+Ia)}function pa(h){return i("allDaySlot")&&!h.row}function U(h){return(h-Math.max(Tb,Sb)+Ba)%Ba*Ha+Ia}function ca(h,O){h=N(h,true);if(O<xa(N(h),La))return 0;if(O>=xa(N(h),bb))return V.height();
-h=i("slotMinutes");O=O.getHours()*60+O.getMinutes()-La;var x=Math.floor(O/h),A=ub[x];if(A===ma)A=ub[x]=V.find("tr:eq("+x+") td div")[0].offsetTop;return Math.max(0,Math.round(A-1+Xa*(O%h/h)))}function ka(){return{left:Ma,right:Ga-vb}}function qa(){return $}function G(h){var O=N(h.start);if(h.allDay)return O;return xa(O,i("defaultEventMinutes"))}function p(h,O){if(O)return N(h);return xa(N(h),i("slotMinutes"))}function L(h,O,x){if(x)i("allDaySlot")&&oa(h,ba(N(O),1),true);else c(h,O)}function c(h,O){var x=
-i("selectHelper");Na.build();if(x){var A=Ca(h,K.visStart)*Ha+Ia;if(A>=0&&A<Ba){A=Na.rect(0,A,0,A,I);var ta=ca(h,h),za=ca(h,O);if(za>ta){A.top=ta;A.height=za-ta;A.left+=2;A.width-=5;if(m.isFunction(x)){if(h=x(h,O)){A.position="absolute";A.zIndex=8;wa=m(h).css(A).appendTo(I)}}else{A.isStart=true;A.isEnd=true;wa=m(o({title:"",start:h,end:O,className:["fc-select-helper"],editable:false},A));wa.css("opacity",i("dragOpacity"))}if(wa){u(wa);I.append(wa);Va(wa,A.width,true);Eb(wa,A.height,true)}}}}else ra(h,
-O)}function z(){B();if(wa){wa.remove();wa=null}}function H(h){if(h.which==1&&i("selectable")){Y(h);var O;Ra.start(function(x,A){z();if(x&&x.col==A.col&&!pa(x)){A=na(A);x=na(x);O=[A,xa(N(A),i("slotMinutes")),x,xa(N(x),i("slotMinutes"))].sort(Gb);c(O[0],O[3])}else O=null},h);m(document).one("mouseup",function(x){Ra.stop();if(O){+O[0]==+O[1]&&T(O[0],false,x);n(O[0],O[3],false,x)}})}}function T(h,O,x){C("dayClick",M[U(h.getDay())],h,O,x)}function X(h,O){Ra.start(function(x){B();if(x)if(pa(x))ga(x.row,
-x.col,x.row,x.col);else{x=na(x);var A=xa(N(x),i("defaultEventMinutes"));ra(x,A)}},O)}function ya(h,O,x){var A=Ra.stop();B();A&&C("drop",h,na(A),pa(A),O,x)}var K=this;K.renderAgenda=d;K.setWidth=t;K.setHeight=j;K.beforeHide=S;K.afterShow=Q;K.defaultEventEnd=G;K.timePosition=ca;K.dayOfWeekCol=U;K.dateCell=da;K.cellDate=na;K.cellIsAllDay=pa;K.allDayRow=qa;K.allDayBounds=ka;K.getHoverListener=function(){return Ra};K.colContentLeft=sa;K.colContentRight=ha;K.getDaySegmentContainer=function(){return ia};
-K.getSlotSegmentContainer=function(){return R};K.getMinMinute=function(){return La};K.getMaxMinute=function(){return bb};K.getBodyContent=function(){return I};K.getRowCnt=function(){return 1};K.getColCnt=function(){return Ba};K.getColWidth=function(){return db};K.getSlotHeight=function(){return Xa};K.defaultSelectionEnd=p;K.renderDayOverlay=oa;K.renderSelection=L;K.clearSelection=z;K.reportDayClick=T;K.dragStart=X;K.dragStop=ya;Kb.call(K,a,b,e);Lb.call(K);Mb.call(K);sc.call(K);var i=K.opt,C=K.trigger,
-P=K.clearEvents,E=K.renderOverlay,B=K.clearOverlays,n=K.reportSelection,Y=K.unselect,W=K.daySelectionMousedown,o=K.slotSegHtml,s=b.formatDate,v,F,r,J,M,k,D,Z,ja,ia,la,$,w,I,R,V,ea,aa,va,wa,Ga,Wb,Ma,db,vb,Xa,Xb,Ba,tb,Na,Ra,cb,ub={},Wa,Tb,Sb,Ub,Ha,Ia,La,bb,Vb;qb(a.addClass("fc-agenda"));Na=new Nb(function(h,O){function x(eb){return Math.max(Ea,Math.min(tc,eb))}var A,ta,za;r.each(function(eb,uc){A=m(uc);ta=A.offset().left;if(eb)za[1]=ta;za=[ta];O[eb]=za});za[1]=ta+A.outerWidth();if(i("allDaySlot")){A=
-$;ta=A.offset().top;h[0]=[ta,ta+A.outerHeight()]}for(var Da=I.offset().top,Ea=w.offset().top,tc=Ea+w.outerHeight(),fb=0;fb<tb;fb++)h.push([x(Da+Xa*fb),x(Da+Xa*(fb+1))])});Ra=new Ob(Na);cb=new Pb(function(h){return k.eq(h)})}function sc(){function a(o,s){sa(o);var v,F=o.length,r=[],J=[];for(v=0;v<F;v++)o[v].allDay?r.push(o[v]):J.push(o[v]);if(u("allDaySlot")){L(e(r),s);na()}g(d(J),s)}function b(){ha();ua().empty();pa().empty()}function e(o){o=ob(nb(o,m.map(o,Ua),q.visStart,q.visEnd));var s,v=o.length,
-F,r,J,M=[];for(s=0;s<v;s++){F=o[s];for(r=0;r<F.length;r++){J=F[r];J.row=0;J.level=s;M.push(J)}}return M}function d(o){var s=z(),v=ka(),F=ca(),r=xa(N(q.visStart),v),J=m.map(o,f),M,k,D,Z,ja,ia,la=[];for(M=0;M<s;M++){k=ob(nb(o,J,r,xa(N(r),F-v)));vc(k);for(D=0;D<k.length;D++){Z=k[D];for(ja=0;ja<Z.length;ja++){ia=Z[ja];ia.col=M;ia.level=D;la.push(ia)}}ba(r,1,true)}return la}function f(o){return o.end?N(o.end):xa(N(o.start),u("defaultEventMinutes"))}function g(o,s){var v,F=o.length,r,J,M,k,D,Z,ja,ia,la,
-$="",w,I,R={},V={},ea=pa(),aa;v=z();if(w=u("isRTL")){I=-1;aa=v-1}else{I=1;aa=0}for(v=0;v<F;v++){r=o[v];J=r.event;M=qa(r.start,r.start);k=qa(r.start,r.end);D=r.col;Z=r.level;ja=r.forward||0;ia=G(D*I+aa);la=p(D*I+aa)-ia;la=Math.min(la-6,la*0.95);D=Z?la/(Z+ja+1):ja?(la/(ja+1)-6)*2:la;Z=ia+la/(Z+ja+1)*Z*I+(w?la-D:0);r.top=M;r.left=Z;r.outerWidth=D;r.outerHeight=k-M;$+=l(J,r)}ea[0].innerHTML=$;w=ea.children();for(v=0;v<F;v++){r=o[v];J=r.event;$=m(w[v]);I=fa("eventRender",J,J,$);if(I===false)$.remove();
-else{if(I&&I!==true){$.remove();$=m(I).css({position:"absolute",top:r.top,left:r.left}).appendTo(ea)}r.element=$;if(J._id===s)t(J,$,r);else $[0]._fci=v;ya(J,$)}}Db(ea,o,t);for(v=0;v<F;v++){r=o[v];if($=r.element){J=R[s=r.key=Ib($[0])];r.vsides=J===ma?(R[s]=Sa($,true)):J;J=V[s];r.hsides=J===ma?(V[s]=pb($,true)):J;s=$.find("div.fc-event-content");if(s.length)r.contentTop=s[0].offsetTop}}for(v=0;v<F;v++){r=o[v];if($=r.element){$[0].style.width=Math.max(0,r.outerWidth-r.hsides)+"px";R=Math.max(0,r.outerHeight-
-r.vsides);$[0].style.height=R+"px";J=r.event;if(r.contentTop!==ma&&R-r.contentTop<10){$.find("div.fc-event-time").text(Y(J.start,u("timeFormat"))+" - "+J.title);$.find("div.fc-event-title").remove()}fa("eventAfterRender",J,J,$)}}}function l(o,s){var v="<",F=o.url,r=Jb(o,u),J=r?" style='"+r+"'":"",M=["fc-event","fc-event-skin","fc-event-vert"];oa(o)&&M.push("fc-event-draggable");s.isStart&&M.push("fc-corner-top");s.isEnd&&M.push("fc-corner-bottom");M=M.concat(o.className);if(o.source)M=M.concat(o.source.className||
-[]);v+=F?"a href='"+Qa(o.url)+"'":"div";v+=" class='"+M.join(" ")+"' style='position:absolute;z-index:8;top:"+s.top+"px;left:"+s.left+"px;"+r+"'><div class='fc-event-inner fc-event-skin'"+J+"><div class='fc-event-head fc-event-skin'"+J+"><div class='fc-event-time'>"+Qa(W(o.start,o.end,u("timeFormat")))+"</div></div><div class='fc-event-content'><div class='fc-event-title'>"+Qa(o.title)+"</div></div><div class='fc-event-bg'></div></div>";if(s.isEnd&&ga(o))v+="<div class='ui-resizable-handle ui-resizable-s'>=</div>";
-v+="</"+(F?"a":"div")+">";return v}function j(o,s,v){oa(o)&&y(o,s,v.isStart);v.isEnd&&ga(o)&&c(o,s,v);da(o,s)}function t(o,s,v){var F=s.find("div.fc-event-time");oa(o)&&S(o,s,F);v.isEnd&&ga(o)&&Q(o,s,F);da(o,s)}function y(o,s,v){function F(){if(!M){s.width(r).height("").draggable("option","grid",null);M=true}}var r,J,M=true,k,D=u("isRTL")?-1:1,Z=U(),ja=H(),ia=T(),la=ka();s.draggable({zIndex:9,opacity:u("dragOpacity","month"),revertDuration:u("dragRevertDuration"),start:function($,w){fa("eventDragStart",
-s,o,$,w);i(o,s);r=s.width();Z.start(function(I,R,V,ea){B();if(I){J=false;k=ea*D;if(I.row)if(v){if(M){s.width(ja-10);Eb(s,ia*Math.round((o.end?(o.end-o.start)/wc:u("defaultEventMinutes"))/u("slotMinutes")));s.draggable("option","grid",[ja,1]);M=false}}else J=true;else{E(ba(N(o.start),k),ba(Ua(o),k));F()}J=J||M&&!k}else{F();J=true}s.draggable("option","revert",J)},$,"drag")},stop:function($,w){Z.stop();B();fa("eventDragStop",s,o,$,w);if(J){F();s.css("filter","");K(o,s)}else{var I=0;M||(I=Math.round((s.offset().top-
-X().offset().top)/ia)*u("slotMinutes")+la-(o.start.getHours()*60+o.start.getMinutes()));C(this,o,k,I,M,$,w)}}})}function S(o,s,v){function F(I){var R=xa(N(o.start),I),V;if(o.end)V=xa(N(o.end),I);v.text(W(R,V,u("timeFormat")))}function r(){if(M){v.css("display","");s.draggable("option","grid",[$,w]);M=false}}var J,M=false,k,D,Z,ja=u("isRTL")?-1:1,ia=U(),la=z(),$=H(),w=T();s.draggable({zIndex:9,scroll:false,grid:[$,w],axis:la==1?"y":false,opacity:u("dragOpacity"),revertDuration:u("dragRevertDuration"),
-start:function(I,R){fa("eventDragStart",s,o,I,R);i(o,s);J=s.position();D=Z=0;ia.start(function(V,ea,aa,va){s.draggable("option","revert",!V);B();if(V){k=va*ja;if(u("allDaySlot")&&!V.row){if(!M){M=true;v.hide();s.draggable("option","grid",null)}E(ba(N(o.start),k),ba(Ua(o),k))}else r()}},I,"drag")},drag:function(I,R){D=Math.round((R.position.top-J.top)/w)*u("slotMinutes");if(D!=Z){M||F(D);Z=D}},stop:function(I,R){var V=ia.stop();B();fa("eventDragStop",s,o,I,R);if(V&&(k||D||M))C(this,o,k,M?0:D,M,I,R);
-else{r();s.css("filter","");s.css(J);F(0);K(o,s)}}})}function Q(o,s,v){var F,r,J=T();s.resizable({handles:{s:"div.ui-resizable-s"},grid:J,start:function(M,k){F=r=0;i(o,s);s.css("z-index",9);fa("eventResizeStart",this,o,M,k)},resize:function(M,k){F=Math.round((Math.max(J,s.height())-k.originalSize.height)/J);if(F!=r){v.text(W(o.start,!F&&!o.end?null:xa(ra(o),u("slotMinutes")*F),u("timeFormat")));r=F}},stop:function(M,k){fa("eventResizeStop",this,o,M,k);if(F)P(this,o,0,u("slotMinutes")*F,M,k);else{s.css("z-index",
-8);K(o,s)}}})}var q=this;q.renderEvents=a;q.compileDaySegs=e;q.clearEvents=b;q.slotSegHtml=l;q.bindDaySeg=j;Qb.call(q);var u=q.opt,fa=q.trigger,oa=q.isEventDraggable,ga=q.isEventResizable,ra=q.eventEnd,sa=q.reportEvents,ha=q.reportEventClear,da=q.eventElementHandlers,na=q.setHeight,ua=q.getDaySegmentContainer,pa=q.getSlotSegmentContainer,U=q.getHoverListener,ca=q.getMaxMinute,ka=q.getMinMinute,qa=q.timePosition,G=q.colContentLeft,p=q.colContentRight,L=q.renderDaySegs,c=q.resizableDayEvent,z=q.getColCnt,
-H=q.getColWidth,T=q.getSlotHeight,X=q.getBodyContent,ya=q.reportEventElement,K=q.showEvents,i=q.hideEvents,C=q.eventDrop,P=q.eventResize,E=q.renderDayOverlay,B=q.clearOverlays,n=q.calendar,Y=n.formatDate,W=n.formatDates}function vc(a){var b,e,d,f,g,l;for(b=a.length-1;b>0;b--){f=a[b];for(e=0;e<f.length;e++){g=f[e];for(d=0;d<a[b-1].length;d++){l=a[b-1][d];if(Cb(g,l))l.forward=Math.max(l.forward||0,(g.forward||0)+1)}}}}function Kb(a,b,e){function d(G,p){G=qa[G];if(typeof G=="object")return jb(G,p||e);
-return G}function f(G,p){return b.trigger.apply(b,[G,p||da].concat(Array.prototype.slice.call(arguments,2),[da]))}function g(G){return j(G)&&!d("disableDragging")}function l(G){return j(G)&&!d("disableResizing")}function j(G){return Ta(G.editable,(G.source||{}).editable,d("editable"))}function t(G){U={};var p,L=G.length,c;for(p=0;p<L;p++){c=G[p];if(U[c._id])U[c._id].push(c);else U[c._id]=[c]}}function y(G){return G.end?N(G.end):na(G)}function S(G,p){ca.push(p);if(ka[G._id])ka[G._id].push(p);else ka[G._id]=
-[p]}function Q(){ca=[];ka={}}function q(G,p){p.click(function(L){if(!p.hasClass("ui-draggable-dragging")&&!p.hasClass("ui-resizable-resizing"))return f("eventClick",this,G,L)}).hover(function(L){f("eventMouseover",this,G,L)},function(L){f("eventMouseout",this,G,L)})}function u(G,p){oa(G,p,"show")}function fa(G,p){oa(G,p,"hide")}function oa(G,p,L){G=ka[G._id];var c,z=G.length;for(c=0;c<z;c++)if(!p||G[c][0]!=p[0])G[c][L]()}function ga(G,p,L,c,z,H,T){var X=p.allDay,ya=p._id;sa(U[ya],L,c,z);f("eventDrop",
-G,p,L,c,z,function(){sa(U[ya],-L,-c,X);pa(ya)},H,T);pa(ya)}function ra(G,p,L,c,z,H){var T=p._id;ha(U[T],L,c);f("eventResize",G,p,L,c,function(){ha(U[T],-L,-c);pa(T)},z,H);pa(T)}function sa(G,p,L,c){L=L||0;for(var z,H=G.length,T=0;T<H;T++){z=G[T];if(c!==ma)z.allDay=c;xa(ba(z.start,p,true),L);if(z.end)z.end=xa(ba(z.end,p,true),L);ua(z,qa)}}function ha(G,p,L){L=L||0;for(var c,z=G.length,H=0;H<z;H++){c=G[H];c.end=xa(ba(y(c),p,true),L);ua(c,qa)}}var da=this;da.element=a;da.calendar=b;da.name=e;da.opt=
-d;da.trigger=f;da.isEventDraggable=g;da.isEventResizable=l;da.reportEvents=t;da.eventEnd=y;da.reportEventElement=S;da.reportEventClear=Q;da.eventElementHandlers=q;da.showEvents=u;da.hideEvents=fa;da.eventDrop=ga;da.eventResize=ra;var na=da.defaultEventEnd,ua=b.normalizeEvent,pa=b.reportEventChange,U={},ca=[],ka={},qa=b.options}function Qb(){function a(i,C){var P=z(),E=pa(),B=U(),n=0,Y,W,o=i.length,s,v;P[0].innerHTML=e(i);d(i,P.children());f(i);g(i,P,C);l(i);j(i);t(i);C=y();for(P=0;P<E;P++){Y=[];for(W=
-0;W<B;W++)Y[W]=0;for(;n<o&&(s=i[n]).row==P;){W=Hb(Y.slice(s.startCol,s.endCol));s.top=W;W+=s.outerHeight;for(v=s.startCol;v<s.endCol;v++)Y[v]=W;n++}C[P].height(Hb(Y))}Q(i,S(C))}function b(i,C,P){var E=m("<div/>"),B=z(),n=i.length,Y;E[0].innerHTML=e(i);E=E.children();B.append(E);d(i,E);l(i);j(i);t(i);Q(i,S(y()));E=[];for(B=0;B<n;B++)if(Y=i[B].element){i[B].row===C&&Y.css("top",P);E.push(Y[0])}return m(E)}function e(i){var C=fa("isRTL"),P,E=i.length,B,n,Y,W;P=ka();var o=P.left,s=P.right,v,F,r,J,M,k=
-"";for(P=0;P<E;P++){B=i[P];n=B.event;W=["fc-event","fc-event-skin","fc-event-hori"];ga(n)&&W.push("fc-event-draggable");if(C){B.isStart&&W.push("fc-corner-right");B.isEnd&&W.push("fc-corner-left");v=p(B.end.getDay()-1);F=p(B.start.getDay());r=B.isEnd?qa(v):o;J=B.isStart?G(F):s}else{B.isStart&&W.push("fc-corner-left");B.isEnd&&W.push("fc-corner-right");v=p(B.start.getDay());F=p(B.end.getDay()-1);r=B.isStart?qa(v):o;J=B.isEnd?G(F):s}W=W.concat(n.className);if(n.source)W=W.concat(n.source.className||
-[]);Y=n.url;M=Jb(n,fa);k+=Y?"<a href='"+Qa(Y)+"'":"<div";k+=" class='"+W.join(" ")+"' style='position:absolute;z-index:8;left:"+r+"px;"+M+"'><div class='fc-event-inner fc-event-skin'"+(M?" style='"+M+"'":"")+">";if(!n.allDay&&B.isStart)k+="<span class='fc-event-time'>"+Qa(T(n.start,n.end,fa("timeFormat")))+"</span>";k+="<span class='fc-event-title'>"+Qa(n.title)+"</span></div>";if(B.isEnd&&ra(n))k+="<div class='ui-resizable-handle ui-resizable-"+(C?"w":"e")+"'>&nbsp;&nbsp;&nbsp;</div>";k+="</"+(Y?
-"a":"div")+">";B.left=r;B.outerWidth=J-r;B.startCol=v;B.endCol=F+1}return k}function d(i,C){var P,E=i.length,B,n,Y;for(P=0;P<E;P++){B=i[P];n=B.event;Y=m(C[P]);n=oa("eventRender",n,n,Y);if(n===false)Y.remove();else{if(n&&n!==true){n=m(n).css({position:"absolute",left:B.left});Y.replaceWith(n);Y=n}B.element=Y}}}function f(i){var C,P=i.length,E,B;for(C=0;C<P;C++){E=i[C];(B=E.element)&&ha(E.event,B)}}function g(i,C,P){var E,B=i.length,n,Y,W;for(E=0;E<B;E++){n=i[E];if(Y=n.element){W=n.event;if(W._id===
-P)H(W,Y,n);else Y[0]._fci=E}}Db(C,i,H)}function l(i){var C,P=i.length,E,B,n,Y,W={};for(C=0;C<P;C++){E=i[C];if(B=E.element){n=E.key=Ib(B[0]);Y=W[n];if(Y===ma)Y=W[n]=pb(B,true);E.hsides=Y}}}function j(i){var C,P=i.length,E,B;for(C=0;C<P;C++){E=i[C];if(B=E.element)B[0].style.width=Math.max(0,E.outerWidth-E.hsides)+"px"}}function t(i){var C,P=i.length,E,B,n,Y,W={};for(C=0;C<P;C++){E=i[C];if(B=E.element){n=E.key;Y=W[n];if(Y===ma)Y=W[n]=Fb(B);E.outerHeight=B[0].offsetHeight+Y}}}function y(){var i,C=pa(),
-P=[];for(i=0;i<C;i++)P[i]=ca(i).find("td:first div.fc-day-content > div");return P}function S(i){var C,P=i.length,E=[];for(C=0;C<P;C++)E[C]=i[C][0].offsetTop;return E}function Q(i,C){var P,E=i.length,B,n;for(P=0;P<E;P++){B=i[P];if(n=B.element){n[0].style.top=C[B.row]+(B.top||0)+"px";B=B.event;oa("eventAfterRender",B,B,n)}}}function q(i,C,P){var E=fa("isRTL"),B=E?"w":"e",n=C.find("div.ui-resizable-"+B),Y=false;qb(C);C.mousedown(function(W){W.preventDefault()}).click(function(W){if(Y){W.preventDefault();
-W.stopImmediatePropagation()}});n.mousedown(function(W){function o(ia){oa("eventResizeStop",this,i,ia);m("body").css("cursor","");s.stop();ya();k&&ua(this,i,k,0,ia);setTimeout(function(){Y=false},0)}if(W.which==1){Y=true;var s=u.getHoverListener(),v=pa(),F=U(),r=E?-1:1,J=E?F-1:0,M=C.css("top"),k,D,Z=m.extend({},i),ja=L(i.start);K();m("body").css("cursor",B+"-resize").one("mouseup",o);oa("eventResizeStart",this,i,W);s.start(function(ia,la){if(ia){var $=Math.max(ja.row,ia.row);ia=ia.col;if(v==1)$=0;
-if($==ja.row)ia=E?Math.min(ja.col,ia):Math.max(ja.col,ia);k=$*7+ia*r+J-(la.row*7+la.col*r+J);la=ba(sa(i),k,true);if(k){Z.end=la;$=D;D=b(c([Z]),P.row,M);D.find("*").css("cursor",B+"-resize");$&&$.remove();na(i)}else if(D){da(i);D.remove();D=null}ya();X(i.start,ba(N(la),1))}},W)}})}var u=this;u.renderDaySegs=a;u.resizableDayEvent=q;var fa=u.opt,oa=u.trigger,ga=u.isEventDraggable,ra=u.isEventResizable,sa=u.eventEnd,ha=u.reportEventElement,da=u.showEvents,na=u.hideEvents,ua=u.eventResize,pa=u.getRowCnt,
-U=u.getColCnt,ca=u.allDayRow,ka=u.allDayBounds,qa=u.colContentLeft,G=u.colContentRight,p=u.dayOfWeekCol,L=u.dateCell,c=u.compileDaySegs,z=u.getDaySegmentContainer,H=u.bindDaySeg,T=u.calendar.formatDates,X=u.renderDayOverlay,ya=u.clearOverlays,K=u.clearSelection}function Mb(){function a(Q,q,u){b();q||(q=j(Q,u));t(Q,q,u);e(Q,q,u)}function b(Q){if(S){S=false;y();l("unselect",null,Q)}}function e(Q,q,u,fa){S=true;l("select",null,Q,q,u,fa)}function d(Q){var q=f.cellDate,u=f.cellIsAllDay,fa=f.getHoverListener(),
-oa=f.reportDayClick;if(Q.which==1&&g("selectable")){b(Q);var ga;fa.start(function(ra,sa){y();if(ra&&u(ra)){ga=[q(sa),q(ra)].sort(Gb);t(ga[0],ga[1],true)}else ga=null},Q);m(document).one("mouseup",function(ra){fa.stop();if(ga){+ga[0]==+ga[1]&&oa(ga[0],true,ra);e(ga[0],ga[1],true,ra)}})}}var f=this;f.select=a;f.unselect=b;f.reportSelection=e;f.daySelectionMousedown=d;var g=f.opt,l=f.trigger,j=f.defaultSelectionEnd,t=f.renderSelection,y=f.clearSelection,S=false;g("selectable")&&g("unselectAuto")&&m(document).mousedown(function(Q){var q=
-g("unselectCancel");if(q)if(m(Q.target).parents(q).length)return;b(Q)})}function Lb(){function a(g,l){var j=f.shift();j||(j=m("<div class='fc-cell-overlay' style='position:absolute;z-index:3'/>"));j[0].parentNode!=l[0]&&j.appendTo(l);d.push(j.css(g).show());return j}function b(){for(var g;g=d.shift();)f.push(g.hide().unbind())}var e=this;e.renderOverlay=a;e.clearOverlays=b;var d=[],f=[]}function Nb(a){var b=this,e,d;b.build=function(){e=[];d=[];a(e,d)};b.cell=function(f,g){var l=e.length,j=d.length,
-t,y=-1,S=-1;for(t=0;t<l;t++)if(g>=e[t][0]&&g<e[t][1]){y=t;break}for(t=0;t<j;t++)if(f>=d[t][0]&&f<d[t][1]){S=t;break}return y>=0&&S>=0?{row:y,col:S}:null};b.rect=function(f,g,l,j,t){t=t.offset();return{top:e[f][0]-t.top,left:d[g][0]-t.left,width:d[j][1]-d[g][0],height:e[l][1]-e[f][0]}}}function Ob(a){function b(j){xc(j);j=a.cell(j.pageX,j.pageY);if(!j!=!l||j&&(j.row!=l.row||j.col!=l.col)){if(j){g||(g=j);f(j,g,j.row-g.row,j.col-g.col)}else f(j,g);l=j}}var e=this,d,f,g,l;e.start=function(j,t,y){f=j;
-g=l=null;a.build();b(t);d=y||"mousemove";m(document).bind(d,b)};e.stop=function(){m(document).unbind(d,b);return l}}function xc(a){if(a.pageX===ma){a.pageX=a.originalEvent.pageX;a.pageY=a.originalEvent.pageY}}function Pb(a){function b(l){return d[l]=d[l]||a(l)}var e=this,d={},f={},g={};e.left=function(l){return f[l]=f[l]===ma?b(l).position().left:f[l]};e.right=function(l){return g[l]=g[l]===ma?e.left(l)+b(l).width():g[l]};e.clear=function(){d={};f={};g={}}}var Ya={defaultView:"month",aspectRatio:1.35,
-header:{left:"title",center:"",right:"today prev,next"},weekends:true,allDayDefault:true,ignoreTimezone:true,lazyFetching:true,startParam:"start",endParam:"end",titleFormat:{month:"MMMM yyyy",week:"MMM d[ yyyy]{ '&#8212;'[ MMM] d yyyy}",day:"dddd, MMM d, yyyy"},columnFormat:{month:"ddd",week:"ddd M/d",day:"dddd M/d"},timeFormat:{"":"h(:mm)t"},isRTL:false,firstDay:0,monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan",
-"Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],buttonText:{prev:"&nbsp;&#9668;&nbsp;",next:"&nbsp;&#9658;&nbsp;",prevYear:"&nbsp;&lt;&lt;&nbsp;",nextYear:"&nbsp;&gt;&gt;&nbsp;",today:"today",month:"month",week:"week",day:"day"},theme:false,buttonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e"},unselectAuto:true,dropAccept:"*"},yc=
-{header:{left:"next,prev today",center:"",right:"title"},buttonText:{prev:"&nbsp;&#9658;&nbsp;",next:"&nbsp;&#9668;&nbsp;",prevYear:"&nbsp;&gt;&gt;&nbsp;",nextYear:"&nbsp;&lt;&lt;&nbsp;"},buttonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w"}},Aa=m.fullCalendar={version:"1.5.3"},Ja=Aa.views={};m.fn.fullCalendar=function(a){if(typeof a=="string"){var b=Array.prototype.slice.call(arguments,1),e;this.each(function(){var f=m.data(this,"fullCalendar");if(f&&m.isFunction(f[a])){f=f[a].apply(f,
-b);if(e===ma)e=f;a=="destroy"&&m.removeData(this,"fullCalendar")}});if(e!==ma)return e;return this}var d=a.eventSources||[];delete a.eventSources;if(a.events){d.push(a.events);delete a.events}a=m.extend(true,{},Ya,a.isRTL||a.isRTL===ma&&Ya.isRTL?yc:{},a);this.each(function(f,g){f=m(g);g=new Yb(f,a,d);f.data("fullCalendar",g);g.render()});return this};Aa.sourceNormalizers=[];Aa.sourceFetchers=[];var ac={dataType:"json",cache:false},bc=1;Aa.addDays=ba;Aa.cloneDate=N;Aa.parseDate=kb;Aa.parseISO8601=
-Bb;Aa.parseTime=mb;Aa.formatDate=Oa;Aa.formatDates=ib;var lc=["sun","mon","tue","wed","thu","fri","sat"],Ab=864E5,cc=36E5,wc=6E4,dc={s:function(a){return a.getSeconds()},ss:function(a){return Pa(a.getSeconds())},m:function(a){return a.getMinutes()},mm:function(a){return Pa(a.getMinutes())},h:function(a){return a.getHours()%12||12},hh:function(a){return Pa(a.getHours()%12||12)},H:function(a){return a.getHours()},HH:function(a){return Pa(a.getHours())},d:function(a){return a.getDate()},dd:function(a){return Pa(a.getDate())},
-ddd:function(a,b){return b.dayNamesShort[a.getDay()]},dddd:function(a,b){return b.dayNames[a.getDay()]},M:function(a){return a.getMonth()+1},MM:function(a){return Pa(a.getMonth()+1)},MMM:function(a,b){return b.monthNamesShort[a.getMonth()]},MMMM:function(a,b){return b.monthNames[a.getMonth()]},yy:function(a){return(a.getFullYear()+"").substring(2)},yyyy:function(a){return a.getFullYear()},t:function(a){return a.getHours()<12?"a":"p"},tt:function(a){return a.getHours()<12?"am":"pm"},T:function(a){return a.getHours()<
-12?"A":"P"},TT:function(a){return a.getHours()<12?"AM":"PM"},u:function(a){return Oa(a,"yyyy-MM-dd'T'HH:mm:ss'Z'")},S:function(a){a=a.getDate();if(a>10&&a<20)return"th";return["st","nd","rd"][a%10-1]||"th"}};Aa.applyAll=$a;Ja.month=mc;Ja.basicWeek=nc;Ja.basicDay=oc;wb({weekMode:"fixed"});Ja.agendaWeek=qc;Ja.agendaDay=rc;wb({allDaySlot:true,allDayText:"all-day",firstHour:6,slotMinutes:30,defaultEventMinutes:120,axisFormat:"h(:mm)tt",timeFormat:{agenda:"h:mm{ - h:mm}"},dragOpacity:{agenda:0.5},minTime:0,
-maxTime:24})})(jQuery);
+/*!
+ * FullCalendar v1.6.0
+ * Docs & License: http://arshaw.com/fullcalendar/
+ * (c) 2013 Adam Shaw
+ */
+(function(t,e){function n(e){t.extend(!0,ye,e)}function r(n,r,l){function u(t){G?(S(),C(),R(),b(t)):f()}function f(){K=r.theme?"ui":"fc",n.addClass("fc"),r.isRTL?n.addClass("fc-rtl"):n.addClass("fc-ltr"),r.theme&&n.addClass("ui-widget"),G=t("<div class='fc-content' style='position:relative'/>").prependTo(n),$=new a(Z,r),Q=$.render(),Q&&n.prepend(Q),y(r.defaultView),t(window).resize(x),m()||v()}function v(){setTimeout(function(){!te.start&&m()&&b()},0)}function h(){t(window).unbind("resize",x),$.destroy(),G.remove(),n.removeClass("fc fc-rtl ui-widget")}function g(){return 0!==se.offsetWidth}function m(){return 0!==t("body")[0].offsetWidth}function y(e){if(!te||e!=te.name){ue++,W();var n,r=te;r?((r.beforeHide||I)(),q(G,G.height()),r.element.hide()):q(G,1),G.css("overflow","hidden"),te=ce[e],te?te.element.show():te=ce[e]=new De[e](n=re=t("<div class='fc-view fc-view-"+e+"' style='position:absolute'/>").appendTo(G),Z),r&&$.deactivateButton(r.name),$.activateButton(e),b(),G.css("overflow",""),r&&q(G,1),n||(te.afterShow||I)(),ue--}}function b(t){if(g()){ue++,W(),ne===e&&S();var r=!1;!te.start||t||te.start>fe||fe>=te.end?(te.render(fe,t||0),E(!0),r=!0):te.sizeDirty?(te.clearEvents(),E(),r=!0):te.eventsDirty&&(te.clearEvents(),r=!0),te.sizeDirty=!1,te.eventsDirty=!1,T(r),ee=n.outerWidth(),$.updateTitle(te.title);var a=new Date;a>=te.start&&te.end>a?$.disableButton("today"):$.enableButton("today"),ue--,te.trigger("viewDisplay",se)}}function M(){C(),g()&&(S(),E(),W(),te.clearEvents(),te.renderEvents(de),te.sizeDirty=!1)}function C(){t.each(ce,function(t,e){e.sizeDirty=!0})}function S(){ne=r.contentHeight?r.contentHeight:r.height?r.height-(Q?Q.height():0)-L(G):Math.round(G.width()/Math.max(r.aspectRatio,.5))}function E(t){ue++,te.setHeight(ne,t),re&&(re.css("position","relative"),re=null),te.setWidth(G.width(),t),ue--}function x(){if(!ue)if(te.start){var t=++le;setTimeout(function(){t==le&&!ue&&g()&&ee!=(ee=n.outerWidth())&&(ue++,M(),te.trigger("windowResize",se),ue--)},200)}else v()}function T(t){!r.lazyFetching||oe(te.visStart,te.visEnd)?k():t&&F()}function k(){ie(te.visStart,te.visEnd)}function H(t){de=t,F()}function z(t){F(t)}function F(t){R(),g()&&(te.clearEvents(),te.renderEvents(de,t),te.eventsDirty=!1)}function R(){t.each(ce,function(t,e){e.eventsDirty=!0})}function N(t,n,r){te.select(t,n,r===e?!0:r)}function W(){te&&te.unselect()}function A(){b(-1)}function _(){b(1)}function O(){i(fe,-1),b()}function B(){i(fe,1),b()}function Y(){fe=new Date,b()}function j(t,e,n){t instanceof Date?fe=d(t):p(fe,t,e,n),b()}function P(t,n,r){t!==e&&i(fe,t),n!==e&&s(fe,n),r!==e&&c(fe,r),b()}function J(){return d(fe)}function V(){return te}function X(t,n){return n===e?r[t]:(("height"==t||"contentHeight"==t||"aspectRatio"==t)&&(r[t]=n,M()),e)}function U(t,n){return r[t]?r[t].apply(n||se,Array.prototype.slice.call(arguments,2)):e}var Z=this;Z.options=r,Z.render=u,Z.destroy=h,Z.refetchEvents=k,Z.reportEvents=H,Z.reportEventChange=z,Z.rerenderEvents=F,Z.changeView=y,Z.select=N,Z.unselect=W,Z.prev=A,Z.next=_,Z.prevYear=O,Z.nextYear=B,Z.today=Y,Z.gotoDate=j,Z.incrementDate=P,Z.formatDate=function(t,e){return w(t,e,r)},Z.formatDates=function(t,e,n){return D(t,e,n,r)},Z.getDate=J,Z.getView=V,Z.option=X,Z.trigger=U,o.call(Z,r,l);var $,Q,G,K,te,ee,ne,re,ae,oe=Z.isFetchNeeded,ie=Z.fetchEvents,se=n[0],ce={},le=0,ue=0,fe=new Date,de=[];p(fe,r.year,r.month,r.date),r.droppable&&t(document).bind("dragstart",function(e,n){var a=e.target,o=t(a);if(!o.parents(".fc").length){var i=r.dropAccept;(t.isFunction(i)?i.call(a,o):o.is(i))&&(ae=a,te.dragStart(ae,e,n))}}).bind("dragstop",function(t,e){ae&&(te.dragStop(ae,t,e),ae=null)})}function a(n,r){function a(){v=r.theme?"ui":"fc";var n=r.header;return n?h=t("<table class='fc-header' style='width:100%'/>").append(t("<tr/>").append(i("left")).append(i("center")).append(i("right"))):e}function o(){h.remove()}function i(e){var a=t("<td class='fc-header-"+e+"'/>"),o=r.header[e];return o&&t.each(o.split(" "),function(e){e>0&&a.append("<span class='fc-header-space'/>");var o;t.each(this.split(","),function(e,i){if("title"==i)a.append("<span class='fc-header-title'><h2>&nbsp;</h2></span>"),o&&o.addClass(v+"-corner-right"),o=null;else{var s;if(n[i]?s=n[i]:De[i]&&(s=function(){u.removeClass(v+"-state-hover"),n.changeView(i)}),s){var c=r.theme?J(r.buttonIcons,i):null,l=J(r.buttonText,i),u=t("<span class='fc-button fc-button-"+i+" "+v+"-state-default'>"+(c?"<span class='fc-icon-wrap'><span class='ui-icon ui-icon-"+c+"'/>"+"</span>":l)+"</span>").click(function(){u.hasClass(v+"-state-disabled")||s()}).mousedown(function(){u.not("."+v+"-state-active").not("."+v+"-state-disabled").addClass(v+"-state-down")}).mouseup(function(){u.removeClass(v+"-state-down")}).hover(function(){u.not("."+v+"-state-active").not("."+v+"-state-disabled").addClass(v+"-state-hover")},function(){u.removeClass(v+"-state-hover").removeClass(v+"-state-down")}).appendTo(a);U(u),o||u.addClass(v+"-corner-left"),o=u}}}),o&&o.addClass(v+"-corner-right")}),a}function s(t){h.find("h2").html(t)}function c(t){h.find("span.fc-button-"+t).addClass(v+"-state-active")}function l(t){h.find("span.fc-button-"+t).removeClass(v+"-state-active")}function u(t){h.find("span.fc-button-"+t).addClass(v+"-state-disabled")}function f(t){h.find("span.fc-button-"+t).removeClass(v+"-state-disabled")}var d=this;d.render=a,d.destroy=o,d.updateTitle=s,d.activateButton=c,d.deactivateButton=l,d.disableButton=u,d.enableButton=f;var v,h=t([])}function o(n,r){function a(t,e){return!S||S>t||e>E}function o(t,e){S=t,E=e,W=[];var n=++F,r=z.length;R=r;for(var a=0;r>a;a++)i(z[a],n)}function i(e,r){s(e,function(a){if(r==F){if(a){n.eventDataTransform&&(a=t.map(a,n.eventDataTransform)),e.eventDataTransform&&(a=t.map(a,e.eventDataTransform));for(var o=0;a.length>o;o++)a[o].source=e,b(a[o]);W=W.concat(a)}R--,R||k(W)}})}function s(r,a){var o,i,c=we.sourceFetchers;for(o=0;c.length>o;o++){if(i=c[o](r,S,E,a),i===!0)return;if("object"==typeof i)return s(i,a),e}var l=r.events;if(l)t.isFunction(l)?(p(),l(d(S),d(E),function(t){a(t),y()})):t.isArray(l)?a(l):a();else{var u=r.url;if(u){var f=r.success,v=r.error,h=r.complete,g=t.extend({},r.data||{}),m=K(r.startParam,n.startParam),b=K(r.endParam,n.endParam);m&&(g[m]=Math.round(+S/1e3)),b&&(g[b]=Math.round(+E/1e3)),p(),t.ajax(t.extend({},Me,r,{data:g,success:function(e){e=e||[];var n=G(f,this,arguments);t.isArray(n)&&(e=n),a(e)},error:function(){G(v,this,arguments),a()},complete:function(){G(h,this,arguments),y()}}))}else a()}}function c(t){t=l(t),t&&(R++,i(t,F))}function l(n){return t.isFunction(n)||t.isArray(n)?n={events:n}:"string"==typeof n&&(n={url:n}),"object"==typeof n?(w(n),z.push(n),n):e}function u(e){z=t.grep(z,function(t){return!D(t,e)}),W=t.grep(W,function(t){return!D(t.source,e)}),k(W)}function f(t){var e,n,r=W.length,a=T().defaultEventEnd,o=t.start-t._start,i=t.end?t.end-(t._end||a(t)):0;for(e=0;r>e;e++)n=W[e],n._id==t._id&&n!=t&&(n.start=new Date(+n.start+o),n.end=t.end?n.end?new Date(+n.end+i):new Date(+a(n)+i):null,n.title=t.title,n.url=t.url,n.allDay=t.allDay,n.className=t.className,n.editable=t.editable,n.color=t.color,n.backgroudColor=t.backgroudColor,n.borderColor=t.borderColor,n.textColor=t.textColor,b(n));b(t),k(W)}function v(t,e){b(t),t.source||(e&&(H.events.push(t),t.source=H),W.push(t)),k(W)}function h(e){if(e){if(!t.isFunction(e)){var n=e+"";e=function(t){return t._id==n}}W=t.grep(W,e,!0);for(var r=0;z.length>r;r++)t.isArray(z[r].events)&&(z[r].events=t.grep(z[r].events,e,!0))}else{W=[];for(var r=0;z.length>r;r++)t.isArray(z[r].events)&&(z[r].events=[])}k(W)}function g(e){return t.isFunction(e)?t.grep(W,e):e?(e+="",t.grep(W,function(t){return t._id==e})):W}function p(){N++||x("loading",null,!0)}function y(){--N||x("loading",null,!1)}function b(t){var r=t.source||{},a=K(r.ignoreTimezone,n.ignoreTimezone);t._id=t._id||(t.id===e?"_fc"+Ce++:t.id+""),t.date&&(t.start||(t.start=t.date),delete t.date),t._start=d(t.start=m(t.start,a)),t.end=m(t.end,a),t.end&&t.end<=t.start&&(t.end=null),t._end=t.end?d(t.end):null,t.allDay===e&&(t.allDay=K(r.allDayDefault,n.allDayDefault)),t.className?"string"==typeof t.className&&(t.className=t.className.split(/\s+/)):t.className=[]}function w(t){t.className?"string"==typeof t.className&&(t.className=t.className.split(/\s+/)):t.className=[];for(var e=we.sourceNormalizers,n=0;e.length>n;n++)e[n](t)}function D(t,e){return t&&e&&M(t)==M(e)}function M(t){return("object"==typeof t?t.events||t.url:"")||t}var C=this;C.isFetchNeeded=a,C.fetchEvents=o,C.addEventSource=c,C.removeEventSource=u,C.updateEvent=f,C.renderEvent=v,C.removeEvents=h,C.clientEvents=g,C.normalizeEvent=b;for(var S,E,x=C.trigger,T=C.getView,k=C.reportEvents,H={events:[]},z=[H],F=0,R=0,N=0,W=[],A=0;r.length>A;A++)l(r[A])}function i(t,e,n){return t.setFullYear(t.getFullYear()+e),n||f(t),t}function s(t,e,n){if(+t){var r=t.getMonth()+e,a=d(t);for(a.setDate(1),a.setMonth(r),t.setMonth(r),n||f(t);t.getMonth()!=a.getMonth();)t.setDate(t.getDate()+(a>t?1:-1))}return t}function c(t,e,n){if(+t){var r=t.getDate()+e,a=d(t);a.setHours(9),a.setDate(r),t.setDate(r),n||f(t),l(t,a)}return t}function l(t,e){if(+t)for(;t.getDate()!=e.getDate();)t.setTime(+t+(e>t?1:-1)*xe)}function u(t,e){return t.setMinutes(t.getMinutes()+e),t}function f(t){return t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0),t}function d(t,e){return e?f(new Date(+t)):new Date(+t)}function v(){var t,e=0;do t=new Date(1970,e++,1);while(t.getHours());return t}function h(t,e,n){for(e=e||1;!t.getDay()||n&&1==t.getDay()||!n&&6==t.getDay();)c(t,e);return t}function g(t,e){return Math.round((d(t,!0)-d(e,!0))/Ee)}function p(t,n,r,a){n!==e&&n!=t.getFullYear()&&(t.setDate(1),t.setMonth(0),t.setFullYear(n)),r!==e&&r!=t.getMonth()&&(t.setDate(1),t.setMonth(r)),a!==e&&t.setDate(a)}function m(t,n){return"object"==typeof t?t:"number"==typeof t?new Date(1e3*t):"string"==typeof t?t.match(/^\d+(\.\d+)?$/)?new Date(1e3*parseFloat(t)):(n===e&&(n=!0),y(t,n)||(t?new Date(t):null)):null}function y(t,e){var n=t.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2})(:?([0-9]{2}))?))?)?)?)?$/);if(!n)return null;var r=new Date(n[1],0,1);if(e||!n[13]){var a=new Date(n[1],0,1,9,0);n[3]&&(r.setMonth(n[3]-1),a.setMonth(n[3]-1)),n[5]&&(r.setDate(n[5]),a.setDate(n[5])),l(r,a),n[7]&&r.setHours(n[7]),n[8]&&r.setMinutes(n[8]),n[10]&&r.setSeconds(n[10]),n[12]&&r.setMilliseconds(1e3*Number("0."+n[12])),l(r,a)}else if(r.setUTCFullYear(n[1],n[3]?n[3]-1:0,n[5]||1),r.setUTCHours(n[7]||0,n[8]||0,n[10]||0,n[12]?1e3*Number("0."+n[12]):0),n[14]){var o=60*Number(n[16])+(n[18]?Number(n[18]):0);o*="-"==n[15]?1:-1,r=new Date(+r+1e3*60*o)}return r}function b(t){if("number"==typeof t)return 60*t;if("object"==typeof t)return 60*t.getHours()+t.getMinutes();var e=t.match(/(\d+)(?::(\d+))?\s*(\w+)?/);if(e){var n=parseInt(e[1],10);return e[3]&&(n%=12,"p"==e[3].toLowerCase().charAt(0)&&(n+=12)),60*n+(e[2]?parseInt(e[2],10):0)}}function w(t,e,n){return D(t,null,e,n)}function D(t,e,n,r){r=r||ye;var a,o,i,s,c=t,l=e,u=n.length,f="";for(a=0;u>a;a++)if(o=n.charAt(a),"'"==o){for(i=a+1;u>i;i++)if("'"==n.charAt(i)){c&&(f+=i==a+1?"'":n.substring(a+1,i),a=i);break}}else if("("==o){for(i=a+1;u>i;i++)if(")"==n.charAt(i)){var d=w(c,n.substring(a+1,i),r);parseInt(d.replace(/\D/,""),10)&&(f+=d),a=i;break}}else if("["==o){for(i=a+1;u>i;i++)if("]"==n.charAt(i)){var v=n.substring(a+1,i),d=w(c,v,r);d!=w(l,v,r)&&(f+=d),a=i;break}}else if("{"==o)c=e,l=t;else if("}"==o)c=t,l=e;else{for(i=u;i>a;i--)if(s=ke[n.substring(a,i)]){c&&(f+=s(c,r)),a=i-1;break}i==a&&c&&(f+=o)}return f}function M(t){var e,n=new Date(t.getTime());return n.setDate(n.getDate()+4-(n.getDay()||7)),e=n.getTime(),n.setMonth(0),n.setDate(1),Math.floor(Math.round((e-n)/864e5)/7)+1}function C(t){return t.end?S(t.end,t.allDay):c(d(t.start),1)}function S(t,e){return t=d(t),e||t.getHours()||t.getMinutes()?c(t,1):f(t)}function E(t,e){return 100*(e.msLength-t.msLength)+(t.event.start-e.event.start)}function x(t,e){return t.end>e.start&&t.start<e.end}function T(t,e,n,r){var a,o,i,s,c,l,u,f,v=[],h=t.length;for(a=0;h>a;a++)o=t[a],i=o.start,s=e[a],s>n&&r>i&&(n>i?(c=d(n),u=!1):(c=i,u=!0),s>r?(l=d(r),f=!1):(l=s,f=!0),v.push({event:o,start:c,end:l,isStart:u,isEnd:f,msLength:l-c}));return v.sort(E)}function k(t){var e,n,r,a,o,i=[],s=t.length;for(e=0;s>e;e++){for(n=t[e],r=0;;){if(a=!1,i[r])for(o=0;i[r].length>o;o++)if(x(i[r][o],n)){a=!0;break}if(!a)break;r++}i[r]?i[r].push(n):i[r]=[n]}return i}function H(n,r,a){n.unbind("mouseover").mouseover(function(n){for(var o,i,s,c=n.target;c!=this;)o=c,c=c.parentNode;(i=o._fci)!==e&&(o._fci=e,s=r[i],a(s.event,s.element,s),t(n.target).trigger(n)),n.stopPropagation()})}function z(e,n,r){for(var a,o=0;e.length>o;o++)a=t(e[o]),a.width(Math.max(0,n-R(a,r)))}function F(e,n,r){for(var a,o=0;e.length>o;o++)a=t(e[o]),a.height(Math.max(0,n-L(a,r)))}function R(t,e){return N(t)+A(t)+(e?W(t):0)}function N(e){return(parseFloat(t.css(e[0],"paddingLeft",!0))||0)+(parseFloat(t.css(e[0],"paddingRight",!0))||0)}function W(e){return(parseFloat(t.css(e[0],"marginLeft",!0))||0)+(parseFloat(t.css(e[0],"marginRight",!0))||0)}function A(e){return(parseFloat(t.css(e[0],"borderLeftWidth",!0))||0)+(parseFloat(t.css(e[0],"borderRightWidth",!0))||0)}function L(t,e){return _(t)+B(t)+(e?O(t):0)}function _(e){return(parseFloat(t.css(e[0],"paddingTop",!0))||0)+(parseFloat(t.css(e[0],"paddingBottom",!0))||0)}function O(e){return(parseFloat(t.css(e[0],"marginTop",!0))||0)+(parseFloat(t.css(e[0],"marginBottom",!0))||0)}function B(e){return(parseFloat(t.css(e[0],"borderTopWidth",!0))||0)+(parseFloat(t.css(e[0],"borderBottomWidth",!0))||0)}function q(t,e){e="number"==typeof e?e+"px":e,t.each(function(t,n){n.style.cssText+=";min-height:"+e+";_height:"+e})}function I(){}function Y(t,e){return t-e}function j(t){return Math.max.apply(Math,t)}function P(t){return(10>t?"0":"")+t}function J(t,n){if(t[n]!==e)return t[n];for(var r,a=n.split(/(?=[A-Z])/),o=a.length-1;o>=0;o--)if(r=t[a[o].toLowerCase()],r!==e)return r;return t[""]}function V(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#039;").replace(/"/g,"&quot;").replace(/\n/g,"<br />")}function X(t){return t.id+"/"+t.className+"/"+t.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/gi,"")}function U(t){t.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return!1})}function Z(t){t.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")}function $(t,e){t.each(function(t,n){n.className=n.className.replace(/^fc-\w*/,"fc-"+Se[e.getDay()])})}function Q(t,e){var n=t.source||{},r=t.color,a=n.color,o=e("eventColor"),i=t.backgroundColor||r||n.backgroundColor||a||e("eventBackgroundColor")||o,s=t.borderColor||r||n.borderColor||a||e("eventBorderColor")||o,c=t.textColor||n.textColor||e("eventTextColor"),l=[];return i&&l.push("background-color:"+i),s&&l.push("border-color:"+s),c&&l.push("color:"+c),l.join(";")}function G(e,n,r){if(t.isFunction(e)&&(e=[e]),e){var a,o;for(a=0;e.length>a;a++)o=e[a].apply(n,r)||o;return o}}function K(){for(var t=0;arguments.length>t;t++)if(arguments[t]!==e)return arguments[t]}function te(t,e){function n(t,e){e&&(s(t,e),t.setDate(1));var n=d(t,!0);n.setDate(1);var l=s(d(n),1),u=d(n),f=d(l),v=a("firstDay"),g=a("weekends")?0:1;g&&(h(u),h(f,-1,!0)),c(u,-((u.getDay()-Math.max(v,g)+7)%7)),c(f,(7-f.getDay()+Math.max(v,g))%7);var p=Math.round((f-u)/(7*Ee));"fixed"==a("weekMode")&&(c(f,7*(6-p)),p=6),r.title=i(n,a("titleFormat")),r.start=n,r.end=l,r.visStart=u,r.visEnd=f,o(p,g?5:7,!0)}var r=this;r.render=n,re.call(r,t,e,"month");var a=r.opt,o=r.renderBasic,i=e.formatDate}function ee(t,e){function n(t,e){e&&c(t,7*e);var n=c(d(t),-((t.getDay()-a("firstDay")+7)%7)),s=c(d(n),7),l=d(n),u=d(s),f=a("weekends");f||(h(l),h(u,-1,!0)),r.title=i(l,c(d(u),-1),a("titleFormat")),r.start=n,r.end=s,r.visStart=l,r.visEnd=u,o(1,f?7:5,!1)}var r=this;r.render=n,re.call(r,t,e,"basicWeek");var a=r.opt,o=r.renderBasic,i=e.formatDates}function ne(t,e){function n(t,e){e&&(c(t,e),a("weekends")||h(t,0>e?-1:1)),r.title=i(t,a("titleFormat")),r.start=r.visStart=d(t,!0),r.end=r.visEnd=c(d(r.start),1),o(1,1,!1)}var r=this;r.render=n,re.call(r,t,e,"basicDay");var a=r.opt,o=r.renderBasic,i=e.formatDate}function re(e,n,r){function a(t,e,n){ne=t,re=e,o();var r=!P;r?i():Te(),s(n)}function o(){ce=Ee("isRTL"),ce?(le=-1,fe=re-1):(le=1,fe=0),pe=Ee("firstDay"),ye=Ee("weekends")?0:1,be=Ee("theme")?"ui":"fc",we=Ee("columnFormat"),De=Ee("weekNumbers"),Me=Ee("weekNumberTitle"),Ce="iso"!=Ee("weekNumberCalculation")?"w":"W"}function i(){Q=t("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(e)}function s(n){var r,a,o,i,s="",c=be+"-widget-header",l=be+"-widget-content",u=B.start.getMonth(),d=f(new Date);for(s+="<table class='fc-border-separate' style='width:100%' cellspacing='0'><thead><tr>",De&&(s+="<th class='fc-week-number "+c+"'/>"),r=0;re>r;r++)s+="<th class='fc-day-header fc-"+Se[r]+" "+c+"'/>";for(s+="</tr></thead><tbody>",r=0;ne>r;r++){for(s+="<tr class='fc-week'>",De&&(s+="<td class='fc-week-number "+l+"'>"+"<div/>"+"</td>"),a=0;re>a;a++)o=F(r,a),i=["fc-day","fc-"+Se[o.getDay()],l],o.getMonth()!=u&&i.push("fc-other-month"),+o==+d&&(i.push("fc-today"),i.push(be+"-state-highlight")),s+="<td class='"+i.join(" ")+"'"+" data-date='"+Fe(o,"yyyy-MM-dd")+"'"+">"+"<div>",n&&(s+="<div class='fc-day-number'>"+o.getDate()+"</div>"),s+="<div class='fc-day-content'><div style='position:relative'>&nbsp;</div></div></div></td>";s+="</tr>"}s+="</tbody></table>",_(),I&&I.remove(),I=t(s).appendTo(e),Y=I.find("thead"),j=Y.find(".fc-day-header"),P=I.find("tbody"),J=P.find("tr"),V=P.find(".fc-day"),X=J.find("td:first-child"),$=J.eq(0).find(".fc-day-content > div"),Z(Y.add(Y.find("tr"))),Z(J),J.eq(0).addClass("fc-first"),J.filter(":last").addClass("fc-last"),De&&Y.find(".fc-week-number").text(Me),j.each(function(e,n){var r=R(e);t(n).text(Fe(r,we))}),De&&P.find(".fc-week-number > div").each(function(e,n){var r=F(e,0);t(n).text(Fe(r,Ce))}),V.each(function(e,n){var r=R(e);xe("dayRender",B,r,t(n))}),v(V)}function l(e){K=e;var n,r,a,o=K-Y.height();"variable"==Ee("weekMode")?n=r=Math.floor(o/(1==ne?2:6)):(n=Math.floor(o/ne),r=o-n*(ne-1)),X.each(function(e,o){ne>e&&(a=t(o),q(a.find("> div"),(e==ne-1?r:n)-L(a)))}),O()}function u(t){G=t,se.clear(),ee=0,De&&(ee=Y.find("th.fc-week-number").outerWidth()),te=Math.floor((G-ee)/re),z(j.slice(0,-1),te)}function v(t){t.click(h).mousedown(ze)}function h(e){if(!Ee("selectable")){var n=y(t(this).data("date"));xe("dayClick",this,n,!0,e)}}function p(t,e,n){n&&oe.build();for(var r=d(B.visStart),a=c(d(r),re),o=0;ne>o;o++){var i=new Date(Math.max(r,t)),s=new Date(Math.min(a,e));if(s>i){var l,u;ce?(l=g(s,r)*le+fe+1,u=g(i,r)*le+fe+1):(l=g(i,r),u=g(s,r)),v(m(o,l,o,u-1))}c(r,7),c(a,7)}}function m(t,n,r,a){var o=oe.rect(t,n,r,a,e);return ke(o,e)}function b(t){return d(t)}function w(t,e){p(t,c(d(e),1),!0)}function D(){He()}function M(t,e,n){var r=k(t),a=V[r.row*re+r.col];xe("dayClick",a,t,e,n)}function C(t,e){ie.start(function(t){He(),t&&m(t.row,t.col,t.row,t.col)},e)}function S(t,e,n){var r=ie.stop();if(He(),r){var a=H(r);xe("drop",t,a,!0,e,n)}}function E(t){return d(t.start)}function x(t){return se.left(t)}function T(t){return se.right(t)}function k(t){return{row:Math.floor(g(t,B.visStart)/7),col:N(t.getDay())}}function H(t){return F(t.row,t.col)}function F(t,e){return c(d(B.visStart),7*t+e*le+fe)}function R(t){return F(Math.floor(t/re),t%re)}function N(t){return(t-Math.max(pe,ye)+re)%re*le+fe}function W(t){return J.eq(t)}function A(){var t=0;return De&&(t+=ee),{left:t,right:G}}function _(){q(e,e.height())}function O(){q(e,1)}var B=this;B.renderBasic=a,B.setHeight=l,B.setWidth=u,B.renderDayOverlay=p,B.defaultSelectionEnd=b,B.renderSelection=w,B.clearSelection=D,B.reportDayClick=M,B.dragStart=C,B.dragStop=S,B.defaultEventEnd=E,B.getHoverListener=function(){return ie},B.colContentLeft=x,B.colContentRight=T,B.dayOfWeekCol=N,B.dateCell=k,B.cellDate=H,B.cellIsAllDay=function(){return!0},B.allDayRow=W,B.allDayBounds=A,B.getRowCnt=function(){return ne},B.getColCnt=function(){return re},B.getColWidth=function(){return te},B.getDaySegmentContainer=function(){return Q},ue.call(B,e,n,r),ve.call(B),de.call(B),ae.call(B);var I,Y,j,P,J,V,X,$,Q,G,K,te,ee,ne,re,oe,ie,se,ce,le,fe,pe,ye,be,we,De,Me,Ce,Ee=B.opt,xe=B.trigger,Te=B.clearEvents,ke=B.renderOverlay,He=B.clearOverlays,ze=B.daySelectionMousedown,Fe=n.formatDate;U(e.addClass("fc-grid")),oe=new he(function(e,n){var r,a,o;j.each(function(e,i){r=t(i),a=r.offset().left,e&&(o[1]=a),o=[a],n[e]=o}),o[1]=a+r.outerWidth(),J.each(function(n,i){ne>n&&(r=t(i),a=r.offset().top,n&&(o[1]=a),o=[a],e[n]=o)}),o[1]=a+r.outerHeight()}),ie=new ge(oe),se=new me(function(t){return $.eq(t)})}function ae(){function e(t,e){v(t),x(r(t),e),l("eventAfterAllRender")}function n(){h(),b().empty()}function r(e){var n,r,a,o,s,l,u=S(),f=E(),v=d(i.visStart),h=c(d(v),f),g=t.map(e,C),p=[];for(n=0;u>n;n++){for(r=k(T(e,g,v,h)),a=0;r.length>a;a++)for(o=r[a],s=0;o.length>s;s++)l=o[s],l.row=n,l.level=a,p.push(l);c(v,7),c(h,7)}return p}function a(t,e,n){u(t)&&o(t,e),n.isEnd&&f(t)&&H(t,e,n),g(t,e)}function o(t,e){var n,r=w();e.draggable({zIndex:9,delay:50,opacity:s("dragOpacity"),revertDuration:s("dragRevertDuration"),start:function(a,o){l("eventDragStart",e,t,a,o),m(t,e),r.start(function(r,a,o,i){e.draggable("option","revert",!r||!o&&!i),M(),r?(n=7*o+i*(s("isRTL")?-1:1),D(c(d(t.start),n),c(C(t),n))):n=0},a,"drag")},stop:function(a,o){r.stop(),M(),l("eventDragStop",e,t,a,o),n?y(this,t,n,0,t.allDay,a,o):(e.css("filter",""),p(t,e))}})}var i=this;i.renderEvents=e,i.compileDaySegs=r,i.clearEvents=n,i.bindDaySeg=a,fe.call(i);var s=i.opt,l=i.trigger,u=i.isEventDraggable,f=i.isEventResizable,v=i.reportEvents,h=i.reportEventClear,g=i.eventElementHandlers,p=i.showEvents,m=i.hideEvents,y=i.eventDrop,b=i.getDaySegmentContainer,w=i.getHoverListener,D=i.renderDayOverlay,M=i.clearOverlays,S=i.getRowCnt,E=i.getColCnt,x=i.renderDaySegs,H=i.resizableDayEvent}function oe(t,e){function n(t,e){e&&c(t,7*e);var n=c(d(t),-((t.getDay()-a("firstDay")+7)%7)),s=c(d(n),7),l=d(n),u=d(s),f=a("weekends");f||(h(l),h(u,-1,!0)),r.title=i(l,c(d(u),-1),a("titleFormat")),r.start=n,r.end=s,r.visStart=l,r.visEnd=u,o(f?7:5)}var r=this;r.render=n,se.call(r,t,e,"agendaWeek");var a=r.opt,o=r.renderAgenda,i=e.formatDates}function ie(t,e){function n(t,e){e&&(c(t,e),a("weekends")||h(t,0>e?-1:1));var n=d(t,!0),s=c(d(n),1);r.title=i(t,a("titleFormat")),r.start=r.visStart=n,r.end=r.visEnd=s,o(1)}var r=this;r.render=n,se.call(r,t,e,"agendaDay");var a=r.opt,o=r.renderAgenda,i=e.formatDate}function se(n,r,a){function o(t){Le=t,i(),te?nn():s(),l()}function i(){Ye=tn("theme")?"ui":"fc",Pe=tn("weekends")?0:1,je=tn("firstDay"),(Je=tn("isRTL"))?(Ve=-1,Xe=Le-1):(Ve=1,Xe=0),Ue=b(tn("minTime")),Ze=b(tn("maxTime")),$e=tn("columnFormat"),Qe=tn("weekNumbers"),Ge=tn("weekNumberTitle"),Ke="iso"!=tn("weekNumberCalculation")?"w":"W",Ne=tn("snapMinutes")||tn("slotMinutes")}function s(){var e,r,a,o,i,s=Ye+"-widget-header",c=Ye+"-widget-content",l=0==tn("slotMinutes")%15;for(e="<table style='width:100%' class='fc-agenda-days fc-border-separate' cellspacing='0'><thead><tr>",e+=Qe?"<th class='fc-agenda-axis fc-week-number "+s+"'/>":"<th class='fc-agenda-axis "+s+"'>&nbsp;</th>",r=0;Le>r;r++)e+="<th class='fc- fc-col"+r+" "+s+"'/>";for(e+="<th class='fc-agenda-gutter "+s+"'>&nbsp;</th>"+"</tr>"+"</thead>"+"<tbody>"+"<tr>"+"<th class='fc-agenda-axis "+s+"'>&nbsp;</th>",r=0;Le>r;r++)e+="<td class='fc- fc-col"+r+" "+c+"'>"+"<div>"+"<div class='fc-day-content'>"+"<div style='position:relative'>&nbsp;</div>"+"</div>"+"</div>"+"</td>";for(e+="<td class='fc-agenda-gutter "+c+"'>&nbsp;</td>"+"</tr>"+"</tbody>"+"</table>",te=t(e).appendTo(n),ee=te.find("thead"),ne=ee.find("th").slice(1,-1),re=te.find("tbody"),ae=re.find("td").slice(0,-1),oe=ae.find("div.fc-day-content div"),ie=ae.eq(0),se=ie.find("> div"),Z(ee.add(ee.find("tr"))),Z(re.add(re.find("tr"))),Se=ee.find("th:first"),Ee=te.find(".fc-agenda-gutter"),le=t("<div style='position:absolute;z-index:2;left:0;width:100%'/>").appendTo(n),tn("allDaySlot")?(fe=t("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(le),e="<table style='width:100%' class='fc-agenda-allday' cellspacing='0'><tr><th class='"+s+" fc-agenda-axis'>"+tn("allDayText")+"</th>"+"<td>"+"<div class='fc-day-content'><div style='position:relative'/></div>"+"</td>"+"<th class='"+s+" fc-agenda-gutter'>&nbsp;</th>"+"</tr>"+"</table>",pe=t(e).appendTo(le),ye=pe.find("tr"),D(ye.find("td")),Se=Se.add(pe.find("th:first")),Ee=Ee.add(pe.find("th.fc-agenda-gutter")),le.append("<div class='fc-agenda-divider "+s+"'>"+"<div class='fc-agenda-divider-inner'/>"+"</div>")):fe=t([]),be=t("<div style='position:absolute;width:100%;overflow-x:hidden;overflow-y:auto'/>").appendTo(le),we=t("<div style='position:relative;width:100%;overflow:hidden'/>").appendTo(be),De=t("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(we),e="<table class='fc-agenda-slots' style='width:100%' cellspacing='0'><tbody>",a=v(),o=u(d(a),Ze),u(a,Ue),_e=0,r=0;o>a;r++)i=a.getMinutes(),e+="<tr class='fc-slot"+r+" "+(i?"fc-minor":"")+"'>"+"<th class='fc-agenda-axis "+s+"'>"+(l&&i?"&nbsp;":un(a,tn("axisFormat")))+"</th>"+"<td class='"+c+"'>"+"<div style='position:relative'>&nbsp;</div>"+"</td>"+"</tr>",u(a,tn("slotMinutes")),_e++;e+="</tbody></table>",Me=t(e).appendTo(we),Ce=Me.find("div:first"),M(Me.find("td")),Se=Se.add(Me.find("th:first"))}function l(){var t,e,n,r,a=f(new Date);if(Qe){var o=un(N(0),Ke);Je?o+=Ge:o=Ge+o,ee.find(".fc-week-number").text(o)}for(t=0;Le>t;t++)r=N(t),e=ne.eq(t),e.html(un(r,$e)),n=ae.eq(t),+r==+a?n.addClass(Ye+"-state-highlight fc-today"):n.removeClass(Ye+"-state-highlight fc-today"),$(e.add(n),r)}function h(t,n){t===e&&(t=ke),ke=t,fn={};var r=re.position().top,a=be.position().top,o=Math.min(t-r,Me.height()+a+1);se.height(o-L(ie)),le.css("top",r),be.height(o-a-1),Re=Ce.height()+1,We=tn("slotMinutes")/Ne,Ae=Re/We,n&&m()}function p(e){Te=e,qe.clear(),He=0,z(Se.width("").each(function(e,n){He=Math.max(He,t(n).outerWidth())}),He);var n=be[0].clientWidth;Fe=be.width()-n,Fe?(z(Ee,Fe),Ee.show().prev().removeClass("fc-last")):Ee.hide().prev().addClass("fc-last"),ze=Math.floor((n-He)/Le),z(ne.slice(0,-1),ze)}function m(){function t(){be.scrollTop(r)}var e=v(),n=d(e);n.setHours(tn("firstHour"));var r=_(e,n)+1;t(),setTimeout(t,0)}function y(){Ie=be.scrollTop()}function w(){be.scrollTop(Ie)}function D(t){t.click(C).mousedown(cn)}function M(t){t.click(C).mousedown(V)}function C(t){if(!tn("selectable")){var e=Math.min(Le-1,Math.floor((t.pageX-te.offset().left-He)/ze)),n=N(e),r=this.parentNode.className.match(/fc-slot(\d+)/);if(r){var a=parseInt(r[1])*tn("slotMinutes"),o=Math.floor(a/60);n.setHours(o),n.setMinutes(a%60+Ue),en("dayClick",ae[e],n,!1,t)}else en("dayClick",ae[e],n,!0,t)}}function S(t,e,n){n&&Oe.build();var r,a,o=d(K.visStart);Je?(r=g(e,o)*Ve+Xe+1,a=g(t,o)*Ve+Xe+1):(r=g(t,o),a=g(e,o)),r=Math.max(0,r),a=Math.min(Le,a),a>r&&D(E(0,r,0,a-1))}function E(t,e,n,r){var a=Oe.rect(t,e,n,r,le);return rn(a,le)}function x(t,e){for(var n=d(K.visStart),r=c(d(n),1),a=0;Le>a;a++){var o=new Date(Math.max(n,t)),i=new Date(Math.min(r,e));if(i>o){var s=a*Ve+Xe,l=Oe.rect(0,s,0,s,we),u=_(n,o),f=_(n,i);l.top=u,l.height=f-u,M(rn(l,we))}c(n,1),c(r,1)}}function T(t){return qe.left(t)}function k(t){return qe.right(t)}function H(t){return{row:Math.floor(g(t,K.visStart)/7),col:A(t.getDay())}}function R(t){var e=N(t.col),n=t.row;return tn("allDaySlot")&&n--,n>=0&&u(e,Ue+n*Ne),e}function N(t){return c(d(K.visStart),t*Ve+Xe)}function W(t){return tn("allDaySlot")&&!t.row}function A(t){return(t-Math.max(je,Pe)+Le)%Le*Ve+Xe}function _(t,n){if(t=d(t,!0),u(d(t),Ue)>n)return 0;if(n>=u(d(t),Ze))return Me.height();var r=tn("slotMinutes"),a=60*n.getHours()+n.getMinutes()-Ue,o=Math.floor(a/r),i=fn[o];return i===e&&(i=fn[o]=Me.find("tr:eq("+o+") td div")[0].offsetTop),Math.max(0,Math.round(i-1+Re*(a%r/r)))}function O(){return{left:He,right:Te-Fe}}function B(){return ye}function q(t){var e=d(t.start);return t.allDay?e:u(e,tn("defaultEventMinutes"))}function I(t,e){return e?d(t):u(d(t),tn("slotMinutes"))}function j(t,e,n){n?tn("allDaySlot")&&S(t,c(d(e),1),!0):P(t,e)}function P(e,n){var r=tn("selectHelper");if(Oe.build(),r){var a=g(e,K.visStart)*Ve+Xe;if(a>=0&&Le>a){var o=Oe.rect(0,a,0,a,we),i=_(e,e),s=_(e,n);if(s>i){if(o.top=i,o.height=s-i,o.left+=2,o.width-=5,t.isFunction(r)){var c=r(e,n);c&&(o.position="absolute",o.zIndex=8,xe=t(c).css(o).appendTo(we))}else o.isStart=!0,o.isEnd=!0,xe=t(ln({title:"",start:e,end:n,className:["fc-select-helper"],editable:!1},o)),xe.css("opacity",tn("dragOpacity"));xe&&(M(xe),we.append(xe),z(xe,o.width,!0),F(xe,o.height,!0))}}}else x(e,n)}function J(){an(),xe&&(xe.remove(),xe=null)}function V(e){if(1==e.which&&tn("selectable")){sn(e);var n;Be.start(function(t,e){if(J(),t&&t.col==e.col&&!W(t)){var r=R(e),a=R(t);n=[r,u(d(r),Ne),a,u(d(a),Ne)].sort(Y),P(n[0],n[3])}else n=null},e),t(document).one("mouseup",function(t){Be.stop(),n&&(+n[0]==+n[1]&&X(n[0],!1,t),on(n[0],n[3],!1,t))})}}function X(t,e,n){en("dayClick",ae[A(t.getDay())],t,e,n)}function Q(t,e){Be.start(function(t){if(an(),t)if(W(t))E(t.row,t.col,t.row,t.col);else{var e=R(t),n=u(d(e),tn("defaultEventMinutes"));x(e,n)}},e)}function G(t,e,n){var r=Be.stop();an(),r&&en("drop",t,R(r),W(r),e,n)}var K=this;K.renderAgenda=o,K.setWidth=p,K.setHeight=h,K.beforeHide=y,K.afterShow=w,K.defaultEventEnd=q,K.timePosition=_,K.dayOfWeekCol=A,K.dateCell=H,K.cellDate=R,K.cellIsAllDay=W,K.allDayRow=B,K.allDayBounds=O,K.getHoverListener=function(){return Be},K.colContentLeft=T,K.colContentRight=k,K.getDaySegmentContainer=function(){return fe},K.getSlotSegmentContainer=function(){return De},K.getMinMinute=function(){return Ue},K.getMaxMinute=function(){return Ze},K.getBodyContent=function(){return we},K.getRowCnt=function(){return 1},K.getColCnt=function(){return Le},K.getColWidth=function(){return ze},K.getSnapHeight=function(){return Ae},K.getSnapMinutes=function(){return Ne},K.defaultSelectionEnd=I,K.renderDayOverlay=S,K.renderSelection=j,K.clearSelection=J,K.reportDayClick=X,K.dragStart=Q,K.dragStop=G,ue.call(K,n,r,a),ve.call(K),de.call(K),ce.call(K);var te,ee,ne,re,ae,oe,ie,se,le,fe,pe,ye,be,we,De,Me,Ce,Se,Ee,xe,Te,ke,He,ze,Fe,Re,Ne,We,Ae,Le,_e,Oe,Be,qe,Ie,Ye,je,Pe,Je,Ve,Xe,Ue,Ze,$e,Qe,Ge,Ke,tn=K.opt,en=K.trigger,nn=K.clearEvents,rn=K.renderOverlay,an=K.clearOverlays,on=K.reportSelection,sn=K.unselect,cn=K.daySelectionMousedown,ln=K.slotSegHtml,un=r.formatDate,fn={};U(n.addClass("fc-agenda")),Oe=new he(function(e,n){function r(t){return Math.max(c,Math.min(l,t))}var a,o,i;ne.each(function(e,r){a=t(r),o=a.offset().left,e&&(i[1]=o),i=[o],n[e]=i}),i[1]=o+a.outerWidth(),tn("allDaySlot")&&(a=ye,o=a.offset().top,e[0]=[o,o+a.outerHeight()]);for(var s=we.offset().top,c=be.offset().top,l=c+be.outerHeight(),u=0;_e*We>u;u++)e.push([r(s+Ae*u),r(s+Ae*(u+1))])}),Be=new ge(Oe),qe=new me(function(t){return oe.eq(t)})}function ce(){function n(t,e){S(t);var n,r=t.length,i=[],c=[];for(n=0;r>n;n++)t[n].allDay?i.push(t[n]):c.push(t[n]);y("allDaySlot")&&(Y(a(i),e),z()),s(o(c),e),b("eventAfterAllRender")}function r(){E(),N().empty(),W().empty()}function a(e){var n,r,a,o,i=k(T(e,t.map(e,C),m.visStart,m.visEnd)),s=i.length,c=[];for(n=0;s>n;n++)for(r=i[n],a=0;r.length>a;a++)o=r[a],o.row=0,o.level=n,c.push(o);return c}function o(e){var n,r,a,o,s,l,f=P(),v=O(),h=_(),g=u(d(m.visStart),v),p=t.map(e,i),y=[];for(n=0;f>n;n++){for(r=k(T(e,p,g,u(d(g),h-v))),le(r),a=0;r.length>a;a++)for(o=r[a],s=0;o.length>s;s++)l=o[s],l.col=n,l.level=a,y.push(l);c(g,1,!0)}return y}function i(t){return t.end?d(t.end):u(d(t.start),y("defaultEventMinutes"))}function s(n,r){var a,o,i,s,c,u,f,d,h,g,p,m,w,D,M,C,S,E,x,T,k,z,F=n.length,N="",A={},_={},O=W(),Y=P();for((T=y("isRTL"))?(k=-1,z=Y-1):(k=1,z=0),a=0;F>a;a++)o=n[a],i=o.event,s=B(o.start,o.start),c=B(o.start,o.end),u=o.col,f=o.level,d=o.forward||0,h=q(u*k+z),g=I(u*k+z)-h,g=Math.min(g-6,.95*g),p=f?g/(f+d+1):d?2*(g/(d+1)-6):g,m=h+g/(f+d+1)*f*k+(T?g-p:0),o.top=s,o.left=m,o.outerWidth=p,o.outerHeight=c-s,N+=l(i,o);
+for(O[0].innerHTML=N,w=O.children(),a=0;F>a;a++)o=n[a],i=o.event,D=t(w[a]),M=b("eventRender",i,i,D),M===!1?D.remove():(M&&M!==!0&&(D.remove(),D=t(M).css({position:"absolute",top:o.top,left:o.left}).appendTo(O)),o.element=D,i._id===r?v(i,D,o):D[0]._fci=a,G(i,D));for(H(O,n,v),a=0;F>a;a++)o=n[a],(D=o.element)&&(S=A[C=o.key=X(D[0])],o.vsides=S===e?A[C]=L(D,!0):S,S=_[C],o.hsides=S===e?_[C]=R(D,!0):S,E=D.find(".fc-event-title"),E.length&&(o.contentTop=E[0].offsetTop));for(a=0;F>a;a++)o=n[a],(D=o.element)&&(D[0].style.width=Math.max(0,o.outerWidth-o.hsides)+"px",x=Math.max(0,o.outerHeight-o.vsides),D[0].style.height=x+"px",i=o.event,o.contentTop!==e&&10>x-o.contentTop&&(D.find("div.fc-event-time").text(ie(i.start,y("timeFormat"))+" - "+i.title),D.find("div.fc-event-title").remove()),b("eventAfterRender",i,i,D))}function l(t,e){var n="<",r=t.url,a=Q(t,y),o=["fc-event","fc-event-vert"];return w(t)&&o.push("fc-event-draggable"),e.isStart&&o.push("fc-event-start"),e.isEnd&&o.push("fc-event-end"),o=o.concat(t.className),t.source&&(o=o.concat(t.source.className||[])),n+=r?"a href='"+V(t.url)+"'":"div",n+=" class='"+o.join(" ")+"'"+" style='position:absolute;z-index:8;top:"+e.top+"px;left:"+e.left+"px;"+a+"'"+">"+"<div class='fc-event-inner'>"+"<div class='fc-event-time'>"+V(se(t.start,t.end,y("timeFormat")))+"</div>"+"<div class='fc-event-title'>"+V(t.title)+"</div>"+"</div>"+"<div class='fc-event-bg'></div>",e.isEnd&&D(t)&&(n+="<div class='ui-resizable-handle ui-resizable-s'>=</div>"),n+="</"+(r?"a":"div")+">"}function f(t,e,n){w(t)&&h(t,e,n.isStart),n.isEnd&&D(t)&&j(t,e,n),x(t,e)}function v(t,e,n){var r=e.find("div.fc-event-time");w(t)&&g(t,e,r),n.isEnd&&D(t)&&p(t,e,r),x(t,e)}function h(t,e,n){function r(){s||(e.width(a).height("").draggable("option","grid",null),s=!0)}var a,o,i,s=!0,l=y("isRTL")?-1:1,u=A(),f=J(),v=U(),h=Z(),g=O();e.draggable({zIndex:9,opacity:y("dragOpacity","month"),revertDuration:y("dragRevertDuration"),start:function(g,p){b("eventDragStart",e,t,g,p),te(t,e),a=e.width(),u.start(function(a,u,g,p){ae(),a?(o=!1,i=p*l,a.row?n?s&&(e.width(f-10),F(e,v*Math.round((t.end?(t.end-t.start)/Te:y("defaultEventMinutes"))/h)),e.draggable("option","grid",[f,1]),s=!1):o=!0:(re(c(d(t.start),i),c(C(t),i)),r()),o=o||s&&!i):(r(),o=!0),e.draggable("option","revert",o)},g,"drag")},stop:function(n,a){if(u.stop(),ae(),b("eventDragStop",e,t,n,a),o)r(),e.css("filter",""),K(t,e);else{var c=0;s||(c=Math.round((e.offset().top-$().offset().top)/v)*h+g-(60*t.start.getHours()+t.start.getMinutes())),ee(this,t,i,c,s,n,a)}}})}function g(t,e,n){function r(e){var r,a=u(d(t.start),e);t.end&&(r=u(d(t.end),e)),n.text(se(a,r,y("timeFormat")))}function a(){f&&(n.css("display",""),e.draggable("option","grid",[p,m]),f=!1)}var o,i,s,l,f=!1,v=y("isRTL")?-1:1,h=A(),g=P(),p=J(),m=U(),w=Z();e.draggable({zIndex:9,scroll:!1,grid:[p,m],axis:1==g?"y":!1,opacity:y("dragOpacity"),revertDuration:y("dragRevertDuration"),start:function(r,u){b("eventDragStart",e,t,r,u),te(t,e),o=e.position(),s=l=0,h.start(function(r,o,s,l){e.draggable("option","revert",!r),ae(),r&&(i=l*v,y("allDaySlot")&&!r.row?(f||(f=!0,n.hide(),e.draggable("option","grid",null)),re(c(d(t.start),i),c(C(t),i))):a())},r,"drag")},drag:function(t,e){s=Math.round((e.position.top-o.top)/m)*w,s!=l&&(f||r(s),l=s)},stop:function(n,c){var l=h.stop();ae(),b("eventDragStop",e,t,n,c),l&&(i||s||f)?ee(this,t,i,f?0:s,f,n,c):(a(),e.css("filter",""),e.css(o),r(0),K(t,e))}})}function p(t,e,n){var r,a,o=U(),i=Z();e.resizable({handles:{s:".ui-resizable-handle"},grid:o,start:function(n,o){r=a=0,te(t,e),e.css("z-index",9),b("eventResizeStart",this,t,n,o)},resize:function(s,c){r=Math.round((Math.max(o,e.height())-c.originalSize.height)/o),r!=a&&(n.text(se(t.start,r||t.end?u(M(t),i*r):null,y("timeFormat"))),a=r)},stop:function(n,a){b("eventResizeStop",this,t,n,a),r?ne(this,t,0,i*r,n,a):(e.css("z-index",8),K(t,e))}})}var m=this;m.renderEvents=n,m.compileDaySegs=a,m.clearEvents=r,m.slotSegHtml=l,m.bindDaySeg=f,fe.call(m);var y=m.opt,b=m.trigger,w=m.isEventDraggable,D=m.isEventResizable,M=m.eventEnd,S=m.reportEvents,E=m.reportEventClear,x=m.eventElementHandlers,z=m.setHeight,N=m.getDaySegmentContainer,W=m.getSlotSegmentContainer,A=m.getHoverListener,_=m.getMaxMinute,O=m.getMinMinute,B=m.timePosition,q=m.colContentLeft,I=m.colContentRight,Y=m.renderDaySegs,j=m.resizableDayEvent,P=m.getColCnt,J=m.getColWidth,U=m.getSnapHeight,Z=m.getSnapMinutes,$=m.getBodyContent,G=m.reportEventElement,K=m.showEvents,te=m.hideEvents,ee=m.eventDrop,ne=m.eventResize,re=m.renderDayOverlay,ae=m.clearOverlays,oe=m.calendar,ie=oe.formatDate,se=oe.formatDates}function le(t){var e,n,r,a,o,i;for(e=t.length-1;e>0;e--)for(a=t[e],n=0;a.length>n;n++)for(o=a[n],r=0;t[e-1].length>r;r++)i=t[e-1][r],x(o,i)&&(i.forward=Math.max(i.forward||0,(o.forward||0)+1))}function ue(t,n,r){function a(t,e){var n=F[t];return"object"==typeof n?J(n,e||r):n}function o(t,e){return n.trigger.apply(n,[t,e||S].concat(Array.prototype.slice.call(arguments,2),[S]))}function i(t){return l(t)&&!a("disableDragging")}function s(t){return l(t)&&!a("disableResizing")}function l(t){return K(t.editable,(t.source||{}).editable,a("editable"))}function f(t){k={};var e,n,r=t.length;for(e=0;r>e;e++)n=t[e],k[n._id]?k[n._id].push(n):k[n._id]=[n]}function v(t){return t.end?d(t.end):E(t)}function h(t,e){H.push(e),z[t._id]?z[t._id].push(e):z[t._id]=[e]}function g(){H=[],z={}}function p(t,n){n.click(function(r){return n.hasClass("ui-draggable-dragging")||n.hasClass("ui-resizable-resizing")?e:o("eventClick",this,t,r)}).hover(function(e){o("eventMouseover",this,t,e)},function(e){o("eventMouseout",this,t,e)})}function m(t,e){b(t,e,"show")}function y(t,e){b(t,e,"hide")}function b(t,e,n){var r,a=z[t._id],o=a.length;for(r=0;o>r;r++)e&&a[r][0]==e[0]||a[r][n]()}function w(t,e,n,r,a,i,s){var c=e.allDay,l=e._id;M(k[l],n,r,a),o("eventDrop",t,e,n,r,a,function(){M(k[l],-n,-r,c),T(l)},i,s),T(l)}function D(t,e,n,r,a,i){var s=e._id;C(k[s],n,r),o("eventResize",t,e,n,r,function(){C(k[s],-n,-r),T(s)},a,i),T(s)}function M(t,n,r,a){r=r||0;for(var o,i=t.length,s=0;i>s;s++)o=t[s],a!==e&&(o.allDay=a),u(c(o.start,n,!0),r),o.end&&(o.end=u(c(o.end,n,!0),r)),x(o,F)}function C(t,e,n){n=n||0;for(var r,a=t.length,o=0;a>o;o++)r=t[o],r.end=u(c(v(r),e,!0),n),x(r,F)}var S=this;S.element=t,S.calendar=n,S.name=r,S.opt=a,S.trigger=o,S.isEventDraggable=i,S.isEventResizable=s,S.reportEvents=f,S.eventEnd=v,S.reportEventElement=h,S.reportEventClear=g,S.eventElementHandlers=p,S.showEvents=m,S.hideEvents=y,S.eventDrop=w,S.eventResize=D;var E=S.defaultEventEnd,x=n.normalizeEvent,T=n.reportEventChange,k={},H=[],z={},F=n.options}function fe(){function n(t,e){var n,r,c,d,p,m,y,b,w=B(),D=T(),M=k(),C=0,S=t.length;for(w[0].innerHTML=a(t),o(t,w.children()),i(t),s(t,w,e),l(t),u(t),f(t),n=v(),r=0;D>r;r++){for(c=0,d=[],p=0;M>p;p++)d[p]=0;for(;S>C&&(m=t[C]).row==r;){for(y=j(d.slice(m.startCol,m.endCol)),m.top=y,y+=m.outerHeight,b=m.startCol;m.endCol>b;b++)d[b]=y;C++}n[r].height(j(d))}g(t,h(n))}function r(e,n,r){var i,s,c,d=t("<div/>"),p=B(),m=e.length;for(d[0].innerHTML=a(e),i=d.children(),p.append(i),o(e,i),l(e),u(e),f(e),g(e,h(v())),i=[],s=0;m>s;s++)c=e[s].element,c&&(e[s].row===n&&c.css("top",r),i.push(c[0]));return t(i)}function a(t){var e,n,r,a,o,i,s,c,l,u,f=y("isRTL"),d=t.length,v=F(),h=v.left,g=v.right,p="";for(e=0;d>e;e++)n=t[e],r=n.event,o=["fc-event","fc-event-hori"],w(r)&&o.push("fc-event-draggable"),n.isStart&&o.push("fc-event-start"),n.isEnd&&o.push("fc-event-end"),f?(i=A(n.end.getDay()-1),s=A(n.start.getDay()),c=n.isEnd?N(i):h,l=n.isStart?W(s):g):(i=A(n.start.getDay()),s=A(n.end.getDay()-1),c=n.isStart?N(i):h,l=n.isEnd?W(s):g),o=o.concat(r.className),r.source&&(o=o.concat(r.source.className||[])),a=r.url,u=Q(r,y),p+=a?"<a href='"+V(a)+"'":"<div",p+=" class='"+o.join(" ")+"'"+" style='position:absolute;z-index:8;left:"+c+"px;"+u+"'"+">"+"<div class='fc-event-inner'>",!r.allDay&&n.isStart&&(p+="<span class='fc-event-time'>"+V(I(r.start,r.end,y("timeFormat")))+"</span>"),p+="<span class='fc-event-title'>"+V(r.title)+"</span>"+"</div>",n.isEnd&&D(r)&&(p+="<div class='ui-resizable-handle ui-resizable-"+(f?"w":"e")+"'>"+"&nbsp;&nbsp;&nbsp;"+"</div>"),p+="</"+(a?"a":"div")+">",n.left=c,n.outerWidth=l-c,n.startCol=i,n.endCol=s+1;return p}function o(e,n){var r,a,o,i,s,c=e.length;for(r=0;c>r;r++)a=e[r],o=a.event,i=t(n[r]),s=b("eventRender",o,o,i),s===!1?i.remove():(s&&s!==!0&&(s=t(s).css({position:"absolute",left:a.left}),i.replaceWith(s),i=s),a.element=i)}function i(t){var e,n,r,a=t.length;for(e=0;a>e;e++)n=t[e],r=n.element,r&&C(n.event,r)}function s(t,e,n){var r,a,o,i,s=t.length;for(r=0;s>r;r++)a=t[r],o=a.element,o&&(i=a.event,i._id===n?q(i,o,a):o[0]._fci=r);H(e,t,q)}function l(t){var n,r,a,o,i,s=t.length,c={};for(n=0;s>n;n++)r=t[n],a=r.element,a&&(o=r.key=X(a[0]),i=c[o],i===e&&(i=c[o]=R(a,!0)),r.hsides=i)}function u(t){var e,n,r,a=t.length;for(e=0;a>e;e++)n=t[e],r=n.element,r&&(r[0].style.width=Math.max(0,n.outerWidth-n.hsides)+"px")}function f(t){var n,r,a,o,i,s=t.length,c={};for(n=0;s>n;n++)r=t[n],a=r.element,a&&(o=r.key,i=c[o],i===e&&(i=c[o]=O(a)),r.outerHeight=a[0].offsetHeight+i)}function v(){var t,e=T(),n=[];for(t=0;e>t;t++)n[t]=z(t).find("div.fc-day-content > div");return n}function h(t){var e,n=t.length,r=[];for(e=0;n>e;e++)r[e]=t[e][0].offsetTop;return r}function g(t,e){var n,r,a,o,i=t.length;for(n=0;i>n;n++)r=t[n],a=r.element,a&&(a[0].style.top=e[r.row]+(r.top||0)+"px",o=r.event,b("eventAfterRender",o,o,a))}function p(e,n,a){var o=y("isRTL"),i=o?"w":"e",s=n.find(".ui-resizable-"+i),l=!1;U(n),n.mousedown(function(t){t.preventDefault()}).click(function(t){l&&(t.preventDefault(),t.stopImmediatePropagation())}),s.mousedown(function(s){function u(n){b("eventResizeStop",this,e,n),t("body").css("cursor",""),h.stop(),P(),f&&x(this,e,f,0,n),setTimeout(function(){l=!1},0)}if(1==s.which){l=!0;var f,v,h=m.getHoverListener(),g=T(),p=k(),y=o?-1:1,w=o?p-1:0,D=n.css("top"),C=t.extend({},e),H=L(e.start);J(),t("body").css("cursor",i+"-resize").one("mouseup",u),b("eventResizeStart",this,e,s),h.start(function(t,n){if(t){var s=Math.max(H.row,t.row),l=t.col;1==g&&(s=0),s==H.row&&(l=o?Math.min(H.col,l):Math.max(H.col,l)),f=7*s+l*y+w-(7*n.row+n.col*y+w);var u=c(M(e),f,!0);if(f){C.end=u;var h=v;v=r(_([C]),a.row,D),v.find("*").css("cursor",i+"-resize"),h&&h.remove(),E(e)}else v&&(S(e),v.remove(),v=null);P(),Y(e.start,c(d(u),1))}},s)}})}var m=this;m.renderDaySegs=n,m.resizableDayEvent=p;var y=m.opt,b=m.trigger,w=m.isEventDraggable,D=m.isEventResizable,M=m.eventEnd,C=m.reportEventElement,S=m.showEvents,E=m.hideEvents,x=m.eventResize,T=m.getRowCnt,k=m.getColCnt;m.getColWidth;var z=m.allDayRow,F=m.allDayBounds,N=m.colContentLeft,W=m.colContentRight,A=m.dayOfWeekCol,L=m.dateCell,_=m.compileDaySegs,B=m.getDaySegmentContainer,q=m.bindDaySeg,I=m.calendar.formatDates,Y=m.renderDayOverlay,P=m.clearOverlays,J=m.clearSelection}function de(){function e(t,e,a){n(),e||(e=c(t,a)),l(t,e,a),r(t,e,a)}function n(t){f&&(f=!1,u(),s("unselect",null,t))}function r(t,e,n,r){f=!0,s("select",null,t,e,n,r)}function a(e){var a=o.cellDate,s=o.cellIsAllDay,c=o.getHoverListener(),f=o.reportDayClick;if(1==e.which&&i("selectable")){n(e);var d;c.start(function(t,e){u(),t&&s(t)?(d=[a(e),a(t)].sort(Y),l(d[0],d[1],!0)):d=null},e),t(document).one("mouseup",function(t){c.stop(),d&&(+d[0]==+d[1]&&f(d[0],!0,t),r(d[0],d[1],!0,t))})}}var o=this;o.select=e,o.unselect=n,o.reportSelection=r,o.daySelectionMousedown=a;var i=o.opt,s=o.trigger,c=o.defaultSelectionEnd,l=o.renderSelection,u=o.clearSelection,f=!1;i("selectable")&&i("unselectAuto")&&t(document).mousedown(function(e){var r=i("unselectCancel");r&&t(e.target).parents(r).length||n(e)})}function ve(){function e(e,n){var r=o.shift();return r||(r=t("<div class='fc-cell-overlay' style='position:absolute;z-index:3'/>")),r[0].parentNode!=n[0]&&r.appendTo(n),a.push(r.css(e).show()),r}function n(){for(var t;t=a.shift();)o.push(t.hide().unbind())}var r=this;r.renderOverlay=e,r.clearOverlays=n;var a=[],o=[]}function he(t){var e,n,r=this;r.build=function(){e=[],n=[],t(e,n)},r.cell=function(t,r){var a,o=e.length,i=n.length,s=-1,c=-1;for(a=0;o>a;a++)if(r>=e[a][0]&&e[a][1]>r){s=a;break}for(a=0;i>a;a++)if(t>=n[a][0]&&n[a][1]>t){c=a;break}return s>=0&&c>=0?{row:s,col:c}:null},r.rect=function(t,r,a,o,i){var s=i.offset();return{top:e[t][0]-s.top,left:n[r][0]-s.left,width:n[o][1]-n[r][0],height:e[a][1]-e[t][0]}}}function ge(e){function n(t){pe(t);var n=e.cell(t.pageX,t.pageY);(!n!=!i||n&&(n.row!=i.row||n.col!=i.col))&&(n?(o||(o=n),a(n,o,n.row-o.row,n.col-o.col)):a(n,o),i=n)}var r,a,o,i,s=this;s.start=function(s,c,l){a=s,o=i=null,e.build(),n(c),r=l||"mousemove",t(document).bind(r,n)},s.stop=function(){return t(document).unbind(r,n),i}}function pe(t){t.pageX===e&&(t.pageX=t.originalEvent.pageX,t.pageY=t.originalEvent.pageY)}function me(t){function n(e){return a[e]=a[e]||t(e)}var r=this,a={},o={},i={};r.left=function(t){return o[t]=o[t]===e?n(t).position().left:o[t]},r.right=function(t){return i[t]=i[t]===e?r.left(t)+n(t).width():i[t]},r.clear=function(){a={},o={},i={}}}var ye={defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"iso",weekNumberTitle:"W",allDayDefault:!0,ignoreTimezone:!0,lazyFetching:!0,startParam:"start",endParam:"end",titleFormat:{month:"MMMM yyyy",week:"MMM d[ yyyy]{ '&#8212;'[ MMM] d yyyy}",day:"dddd, MMM d, yyyy"},columnFormat:{month:"ddd",week:"ddd M/d",day:"dddd M/d"},timeFormat:{"":"h(:mm)t"},isRTL:!1,firstDay:0,monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],buttonText:{prev:"<span class='fc-text-arrow'>&lsaquo;</span>",next:"<span class='fc-text-arrow'>&rsaquo;</span>",prevYear:"<span class='fc-text-arrow'>&laquo;</span>",nextYear:"<span class='fc-text-arrow'>&raquo;</span>",today:"today",month:"month",week:"week",day:"day"},theme:!1,buttonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e"},unselectAuto:!0,dropAccept:"*"},be={header:{left:"next,prev today",center:"",right:"title"},buttonText:{prev:"<span class='fc-text-arrow'>&rsaquo;</span>",next:"<span class='fc-text-arrow'>&lsaquo;</span>",prevYear:"<span class='fc-text-arrow'>&raquo;</span>",nextYear:"<span class='fc-text-arrow'>&laquo;</span>"},buttonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w"}},we=t.fullCalendar={version:"1.6.0"},De=we.views={};t.fn.fullCalendar=function(n){if("string"==typeof n){var a,o=Array.prototype.slice.call(arguments,1);return this.each(function(){var r=t.data(this,"fullCalendar");if(r&&t.isFunction(r[n])){var i=r[n].apply(r,o);a===e&&(a=i),"destroy"==n&&t.removeData(this,"fullCalendar")}}),a!==e?a:this}var i=n.eventSources||[];return delete n.eventSources,n.events&&(i.push(n.events),delete n.events),n=t.extend(!0,{},ye,n.isRTL||n.isRTL===e&&ye.isRTL?be:{},n),this.each(function(e,a){var o=t(a),s=new r(o,n,i);o.data("fullCalendar",s),s.render()}),this},we.sourceNormalizers=[],we.sourceFetchers=[];var Me={dataType:"json",cache:!1},Ce=1;we.addDays=c,we.cloneDate=d,we.parseDate=m,we.parseISO8601=y,we.parseTime=b,we.formatDate=w,we.formatDates=D;var Se=["sun","mon","tue","wed","thu","fri","sat"],Ee=864e5,xe=36e5,Te=6e4,ke={s:function(t){return t.getSeconds()},ss:function(t){return P(t.getSeconds())},m:function(t){return t.getMinutes()},mm:function(t){return P(t.getMinutes())},h:function(t){return t.getHours()%12||12},hh:function(t){return P(t.getHours()%12||12)},H:function(t){return t.getHours()},HH:function(t){return P(t.getHours())},d:function(t){return t.getDate()},dd:function(t){return P(t.getDate())},ddd:function(t,e){return e.dayNamesShort[t.getDay()]},dddd:function(t,e){return e.dayNames[t.getDay()]},M:function(t){return t.getMonth()+1},MM:function(t){return P(t.getMonth()+1)},MMM:function(t,e){return e.monthNamesShort[t.getMonth()]},MMMM:function(t,e){return e.monthNames[t.getMonth()]},yy:function(t){return(t.getFullYear()+"").substring(2)},yyyy:function(t){return t.getFullYear()},t:function(t){return 12>t.getHours()?"a":"p"},tt:function(t){return 12>t.getHours()?"am":"pm"},T:function(t){return 12>t.getHours()?"A":"P"},TT:function(t){return 12>t.getHours()?"AM":"PM"},u:function(t){return w(t,"yyyy-MM-dd'T'HH:mm:ss'Z'")},S:function(t){var e=t.getDate();return e>10&&20>e?"th":["st","nd","rd"][e%10-1]||"th"},w:function(t,e){return e.weekNumberCalculation(t)},W:function(t){return M(t)}};we.dateFormatters=ke,we.applyAll=G,De.month=te,De.basicWeek=ee,De.basicDay=ne,n({weekMode:"fixed"}),De.agendaWeek=oe,De.agendaDay=ie,n({allDaySlot:!0,allDayText:"all-day",firstHour:6,slotMinutes:30,defaultEventMinutes:120,axisFormat:"h(:mm)tt",timeFormat:{agenda:"h:mm{ - h:mm}"},dragOpacity:{agenda:.5},minTime:0,maxTime:24})})(jQuery); \ No newline at end of file
diff --git a/library/fullcalendar/fullcalendar.print.css b/library/fullcalendar/fullcalendar.print.css
index e11c18163..e92f900cd 100644
--- a/library/fullcalendar/fullcalendar.print.css
+++ b/library/fullcalendar/fullcalendar.print.css
@@ -1,54 +1,25 @@
+/*!
+ * FullCalendar v1.6.0 Print Stylesheet
+ * Docs & License: http://arshaw.com/fullcalendar/
+ * (c) 2013 Adam Shaw
+ */
+
/*
- * FullCalendar v1.5.3 Print Stylesheet
- *
* Include this stylesheet on your page to get a more printer-friendly calendar.
* When including this stylesheet, use the media='print' attribute of the <link> tag.
* Make sure to include this stylesheet IN ADDITION to the regular fullcalendar.css.
- *
- * Copyright (c) 2011 Adam Shaw
- * Dual licensed under the MIT and GPL licenses, located in
- * MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
- *
- * Date: Mon Feb 6 22:40:40 2012 -0800
- *
*/
/* Events
-----------------------------------------------------*/
-.fc-event-skin {
- background: none !important;
+.fc-event {
+ background: #fff !important;
color: #000 !important;
}
-/* horizontal events */
-
-.fc-event-hori {
- border-width: 0 0 1px 0 !important;
- border-bottom-style: dotted !important;
- border-bottom-color: #000 !important;
- padding: 1px 0 0 0 !important;
- }
-
-.fc-event-hori .fc-event-inner {
- border-width: 0 !important;
- padding: 0 1px !important;
- }
-
-/* vertical events */
-
-.fc-event-vert {
- border-width: 0 0 0 1px !important;
- border-left-style: dotted !important;
- border-left-color: #000 !important;
- padding: 0 1px 0 0 !important;
- }
-
-.fc-event-vert .fc-event-inner {
- border-width: 0 !important;
- padding: 1px 0 !important;
- }
+/* for vertical events */
.fc-event-bg {
display: none !important;
diff --git a/library/fullcalendar/gcal.js b/library/fullcalendar/gcal.js
index e9bbe26d8..64263fcf3 100644
--- a/library/fullcalendar/gcal.js
+++ b/library/fullcalendar/gcal.js
@@ -1,12 +1,7 @@
-/*
- * FullCalendar v1.5.3 Google Calendar Plugin
- *
- * Copyright (c) 2011 Adam Shaw
- * Dual licensed under the MIT and GPL licenses, located in
- * MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
- *
- * Date: Mon Feb 6 22:40:40 2012 -0800
- *
+/*!
+ * FullCalendar v1.6.0 Google Calendar Plugin
+ * Docs & License: http://arshaw.com/fullcalendar/
+ * (c) 2013 Adam Shaw
*/
(function($) {
diff --git a/library/fullcalendar/license.txt b/library/fullcalendar/license.txt
new file mode 100644
index 000000000..dd7b48e8b
--- /dev/null
+++ b/library/fullcalendar/license.txt
@@ -0,0 +1,20 @@
+Copyright (c) 2013 Adam Shaw
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/library/jquery_ac/friendica.complete.js b/library/jquery_ac/friendica.complete.js
index c8a28c0a7..b73598575 100644
--- a/library/jquery_ac/friendica.complete.js
+++ b/library/jquery_ac/friendica.complete.js
@@ -242,7 +242,7 @@
} else if (!this.isBadQuery(q)) {
me = this;
me.options.params.query = q;
- $('#nav-search-spinner').show();
+ $('#nav-search-spinner').spin('tiny');
$.get(this.serviceUrl, me.options.params, function(txt) { me.processResponse(txt); }, 'text');
}
},
@@ -305,7 +305,7 @@
this.data = response.data;
this.suggest();
}
- $('#nav-search-spinner').hide();
+ $('#nav-search-spinner').spin(false);
},
activate: function(index) {
diff --git a/library/jslider/css/jslider.css b/library/jslider/css/jslider.css
index c982e1306..fe943dc0a 100644
--- a/library/jslider/css/jslider.css
+++ b/library/jslider/css/jslider.css
@@ -12,9 +12,9 @@
.jslider .jslider-bg { position: relative; }
.jslider .jslider-bg i { height: 5px; position: absolute; font-size: 0; top: 0; }
- .jslider .jslider-bg .l { width: 50%; background-position: 0 0; left: 0; }
- .jslider .jslider-bg .r { width: 50%; left: 50%; background-position: right 0; }
- .jslider .jslider-bg .v { position: absolute; width: 60%; left: 20%; top: 0; height: 5px; background-position: 0 -20px; }
+ .jslider .jslider-bg .l { width: 50%; background-position: 0 0; left: 0; background: #888; }
+ .jslider .jslider-bg .r { width: 50%; left: 50%; background-position: right 0; background: #888;}
+ .jslider .jslider-bg .v { position: absolute; background: url(../img/jslider.png) repeat-x 0 0; width: 60%; left: 20%; top: 0; height: 5px; background-position: 0 -20px; }
.jslider .jslider-pointer { width: 13px; height: 15px; background-position: 0 -40px; position: absolute; left: 20%; top: -4px; margin-left: -6px; cursor: pointer; cursor: hand; }
.jslider .jslider-pointer-hover { background-position: -20px -40px; }
@@ -23,7 +23,7 @@
.jslider .jslider-label { font-size: 9px; line-height: 12px; color: black; opacity: 0.4; white-space: nowrap; padding: 0px 2px; position: absolute; top: -18px; left: 0px; }
.jslider .jslider-label-to { left: auto; right: 0; }
- .jslider .jslider-value { font-size: 9px; white-space: nowrap; padding: 1px 2px 0; position: absolute; top: -19px; left: 20%; background: white; line-height: 12px; -moz-border-radius: 2px; -webkit-border-radius: 2px; -o-border-radius: 2px; border-radius: 2px; }
+ .jslider .jslider-value { font-size: 9px; white-space: nowrap; padding: 1px 2px 0; position: absolute; top: -19px; left: 20%; line-height: 12px; }
.jslider .jslider-value-to { left: 80%; }
.jslider .jslider-label small,
diff --git a/library/jslider/img/jslider.png b/library/jslider/img/jslider.png
index 12d26ccad..215e11a23 100644
--- a/library/jslider/img/jslider.png
+++ b/library/jslider/img/jslider.png
Binary files differ
diff --git a/library/prettyphoto/README b/library/prettyphoto/README
new file mode 100755
index 000000000..1e5684253
--- /dev/null
+++ b/library/prettyphoto/README
@@ -0,0 +1,30 @@
+prettyPhoto v3.1.4
+© Copyright, Stephane Caron
+http://www.no-margin-for-errors.com
+
+
+============================= Released under =============================
+
+Creative Commons 2.5
+http://creativecommons.org/licenses/by/2.5/
+
+OR
+
+GPLV2 license
+http://www.gnu.org/licenses/gpl-2.0.html
+
+You are free to use prettyPhoto in commercial projects as long as the
+copyright header is left intact.
+
+============================ More information ============================
+http://www.no-margin-for-errors.com/projects/prettyPhoto/
+
+
+============================== Description ===============================
+
+prettyPhoto is a jQuery based lightbox clone. Not only does it support images,
+it also add support for videos, flash, YouTube, iFrame. It's a full blown
+media modal box.
+
+Please refer to http://www.no-margin-for-errors.com/projects/prettyPhoto/
+for all the details on how to use.
diff --git a/library/prettyphoto/css/prettyPhoto.css b/library/prettyphoto/css/prettyPhoto.css
new file mode 100644
index 000000000..8a2a2fd14
--- /dev/null
+++ b/library/prettyphoto/css/prettyPhoto.css
@@ -0,0 +1,170 @@
+div.pp_default .pp_top,div.pp_default .pp_top .pp_middle,div.pp_default .pp_top .pp_left,div.pp_default .pp_top .pp_right,div.pp_default .pp_bottom,div.pp_default .pp_bottom .pp_left,div.pp_default .pp_bottom .pp_middle,div.pp_default .pp_bottom .pp_right{height:13px}
+div.pp_default .pp_top .pp_left{background:url(../images/prettyPhoto/default/sprite.png) -78px -93px no-repeat}
+div.pp_default .pp_top .pp_middle{background:url(../images/prettyPhoto/default/sprite_x.png) top left repeat-x}
+div.pp_default .pp_top .pp_right{background:url(../images/prettyPhoto/default/sprite.png) -112px -93px no-repeat}
+div.pp_default .pp_content .ppt{color:#f8f8f8}
+div.pp_default .pp_content_container .pp_left{background:url(../images/prettyPhoto/default/sprite_y.png) -7px 0 repeat-y;padding-left:13px}
+div.pp_default .pp_content_container .pp_right{background:url(../images/prettyPhoto/default/sprite_y.png) top right repeat-y;padding-right:13px}
+div.pp_default .pp_next:hover{background:url(../images/prettyPhoto/default/sprite_next.png) center right no-repeat;cursor:pointer}
+div.pp_default .pp_previous:hover{background:url(../images/prettyPhoto/default/sprite_prev.png) center left no-repeat;cursor:pointer}
+div.pp_default .pp_expand{background:url(../images/prettyPhoto/default/sprite.png) 0 -29px no-repeat;cursor:pointer;width:28px;height:28px}
+div.pp_default .pp_expand:hover{background:url(../images/prettyPhoto/default/sprite.png) 0 -56px no-repeat;cursor:pointer}
+div.pp_default .pp_contract{background:url(../images/prettyPhoto/default/sprite.png) 0 -84px no-repeat;cursor:pointer;width:28px;height:28px}
+div.pp_default .pp_contract:hover{background:url(../images/prettyPhoto/default/sprite.png) 0 -113px no-repeat;cursor:pointer}
+div.pp_default .pp_close{width:30px;height:30px;background:url(../images/prettyPhoto/default/sprite.png) 2px 1px no-repeat;cursor:pointer}
+div.pp_default .pp_gallery ul li a{background:url(../images/prettyPhoto/default/default_thumb.png) center center #f8f8f8;border:1px solid #aaa}
+div.pp_default .pp_social{margin-top:7px}
+div.pp_default .pp_gallery a.pp_arrow_previous,div.pp_default .pp_gallery a.pp_arrow_next{position:static;left:auto}
+div.pp_default .pp_nav .pp_play,div.pp_default .pp_nav .pp_pause{background:url(../images/prettyPhoto/default/sprite.png) -51px 1px no-repeat;height:30px;width:30px}
+div.pp_default .pp_nav .pp_pause{background-position:-51px -29px}
+div.pp_default a.pp_arrow_previous,div.pp_default a.pp_arrow_next{background:url(../images/prettyPhoto/default/sprite.png) -31px -3px no-repeat;height:20px;width:20px;margin:4px 0 0}
+div.pp_default a.pp_arrow_next{left:52px;background-position:-82px -3px}
+div.pp_default .pp_content_container .pp_details{margin-top:5px}
+div.pp_default .pp_nav{clear:none;height:30px;width:110px;position:relative}
+div.pp_default .pp_nav .currentTextHolder{font-family:Georgia;font-style:italic;color:#999;font-size:11px;left:75px;line-height:25px;position:absolute;top:2px;margin:0;padding:0 0 0 10px}
+div.pp_default .pp_close:hover,div.pp_default .pp_nav .pp_play:hover,div.pp_default .pp_nav .pp_pause:hover,div.pp_default .pp_arrow_next:hover,div.pp_default .pp_arrow_previous:hover{opacity:0.7}
+div.pp_default .pp_description{font-size:11px;font-weight:700;line-height:14px;margin:5px 50px 5px 0}
+div.pp_default .pp_bottom .pp_left{background:url(../images/prettyPhoto/default/sprite.png) -78px -127px no-repeat}
+div.pp_default .pp_bottom .pp_middle{background:url(../images/prettyPhoto/default/sprite_x.png) bottom left repeat-x}
+div.pp_default .pp_bottom .pp_right{background:url(../images/prettyPhoto/default/sprite.png) -112px -127px no-repeat}
+div.pp_default .pp_loaderIcon{background:url(../images/prettyPhoto/default/loader.gif) center center no-repeat}
+div.light_rounded .pp_top .pp_left{background:url(../images/prettyPhoto/light_rounded/sprite.png) -88px -53px no-repeat}
+div.light_rounded .pp_top .pp_right{background:url(../images/prettyPhoto/light_rounded/sprite.png) -110px -53px no-repeat}
+div.light_rounded .pp_next:hover{background:url(../images/prettyPhoto/light_rounded/btnNext.png) center right no-repeat;cursor:pointer}
+div.light_rounded .pp_previous:hover{background:url(../images/prettyPhoto/light_rounded/btnPrevious.png) center left no-repeat;cursor:pointer}
+div.light_rounded .pp_expand{background:url(../images/prettyPhoto/light_rounded/sprite.png) -31px -26px no-repeat;cursor:pointer}
+div.light_rounded .pp_expand:hover{background:url(../images/prettyPhoto/light_rounded/sprite.png) -31px -47px no-repeat;cursor:pointer}
+div.light_rounded .pp_contract{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -26px no-repeat;cursor:pointer}
+div.light_rounded .pp_contract:hover{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -47px no-repeat;cursor:pointer}
+div.light_rounded .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/light_rounded/sprite.png) -1px -1px no-repeat;cursor:pointer}
+div.light_rounded .pp_nav .pp_play{background:url(../images/prettyPhoto/light_rounded/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
+div.light_rounded .pp_nav .pp_pause{background:url(../images/prettyPhoto/light_rounded/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
+div.light_rounded .pp_arrow_previous{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -71px no-repeat}
+div.light_rounded .pp_arrow_next{background:url(../images/prettyPhoto/light_rounded/sprite.png) -22px -71px no-repeat}
+div.light_rounded .pp_bottom .pp_left{background:url(../images/prettyPhoto/light_rounded/sprite.png) -88px -80px no-repeat}
+div.light_rounded .pp_bottom .pp_right{background:url(../images/prettyPhoto/light_rounded/sprite.png) -110px -80px no-repeat}
+div.dark_rounded .pp_top .pp_left{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -53px no-repeat}
+div.dark_rounded .pp_top .pp_right{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -53px no-repeat}
+div.dark_rounded .pp_content_container .pp_left{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat-y}
+div.dark_rounded .pp_content_container .pp_right{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top right repeat-y}
+div.dark_rounded .pp_next:hover{background:url(../images/prettyPhoto/dark_rounded/btnNext.png) center right no-repeat;cursor:pointer}
+div.dark_rounded .pp_previous:hover{background:url(../images/prettyPhoto/dark_rounded/btnPrevious.png) center left no-repeat;cursor:pointer}
+div.dark_rounded .pp_expand{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -26px no-repeat;cursor:pointer}
+div.dark_rounded .pp_expand:hover{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -47px no-repeat;cursor:pointer}
+div.dark_rounded .pp_contract{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -26px no-repeat;cursor:pointer}
+div.dark_rounded .pp_contract:hover{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -47px no-repeat;cursor:pointer}
+div.dark_rounded .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -1px no-repeat;cursor:pointer}
+div.dark_rounded .pp_description{margin-right:85px;color:#fff}
+div.dark_rounded .pp_nav .pp_play{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
+div.dark_rounded .pp_nav .pp_pause{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
+div.dark_rounded .pp_arrow_previous{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -71px no-repeat}
+div.dark_rounded .pp_arrow_next{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -22px -71px no-repeat}
+div.dark_rounded .pp_bottom .pp_left{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -80px no-repeat}
+div.dark_rounded .pp_bottom .pp_right{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -80px no-repeat}
+div.dark_rounded .pp_loaderIcon{background:url(../images/prettyPhoto/dark_rounded/loader.gif) center center no-repeat}
+div.dark_square .pp_left,div.dark_square .pp_middle,div.dark_square .pp_right,div.dark_square .pp_content{background:#000}
+div.dark_square .pp_description{color:#fff;margin:0 85px 0 0}
+div.dark_square .pp_loaderIcon{background:url(../images/prettyPhoto/dark_square/loader.gif) center center no-repeat}
+div.dark_square .pp_expand{background:url(../images/prettyPhoto/dark_square/sprite.png) -31px -26px no-repeat;cursor:pointer}
+div.dark_square .pp_expand:hover{background:url(../images/prettyPhoto/dark_square/sprite.png) -31px -47px no-repeat;cursor:pointer}
+div.dark_square .pp_contract{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -26px no-repeat;cursor:pointer}
+div.dark_square .pp_contract:hover{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -47px no-repeat;cursor:pointer}
+div.dark_square .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/dark_square/sprite.png) -1px -1px no-repeat;cursor:pointer}
+div.dark_square .pp_nav{clear:none}
+div.dark_square .pp_nav .pp_play{background:url(../images/prettyPhoto/dark_square/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
+div.dark_square .pp_nav .pp_pause{background:url(../images/prettyPhoto/dark_square/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
+div.dark_square .pp_arrow_previous{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -71px no-repeat}
+div.dark_square .pp_arrow_next{background:url(../images/prettyPhoto/dark_square/sprite.png) -22px -71px no-repeat}
+div.dark_square .pp_next:hover{background:url(../images/prettyPhoto/dark_square/btnNext.png) center right no-repeat;cursor:pointer}
+div.dark_square .pp_previous:hover{background:url(../images/prettyPhoto/dark_square/btnPrevious.png) center left no-repeat;cursor:pointer}
+div.light_square .pp_expand{background:url(../images/prettyPhoto/light_square/sprite.png) -31px -26px no-repeat;cursor:pointer}
+div.light_square .pp_expand:hover{background:url(../images/prettyPhoto/light_square/sprite.png) -31px -47px no-repeat;cursor:pointer}
+div.light_square .pp_contract{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -26px no-repeat;cursor:pointer}
+div.light_square .pp_contract:hover{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -47px no-repeat;cursor:pointer}
+div.light_square .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/light_square/sprite.png) -1px -1px no-repeat;cursor:pointer}
+div.light_square .pp_nav .pp_play{background:url(../images/prettyPhoto/light_square/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
+div.light_square .pp_nav .pp_pause{background:url(../images/prettyPhoto/light_square/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
+div.light_square .pp_arrow_previous{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -71px no-repeat}
+div.light_square .pp_arrow_next{background:url(../images/prettyPhoto/light_square/sprite.png) -22px -71px no-repeat}
+div.light_square .pp_next:hover{background:url(../images/prettyPhoto/light_square/btnNext.png) center right no-repeat;cursor:pointer}
+div.light_square .pp_previous:hover{background:url(../images/prettyPhoto/light_square/btnPrevious.png) center left no-repeat;cursor:pointer}
+div.facebook .pp_top .pp_left{background:url(../images/prettyPhoto/facebook/sprite.png) -88px -53px no-repeat}
+div.facebook .pp_top .pp_middle{background:url(../images/prettyPhoto/facebook/contentPatternTop.png) top left repeat-x}
+div.facebook .pp_top .pp_right{background:url(../images/prettyPhoto/facebook/sprite.png) -110px -53px no-repeat}
+div.facebook .pp_content_container .pp_left{background:url(../images/prettyPhoto/facebook/contentPatternLeft.png) top left repeat-y}
+div.facebook .pp_content_container .pp_right{background:url(../images/prettyPhoto/facebook/contentPatternRight.png) top right repeat-y}
+div.facebook .pp_expand{background:url(../images/prettyPhoto/facebook/sprite.png) -31px -26px no-repeat;cursor:pointer}
+div.facebook .pp_expand:hover{background:url(../images/prettyPhoto/facebook/sprite.png) -31px -47px no-repeat;cursor:pointer}
+div.facebook .pp_contract{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -26px no-repeat;cursor:pointer}
+div.facebook .pp_contract:hover{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -47px no-repeat;cursor:pointer}
+div.facebook .pp_close{width:22px;height:22px;background:url(../images/prettyPhoto/facebook/sprite.png) -1px -1px no-repeat;cursor:pointer}
+div.facebook .pp_description{margin:0 37px 0 0}
+div.facebook .pp_loaderIcon{background:url(../images/prettyPhoto/facebook/loader.gif) center center no-repeat}
+div.facebook .pp_arrow_previous{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -71px no-repeat;height:22px;margin-top:0;width:22px}
+div.facebook .pp_arrow_previous.disabled{background-position:0 -96px;cursor:default}
+div.facebook .pp_arrow_next{background:url(../images/prettyPhoto/facebook/sprite.png) -32px -71px no-repeat;height:22px;margin-top:0;width:22px}
+div.facebook .pp_arrow_next.disabled{background-position:-32px -96px;cursor:default}
+div.facebook .pp_nav{margin-top:0}
+div.facebook .pp_nav p{font-size:15px;padding:0 3px 0 4px}
+div.facebook .pp_nav .pp_play{background:url(../images/prettyPhoto/facebook/sprite.png) -1px -123px no-repeat;height:22px;width:22px}
+div.facebook .pp_nav .pp_pause{background:url(../images/prettyPhoto/facebook/sprite.png) -32px -123px no-repeat;height:22px;width:22px}
+div.facebook .pp_next:hover{background:url(../images/prettyPhoto/facebook/btnNext.png) center right no-repeat;cursor:pointer}
+div.facebook .pp_previous:hover{background:url(../images/prettyPhoto/facebook/btnPrevious.png) center left no-repeat;cursor:pointer}
+div.facebook .pp_bottom .pp_left{background:url(../images/prettyPhoto/facebook/sprite.png) -88px -80px no-repeat}
+div.facebook .pp_bottom .pp_middle{background:url(../images/prettyPhoto/facebook/contentPatternBottom.png) top left repeat-x}
+div.facebook .pp_bottom .pp_right{background:url(../images/prettyPhoto/facebook/sprite.png) -110px -80px no-repeat}
+div.pp_pic_holder a:focus{outline:none}
+div.pp_overlay{background:#000;display:none;left:0;position:absolute;top:0;width:100%;z-index:9500}
+div.pp_pic_holder{display:none;position:absolute;width:100px;z-index:10000}
+.pp_content{height:40px;min-width:40px}
+* html .pp_content{width:40px}
+.pp_content_container{position:relative;text-align:left;width:100%}
+.pp_content_container .pp_left{padding-left:20px}
+.pp_content_container .pp_right{padding-right:20px}
+.pp_content_container .pp_details{float:left;margin:10px 0 2px}
+.pp_description{display:none;margin:0}
+.pp_social{float:left;margin:0}
+.pp_social .facebook{float:left;margin-left:5px;width:55px;overflow:hidden}
+.pp_social .twitter{float:left}
+.pp_nav{clear:right;float:left;margin:3px 10px 0 0}
+.pp_nav p{float:left;white-space:nowrap;margin:2px 4px}
+.pp_nav .pp_play,.pp_nav .pp_pause{float:left;margin-right:4px;text-indent:-10000px}
+a.pp_arrow_previous,a.pp_arrow_next{display:block;float:left;height:15px;margin-top:3px;overflow:hidden;text-indent:-10000px;width:14px}
+.pp_hoverContainer{position:absolute;top:0;width:100%;z-index:2000}
+.pp_gallery{display:none;left:50%;margin-top:-50px;position:absolute;z-index:10000}
+.pp_gallery div{float:left;overflow:hidden;position:relative}
+.pp_gallery ul{float:left;height:35px;position:relative;white-space:nowrap;margin:0 0 0 5px;padding:0}
+.pp_gallery ul a{border:1px rgba(0,0,0,0.5) solid;display:block;float:left;height:33px;overflow:hidden}
+.pp_gallery ul a img{border:0}
+.pp_gallery li{display:block;float:left;margin:0 5px 0 0;padding:0}
+.pp_gallery li.default a{background:url(../images/prettyPhoto/facebook/default_thumbnail.gif) 0 0 no-repeat;display:block;height:33px;width:50px}
+.pp_gallery .pp_arrow_previous,.pp_gallery .pp_arrow_next{margin-top:7px!important}
+a.pp_next{background:url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;display:block;float:right;height:100%;text-indent:-10000px;width:49%}
+a.pp_previous{background:url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;display:block;float:left;height:100%;text-indent:-10000px;width:49%}
+a.pp_expand,a.pp_contract{cursor:pointer;display:none;height:20px;position:absolute;right:30px;text-indent:-10000px;top:10px;width:20px;z-index:20000}
+a.pp_close{position:absolute;right:0;top:0;display:block;line-height:22px;text-indent:-10000px}
+.pp_loaderIcon{display:block;height:24px;left:50%;position:absolute;top:50%;width:24px;margin:-12px 0 0 -12px}
+#pp_full_res{line-height:1!important}
+#pp_full_res .pp_inline{text-align:left}
+#pp_full_res .pp_inline p{margin:0 0 15px}
+div.ppt{color:#fff;display:none;font-size:17px;z-index:9999;margin:0 0 5px 15px}
+div.pp_default .pp_content,div.light_rounded .pp_content{background-color:#fff}
+div.pp_default #pp_full_res .pp_inline,div.light_rounded .pp_content .ppt,div.light_rounded #pp_full_res .pp_inline,div.light_square .pp_content .ppt,div.light_square #pp_full_res .pp_inline,div.facebook .pp_content .ppt,div.facebook #pp_full_res .pp_inline{color:#000}
+div.pp_default .pp_gallery ul li a:hover,div.pp_default .pp_gallery ul li.selected a,.pp_gallery ul a:hover,.pp_gallery li.selected a{border-color:#fff}
+div.pp_default .pp_details,div.light_rounded .pp_details,div.dark_rounded .pp_details,div.dark_square .pp_details,div.light_square .pp_details,div.facebook .pp_details{position:relative}
+div.light_rounded .pp_top .pp_middle,div.light_rounded .pp_content_container .pp_left,div.light_rounded .pp_content_container .pp_right,div.light_rounded .pp_bottom .pp_middle,div.light_square .pp_left,div.light_square .pp_middle,div.light_square .pp_right,div.light_square .pp_content,div.facebook .pp_content{background:#fff}
+div.light_rounded .pp_description,div.light_square .pp_description{margin-right:85px}
+div.light_rounded .pp_gallery a.pp_arrow_previous,div.light_rounded .pp_gallery a.pp_arrow_next,div.dark_rounded .pp_gallery a.pp_arrow_previous,div.dark_rounded .pp_gallery a.pp_arrow_next,div.dark_square .pp_gallery a.pp_arrow_previous,div.dark_square .pp_gallery a.pp_arrow_next,div.light_square .pp_gallery a.pp_arrow_previous,div.light_square .pp_gallery a.pp_arrow_next{margin-top:12px!important}
+div.light_rounded .pp_arrow_previous.disabled,div.dark_rounded .pp_arrow_previous.disabled,div.dark_square .pp_arrow_previous.disabled,div.light_square .pp_arrow_previous.disabled{background-position:0 -87px;cursor:default}
+div.light_rounded .pp_arrow_next.disabled,div.dark_rounded .pp_arrow_next.disabled,div.dark_square .pp_arrow_next.disabled,div.light_square .pp_arrow_next.disabled{background-position:-22px -87px;cursor:default}
+div.light_rounded .pp_loaderIcon,div.light_square .pp_loaderIcon{background:url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat}
+div.dark_rounded .pp_top .pp_middle,div.dark_rounded .pp_content,div.dark_rounded .pp_bottom .pp_middle{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat}
+div.dark_rounded .currentTextHolder,div.dark_square .currentTextHolder{color:#c4c4c4}
+div.dark_rounded #pp_full_res .pp_inline,div.dark_square #pp_full_res .pp_inline{color:#fff}
+.pp_top,.pp_bottom{height:20px;position:relative}
+* html .pp_top,* html .pp_bottom{padding:0 20px}
+.pp_top .pp_left,.pp_bottom .pp_left{height:20px;left:0;position:absolute;width:20px}
+.pp_top .pp_middle,.pp_bottom .pp_middle{height:20px;left:20px;position:absolute;right:20px}
+* html .pp_top .pp_middle,* html .pp_bottom .pp_middle{left:0;position:static}
+.pp_top .pp_right,.pp_bottom .pp_right{height:20px;left:auto;position:absolute;right:0;top:0;width:20px}
+.pp_fade,.pp_gallery li.default a img{display:none} \ No newline at end of file
diff --git a/library/prettyphoto/images/prettyPhoto/dark_rounded/btnNext.png b/library/prettyphoto/images/prettyPhoto/dark_rounded/btnNext.png
new file mode 100755
index 000000000..b28c1ef3d
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/dark_rounded/btnNext.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_rounded/btnPrevious.png b/library/prettyphoto/images/prettyPhoto/dark_rounded/btnPrevious.png
new file mode 100755
index 000000000..e0cd9c49a
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/dark_rounded/btnPrevious.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_rounded/contentPattern.png b/library/prettyphoto/images/prettyPhoto/dark_rounded/contentPattern.png
new file mode 100755
index 000000000..e5a047c3a
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/dark_rounded/contentPattern.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_rounded/default_thumbnail.gif b/library/prettyphoto/images/prettyPhoto/dark_rounded/default_thumbnail.gif
new file mode 100755
index 000000000..2b1280f32
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/dark_rounded/default_thumbnail.gif
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_rounded/loader.gif b/library/prettyphoto/images/prettyPhoto/dark_rounded/loader.gif
new file mode 100755
index 000000000..50820eedd
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/dark_rounded/loader.gif
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_rounded/sprite.png b/library/prettyphoto/images/prettyPhoto/dark_rounded/sprite.png
new file mode 100755
index 000000000..fb8c0f83d
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/dark_rounded/sprite.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_square/btnNext.png b/library/prettyphoto/images/prettyPhoto/dark_square/btnNext.png
new file mode 100755
index 000000000..b28c1ef3d
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/dark_square/btnNext.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_square/btnPrevious.png b/library/prettyphoto/images/prettyPhoto/dark_square/btnPrevious.png
new file mode 100755
index 000000000..e0cd9c49a
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/dark_square/btnPrevious.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_square/contentPattern.png b/library/prettyphoto/images/prettyPhoto/dark_square/contentPattern.png
new file mode 100755
index 000000000..7b50aff88
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/dark_square/contentPattern.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_square/default_thumbnail.gif b/library/prettyphoto/images/prettyPhoto/dark_square/default_thumbnail.gif
new file mode 100755
index 000000000..2b1280f32
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/dark_square/default_thumbnail.gif
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_square/loader.gif b/library/prettyphoto/images/prettyPhoto/dark_square/loader.gif
new file mode 100755
index 000000000..50820eedd
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/dark_square/loader.gif
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_square/sprite.png b/library/prettyphoto/images/prettyPhoto/dark_square/sprite.png
new file mode 100755
index 000000000..4fe354752
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/dark_square/sprite.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/default_thumb.png b/library/prettyphoto/images/prettyPhoto/default/default_thumb.png
new file mode 100644
index 000000000..1a26e4b16
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/default/default_thumb.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/loader.gif b/library/prettyphoto/images/prettyPhoto/default/loader.gif
new file mode 100644
index 000000000..35d397c9e
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/default/loader.gif
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/sprite.png b/library/prettyphoto/images/prettyPhoto/default/sprite.png
new file mode 100644
index 000000000..5f07ddc56
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/default/sprite.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/sprite_next.png b/library/prettyphoto/images/prettyPhoto/default/sprite_next.png
new file mode 100644
index 000000000..379dc0d0d
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/default/sprite_next.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/sprite_prev.png b/library/prettyphoto/images/prettyPhoto/default/sprite_prev.png
new file mode 100644
index 000000000..1ee486514
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/default/sprite_prev.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/sprite_x.png b/library/prettyphoto/images/prettyPhoto/default/sprite_x.png
new file mode 100644
index 000000000..d4433ab0d
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/default/sprite_x.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/sprite_y.png b/library/prettyphoto/images/prettyPhoto/default/sprite_y.png
new file mode 100644
index 000000000..7786ab512
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/default/sprite_y.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/btnNext.png b/library/prettyphoto/images/prettyPhoto/facebook/btnNext.png
new file mode 100755
index 000000000..e809c3b64
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/facebook/btnNext.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/btnPrevious.png b/library/prettyphoto/images/prettyPhoto/facebook/btnPrevious.png
new file mode 100755
index 000000000..0812542cc
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/facebook/btnPrevious.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/contentPatternBottom.png b/library/prettyphoto/images/prettyPhoto/facebook/contentPatternBottom.png
new file mode 100755
index 000000000..a9be3b2ca
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/facebook/contentPatternBottom.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/contentPatternLeft.png b/library/prettyphoto/images/prettyPhoto/facebook/contentPatternLeft.png
new file mode 100755
index 000000000..277c87a5b
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/facebook/contentPatternLeft.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/contentPatternRight.png b/library/prettyphoto/images/prettyPhoto/facebook/contentPatternRight.png
new file mode 100755
index 000000000..76e50d0f5
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/facebook/contentPatternRight.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/contentPatternTop.png b/library/prettyphoto/images/prettyPhoto/facebook/contentPatternTop.png
new file mode 100755
index 000000000..8b110bac6
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/facebook/contentPatternTop.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/default_thumbnail.gif b/library/prettyphoto/images/prettyPhoto/facebook/default_thumbnail.gif
new file mode 100755
index 000000000..2b1280f32
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/facebook/default_thumbnail.gif
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/loader.gif b/library/prettyphoto/images/prettyPhoto/facebook/loader.gif
new file mode 100755
index 000000000..7ac990cf0
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/facebook/loader.gif
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/sprite.png b/library/prettyphoto/images/prettyPhoto/facebook/sprite.png
new file mode 100755
index 000000000..660a254f1
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/facebook/sprite.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_rounded/btnNext.png b/library/prettyphoto/images/prettyPhoto/light_rounded/btnNext.png
new file mode 100755
index 000000000..b28c1ef3d
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/light_rounded/btnNext.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_rounded/btnPrevious.png b/library/prettyphoto/images/prettyPhoto/light_rounded/btnPrevious.png
new file mode 100755
index 000000000..e0cd9c49a
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/light_rounded/btnPrevious.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_rounded/default_thumbnail.gif b/library/prettyphoto/images/prettyPhoto/light_rounded/default_thumbnail.gif
new file mode 100755
index 000000000..2b1280f32
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/light_rounded/default_thumbnail.gif
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_rounded/loader.gif b/library/prettyphoto/images/prettyPhoto/light_rounded/loader.gif
new file mode 100755
index 000000000..7ac990cf0
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/light_rounded/loader.gif
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_rounded/sprite.png b/library/prettyphoto/images/prettyPhoto/light_rounded/sprite.png
new file mode 100755
index 000000000..7f2837981
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/light_rounded/sprite.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_square/btnNext.png b/library/prettyphoto/images/prettyPhoto/light_square/btnNext.png
new file mode 100755
index 000000000..b28c1ef3d
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/light_square/btnNext.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_square/btnPrevious.png b/library/prettyphoto/images/prettyPhoto/light_square/btnPrevious.png
new file mode 100755
index 000000000..e0cd9c49a
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/light_square/btnPrevious.png
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_square/default_thumbnail.gif b/library/prettyphoto/images/prettyPhoto/light_square/default_thumbnail.gif
new file mode 100755
index 000000000..2b1280f32
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/light_square/default_thumbnail.gif
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_square/loader.gif b/library/prettyphoto/images/prettyPhoto/light_square/loader.gif
new file mode 100755
index 000000000..7ac990cf0
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/light_square/loader.gif
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_square/sprite.png b/library/prettyphoto/images/prettyPhoto/light_square/sprite.png
new file mode 100755
index 000000000..4fe354752
--- /dev/null
+++ b/library/prettyphoto/images/prettyPhoto/light_square/sprite.png
Binary files differ
diff --git a/library/prettyphoto/js/jquery-1.3.2.min.js b/library/prettyphoto/js/jquery-1.3.2.min.js
new file mode 100755
index 000000000..b1ae21d8b
--- /dev/null
+++ b/library/prettyphoto/js/jquery-1.3.2.min.js
@@ -0,0 +1,19 @@
+/*
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
+/*
+ * Sizzle CSS Selector Engine - v0.9.3
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file
diff --git a/library/prettyphoto/js/jquery-1.4.4.min.js b/library/prettyphoto/js/jquery-1.4.4.min.js
new file mode 100644
index 000000000..2bd4cbb8a
--- /dev/null
+++ b/library/prettyphoto/js/jquery-1.4.4.min.js
@@ -0,0 +1,167 @@
+/*!
+ * jQuery JavaScript Library v1.4.4
+ * http://jquery.com/
+ *
+ * Copyright 2010, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2010, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu Nov 11 19:04:53 2010 -0500
+ */
+(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h=
+h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||
+h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La,
+"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,
+e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,
+"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+
+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,
+C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j,
+s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,
+j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},
+toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j===
+-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false;
+if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;
+if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload",
+b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&&
+!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&&
+l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z],
+z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j,
+s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v=
+s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||
+[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u,
+false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"),
+k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false,
+scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent=
+false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom=
+1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display=
+"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h=
+c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);
+else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this,
+a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=
+c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
+a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",
+colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===
+1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "),
+l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,
+"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";
+if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r=
+a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},
+attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&
+b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0};
+c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,
+arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid=
+d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+
+c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=
+w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===
+8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k===
+"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+
+d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
+d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
+Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
+c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
+var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
+"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
+xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired=
+B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type===
+"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]===
+0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
+a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
+1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d===
+"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}});
+c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
+(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i,
+[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3];
+break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr,
+q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h=
+l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*"));
+return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!==
+B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
+POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()===
+i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=
+i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g,
+"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n,
+m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
+true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
+g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]-
+0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n===
+"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
+i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]];
+if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m,
+g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1;
+for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"),
+i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g);
+n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&&
+function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F||
+p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g=
+t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition?
+function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML;
+c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},
+not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h=
+h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):
+c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,
+2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,
+b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&
+e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1,
+"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
+c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
+wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
+prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
+this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
+return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null;
+else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=
+c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a,
+b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
+this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",
+prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument||
+b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length-
+1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));
+d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i,
+jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,
+zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),
+h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b);
+if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=
+d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left;
+e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
+ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===
+"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
+!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
+getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
+script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
+!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache=
+false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset;
+A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type",
+b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
+c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
+c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]=
+encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",
+[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),
+e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});
+if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",
+3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",
+d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,
+d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)===
+"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L||
+1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
+d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
+Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)}
+var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
+this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
+this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
+c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
+b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
+h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle;
+for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+=
+parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
+height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
+f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
+"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a,
+e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&&
+c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();
+c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+
+b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); \ No newline at end of file
diff --git a/library/prettyphoto/js/jquery-1.6.1.min.js b/library/prettyphoto/js/jquery-1.6.1.min.js
new file mode 100644
index 000000000..eb6a59693
--- /dev/null
+++ b/library/prettyphoto/js/jquery-1.6.1.min.js
@@ -0,0 +1,18 @@
+/*!
+ * jQuery JavaScript Library v1.6.1
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu May 12 15:04:36 2011 -0400
+ */
+(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("<!doctype><html><body></body></html>");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bF.test(a)?d(a,e):b_(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bU,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bQ),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bD(a,b,c){var d=b==="width"?bx:by,e=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return e;f.each(d,function(){c||(e-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?e+=parseFloat(f.css(a,"margin"+this))||0:e-=parseFloat(f.css(a,"border"+this+"Width"))||0});return e}function bn(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bm(a){f.nodeName(a,"input")?bl(a):a.getElementsByTagName&&f.grep(a.getElementsByTagName("input"),bl)}function bl(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bk(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bj(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bi(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bh(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function X(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(S.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(y,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:E?function(a){return a==null?"":E.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?C.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(F)return F.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=D.call(arguments,2),g=function(){return a.apply(c,f.concat(D.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){G["[object "+b+"]"]=b.toLowerCase()}),x=e.uaMatch(w),x.browser&&(e.browser[x.browser]=!0,e.browser.version=x.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?z=function(){c.removeEventListener("DOMContentLoaded",z,!1),e.ready()}:c.attachEvent&&(z=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",z),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.addClass(a.call(this,b,c.attr("class")||""))});if(a&&typeof a=="string"){var b=(a||"").split(o);for(var c=0,d=this.length;c<d;c++){var e=this[c];if(e.nodeType===1)if(!e.className)e.className=a;else{var g=" "+e.className+" ",h=e.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);e.className=f.trim(h)}}}return this},removeClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a=="string"||a===b){var c=(a||"").split(o);for(var d=0,e=this.length;d<e;d++){var g=this[d];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(n," ");for(var i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){var d=f(this);d.toggleClass(a.call(this,c,d.attr("class"),b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem
+)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,O(a.origType,a.selector),f.extend({},a,{handler:N,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,O(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?F:E):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=F;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=F;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=F,this.stopPropagation()},isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E};var G=function(a){var b=a.relatedTarget;a.type=a.data;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&f.event.handle.apply(this,arguments)}catch(d){}},H=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?H:G,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?H:G)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&L("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&L("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var I,J=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var M={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||E,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=y.exec(h),k="",j&&(k=j[0],h=h.replace(y,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+O(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+O(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var P=/Until$/,Q=/^(?:parents|prevUntil|prevAll)/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Array.prototype.slice,U=f.expr.match.POS,V={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(X(this,a,!1),"not",a)},filter:function(a){return this.pushStack(X(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=U.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|&#?\w+;/,bc=/<(?:script|object|embed|option|style)/i,bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bh(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bn)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bc.test(a[0])&&(f.support.checkClone||!bd.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||
+b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1></$2>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bm(k[i]);else bm(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bo=/alpha\([^)]*\)/i,bp=/opacity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=function(a,b){return b.toUpperCase()};f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bu.test(d)&&(d=+d.replace(bv,"")+parseFloat(f.css(a,c))),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bq,bC)}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){a.offsetWidth!==0?e=bD(a,b,d):f.swap(a,bw,function(){e=bD(a,b,d)});if(e<=0){e=bz(a,b,b),e==="0px"&&bB&&(e=bB(a,b,b));if(e!=null)return e===""||e==="auto"?"0px":e}if(e<0||e==null){e=a.style[b];return e===""||e==="auto"?"0px":e}return typeof e=="string"?e:e+"px"}},set:function(a,b){if(!bs.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cv(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cm.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=cn.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this),f.isFunction(d.old)&&d.old.call(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cq||cs(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!co&&(cr?(co=1,g=function(){co&&(cr(g),e.tick())},cr(g)):co=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cq||cs(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file
diff --git a/library/prettyphoto/js/jquery.prettyPhoto.js b/library/prettyphoto/js/jquery.prettyPhoto.js
new file mode 100644
index 000000000..a67afddca
--- /dev/null
+++ b/library/prettyphoto/js/jquery.prettyPhoto.js
@@ -0,0 +1,7 @@
+/* ------------------------------------------------------------------------
+ Class: prettyPhoto
+ Use: Lightbox clone for jQuery
+ Author: Stephane Caron (http://www.no-margin-for-errors.com)
+ Version: 3.1.5
+------------------------------------------------------------------------- */
+(function(e){function t(){var e=location.href;hashtag=e.indexOf("#prettyPhoto")!==-1?decodeURI(e.substring(e.indexOf("#prettyPhoto")+1,e.length)):false;return hashtag}function n(){if(typeof theRel=="undefined")return;location.hash=theRel+"/"+rel_index+"/"}function r(){if(location.href.indexOf("#prettyPhoto")!==-1)location.hash="prettyPhoto"}function i(e,t){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var n="[\\?&]"+e+"=([^&#]*)";var r=new RegExp(n);var i=r.exec(t);return i==null?"":i[1]}e.prettyPhoto={version:"3.1.5"};e.fn.prettyPhoto=function(s){function g(){e(".pp_loaderIcon").hide();projectedTop=scroll_pos["scrollTop"]+(d/2-a["containerHeight"]/2);if(projectedTop<0)projectedTop=0;$ppt.fadeTo(settings.animation_speed,1);$pp_pic_holder.find(".pp_content").animate({height:a["contentHeight"],width:a["contentWidth"]},settings.animation_speed);$pp_pic_holder.animate({top:projectedTop,left:v/2-a["containerWidth"]/2<0?0:v/2-a["containerWidth"]/2,width:a["containerWidth"]},settings.animation_speed,function(){$pp_pic_holder.find(".pp_hoverContainer,#fullResImage").height(a["height"]).width(a["width"]);$pp_pic_holder.find(".pp_fade").fadeIn(settings.animation_speed);if(isSet&&S(pp_images[set_position])=="image"){$pp_pic_holder.find(".pp_hoverContainer").show()}else{$pp_pic_holder.find(".pp_hoverContainer").hide()}if(settings.allow_expand){if(a["resized"]){e("a.pp_expand,a.pp_contract").show()}else{e("a.pp_expand").hide()}}if(settings.autoplay_slideshow&&!m&&!f)e.prettyPhoto.startSlideshow();settings.changepicturecallback();f=true});C();s.ajaxcallback()}function y(t){$pp_pic_holder.find("#pp_full_res object,#pp_full_res embed").css("visibility","hidden");$pp_pic_holder.find(".pp_fade").fadeOut(settings.animation_speed,function(){e(".pp_loaderIcon").show();t()})}function b(t){t>1?e(".pp_nav").show():e(".pp_nav").hide()}function w(e,t){resized=false;E(e,t);imageWidth=e,imageHeight=t;if((p>v||h>d)&&doresize&&settings.allow_resize&&!u){resized=true,fitting=false;while(!fitting){if(p>v){imageWidth=v-200;imageHeight=t/e*imageWidth}else if(h>d){imageHeight=d-200;imageWidth=e/t*imageHeight}else{fitting=true}h=imageHeight,p=imageWidth}if(p>v||h>d){w(p,h)}E(imageWidth,imageHeight)}return{width:Math.floor(imageWidth),height:Math.floor(imageHeight),containerHeight:Math.floor(h),containerWidth:Math.floor(p)+settings.horizontal_padding*2,contentHeight:Math.floor(l),contentWidth:Math.floor(c),resized:resized}}function E(t,n){t=parseFloat(t);n=parseFloat(n);$pp_details=$pp_pic_holder.find(".pp_details");$pp_details.width(t);detailsHeight=parseFloat($pp_details.css("marginTop"))+parseFloat($pp_details.css("marginBottom"));$pp_details=$pp_details.clone().addClass(settings.theme).width(t).appendTo(e("body")).css({position:"absolute",top:-1e4});detailsHeight+=$pp_details.height();detailsHeight=detailsHeight<=34?36:detailsHeight;$pp_details.remove();$pp_title=$pp_pic_holder.find(".ppt");$pp_title.width(t);titleHeight=parseFloat($pp_title.css("marginTop"))+parseFloat($pp_title.css("marginBottom"));$pp_title=$pp_title.clone().appendTo(e("body")).css({position:"absolute",top:-1e4});titleHeight+=$pp_title.height();$pp_title.remove();l=n+detailsHeight;c=t;h=l+titleHeight+$pp_pic_holder.find(".pp_top").height()+$pp_pic_holder.find(".pp_bottom").height();p=t}function S(e){if(e.match(/youtube\.com\/watch/i)||e.match(/youtu\.be/i)){return"youtube"}else if(e.match(/vimeo\.com/i)){return"vimeo"}else if(e.match(/\b.mov\b/i)){return"quicktime"}else if(e.match(/\b.swf\b/i)){return"flash"}else if(e.match(/\biframe=true\b/i)){return"iframe"}else if(e.match(/\bajax=true\b/i)){return"ajax"}else if(e.match(/\bcustom=true\b/i)){return"custom"}else if(e.substr(0,1)=="#"){return"inline"}else{return"image"}}function x(){if(doresize&&typeof $pp_pic_holder!="undefined"){scroll_pos=T();contentHeight=$pp_pic_holder.height(),contentwidth=$pp_pic_holder.width();projectedTop=d/2+scroll_pos["scrollTop"]-contentHeight/2;if(projectedTop<0)projectedTop=0;if(contentHeight>d)return;$pp_pic_holder.css({top:projectedTop,left:v/2+scroll_pos["scrollLeft"]-contentwidth/2})}}function T(){if(self.pageYOffset){return{scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset}}else if(document.documentElement&&document.documentElement.scrollTop){return{scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft}}else if(document.body){return{scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft}}}function N(){d=e(window).height(),v=e(window).width();if(typeof $pp_overlay!="undefined")$pp_overlay.height(e(document).height()).width(v)}function C(){if(isSet&&settings.overlay_gallery&&S(pp_images[set_position])=="image"){itemWidth=52+5;navWidth=settings.theme=="facebook"||settings.theme=="pp_default"?50:30;itemsPerPage=Math.floor((a["containerWidth"]-100-navWidth)/itemWidth);itemsPerPage=itemsPerPage<pp_images.length?itemsPerPage:pp_images.length;totalPage=Math.ceil(pp_images.length/itemsPerPage)-1;if(totalPage==0){navWidth=0;$pp_gallery.find(".pp_arrow_next,.pp_arrow_previous").hide()}else{$pp_gallery.find(".pp_arrow_next,.pp_arrow_previous").show()}galleryWidth=itemsPerPage*itemWidth;fullGalleryWidth=pp_images.length*itemWidth;$pp_gallery.css("margin-left",-(galleryWidth/2+navWidth/2)).find("div:first").width(galleryWidth+5).find("ul").width(fullGalleryWidth).find("li.selected").removeClass("selected");goToPage=Math.floor(set_position/itemsPerPage)<totalPage?Math.floor(set_position/itemsPerPage):totalPage;e.prettyPhoto.changeGalleryPage(goToPage);$pp_gallery_li.filter(":eq("+set_position+")").addClass("selected")}else{$pp_pic_holder.find(".pp_content").unbind("mouseenter mouseleave")}}function k(t){if(settings.social_tools)facebook_like_link=settings.social_tools.replace("{location_href}",encodeURIComponent(location.href));settings.markup=settings.markup.replace("{pp_social}","");e("body").append(settings.markup);$pp_pic_holder=e(".pp_pic_holder"),$ppt=e(".ppt"),$pp_overlay=e("div.pp_overlay");if(isSet&&settings.overlay_gallery){currentGalleryPage=0;toInject="";for(var n=0;n<pp_images.length;n++){if(!pp_images[n].match(/\b(jpg|jpeg|png|gif)\b/gi)){classname="default";img_src=""}else{classname="";img_src=pp_images[n]}toInject+="<li class='"+classname+"'><a href='#'><img src='"+img_src+"' width='50' alt='' /></a></li>"}toInject=settings.gallery_markup.replace(/{gallery}/g,toInject);$pp_pic_holder.find("#pp_full_res").after(toInject);$pp_gallery=e(".pp_pic_holder .pp_gallery"),$pp_gallery_li=$pp_gallery.find("li");$pp_gallery.find(".pp_arrow_next").click(function(){e.prettyPhoto.changeGalleryPage("next");e.prettyPhoto.stopSlideshow();return false});$pp_gallery.find(".pp_arrow_previous").click(function(){e.prettyPhoto.changeGalleryPage("previous");e.prettyPhoto.stopSlideshow();return false});$pp_pic_holder.find(".pp_content").hover(function(){$pp_pic_holder.find(".pp_gallery:not(.disabled)").fadeIn()},function(){$pp_pic_holder.find(".pp_gallery:not(.disabled)").fadeOut()});itemWidth=52+5;$pp_gallery_li.each(function(t){e(this).find("a").click(function(){e.prettyPhoto.changePage(t);e.prettyPhoto.stopSlideshow();return false})})}if(settings.slideshow){$pp_pic_holder.find(".pp_nav").prepend('<a href="#" class="pp_play">Play</a>');$pp_pic_holder.find(".pp_nav .pp_play").click(function(){e.prettyPhoto.startSlideshow();return false})}$pp_pic_holder.attr("class","pp_pic_holder "+settings.theme);$pp_overlay.css({opacity:0,height:e(document).height(),width:e(window).width()}).bind("click",function(){if(!settings.modal)e.prettyPhoto.close()});e("a.pp_close").bind("click",function(){e.prettyPhoto.close();return false});if(settings.allow_expand){e("a.pp_expand").bind("click",function(t){if(e(this).hasClass("pp_expand")){e(this).removeClass("pp_expand").addClass("pp_contract");doresize=false}else{e(this).removeClass("pp_contract").addClass("pp_expand");doresize=true}y(function(){e.prettyPhoto.open()});return false})}$pp_pic_holder.find(".pp_previous, .pp_nav .pp_arrow_previous").bind("click",function(){e.prettyPhoto.changePage("previous");e.prettyPhoto.stopSlideshow();return false});$pp_pic_holder.find(".pp_next, .pp_nav .pp_arrow_next").bind("click",function(){e.prettyPhoto.changePage("next");e.prettyPhoto.stopSlideshow();return false});x()}s=jQuery.extend({hook:"rel",animation_speed:"fast",ajaxcallback:function(){},slideshow:5e3,autoplay_slideshow:false,opacity:.8,show_title:true,allow_resize:true,allow_expand:true,default_width:500,default_height:344,counter_separator_label:"/",theme:"pp_default",horizontal_padding:20,hideflash:false,wmode:"opaque",autoplay:true,modal:false,deeplinking:true,overlay_gallery:true,overlay_gallery_max:30,keyboard_shortcuts:true,changepicturecallback:function(){},callback:function(){},ie6_fallback:true,markup:'<div class="pp_pic_holder"> <div class="ppt"> </div> <div class="pp_top"> <div class="pp_left"></div> <div class="pp_middle"></div> <div class="pp_right"></div> </div> <div class="pp_content_container"> <div class="pp_left"> <div class="pp_right"> <div class="pp_content"> <div class="pp_loaderIcon"></div> <div class="pp_fade"> <a href="#" class="pp_expand" title="Expand the image">Expand</a> <div class="pp_hoverContainer"> <a class="pp_next" href="#">next</a> <a class="pp_previous" href="#">previous</a> </div> <div id="pp_full_res"></div> <div class="pp_details"> <div class="pp_nav"> <a href="#" class="pp_arrow_previous">Previous</a> <p class="currentTextHolder">0/0</p> <a href="#" class="pp_arrow_next">Next</a> </div> <p class="pp_description"></p> <div class="pp_social">{pp_social}</div> <a class="pp_close" href="#">Close</a> </div> </div> </div> </div> </div> </div> <div class="pp_bottom"> <div class="pp_left"></div> <div class="pp_middle"></div> <div class="pp_right"></div> </div> </div> <div class="pp_overlay"></div>',gallery_markup:'<div class="pp_gallery"> <a href="#" class="pp_arrow_previous">Previous</a> <div> <ul> {gallery} </ul> </div> <a href="#" class="pp_arrow_next">Next</a> </div>',image_markup:'<img id="fullResImage" src="{path}" />',flash_markup:'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',quicktime_markup:'<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>',iframe_markup:'<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',inline_markup:'<div class="pp_inline">{content}</div>'},s);var o=this,u=false,a,f,l,c,h,p,d=e(window).height(),v=e(window).width(),m;doresize=true,scroll_pos=T();e(window).unbind("resize.prettyphoto").bind("resize.prettyphoto",function(){x();N()});if(s.keyboard_shortcuts){e(document).unbind("keydown.prettyphoto").bind("keydown.prettyphoto",function(t){if(typeof $pp_pic_holder!="undefined"){if($pp_pic_holder.is(":visible")){switch(t.keyCode){case 37:e.prettyPhoto.changePage("previous");t.preventDefault();break;case 39:e.prettyPhoto.changePage("next");t.preventDefault();break;case 27:if(!settings.modal)e.prettyPhoto.close();t.preventDefault();break}}}})}e.prettyPhoto.initialize=function(){settings=s;if(settings.theme=="pp_default")settings.horizontal_padding=16;theRel=e(this).attr(settings.hook);galleryRegExp=/\[(?:.*)\]/;isSet=galleryRegExp.exec(theRel)?true:false;pp_images=isSet?jQuery.map(o,function(t,n){if(e(t).attr(settings.hook).indexOf(theRel)!=-1)return e(t).attr("href")}):e.makeArray(e(this).attr("href"));pp_titles=isSet?jQuery.map(o,function(t,n){if(e(t).attr(settings.hook).indexOf(theRel)!=-1)return e(t).find("img").attr("alt")?e(t).find("img").attr("alt"):""}):e.makeArray(e(this).find("img").attr("alt"));pp_descriptions=isSet?jQuery.map(o,function(t,n){if(e(t).attr(settings.hook).indexOf(theRel)!=-1)return e(t).attr("title")?e(t).attr("title"):""}):e.makeArray(e(this).attr("title"));if(pp_images.length>settings.overlay_gallery_max)settings.overlay_gallery=false;set_position=jQuery.inArray(e(this).attr("href"),pp_images);rel_index=isSet?set_position:e("a["+settings.hook+"^='"+theRel+"']").index(e(this));k(this);if(settings.allow_resize)e(window).bind("scroll.prettyphoto",function(){x()});e.prettyPhoto.open();return false};e.prettyPhoto.open=function(t){if(typeof settings=="undefined"){settings=s;pp_images=e.makeArray(arguments[0]);pp_titles=arguments[1]?e.makeArray(arguments[1]):e.makeArray("");pp_descriptions=arguments[2]?e.makeArray(arguments[2]):e.makeArray("");isSet=pp_images.length>1?true:false;set_position=arguments[3]?arguments[3]:0;k(t.target)}if(settings.hideflash)e("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility","hidden");b(e(pp_images).size());e(".pp_loaderIcon").show();if(settings.deeplinking)n();if(settings.social_tools){facebook_like_link=settings.social_tools.replace("{location_href}",encodeURIComponent(location.href));$pp_pic_holder.find(".pp_social").html(facebook_like_link)}if($ppt.is(":hidden"))$ppt.css("opacity",0).show();$pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity);$pp_pic_holder.find(".currentTextHolder").text(set_position+1+settings.counter_separator_label+e(pp_images).size());if(typeof pp_descriptions[set_position]!="undefined"&&pp_descriptions[set_position]!=""){$pp_pic_holder.find(".pp_description").show().html(unescape(pp_descriptions[set_position]))}else{$pp_pic_holder.find(".pp_description").hide()}movie_width=parseFloat(i("width",pp_images[set_position]))?i("width",pp_images[set_position]):settings.default_width.toString();movie_height=parseFloat(i("height",pp_images[set_position]))?i("height",pp_images[set_position]):settings.default_height.toString();u=false;if(movie_height.indexOf("%")!=-1){movie_height=parseFloat(e(window).height()*parseFloat(movie_height)/100-150);u=true}if(movie_width.indexOf("%")!=-1){movie_width=parseFloat(e(window).width()*parseFloat(movie_width)/100-150);u=true}$pp_pic_holder.fadeIn(function(){settings.show_title&&pp_titles[set_position]!=""&&typeof pp_titles[set_position]!="undefined"?$ppt.html(unescape(pp_titles[set_position])):$ppt.html(" ");imgPreloader="";skipInjection=false;switch(S(pp_images[set_position])){case"image":imgPreloader=new Image;nextImage=new Image;if(isSet&&set_position<e(pp_images).size()-1)nextImage.src=pp_images[set_position+1];prevImage=new Image;if(isSet&&pp_images[set_position-1])prevImage.src=pp_images[set_position-1];$pp_pic_holder.find("#pp_full_res")[0].innerHTML=settings.image_markup.replace(/{path}/g,pp_images[set_position]);imgPreloader.onload=function(){a=w(imgPreloader.width,imgPreloader.height);g()};imgPreloader.onerror=function(){alert("Image cannot be loaded. Make sure the path is correct and image exist.");e.prettyPhoto.close()};imgPreloader.src=pp_images[set_position];break;case"youtube":a=w(movie_width,movie_height);movie_id=i("v",pp_images[set_position]);if(movie_id==""){movie_id=pp_images[set_position].split("youtu.be/");movie_id=movie_id[1];if(movie_id.indexOf("?")>0)movie_id=movie_id.substr(0,movie_id.indexOf("?"));if(movie_id.indexOf("&")>0)movie_id=movie_id.substr(0,movie_id.indexOf("&"))}movie="http://www.youtube.com/embed/"+movie_id;i("rel",pp_images[set_position])?movie+="?rel="+i("rel",pp_images[set_position]):movie+="?rel=1";if(settings.autoplay)movie+="&autoplay=1";toInject=settings.iframe_markup.replace(/{width}/g,a["width"]).replace(/{height}/g,a["height"]).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);break;case"vimeo":a=w(movie_width,movie_height);movie_id=pp_images[set_position];var t=/http(s?):\/\/(www\.)?vimeo.com\/(\d+)/;var n=movie_id.match(t);movie="http://player.vimeo.com/video/"+n[3]+"?title=0&byline=0&portrait=0";if(settings.autoplay)movie+="&autoplay=1;";vimeo_width=a["width"]+"/embed/?moog_width="+a["width"];toInject=settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,a["height"]).replace(/{path}/g,movie);break;case"quicktime":a=w(movie_width,movie_height);a["height"]+=15;a["contentHeight"]+=15;a["containerHeight"]+=15;toInject=settings.quicktime_markup.replace(/{width}/g,a["width"]).replace(/{height}/g,a["height"]).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay);break;case"flash":a=w(movie_width,movie_height);flash_vars=pp_images[set_position];flash_vars=flash_vars.substring(pp_images[set_position].indexOf("flashvars")+10,pp_images[set_position].length);filename=pp_images[set_position];filename=filename.substring(0,filename.indexOf("?"));toInject=settings.flash_markup.replace(/{width}/g,a["width"]).replace(/{height}/g,a["height"]).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+"?"+flash_vars);break;case"iframe":a=w(movie_width,movie_height);frame_url=pp_images[set_position];frame_url=frame_url.substr(0,frame_url.indexOf("iframe")-1);toInject=settings.iframe_markup.replace(/{width}/g,a["width"]).replace(/{height}/g,a["height"]).replace(/{path}/g,frame_url);break;case"ajax":doresize=false;a=w(movie_width,movie_height);doresize=true;skipInjection=true;e.get(pp_images[set_position],function(e){toInject=settings.inline_markup.replace(/{content}/g,e);$pp_pic_holder.find("#pp_full_res")[0].innerHTML=toInject;g()});break;case"custom":a=w(movie_width,movie_height);toInject=settings.custom_markup;break;case"inline":myClone=e(pp_images[set_position]).clone().append('<br clear="all" />').css({width:settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline"></div></div>').appendTo(e("body")).show();doresize=false;a=w(e(myClone).width(),e(myClone).height());doresize=true;e(myClone).remove();toInject=settings.inline_markup.replace(/{content}/g,e(pp_images[set_position]).html());break}if(!imgPreloader&&!skipInjection){$pp_pic_holder.find("#pp_full_res")[0].innerHTML=toInject;g()}});return false};e.prettyPhoto.changePage=function(t){currentGalleryPage=0;if(t=="previous"){set_position--;if(set_position<0)set_position=e(pp_images).size()-1}else if(t=="next"){set_position++;if(set_position>e(pp_images).size()-1)set_position=0}else{set_position=t}rel_index=set_position;if(!doresize)doresize=true;if(settings.allow_expand){e(".pp_contract").removeClass("pp_contract").addClass("pp_expand")}y(function(){e.prettyPhoto.open()})};e.prettyPhoto.changeGalleryPage=function(e){if(e=="next"){currentGalleryPage++;if(currentGalleryPage>totalPage)currentGalleryPage=0}else if(e=="previous"){currentGalleryPage--;if(currentGalleryPage<0)currentGalleryPage=totalPage}else{currentGalleryPage=e}slide_speed=e=="next"||e=="previous"?settings.animation_speed:0;slide_to=currentGalleryPage*itemsPerPage*itemWidth;$pp_gallery.find("ul").animate({left:-slide_to},slide_speed)};e.prettyPhoto.startSlideshow=function(){if(typeof m=="undefined"){$pp_pic_holder.find(".pp_play").unbind("click").removeClass("pp_play").addClass("pp_pause").click(function(){e.prettyPhoto.stopSlideshow();return false});m=setInterval(e.prettyPhoto.startSlideshow,settings.slideshow)}else{e.prettyPhoto.changePage("next")}};e.prettyPhoto.stopSlideshow=function(){$pp_pic_holder.find(".pp_pause").unbind("click").removeClass("pp_pause").addClass("pp_play").click(function(){e.prettyPhoto.startSlideshow();return false});clearInterval(m);m=undefined};e.prettyPhoto.close=function(){if($pp_overlay.is(":animated"))return;e.prettyPhoto.stopSlideshow();$pp_pic_holder.stop().find("object,embed").css("visibility","hidden");e("div.pp_pic_holder,div.ppt,.pp_fade").fadeOut(settings.animation_speed,function(){e(this).remove()});$pp_overlay.fadeOut(settings.animation_speed,function(){if(settings.hideflash)e("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility","visible");e(this).remove();e(window).unbind("scroll.prettyphoto");r();settings.callback();doresize=true;f=false;delete settings})};if(!pp_alreadyInitialized&&t()){pp_alreadyInitialized=true;hashIndex=t();hashRel=hashIndex;hashIndex=hashIndex.substring(hashIndex.indexOf("/")+1,hashIndex.length-1);hashRel=hashRel.substring(0,hashRel.indexOf("/"));setTimeout(function(){e("a["+s.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger("click")},50)}return this.unbind("click.prettyphoto").bind("click.prettyphoto",e.prettyPhoto.initialize)};})(jQuery);var pp_alreadyInitialized=false \ No newline at end of file
diff --git a/mod/_well_known.php b/mod/_well_known.php
index 5c5f6585f..6e77336c3 100644
--- a/mod/_well_known.php
+++ b/mod/_well_known.php
@@ -4,11 +4,6 @@ function _well_known_init(&$a){
if(argc() > 1) {
switch(argv(1)) {
- case "host-meta":
- require_once('mod/hostxrd.php');
- hostxrd_init($a);
- break;
-
case 'zot-info':
$a->argc -= 1;
array_shift($a->argv);
@@ -17,6 +12,14 @@ function _well_known_init(&$a){
zfinger_init($a);
break;
+ case 'webfinger':
+ $a->argc -= 1;
+ array_shift($a->argv);
+ $a->argv[0] = 'wfinger';
+ require_once('mod/wfinger.php');
+ wfinger_init($a);
+ break;
+
}
}
diff --git a/mod/acl.php b/mod/acl.php
index 2f1866f85..143b8098e 100644
--- a/mod/acl.php
+++ b/mod/acl.php
@@ -60,16 +60,17 @@ function acl_init(&$a){
// autocomplete for Private Messages
- $r = q("SELECT COUNT(`id`) AS c FROM `contact`
- WHERE `uid` = %d AND `self` = 0
- AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0
- AND `network` IN ('%s','%s','%s') $sql_extra2" ,
+
+ $r = q("SELECT count(xchan_hash) as c
+ FROM abook left join xchan on abook_xchan = xchan_hash
+ WHERE abook_channel = %d and ( (abook_their_perms = null) or (abook_their_perms & %d ))
+ $sql_extra2 ",
intval(local_user()),
- dbesc(NETWORK_DFRN),
- dbesc(NETWORK_ZOT),
- dbesc(NETWORK_DIASPORA)
+ intval(PERMS_W_MAIL)
);
- $contact_count = (int)$r[0]['c'];
+
+ if($r)
+ $contact_count = (int)$r[0]['c'];
}
elseif ($type == 'a') {
@@ -123,7 +124,7 @@ function acl_init(&$a){
}
if ($type=='' || $type=='c') {
- $r = q("SELECT abook_id as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick
+ $r = q("SELECT abook_id as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, abook_their_perms
FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = %d AND not ( abook_flags & %d ) $sql_extra2 order by xchan_name asc" ,
intval(local_user()),
@@ -142,7 +143,7 @@ function acl_init(&$a){
);
}
elseif($type == 'a') {
- $r = q("SELECT abook_id as id, xchan_name as name, xchan_addr as nick, xchan_photo_s as micro, xchan_network as network, xchan_url as url, xchan_addr as attag FROM abook left join xchan on abook_xchan = xchan_hash
+ $r = q("SELECT abook_id as id, xchan_name as name, xchan_hash as hash, xchan_addr as nick, xchan_photo_s as micro, xchan_network as network, xchan_url as url, xchan_addr as attag , abook_their_perms FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = %d
$sql_extra3
ORDER BY xchan_name ASC ",
@@ -196,13 +197,15 @@ function acl_init(&$a){
if(count($r)) {
foreach($r as $g){
$contacts[] = array(
- "type" => "c",
- "photo" => $g['micro'],
- "name" => $g['name'],
- "id" => $g['id'],
- "xid" => $g['hash'],
- "link" => $g['nick'],
- "nick" => substr($g['nick'],0,strpos($g['nick'],'@'))
+ "type" => "c",
+ "photo" => $g['micro'],
+ "name" => $g['name'],
+ "id" => $g['id'],
+ "xid" => $g['hash'],
+ "link" => $g['nick'],
+ "nick" => substr($g['nick'],0,strpos($g['nick'],'@')),
+ "network" => '',
+ "taggable" => (($g['abook_their_perms'] & PERMS_W_TAGWALL) ? 'taggable' : '')
);
}
}
@@ -251,10 +254,11 @@ function navbar_complete(&$a) {
}
if(! $url) {
+ require_once("include/dir_fns.php");
$directory = find_upstream_directory($dirmode);
if($directory) {
- $url = $directory['url'];
+ $url = $directory['url'] . '/dirsearch';
}
else {
$url = DIRECTORY_FALLBACK_MASTER . '/dirsearch';
diff --git a/mod/admin.php b/mod/admin.php
index aa3d7b294..f3e44afb8 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -1,7 +1,7 @@
<?php
/**
- * Friendica admin
+ * Red admin
*/
@@ -188,7 +188,7 @@ function admin_page_summary(&$a) {
'$users' => Array( t('Registered users'), $users),
'$accounts' => $accounts,
'$pending' => Array( t('Pending registrations'), $pending),
- '$version' => Array( t('Version'), FRIENDICA_VERSION),
+ '$version' => Array( t('Version'), RED_VERSION),
'$build' => get_config('system','db_version'),
'$plugins' => Array( t('Active plugins'), $a->plugins )
));
@@ -210,6 +210,9 @@ function admin_page_site_post(&$a){
$banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false);
$language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : '');
$theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : '');
+ $theme_mobile = ((x($_POST,'theme-mobile')) ? notags(trim($_POST['theme-mobile'])) : '');
+ $theme_accessibility = ((x($_POST,'theme-accessibility')) ? notags(trim($_POST['theme-accessibility'])) : '');
+ $site_channel = ((x($_POST,'site-channel')) ? notags(trim($_POST['site-channel'])) : '');
$maximagesize = ((x($_POST,'maximagesize')) ? intval(trim($_POST['maximagesize'])) : 0);
@@ -278,7 +281,7 @@ function admin_page_site_post(&$a){
set_config('system','delivery_interval',$delivery_interval);
set_config('system','poll_interval',$poll_interval);
set_config('system','maxloadavg',$maxloadavg);
- set_config('config','sitename',$sitename);
+ set_config('system','sitename',$sitename);
if ($banner=="") {
del_config('system','banner');
@@ -289,6 +292,18 @@ function admin_page_site_post(&$a){
set_config('system','language', $language);
set_config('system','theme', $theme);
+ if ( $theme_mobile === '---' ) {
+ del_config('system','mobile-theme');
+ } else {
+ set_config('system','mobile-theme', $theme_mobile);
+ }
+ if ( $theme_accessibility === '---' ) {
+ del_config('system','accessibility-theme');
+ } else {
+ set_config('system','accessibility-theme', $theme_accessibility);
+ }
+
+ set_config('system','site-channel', $site_channel);
set_config('system','maximagesize', $maximagesize);
set_config('system','register_policy', $register_policy);
@@ -337,14 +352,24 @@ function admin_page_site(&$a) {
$lang_choices[$t[1]] = $t[1];
}
}
-
+
/* Installed themes */
$theme_choices = array();
+ $theme_choices_mobile = array();
+ $theme_choices_mobile["---"] = t("No special theme for mobile devices");
+ $theme_choices_accessibility = array();
+ $theme_choices_accessibility["---"] =t("No special theme for accessibility");
$files = glob('view/theme/*');
if($files) {
foreach($files as $file) {
$f = basename($file);
$theme_name = ((file_exists($file . '/.experimental')) ? sprintf("%s - Experimental", $f) : $f);
+ if (file_exists($file . '/.mobile')) {
+ $theme_choices_mobile[$f] = $theme_name;
+ }
+ if (file_exists($file . '/.accessibility')) {
+ $theme_choices_accessibility[$f] = $theme_name;
+ }
$theme_choices[$f] = $theme_name;
}
}
@@ -380,22 +405,23 @@ function admin_page_site(&$a) {
'$baseurl' => $a->get_baseurl(true),
// name, label, value, help string, extra data...
- '$sitename' => array('sitename', t("Site name"), htmlentities($a->config['sitename'], ENT_QUOTES), ""),
+ '$sitename' => array('sitename', t("Site name"), htmlentities(get_config('system','sitename'), ENT_QUOTES), ""),
'$banner' => array('banner', t("Banner/Logo"), $banner, ""),
'$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices),
'$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"), $theme_choices),
+ '$theme_mobile' => array('theme-mobile', t("Mobile system theme"), get_config('system','mobile-theme'), t("Theme for mobile devices"), $theme_choices_mobile),
+ '$theme_accessibility' => array('theme-accessibility', t("Accessibility system theme"), get_config('system','accessibility-theme'), t("Accessibility theme"), $theme_choices_accessibility),
+ '$site_channel' => array('site-channel', t("Channel to use for this website's static pages"), get_config('system','site-channel'), t("Site Channel")),
'$ssl_policy' => array('ssl_policy', t("SSL link policy"), (string) intval(get_config('system','ssl_policy')), t("Determines whether generated links should be forced to use SSL"), $ssl_choices),
'$maximagesize' => array('maximagesize', t("Maximum image size"), get_config('system','maximagesize'), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")),
- '$register_policy' => array('register_policy', t("Register policy"), $a->config['system']['register_policy'], "", $register_choices),
- '$register_text' => array('register_text', t("Register text"), htmlentities($a->config['register_text'], ENT_QUOTES, 'UTF-8'), t("Will be displayed prominently on the registration page.")),
+ '$register_policy' => array('register_policy', t("Register policy"), get_config('system','register_policy'), "", $register_choices),
+ '$register_text' => array('register_text', t("Register text"), htmlentities(get_config('system','register_text'), ENT_QUOTES, 'UTF-8'), t("Will be displayed prominently on the registration page.")),
'$abandon_days' => array('abandon_days', t('Accounts abandoned after x days'), get_config('system','account_abandon_days'), t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')),
'$allowed_sites' => array('allowed_sites', t("Allowed friend domains"), get_config('system','allowed_sites'), t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")),
'$allowed_email' => array('allowed_email', t("Allowed email domains"), get_config('system','allowed_email'), t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")),
'$block_public' => array('block_public', t("Block public"), get_config('system','block_public'), t("Check to block public access to all otherwise public personal pages on this site unless you are currently logged in.")),
'$force_publish' => array('publish_all', t("Force publish"), get_config('system','publish_all'), t("Check to force all profiles on this site to be listed in the site directory.")),
- '$global_directory' => array('directory_submit_url', t("Global directory update URL"), get_config('system','directory_submit_url'), t("URL to update the global directory. If this is not set, the global directory is completely unavailable to the application.")),
- '$no_community_page' => array('no_community_page', t("Show Community Page"), !get_config('system','no_community_page'), t("Display a Community page showing all recent public postings on this site.")),
'$proxyuser' => array('proxyuser', t("Proxy user"), get_config('system','proxyuser'), ""),
'$proxy' => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""),
'$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")),
@@ -564,22 +590,10 @@ function admin_page_users(&$a){
$a->set_pager_itemspage(100);
}
-// FIXME this is borked since there is no more user table
-
- $users = q("SELECT `user` . * , `contact`.`name` , `contact`.`url` , `contact`.`micro`, `lastitem`.`lastitem_date`
- FROM
- (SELECT MAX(`item`.`changed`) as `lastitem_date`, `item`.`uid`
- FROM `item`
- WHERE `item`.`type` = 'wall'
- GROUP BY `item`.`uid`) AS `lastitem`
- RIGHT OUTER JOIN `user` ON `user`.`uid` = `lastitem`.`uid`,
- `contact`
- WHERE
- `user`.`uid` = `contact`.`uid`
- AND `user`.`verified` =1
- AND `contact`.`self` =1
- ORDER BY `contact`.`name` LIMIT %d, %d
- ",
+
+// WEe'll still need to link email addresses to admin/users/channels or some such, but this bit doesn't exist yet.
+// That's where we need to be doing last post/channel flags/etc, not here.
+ $users =q("SELECT `account_id` , `account_email`, `account_lastlog`, `account_created`, `account_service_class` FROM `account`",
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
@@ -591,6 +605,7 @@ function admin_page_users(&$a){
t('Community/Celebrity Account'),
t('Automatic Friend Account')
);
+
$e['page_flags'] = $accounts[$e['page-flags']];
$e['register_date'] = relative_date($e['register_date']);
$e['login_date'] = relative_date($e['login_date']);
@@ -617,7 +632,7 @@ function admin_page_users(&$a){
'$unblock' => t('Unblock'),
'$h_users' => t('Users'),
- '$th_users' => array( t('Name'), t('Email'), t('Register date'), t('Last login'), t('Last item'), t('Account') ),
+ '$th_users' => array( t('Email'), t('Register date'), t('Last login'), t('Service Class')),
'$confirm_delete_multi' => t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'),
'$confirm_delete' => t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'),
@@ -1035,7 +1050,7 @@ readable.");
// name, label, value, help string, extra data...
'$debugging' => array('debugging', t("Debugging"),get_config('system','debugging'), ""),
- '$logfile' => array('logfile', t("Log file"), get_config('system','logfile'), t("Must be writable by web server. Relative to your Friendica top-level directory.")),
+ '$logfile' => array('logfile', t("Log file"), get_config('system','logfile'), t("Must be writable by web server. Relative to your Red top-level directory.")),
'$loglevel' => array('loglevel', t("Log level"), get_config('system','loglevel'), "", $log_choices),
'$form_security_token' => get_form_security_token("admin_logs"),
diff --git a/mod/channel.php b/mod/channel.php
index 0a49b41eb..aa158d330 100644
--- a/mod/channel.php
+++ b/mod/channel.php
@@ -2,11 +2,18 @@
function channel_init(&$a) {
+ $which = null;
if(argc() > 1)
$which = argv(1);
- else {
- notice( t('Requested profile is not available.') . EOL );
- $a->error = 404;
+ if(! $which) {
+ if(local_user()) {
+ $channel = $a->get_channel();
+ if($channel && $channel['channel_address'])
+ $which = $channel['channel_address'];
+ }
+ }
+ if(! $which) {
+ notice( t('You must be logged in to see this page.') . EOL );
return;
}
@@ -47,6 +54,9 @@ function channel_aside(&$a) {
$a->set_widget('archive',posted_date_widget($a->get_baseurl(true) . '/channel/' . $a->profile['channel_address'],$a->profile['profile_uid'],true));
$a->set_widget('categories',categories_widget($a->get_baseurl(true) . '/channel/' . $a->profile['channel_address'],$cat));
}
+ if(feature_enabled($a->profile['profile_uid'],'tagadelic'))
+ $a->set_widget('tagcloud',tagblock('search',$a->profile['profile_uid'],50,$a->profile['channel_hash'],ITEM_WALL));
+
}
@@ -118,12 +128,12 @@ function channel_content(&$a, $update = 0, $load = false) {
$x = array(
'is_owner' => $is_owner,
-// FIXME
- 'allow_location' => ((($is_owner || $observer) && $a->profile['allow_location']) ? true : false),
- 'default_location' => (($is_owner) ? $a->profile['default_location'] : ''),
+ 'allow_location' => ((($is_owner || $observer) && (intval(get_pconfig($a->profile['profile_uid'],'system','use_browser_location')))) ? true : false),
+ 'default_location' => (($is_owner) ? $a->profile['channel_location'] : ''),
'nickname' => $a->profile['channel_address'],
'lockstate' => (((strlen($a->profile['channel_allow_cid'])) || (strlen($a->profile['channel_allow_gid'])) || (strlen($a->profile['channel_deny_cid'])) || (strlen($a->profile['channel_deny_gid']))) ? 'lock' : 'unlock'),
'acl' => (($is_owner) ? populate_acl($channel, false) : ''),
+ 'showacl' => (($is_owner) ? 'yes' : ''),
'bang' => '',
'visitor' => (($is_owner || $observer) ? 'block' : 'none'),
'profile_uid' => $a->profile['profile_uid']
@@ -247,7 +257,7 @@ function channel_content(&$a, $update = 0, $load = false) {
'$order' => '',
'$file' => '',
'$cats' => (($category) ? $category : ''),
- '$uri' => '',
+ '$mid' => '',
'$dend' => $datequery,
'$dbegin' => $datequery2
));
diff --git a/mod/chanview.php b/mod/chanview.php
index 8de59b92e..4f7638846 100644
--- a/mod/chanview.php
+++ b/mod/chanview.php
@@ -29,7 +29,11 @@ function chanview_content(&$a) {
);
}
elseif($_REQUEST['url']) {
- $r = q("select * from xchan where xchan_url = '%s' limit 1",
+
+ // if somebody re-installed they will have more than one xchan, use the most recent name date as this is
+ // the most useful consistently ascending table item we have.
+
+ $r = q("select * from xchan where xchan_url = '%s' order by xchan_name_date desc limit 1",
dbesc($_REQUEST['url'])
);
}
diff --git a/mod/community.php b/mod/community.php
index 4f6c3d3c9..971ecca5c 100644
--- a/mod/community.php
+++ b/mod/community.php
@@ -47,7 +47,7 @@ function community_content(&$a, $update = 0) {
// OR your own posts if you are a logged in member
if(! get_pconfig(local_user(),'system','alt_pager')) {
- $r = q("SELECT COUNT(distinct(`item`.`uri`)) AS `total`
+ $r = q("SELECT COUNT(distinct(`item`.`mid`)) AS `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
@@ -66,7 +66,7 @@ function community_content(&$a, $update = 0) {
}
- $r = q("SELECT distinct(`item`.`uri`), `item`.*, `item`.`id` AS `item_id`,
+ $r = q("SELECT distinct(`item`.`mid`), `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`,
`contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`,
@@ -77,7 +77,7 @@ function community_content(&$a, $update = 0) {
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0
- AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 group by `item`.`uri`
+ AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 group by `item`.`mid`
ORDER BY `received` DESC LIMIT %d, %d ",
intval($a->pager['start']),
intval($a->pager['itemspage'])
diff --git a/mod/connections.php b/mod/connections.php
index 8e002d870..2ad9342b8 100644
--- a/mod/connections.php
+++ b/mod/connections.php
@@ -23,6 +23,11 @@ function connections_init(&$a) {
$a->data['abook'] = $r[0];
}
}
+
+ $channel = $a->get_channel();
+ if($channel)
+ head_set_icon($channel['xchan_photo_s']);
+
}
function connections_aside(&$a) {
@@ -63,10 +68,10 @@ function connections_post(&$a) {
call_hooks('contact_edit_post', $_POST);
- $profile_id = intval($_POST['profile-assign']);
+ $profile_id = $_POST['profile-assign'];
if($profile_id) {
- $r = q("SELECT `id` FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
- intval($profile_id),
+ $r = q("SELECT profile_guid FROM profile WHERE profile_guid = '%s' AND `uid` = %d LIMIT 1",
+ dbesc($profile_id),
intval(local_user())
);
if(! count($r)) {
@@ -99,9 +104,9 @@ function connections_post(&$a) {
$abook_flags = ( $abook_flags ^ ABOOK_FLAG_PENDING );
}
- $r = q("UPDATE abook SET abook_profile = %d, abook_my_perms = %d , abook_closeness = %d, abook_flags = %d
+ $r = q("UPDATE abook SET abook_profile = '%s', abook_my_perms = %d , abook_closeness = %d, abook_flags = %d
where abook_id = %d AND abook_channel = %d LIMIT 1",
- intval($profile_id),
+ dbesc($profile_id),
intval($abook_my_perms),
intval($closeness),
intval($abook_flags),
@@ -126,20 +131,34 @@ function connections_post(&$a) {
intval(local_user()),
intval($contact_id)
);
- if($r)
+ if($r) {
$a->data['abook'] = $r[0];
+ }
+
+ connections_clone($a);
return;
}
+function connections_clone(&$a) {
+
+ if(! array_key_exists('abook',$a->data))
+ return;
+ $clone = $a->data['abook'];
+
+ unset($clone['abook_id']);
+ unset($clone['abook_account']);
+ unset($clone['abook_channel']);
+
+ build_sync_packet(0 /* use the current local_user */, array('abook' => array($clone)));
+}
function connections_content(&$a) {
$sort_type = 0;
$o = '';
- nav_set_selected('connections');
if(! local_user()) {
@@ -183,40 +202,48 @@ function connections_content(&$a) {
}
if($cmd === 'block') {
- if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_BLOCKED))
+ if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_BLOCKED)) {
info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_BLOCKED)
? t('Channel has been unblocked')
: t('Channel has been blocked')) . EOL );
+ connections_clone($a);
+ }
else
notice(t('Unable to set address book parameters.') . EOL);
goaway($a->get_baseurl(true) . '/connections/' . $contact_id);
}
if($cmd === 'ignore') {
- if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_IGNORED))
+ if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_IGNORED)) {
info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_IGNORED)
? t('Channel has been unignored')
: t('Channel has been ignored')) . EOL );
+ connections_clone($a);
+ }
else
notice(t('Unable to set address book parameters.') . EOL);
goaway($a->get_baseurl(true) . '/connections/' . $contact_id);
}
if($cmd === 'archive') {
- if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_ARCHIVED))
+ if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_ARCHIVED)) {
info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_ARCHIVED)
? t('Channel has been unarchived')
: t('Channel has been archived')) . EOL );
+ connections_clone($a);
+ }
else
notice(t('Unable to set address book parameters.') . EOL);
goaway($a->get_baseurl(true) . '/connections/' . $contact_id);
}
if($cmd === 'hide') {
- if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_HIDDEN))
+ if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_HIDDEN)) {
info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_HIDDEN)
? t('Channel has been unhidden')
: t('Channel has been hidden')) . EOL );
+ connections_clone($a);
+ }
else
notice(t('Unable to set address book parameters.') . EOL);
goaway($a->get_baseurl(true) . '/connections/' . $contact_id);
@@ -226,10 +253,12 @@ function connections_content(&$a) {
if($cmd === 'approve') {
if($orig_record[0]['abook_flags'] & ABOOK_FLAG_PENDING) {
- if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_PENDING))
+ if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_PENDING)) {
info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_PENDING)
? t('Channel has been approved')
: t('Channel has been unapproved')) . EOL );
+ connections_clone($a);
+ }
else
notice(t('Unable to set address book parameters.') . EOL);
}
@@ -244,6 +273,7 @@ function connections_content(&$a) {
// terminate_friendship($a->get_channel(),$orig_record[0]);
contact_remove(local_user(), $orig_record[0]['abook_id']);
+// FIXME - send to clones
info( t('Contact has been removed.') . EOL );
if(x($_SESSION,'return_url'))
goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']);
@@ -332,7 +362,7 @@ function connections_content(&$a) {
$slider_tpl = get_markup_template('contact_slider.tpl');
$slide = replace_macros($slider_tpl,array(
'$me' => t('Me'),
- '$val' => $contact['abook_closeness'],
+ '$val' => (($contact['abook_closeness']) ? $contact['abook_closeness'] : 99),
'$intimate' => t('Best Friends'),
'$friends' => t('Friends'),
'$oldfriends' => t('Former Friends'),
@@ -345,12 +375,20 @@ function connections_content(&$a) {
$channel = $a->get_channel();
$global_perms = get_perms();
- $existing = get_all_perms(local_user(),$contact);
+ $existing = get_all_perms(local_user(),$contact['abook_xchan']);
$unapproved = array('pending', t('Approve this connection'), '', t('Accept connection to allow communication'));
foreach($global_perms as $k => $v) {
- $perms[] = array('perms_' . $k, $v[3], (($contact['abook_their_perms'] & $v[1]) ? "1" : ""),((($contact['abook_my_perms'] & $v[1]) || $existing[$k]) ? "1" : ""), $v[1], (($channel[$v[0]] == PERMS_SPECIFIC) ? '' : '1'), $v[4]);
+ $thisperm = (($contact['abook_my_perms'] & $v[1]) ? "1" : '');
+
+ // For auto permissions (when $self is true) we don't want to look at existing
+ // permissions because they are enabled for the channel owner
+
+ if((! $self) && ($existing[$k]))
+ $thisperm = "1";
+
+ $perms[] = array('perms_' . $k, $v[3], (($contact['abook_their_perms'] & $v[1]) ? "1" : ""),$thisperm, $v[1], (($channel[$v[0]] == PERMS_SPECIFIC) ? '' : '1'), $v[4]);
}
$o .= replace_macros($tpl,array(
@@ -368,10 +406,11 @@ function connections_content(&$a) {
'$is_pending' => (($contact['abook_flags'] & ABOOK_FLAG_PENDING) ? 1 : ''),
'$unapproved' => $unapproved,
'$approve' => t('Approve this connection'),
- '$noperms' => (((! $self) && (! $contact['abook_my_perms'])) ? t('Connection has no permissions!') : ''),
+ '$noperms' => (((! $self) && (! $contact['abook_my_perms'])) ? t('Connection has no individual permissions!') : ''),
+ '$noperm_desc' => (((! $self) && (! $contact['abook_my_perms'])) ? t('This may be appropriate based on your <a href="settings">privacy settings</a>, though you may wish to review the "Advanced Permissions"') : ''),
'$submit' => t('Submit'),
'$lbl_vis1' => t('Profile Visibility'),
- '$lbl_vis2' => sprintf( t('Please choose the profile you would like to display to %s when viewing your profile securely.'), $contact['name']),
+ '$lbl_vis2' => sprintf( t('Please choose the profile you would like to display to %s when viewing your profile securely.'), $contact['xchan_name']),
'$lbl_info1' => t('Contact Information / Notes'),
'$infedit' => t('Edit contact notes'),
'$close' => $contact['abook_closeness'],
@@ -383,7 +422,8 @@ function connections_content(&$a) {
'$full' => t('Full Sharing'),
'$cautious' => t('Cautious Sharing'),
'$follow' => t('Follow Only'),
- '$permlbl' => t('Permissions'),
+ '$permlbl' => t('Individual Permissions'),
+ '$permnote' => t('Individual permissions are only enabled for <a href="settings">privacy settings</a> which are set to "Only those you specifically allow". Otherwise they are controlled by your privacy settings.'),
'$advanced' => t('Advanced Permissions'),
'$quick' => t('Quick Links'),
'$common_link' => $a->get_baseurl(true) . '/common/loc/' . local_user() . '/' . $contact['id'],
@@ -403,7 +443,8 @@ function connections_content(&$a) {
'$updpub' => t('Update public posts'),
'$last_update' => $last_update,
'$udnow' => t('Update now'),
-// '$profile_select' => contact_profile_assign($contact['profile_id'],(($contact['network'] !== NETWORK_DFRN) ? true : false)),
+ '$profile_select' => contact_profile_assign($contact['abook_profile']),
+ '$multiprofs' => feature_enabled(local_user(),'multi_profiles'),
'$contact_id' => $contact['abook_id'],
'$block_text' => (($contact['blocked']) ? t('Unblock') : t('Block') ),
'$ignore_text' => (($contact['readonly']) ? t('Unignore') : t('Ignore') ),
@@ -469,6 +510,7 @@ function connections_content(&$a) {
$search_flags = ABOOK_FLAG_PENDING;
$head = t('New');
$pending = true;
+ nav_set_selected('intros');
break;
case 'all':
@@ -582,26 +624,24 @@ function connections_content(&$a) {
if(count($r)) {
foreach($r as $rr) {
-
- $contacts[] = array(
- 'img_hover' => sprintf( t('%1$s [%2$s]'),$rr['xchan_name'],$rr['xchan_url']),
- 'edit_hover' => t('Edit contact'),
- 'photo_menu' => contact_photo_menu($rr),
- 'id' => $rr['abook_id'],
- 'alt_text' => $alt_text,
- 'dir_icon' => $dir_icon,
- 'thumb' => $rr['xchan_photo_m'],
- 'name' => $rr['xchan_name'],
- 'username' => $rr['xchan_name'],
- 'sparkle' => $sparkle,
- 'edit' => z_root() . '/connections/' . $rr['abook_id'],
- 'url' => $rr['xchan_url'],
- 'network' => network_to_name($rr['network']),
- );
+ if($rr['xchan_url']) {
+ $contacts[] = array(
+ 'img_hover' => sprintf( t('%1$s [%2$s]'),$rr['xchan_name'],$rr['xchan_url']),
+ 'edit_hover' => t('Edit contact'),
+ 'photo_menu' => contact_photo_menu($rr),
+ 'id' => $rr['abook_id'],
+ 'alt_text' => $alt_text,
+ 'dir_icon' => $dir_icon,
+ 'thumb' => $rr['xchan_photo_m'],
+ 'name' => $rr['xchan_name'],
+ 'username' => $rr['xchan_name'],
+ 'sparkle' => $sparkle,
+ 'link' => z_root() . '/connections/' . $rr['abook_id'],
+ 'url' => $rr['xchan_url'],
+ 'network' => network_to_name($rr['network']),
+ );
+ }
}
-
-
-
}
diff --git a/mod/crepair.php b/mod/crepair.php
index e5ece0f98..f749fac0e 100644
--- a/mod/crepair.php
+++ b/mod/crepair.php
@@ -76,7 +76,7 @@ function crepair_post(&$a) {
if($photo) {
logger('mod-crepair: updating photo from ' . $photo);
- require_once("Photo.php");
+ require_once('include/photo/photo_driver.php');
$photos = import_profile_photo($photo,local_user(),$contact['id']);
diff --git a/mod/directory.php b/mod/directory.php
index 21fb14bfc..b7cdaffe7 100644
--- a/mod/directory.php
+++ b/mod/directory.php
@@ -4,7 +4,7 @@ require_once('include/dir_fns.php');
function directory_init(&$a) {
- $a->set_pager_itemspage(60);
+ $a->set_pager_itemspage(80);
}
@@ -45,7 +45,7 @@ function directory_content(&$a) {
$directory = find_upstream_directory($dirmode);
if($directory) {
- $url = $directory['url'];
+ $url = $directory['url'] . '/dirsearch';
}
else {
$url = DIRECTORY_FALLBACK_MASTER . '/dirsearch';
@@ -53,12 +53,30 @@ function directory_content(&$a) {
}
logger('mod_directory: URL = ' . $url, LOGGER_DEBUG);
+ $contacts = array();
+
+ if(local_user()) {
+ $x = q("select abook_xchan from abook where abook_channel = %d",
+ intval(local_user())
+ );
+ if($x) {
+ foreach($x as $xx)
+ $contacts[] = $xx['abook_xchan'];
+ }
+ }
+
+
+
if($url) {
$query = $url . '?f=' ;
if($search)
$query .= '&name=' . urlencode($search);
if(strpos($search,'@'))
$query .= '&address=' . urlencode($search);
+
+ $sort_order = ((x($_REQUEST,'order')) ? $_REQUEST['order'] : '');
+ if($sort_order)
+ $query .= '&order=' . urlencode($sort_order);
if($a->pager['page'] != 1)
$query .= '&p=' . $a->pager['page'];
@@ -66,7 +84,7 @@ function directory_content(&$a) {
logger('mod_directory: query: ' . $query);
$x = z_fetch_url($query);
- logger('directory: return from upstream: ' . print_r($x,true));
+ logger('directory: return from upstream: ' . print_r($x,true), LOGGER_DATA);
if($x['success']) {
$t = 0;
@@ -84,7 +102,11 @@ function directory_content(&$a) {
$profile_link = chanlink_url($rr['url']);
$pdesc = (($rr['description']) ? $rr['description'] . '<br />' : '');
-
+ $connect_link = ((local_user()) ? z_root() . '/follow?f=&url=' . urlencode($rr['address']) : '');
+
+ if(in_array($rr['hash'],$contacts))
+ $connect_link = '';
+
$details = '';
if(strlen($rr['locale']))
$details .= $rr['locale'];
@@ -138,7 +160,8 @@ function directory_content(&$a) {
'marital' => $marital,
'homepage' => $homepage,
'about' => $about,
-
+ 'conn_label' => t('Connect'),
+ 'connect' => $connect_link,
);
$arr = array('contact' => $rr, 'entry' => $entry);
@@ -146,14 +169,13 @@ function directory_content(&$a) {
call_hooks('directory_item', $arr);
$entries[] = $entry;
-
unset($profile);
unset($location);
}
- logger('mod_directory: entries: ' . print_r($entries,true), LOGGER_DATA);
+// logger('mod_directory: entries: ' . print_r($entries,true), LOGGER_DATA);
$o .= replace_macros($tpl, array(
'$search' => $search,
@@ -166,7 +188,7 @@ function directory_content(&$a) {
));
- $o .= alt_pager($a,$j['records'], t('more'), t('back'));
+ $o .= alt_pager($a,$j['records'], t('next page'), t('previous page'));
}
else {
diff --git a/mod/dirsearch.php b/mod/dirsearch.php
index 7e4323da9..6d6ef7434 100644
--- a/mod/dirsearch.php
+++ b/mod/dirsearch.php
@@ -22,15 +22,20 @@ function dirsearch_content(&$a) {
json_return_and_die($ret);
}
- $name = ((x($_REQUEST,'name')) ? $_REQUEST['name'] : '');
- $address = ((x($_REQUEST,'address')) ? $_REQUEST['address'] : '');
- $locale = ((x($_REQUEST,'locale')) ? $_REQUEST['locale'] : '');
- $region = ((x($_REQUEST,'region')) ? $_REQUEST['region'] : '');
+ $name = ((x($_REQUEST,'name')) ? $_REQUEST['name'] : '');
+ $hub = ((x($_REQUEST,'hub')) ? $_REQUEST['hub'] : '');
+ $address = ((x($_REQUEST,'address')) ? $_REQUEST['address'] : '');
+ $locale = ((x($_REQUEST,'locale')) ? $_REQUEST['locale'] : '');
+ $region = ((x($_REQUEST,'region')) ? $_REQUEST['region'] : '');
$postcode = ((x($_REQUEST,'postcode')) ? $_REQUEST['postcode'] : '');
- $country = ((x($_REQUEST,'country')) ? $_REQUEST['country'] : '');
- $gender = ((x($_REQUEST,'gender')) ? $_REQUEST['gender'] : '');
- $marital = ((x($_REQUEST,'marital')) ? $_REQUEST['marital'] : '');
+ $country = ((x($_REQUEST,'country')) ? $_REQUEST['country'] : '');
+ $gender = ((x($_REQUEST,'gender')) ? $_REQUEST['gender'] : '');
+ $marital = ((x($_REQUEST,'marital')) ? $_REQUEST['marital'] : '');
$keywords = ((x($_REQUEST,'keywords')) ? $_REQUEST['keywords'] : '');
+ $agege = ((x($_REQUEST,'agege')) ? intval($_REQUEST['agege']) : 0 );
+ $agele = ((x($_REQUEST,'agele')) ? intval($_REQUEST['agele']) : 0 );
+
+ $sort_order = ((x($_REQUEST,'order')) ? $_REQUEST['order'] : '');
// TODO - a meta search which joins all of these things to one search string
@@ -38,6 +43,8 @@ function dirsearch_content(&$a) {
if($name)
$sql_extra .= " OR xchan_name like '" . protect_sprintf( '%' . dbesc($name) . '%' ) . "' ";
+ if($hub)
+ $sql_extra .= " OR xchan_hash in (select hubloc_hash from hubloc where hubloc_host = '" . protect_sprintf(dbesc($hub)) . "') ";
if($address)
$sql_extra .= " OR xchan_addr like '" . protect_sprintf( '%' . dbesc($address) . '%' ) . "' ";
if($city)
@@ -55,12 +62,23 @@ function dirsearch_content(&$a) {
if($keywords)
$sql_extra .= " OR xprof_keywords like '" . protect_sprintf( '%' . dbesc($keywords) . '%' ) . "' ";
- $perpage = (($_REQUEST['n']) ? $_REQUEST['n'] : 80);
- $page = (($_REQUEST['p']) ? intval($_REQUEST['p'] - 1) : 0);
- $startrec = (($page+1) * $perpage) - $perpage;
- $limit = (($_REQUEST['limit']) ? intval($_REQUEST['limit']) : 0);
+ // we only support an age range currently. You must set both agege
+ // (greater than or equal) and agele (less than or equal)
+
+ if($agele && $agege) {
+ $sql_extra .= " OR ( xprof_age <= " . intval($agele) . " ";
+ $sql_extra .= " AND xprof_age >= " . intval($agege) . ") ";
+ }
+
+ $perpage = (($_REQUEST['n']) ? $_REQUEST['n'] : 80);
+ $page = (($_REQUEST['p']) ? intval($_REQUEST['p'] - 1) : 0);
+ $startrec = (($page+1) * $perpage) - $perpage;
+ $limit = (($_REQUEST['limit']) ? intval($_REQUEST['limit']) : 0);
$return_total = ((x($_REQUEST,'return_total')) ? intval($_REQUEST['return_total']) : 0);
+
+ $mtime = ((x($_REQUEST,'mtime')) ? datetime_convert('UTC','UTC',$_REQUEST['mtime']) : '');
+
// ok a separate tag table won't work.
// merge them into xprof
@@ -86,9 +104,21 @@ function dirsearch_content(&$a) {
}
}
- $order = " ORDER BY `xchan_name` ASC ";
+ if($mtime) {
+ $qlimit = '';
+ $sql_extra .= " and xchan_hash in ( select ud_hash from updates where ud_date > '" . dbesc($mtime) . "' ) ";
+ }
+
+ if($sort_order == 'date')
+ $order = " order by ud_date desc ";
+ elseif($sort_order == 'reverse')
+ $order = " order by xchan_name desc ";
+ else
+ $order = " order by xchan_name asc ";
+
- $r = q("SELECT xchan.*, xprof.* from xchan left join xprof on xchan_hash = xprof_hash where $logic $sql_extra and not ( xchan_flags & %d ) $order $qlimit ",
+
+ $r = q("SELECT xchan.*, xprof.*, updates.* from xchan left join xprof on xchan_hash = xprof_hash left join updates on xchan_hash = ud_hash where $logic $sql_extra and not ( xchan_flags & %d ) $order $qlimit ",
intval(XCHAN_FLAGS_HIDDEN)
);
@@ -104,6 +134,9 @@ function dirsearch_content(&$a) {
$entry = array();
$entry['name'] = $rr['xchan_name'];
+ $entry['hash'] = $rr['xchan_hash'];
+
+ $entry['updated'] = (($rr['ud_date']) ? $rr['ud_date'] : '0000-00-00 00:00:00');
$entry['url'] = $rr['xchan_url'];
$entry['photo'] = $rr['xchan_photo_m'];
$entry['address'] = $rr['xchan_addr'];
@@ -113,6 +146,7 @@ function dirsearch_content(&$a) {
$entry['postcode'] = $rr['xprof_postcode'];
$entry['country'] = $rr['xprof_country'];
$entry['birthday'] = $rr['xprof_dob'];
+ $entry['age'] = $rr['xprof_age'];
$entry['gender'] = $rr['xprof_gender'];
$entry['marital'] = $rr['xprof_marital'];
$entry['keywords'] = $rr['xprof_keywords'];
diff --git a/mod/display.php b/mod/display.php
index 3c2172c7d..110dd1807 100644
--- a/mod/display.php
+++ b/mod/display.php
@@ -3,6 +3,8 @@
function display_content(&$a, $update = 0, $load = false) {
+ logger("mod-display: update = $update load = $load");
+
if(intval(get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
notice( t('Public access denied.') . EOL);
return;
@@ -20,8 +22,10 @@ function display_content(&$a, $update = 0, $load = false) {
if(argc() > 1 && argv(1) !== 'load')
$item_hash = argv(1);
- if($_REQUEST['uri'])
- $item_hash = $_REQUEST['uri'];
+
+
+ if($_REQUEST['mid'])
+ $item_hash = $_REQUEST['mid'];
if(! $item_hash) {
@@ -43,7 +47,7 @@ function display_content(&$a, $update = 0, $load = false) {
$target_item = null;
- $r = q("select uri, parent_uri from item where uri = '%s' limit 1",
+ $r = q("select mid, parent_mid from item where mid = '%s' limit 1",
dbesc($item_hash)
);
@@ -55,7 +59,7 @@ function display_content(&$a, $update = 0, $load = false) {
$o .= '<div id="live-display"></div>' . "\r\n";
- $o .= "<script> var profile_uid = " . intval(local_user())
+ $o .= "<script> var profile_uid = " . ((intval(local_user())) ? local_user() : (-1))
. "; var netargs = '?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
$a->page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array(
@@ -79,7 +83,7 @@ function display_content(&$a, $update = 0, $load = false) {
'$cats' => '',
'$dend' => '',
'$dbegin' => '',
- '$uri' => $item_hash
+ '$mid' => $item_hash
));
@@ -90,20 +94,36 @@ function display_content(&$a, $update = 0, $load = false) {
if($update && $load) {
+ $updateable = false;
+
$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
if($load) {
-
- $r = q("SELECT * from item
- WHERE item_restrict = 0
- and uri = '%s'
- AND ((( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = ''
- AND `item`.`deny_gid` = '' AND item_private = 0 )
- and uid in ( " . stream_perms_api_uids() . " ))
- $sql_extra )
- group by uri limit 1",
- dbesc($target_item['parent_uri'])
- );
+ $r = null;
+ if(local_user()) {
+ $r = q("SELECT * from item
+ WHERE item_restrict = 0
+ and uid = %d
+ and mid = '%s'
+ limit 1",
+ intval(local_user()),
+ dbesc($target_item['parent_mid'])
+ );
+ if($r)
+ $updateable = true;
+ }
+ if($r === null) {
+ $r = q("SELECT * from item
+ WHERE item_restrict = 0
+ and mid = '%s'
+ AND ((( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = ''
+ AND `item`.`deny_gid` = '' AND item_private = 0 )
+ and uid in ( " . stream_perms_api_uids() . " ))
+ $sql_extra )
+ group by mid limit 1",
+ dbesc($target_item['parent_mid'])
+ );
+ }
}
else {
@@ -131,14 +151,26 @@ function display_content(&$a, $update = 0, $load = false) {
}
- $o .= conversation($a,$items,'display', $update, 'client');
+
+ $o .= conversation($a, $items, 'display', $update, 'client');
+
+ if($updateable) {
+ $x = q("UPDATE item SET item_flags = ( item_flags ^ %d )
+ WHERE (item_flags & %d) AND uid = %d and parent = %d ",
+ intval(ITEM_UNSEEN),
+ intval(ITEM_UNSEEN),
+ intval(local_user()),
+ intval($r[0]['parent'])
+ );
+ }
+
return $o;
/*
elseif((! $update) && (! {
- $r = q("SELECT `id`, item_flags FROM `item` WHERE `id` = '%s' OR `uri` = '%s' LIMIT 1",
+ $r = q("SELECT `id`, item_flags FROM `item` WHERE `id` = '%s' OR `mid` = '%s' LIMIT 1",
dbesc($item_hash),
dbesc($item_hash)
);
diff --git a/mod/editpost.php b/mod/editpost.php
index 43c71ca8a..583bae9eb 100644
--- a/mod/editpost.php
+++ b/mod/editpost.php
@@ -1,6 +1,7 @@
<?php
require_once('acl_selectors.php');
+require_once('include/crypto.php');
function editpost_content(&$a) {
@@ -18,13 +19,14 @@ function editpost_content(&$a) {
return;
}
- $itm = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ $itm = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d and author_xchan = '%s' LIMIT 1",
intval($post_id),
- intval(local_user())
+ intval(local_user()),
+ dbesc(get_observer_hash())
);
if(! count($itm)) {
- notice( t('Item not found') . EOL);
+ notice( t('Item is not editable') . EOL);
return;
}
@@ -46,6 +48,15 @@ function editpost_content(&$a) {
));
+
+ if($itm[0]['item_flags'] & ITEM_OBSCURED) {
+ $key = get_config('system','prvkey');
+ if($itm[0]['title'])
+ $itm[0]['title'] = aes_unencapsulate(json_decode_plus($itm[0]['title']),$key);
+ if($itm[0]['body'])
+ $itm[0]['body'] = aes_unencapsulate(json_decode_plus($itm[0]['body']),$key);
+ }
+
$tpl = get_markup_template("jot.tpl");
$jotplugins = '';
@@ -82,9 +93,9 @@ function editpost_content(&$a) {
'$pvisit' => 'none',
'$public' => t('Public post'),
'$jotnets' => $jotnets,
- '$title' => $itm[0]['title'],
+ '$title' => htmlspecialchars($itm[0]['title']),
'$placeholdertitle' => t('Set title'),
- '$category' => file_tag_file_to_list($itm[0]['file'], 'category'),
+ '$category' => '', // FIXME
'$placeholdercategory' => t('Categories (comma-separated list)'),
'$emtitle' => t('Example: bob@example.com, mary@example.com'),
'$lockstate' => $lockstate,
diff --git a/mod/editwebpage.php b/mod/editwebpage.php
new file mode 100644
index 000000000..c7323a7f7
--- /dev/null
+++ b/mod/editwebpage.php
@@ -0,0 +1,135 @@
+
+<?php
+
+require_once('acl_selectors.php');
+
+function editwebpage_content(&$a) {
+
+// We first need to figure out who owns the webpage, grab it from an argument
+ $which = argv(1);
+
+// $a->get_channel() and stuff don't work here, so we've got to find the owner for ourselves.
+ $owner = q("select channel_id from channel where channel_address = '%s'",
+ dbesc($which)
+ );
+
+
+ if((local_user()) && (argc() > 2) && (argv(2) === 'view')) {
+ $which = $channel['channel_address'];
+ }
+
+
+ $o = '';
+
+
+// Figure out which post we're editing
+ $post_id = ((argc() > 2) ? intval(argv(2)) : 0);
+
+
+ if(! $post_id) {
+ notice( t('Item not found') . EOL);
+ return;
+ }
+
+// Now we've got a post and an owner, let's find out if we're allowed to edit it
+
+ $observer = $a->get_observer();
+ $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
+
+ $perms = get_all_perms($owner,$ob_hash);
+
+ if(! $perms['write_pages']) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+
+
+
+// We've already figured out which item we want and whose copy we need, so we don't need anything fancy here
+ $itm = q("SELECT * FROM `item` WHERE `id` = %d and uid = %s LIMIT 1",
+ intval($post_id),
+ intval($owner)
+ );
+
+
+
+ // All of the following is straight from editpost - but we'll need richer editing options for webpages eventually, so we may as well have it's own mod now.
+
+ $plaintext = true;
+ if(feature_enabled(local_user(),'richtext'))
+ $plaintext = false;
+
+ $o .= replace_macros(get_markup_template('edpost_head.tpl'), array(
+ '$title' => t('Edit post')
+ ));
+
+
+ $a->page['htmlhead'] .= replace_macros(get_markup_template('jot-header.tpl'), array(
+ '$baseurl' => $a->get_baseurl(),
+ '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
+ '$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
+ '$geotag' => $geotag,
+ '$nickname' => $a->user['nickname']
+ ));
+
+
+ $tpl = get_markup_template("jot.tpl");
+
+ $jotplugins = '';
+ $jotnets = '';
+
+ call_hooks('jot_tool', $jotplugins);
+ call_hooks('jot_networks', $jotnets);
+
+ $channel = $a->get_channel();
+
+ //$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
+
+//FIXME A return path with $_SESSION doesn't work for observer (at least, not here it doesn't). It'll WSoD instead of loading a sensible page. So, send folk
+//back to the channel address until somebody figures out how to fix it - we can't send them back to webpages, because that could leak private pages they can't see
+//when ACL is done.
+
+ $rp = 'channel' . '/' . $which;
+
+ $o .= replace_macros($tpl,array(
+ '$return_path' => $rp,
+ '$action' => 'item',
+ '$share' => t('Edit'),
+ '$upload' => t('Upload photo'),
+ '$attach' => t('Attach file'),
+ '$weblink' => t('Insert web link'),
+ '$youtube' => t('Insert YouTube video'),
+ '$video' => t('Insert Vorbis [.ogg] video'),
+ '$audio' => t('Insert Vorbis [.ogg] audio'),
+ '$setloc' => t('Set your location'),
+ '$noloc' => t('Clear browser location'),
+ '$wait' => t('Please wait'),
+ '$permset' => t('Permission settings'),
+ '$ptyp' => $itm[0]['type'],
+ '$content' => undo_post_tagging($itm[0]['body']),
+ '$post_id' => $post_id,
+ '$baseurl' => $a->get_baseurl(),
+ '$defloc' => $channel['channel_location'],
+ '$visitor' => 'none',
+ '$pvisit' => 'none',
+ '$public' => t('Public post'),
+ '$jotnets' => $jotnets,
+ '$title' => htmlspecialchars($itm[0]['title']),
+ '$placeholdertitle' => t('Set title'),
+ '$category' => '',
+ '$placeholdercategory' => t('Categories (comma-separated list)'),
+ '$emtitle' => t('Example: bob@example.com, mary@example.com'),
+ '$lockstate' => $lockstate,
+ '$acl' => '',
+ '$bang' => '',
+ '$profile_uid' => (intval($owner)),
+ '$preview' => ((feature_enabled(local_user(),'preview')) ? t('Preview') : ''),
+ '$jotplugins' => $jotplugins,
+ '$sourceapp' => t($a->sourcename),
+ ));
+
+ return $o;
+
+}
+
+
diff --git a/mod/events.php b/mod/events.php
index 8c509cfea..f43a99cba 100755
--- a/mod/events.php
+++ b/mod/events.php
@@ -135,6 +135,8 @@ function events_content(&$a) {
return;
}
+ nav_set_selected('all_events');
+
if((argc() > 2) && (argv(1) === 'ignore') && intval(argv(2))) {
$r = q("update event set ignore = 1 where id = %d and uid = %d limit 1",
intval(argv(2)),
@@ -229,9 +231,9 @@ function events_content(&$a) {
$adjust_start = datetime_convert('UTC', date_default_timezone_get(), $start);
$adjust_finish = datetime_convert('UTC', date_default_timezone_get(), $finish);
-
if (x($_GET,'id')){
- $r = q("SELECT * from event left join item on resource_id = event_hash where resource_type = 'event' and event.uid = %d and event.id = %d limit 1",
+ $r = q("SELECT event.*, item.plink, item.item_flags, item.author_xchan, item.owner_xchan
+ from event left join item on resource_id = event_hash where resource_type = 'event' and event.uid = %d and event.id = %d limit 1",
intval(local_user()),
intval($_GET['id'])
);
@@ -242,8 +244,8 @@ function events_content(&$a) {
// Noting this for now - it will need to be fixed here and in Friendica.
// Ultimately the finish date shouldn't be involved in the query.
-
- $r = q("SELECT * from event left join item on event_hash = resource_id
+ $r = q("SELECT event.*, item.plink, item.item_flags, item.author_xchan, item.owner_xchan
+ from event left join item on event_hash = resource_id
where resource_type = 'event' and event.uid = %d and event.ignore = %d
AND (( `adjust` = 0 AND ( `finish` >= '%s' or nofinish ) AND `start` <= '%s' )
OR ( `adjust` = 1 AND ( `finish` >= '%s' or nofinish ) AND `start` <= '%s' )) ",
@@ -339,6 +341,7 @@ function events_content(&$a) {
else {
$tpl = get_markup_template("events-js.tpl");
}
+
$o = replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(),
'$tabs' => $tabs,
@@ -379,7 +382,7 @@ function events_content(&$a) {
$l_orig = ((x($orig_event)) ? $orig_event['location'] : '');
$eid = ((x($orig_event)) ? $orig_event['id'] : 0);
$event_xchan = ((x($orig_event)) ? $orig_event['event_xchan'] : $channel['channel_hash']);
- $uri = ((x($orig_event)) ? $orig_event['uri'] : '');
+ $mid = ((x($orig_event)) ? $orig_event['mid'] : '');
if(! x($orig_event))
$sh_checked = '';
@@ -427,7 +430,7 @@ function events_content(&$a) {
'$post' => $a->get_baseurl() . '/events',
'$eid' => $eid,
'$xchan' => $event_xchan,
- '$uri' => $uri,
+ '$mid' => $mid,
'$title' => t('Event details'),
'$desc' => sprintf( t('Format is %s %s. Starting date and Title are required.'),$dateformat,$timeformat),
diff --git a/mod/fbrowser.php b/mod/fbrowser.php
index d10d8021b..31004c0d8 100644
--- a/mod/fbrowser.php
+++ b/mod/fbrowser.php
@@ -5,7 +5,7 @@
* @author Fabio Comuni <fabrixxm@kirgroup.com>
*/
-require_once('include/Photo.php');
+require_once('include/photo/photo_driver.php');
/**
* @param App $a
diff --git a/mod/feed.php b/mod/feed.php
index a6adc620e..104208875 100644
--- a/mod/feed.php
+++ b/mod/feed.php
@@ -13,7 +13,7 @@ function feed_init(&$a) {
$channel = '';
if(argc() > 1) {
- $r = q("select * from channel where channel_address = '%s' limit 1",
+ $r = q("select * from channel left join xchan on channel_hash = xchan_hash where channel_address = '%s' limit 1",
dbesc(argv(1))
);
if(!($r && count($r)))
@@ -21,11 +21,6 @@ function feed_init(&$a) {
$channel = $r[0];
- // check site and channel permissions
-
- if(!($channel['channel_r_stream'] & PERMS_PUBLIC))
- killme();
-
if((intval(get_config('system','block_public'))) && (! get_account_id()))
killme();
diff --git a/mod/follow.php b/mod/follow.php
index c07c210f6..d21c50df6 100644
--- a/mod/follow.php
+++ b/mod/follow.php
@@ -6,7 +6,6 @@ require_once('include/follow.php');
function follow_init(&$a) {
if(! local_user()) {
- notice( t('Permission denied.') . EOL);
return;
}
@@ -22,8 +21,15 @@ function follow_init(&$a) {
goaway($return_url);
}
- info( t('Channel added') . EOL);
+ info( t('Channel added.') . EOL);
goaway(z_root() . '/connections/' . $result['abook']['abook_id']);
}
+
+function follow_content(&$a) {
+
+ if(! local_user()) {
+ return login();
+ }
+} \ No newline at end of file
diff --git a/mod/fsuggest.php b/mod/fsuggest.php
index 9ef8f4c55..8b6f077d3 100644
--- a/mod/fsuggest.php
+++ b/mod/fsuggest.php
@@ -100,8 +100,9 @@ function fsuggest_content(&$a) {
$o .= '<form id="fsuggest-form" action="fsuggest/' . $contact_id . '" method="post" >';
- $o .= contact_selector('suggest','suggest-select', false,
- array('size' => 4, 'exclude' => $contact_id, 'networks' => 'DFRN_ONLY', 'single' => true));
+// FIXME contact_selector deprecated, removed
+// $o .= contact_selector('suggest','suggest-select', false,
+// array('size' => 4, 'exclude' => $contact_id, 'networks' => 'DFRN_ONLY', 'single' => true));
$o .= '<div id="fsuggest-submit-wrapper"><input id="fsuggest-submit" type="submit" name="submit" value="' . t('Submit') . '" /></div>';
diff --git a/mod/group.php b/mod/group.php
index 778ecbded..c85cb2da3 100644
--- a/mod/group.php
+++ b/mod/group.php
@@ -143,12 +143,14 @@ function group_content(&$a) {
}
$group = $r[0];
+
$members = group_get_members($group['id']);
$preselected = array();
if(count($members)) {
foreach($members as $member)
- $preselected[] = $member['xchan_hash'];
+ if(! in_array($member['xchan_hash'],$preselected))
+ $preselected[] = $member['xchan_hash'];
}
if($change) {
diff --git a/mod/home.php b/mod/home.php
index 1bb0148d2..86d489853 100644
--- a/mod/home.php
+++ b/mod/home.php
@@ -8,11 +8,16 @@ function home_init(&$a) {
$channel = $a->get_channel();
- if(local_user() && $channel && $channel['xchan_url'])
- goaway( $channel['xchan_url']);
+ if(local_user() && $channel && $channel['xchan_url']) {
+ $dest = get_pconfig(local_user(),'system','startpage');
+ if(! $dest)
+ $dest = z_root() . '/network';
+
+ goaway($dest);
+ }
if(get_account_id()) {
- goaway('new_channel');
+ goaway(z_root() . '/new_channel');
}
}}
@@ -28,15 +33,55 @@ function home_content(&$a) {
if(x($_SESSION,'mobile-theme'))
unset($_SESSION['mobile-theme']);
- $o .= '<h1>' . ((x($a->config,'sitename')) ? sprintf( t("Welcome to %s") ,$a->config['sitename']) : "" ) . '</h1>';
+$channel_address = get_config("system", "site-channel" );
+ if ($channel_address){
+
+require_once('include/items.php');
+require_once('include/conversation.php');
+
+
+//We can do better, but until we figure out auto-linkification, let's keep things simple
+ $page_id = 'home';
+
+ $u = q("select channel_id from channel where channel_address = '%s' limit 1",
+ dbesc($channel_address)
+ );
+
+ if(! $u) {
+ notice( t('Channel not found.') . EOL);
+ return;
+ }
+
+ $r = q("select item.* from item left join item_id on item.id = item_id.iid
+ where item.uid = %d and sid = '%s' and service = 'WEBPAGE' and
+ item_restrict = %d limit 1",
+ intval($u[0]['channel_id']),
+ dbesc($page_id),
+ intval(ITEM_WEBPAGE)
+ );
+
+ if(! $r) {
+ notice( t('Item not found.') . EOL);
+ return;
+ }
+
+ xchan_query($r);
+ $r = fetch_post_tags($r,true);
+ $a->profile = array('profile_uid' => $u[0]['channel_id']);
+ $o .= prepare_page($r[0]);
+
+}
+
+// If there's no site channel specified, fallback to the old behaviour
+ else { $o .= '<h1>' . ((x($a->config,'sitename')) ? sprintf( t("Welcome to %s") ,$a->config['sitename']) : "" ) . '</h1>';
if(file_exists('home.html'))
$o .= file_get_contents('home.html');
+}
- $o .= login(($a->config['system']['register_policy'] == REGISTER_CLOSED) ? 0 : 1);
+ $o .= login(($a->config['system']['register_policy'] == REGISTER_CLOSED) ? 0 : 1);
call_hooks("home_content",$o);
-
return $o;
-
+}
-}}
+}
diff --git a/mod/import.php b/mod/import.php
index f35ca149b..4c878f5c6 100644
--- a/mod/import.php
+++ b/mod/import.php
@@ -4,10 +4,14 @@
// connection to original server.
require_once('include/Contact.php');
-
+require_once('include/zot.php');
+require_once('include/identity.php');
function import_post(&$a) {
+ if(! get_account_id()) {
+ return;
+ }
$data = null;
$seize = ((x($_REQUEST,'make_primary')) ? intval($_REQUEST['make_primary']) : 0);
@@ -22,6 +26,7 @@ function import_post(&$a) {
if($filesize) {
$data = @file_get_contents($src);
}
+ unlink($src);
}
if(! $src) {
@@ -39,7 +44,7 @@ function import_post(&$a) {
$servername = substr($old_address,strpos($old_address,'@')+1);
$scheme = 'https://';
- $api_path = '/api/export/basic?f=&channel=' . $channelname;
+ $api_path = '/api/red/channel/export/basic?f=&channel=' . $channelname;
$binary = false;
$redirects = 0;
$opts = array('http_auth' => $email . ':' . $password);
@@ -60,6 +65,7 @@ function import_post(&$a) {
return;
}
+ $data = json_decode($data,true);
// logger('import: data: ' . print_r($data,true));
@@ -113,9 +119,11 @@ function import_post(&$a) {
// reset
$channel = $r[0];
+ set_default_login_identity(get_account_id(),$channel['channel_id'],false);
+
if($data['photo']) {
- require_once('include/Photo.php');
- import_channel_photo(base64url_decode($data['photo']['data']),$data['photo']['type'],get_account_id,$channel['channel_id']);
+ require_once('include/photo/photo_driver.php');
+ import_channel_photo(base64url_decode($data['photo']['data']),$data['photo']['type'],get_account_id(),$channel['channel_id']);
}
$profiles = $data['profile'];
@@ -217,7 +225,7 @@ function import_post(&$a) {
. "')" );
- require_once("Photo.php");
+ require_once('include/photo/photo_driver.php');
$photos = import_profile_photo($xchan['xchan_photo_l'],$xchan['xchan_hash']);
$r = q("update xchan set xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s'
where xchan_hash = '%s' limit 1",
@@ -250,6 +258,63 @@ function import_post(&$a) {
}
}
+
+ $configs = $data['config'];
+ if($configs) {
+ foreach($configs as $config) {
+ unset($config['id']);
+ $config['uid'] = $channel['channel_id'];
+ dbesc_array($config);
+ $r = dbq("INSERT INTO pconfig (`"
+ . implode("`, `", array_keys($config))
+ . "`) VALUES ('"
+ . implode("', '", array_values($config))
+ . "')" );
+ }
+ }
+
+ $groups = $data['group'];
+ if($groups) {
+ $saved = array();
+ foreach($groups as $group) {
+ $saved[$group['hash']] = array('old' => $group['id']);
+ unset($group['id']);
+ $group['uid'] = $channel['channel_id'];
+ dbesc_array($group);
+ $r = dbq("INSERT INTO group (`"
+ . implode("`, `", array_keys($group))
+ . "`) VALUES ('"
+ . implode("', '", array_values($group))
+ . "')" );
+ }
+ $r = q("select * from `group` where uid = %d",
+ intval($channel['channel_id'])
+ );
+ if($r) {
+ foreach($r as $rr) {
+ $saved[$rr['hash']]['new'] = $rr['id'];
+ }
+ }
+ }
+
+ $group_members = $data['group_member'];
+ if($groups_members) {
+ foreach($group_members as $group_member) {
+ unset($group_member['id']);
+ $group_member['uid'] = $channel['channel_id'];
+ foreach($saved as $x) {
+ if($x['old'] == $group_member['gid'])
+ $group_member['gid'] = $x['new'];
+ }
+ dbesc_array($group_member);
+ $r = dbq("INSERT INTO group_member (`"
+ . implode("`, `", array_keys($group_member))
+ . "`) VALUES ('"
+ . implode("', '", array_values($group_member))
+ . "')" );
+ }
+ }
+
// FIXME - ensure we have a self entry if somebody is trying to pull a fast one
if($seize) {
@@ -261,11 +326,20 @@ function import_post(&$a) {
notice( t('Import completed.') . EOL);
+ change_channel($channel['channel_id']);
+
+ goaway(z_root() . '/network' );
+
+
}
function import_content(&$a) {
+ if(! get_account_id()) {
+ notice( t('You must be logged in to use this feature.'));
+ return '';
+ }
$o = replace_macros(get_markup_template('channel_import.tpl'),array(
'$title' => t('Import Channel'),
@@ -284,4 +358,4 @@ function import_content(&$a) {
return $o;
-} \ No newline at end of file
+}
diff --git a/mod/invite.php b/mod/invite.php
index 336e20164..cb8cd1f63 100644
--- a/mod/invite.php
+++ b/mod/invite.php
@@ -68,9 +68,12 @@ function invite_post(&$a) {
else
$nmessage = $message;
- $res = mail($recip, sprintf( t('Please join us on Friendica'), $a->config['sitename']),
+ $account = $a->get_account();
+
+
+ $res = mail($recip, sprintf( t('Please join us on Red'), $a->config['sitename']),
$nmessage,
- "From: " . $a->user['email'] . "\n"
+ "From: " . $account['account_email'] . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
@@ -112,29 +115,41 @@ function invite_content(&$a) {
}
}
- $dirloc = get_config('system','directory_submit_url');
- if(strlen($dirloc)) {
- if($a->config['system']['register_policy'] == REGISTER_CLOSED)
- $linktxt = sprintf( t('Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks.'), dirname($dirloc) . '/siteinfo');
- elseif($a->config['system']['register_policy'] != REGISTER_CLOSED)
- $linktxt = sprintf( t('To accept this invitation, please visit and register at %s or any other public Friendica website.'), $a->get_baseurl())
- . "\r\n" . "\r\n" . sprintf( t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join.'),dirname($dirloc) . '/siteinfo');
- }
- else {
- $o = t('Our apologies. This system is not currently configured to connect with other public sites or invite members.');
+// $dirloc = get_config('system','directory_submit_url');
+// if(strlen($dirloc)) {
+// if($a->config['system']['register_policy'] == REGISTER_CLOSED)
+// $linktxt = sprintf( t('Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks.'), dirname($dirloc) . '/siteinfo');
+// elseif($a->config['system']['register_policy'] != REGISTER_CLOSED)
+// $linktxt = sprintf( t('To accept this invitation, please visit and register at %s or any other public Friendica website.'), $a->get_baseurl())
+// . "\r\n" . "\r\n" . sprintf( t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join.'),dirname($dirloc) . '/siteinfo');
+// }
+// else {
+// $o = t('Our apologies. This system is not currently configured to connect with other public sites or invite members.');
+// return $o;
+// }
+
+ $ob = $a->get_observer();
+ if(! $ob)
return $o;
- }
+
+ $channel = $a->get_channel();
$o = replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("send_invite"),
'$invite' => t('Send invitations'),
'$addr_text' => t('Enter email addresses, one per line:'),
'$msg_text' => t('Your message:'),
- '$default_message' => t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n"
+ '$default_message' => t('You are cordially invited to join me and some other close friends on the Red Matrix - a revolutionary new decentralised social and information tool.') . "\r\n" . "\r\n"
. $linktxt
- . "\r\n" . "\r\n" . (($invonly) ? t('You will need to supply this invitation code: $invite_code') . "\r\n" . "\r\n" : '') .t('Once you have registered, please connect with me via my profile page at:')
- . "\r\n" . "\r\n" . $a->get_baseurl() . '/channel/' . $a->user['nickname']
- . "\r\n" . "\r\n" . t('For more information about the Friendica project and why we feel it is important, please visit http://friendica.com') . "\r\n" . "\r\n" ,
+ . (($invonly) ? "\r\n" . "\r\n" . t('You will need to supply this invitation code: $invite_code') . "\r\n" . "\r\n" : '')
+
+ . t('Please visit my channel at')
+ . "\r\n" . "\r\n"
+ . z_root() . "/channel/" . $channel['channel_address']
+ . "\r\n" . "\r\n"
+ . t('Once you have registered, please connect with my Red Matrix channel address:')
+ . "\r\n" . "\r\n" . $ob['xchan_addr']
+ . "\r\n" . "\r\n" . t('For more information about the Red Matrix Project and why it has the potential to change the internet as we know it, please visit http://getzot.com') . "\r\n" . "\r\n" ,
'$submit' => t('Submit')
));
diff --git a/mod/item.php b/mod/item.php
index 8298d3dc0..dc8ee5015 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -44,7 +44,7 @@ function item_post(&$a) {
call_hooks('post_local_start', $_REQUEST);
- logger('postvars ' . print_r($_REQUEST,true), LOGGER_DATA);
+// logger('postvars ' . print_r($_REQUEST,true), LOGGER_DATA);
$api_source = ((x($_REQUEST,'api_source') && $_REQUEST['api_source']) ? true : false);
@@ -60,6 +60,7 @@ function item_post(&$a) {
$origin = (($api_source && array_key_exists('origin',$_REQUEST)) ? intval($_REQUEST['origin']) : 1);
$owner_hash = null;
+ $message_id = ((x($_REQUEST,'message_id') && $api_source) ? strip_tags($_REQUEST['message_id']) : '');
$profile_uid = ((x($_REQUEST,'profile_uid')) ? intval($_REQUEST['profile_uid']) : 0);
$post_id = ((x($_REQUEST,'post_id')) ? intval($_REQUEST['post_id']) : 0);
@@ -80,7 +81,7 @@ function item_post(&$a) {
*/
$parent = ((x($_REQUEST,'parent')) ? intval($_REQUEST['parent']) : 0);
- $parent_uri = ((x($_REQUEST,'parent_uri')) ? trim($_REQUEST['parent_uri']) : '');
+ $parent_mid = ((x($_REQUEST,'parent_mid')) ? trim($_REQUEST['parent_mid']) : '');
$parent_item = null;
$parent_contact = null;
@@ -88,7 +89,7 @@ function item_post(&$a) {
$parid = 0;
$r = false;
- if($parent || $parent_uri) {
+ if($parent || $parent_mid) {
if(! x($_REQUEST,'type'))
$_REQUEST['type'] = 'net-comment';
@@ -98,17 +99,17 @@ function item_post(&$a) {
intval($parent)
);
}
- elseif($parent_uri && local_user()) {
+ elseif($parent_mid && local_user()) {
// This is coming from an API source, and we are logged in
- $r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
- dbesc($parent_uri),
+ $r = q("SELECT * FROM `item` WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
+ dbesc($parent_mid),
intval(local_user())
);
}
// if this isn't the real parent of the conversation, find it
if($r !== false && count($r)) {
$parid = $r[0]['parent'];
- $parent_uri = $r[0]['uri'];
+ $parent_mid = $r[0]['mid'];
if($r[0]['id'] != $r[0]['parent']) {
$r = q("SELECT * FROM `item` WHERE `id` = `parent` AND `parent` = %d LIMIT 1",
intval($parid)
@@ -127,19 +128,22 @@ function item_post(&$a) {
// multi-level threading - preserve the info but re-parent to our single level threading
//if(($parid) && ($parid != $parent))
- $thr_parent = $parent_uri;
+ $thr_parent = $parent_mid;
+
+// if($parent_item['contact-id'] && $uid) {
+// $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+// intval($parent_item['contact-id']),
+// intval($uid)
+// );
+// if(count($r))
+// $parent_contact = $r[0];
+// }
- if($parent_item['contact-id'] && $uid) {
- $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
- intval($parent_item['contact-id']),
- intval($uid)
- );
- if(count($r))
- $parent_contact = $r[0];
- }
}
- if($parent) logger('mod_item: item_post parent=' . $parent);
+ if($parent) {
+ logger('mod_item: item_post parent=' . $parent);
+ }
$observer = $a->get_observer();
@@ -200,6 +204,10 @@ function item_post(&$a) {
goaway($a->get_baseurl() . "/" . $return_path );
killme();
}
+
+ if($observer) {
+ logger('mod_item: post accepted from ' . $observer['xchan_name'] . ' for ' . $owner_xchan['xchan_name'], LOGGER_DEBUG);
+ }
if($orig_post) {
@@ -242,10 +250,10 @@ function item_post(&$a) {
$str_contact_deny = perms2str($_REQUEST['contact_deny']);
}
- $title = escape_tags(trim($_REQUEST['title']));
$location = notags(trim($_REQUEST['location']));
$coord = notags(trim($_REQUEST['coord']));
$verb = notags(trim($_REQUEST['verb']));
+ $title = escape_tags(trim($_REQUEST['title']));
$body = escape_tags(trim($_REQUEST['body']));
$private = (
@@ -291,13 +299,25 @@ function item_post(&$a) {
// expire_quantity, e.g. '3'
// expire_units, e.g. days, weeks, months
if(x($_REQUEST,'expire_quantity') && (x($_REQUEST,'expire_units'))) {
- $expire = datetime_convert(date_default_timezone_get(),'UTC', 'now + ' . $_REQUEST['expire_quantity'] . ' ' . $_REQUEST['expire_units']);
+ $expire = datetime_convert('UTC','UTC', 'now + ' . $_REQUEST['expire_quantity'] . ' ' . $_REQUEST['expire_units']);
if($expires <= datetime_convert())
$expires = '0000-00-00 00:00:00';
}
}
+
+ $post_type = notags(trim($_REQUEST['type']));
+
+ $content_type = notags(trim($_REQUEST['content_type']));
+ if(! $content_type)
+ $content_type = 'text/bbcode';
+
+
+// BBCODE alert: the following functions assume bbcode input
+// and will require alternatives for alternative content-types (text/html, text/markdown, text/plain, etc.)
+// we may need virtual or template classes to implement the possible alternatives
+
// Work around doubled linefeeds in Tinymce 3.5b2
// First figure out if it's a status post that would've been
// created using tinymce. Otherwise leave it alone.
@@ -307,60 +327,23 @@ function item_post(&$a) {
$body = fix_mce_lf($body);
}
+ // If we're sending a private top-level message with a single @-taggable channel as a recipient, @-tag it.
- // get contact info for poster
-
-
-/*
- $author = null;
- $self = false;
- $contact_id = 0;
-
- if((local_user()) && (local_user() == $profile_uid)) {
- $self = true;
- $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
- intval($_SESSION['uid'])
- );
- }
- elseif(remote_user()) {
- if(is_array($_SESSION['remote'])) {
- foreach($_SESSION['remote'] as $v) {
- if($v['uid'] == $profile_uid) {
- $contact_id = $v['cid'];
- break;
- }
- }
- }
- if($contact_id) {
- $r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
- intval($contact_id)
- );
- }
- }
-
- if(count($r)) {
- // FIXME
- $author = $r[0];
- $contact_id = $author['id'];
- }
-
- // get contact info for owner
-
- if($profile_uid == local_user()) {
- $contact_record = $author;
- }
- else {
- $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
+ if((! $parent) && (substr_count($str_contact_allow,'<') == 1) && ($str_group_allow == '') && ($str_contact_deny == '') && ($str_group_deny == '')) {
+ $x = q("select abook_id, abook_their_perms from abook where abook_xchan = '%s' and abook_channel = %d limit 1",
+ dbesc(str_replace(array('<','>'),array('',''),$str_contact_allow)),
intval($profile_uid)
);
- if(count($r))
- $contact_record = $r[0];
+ if($x && ($x[0]['abook_their_perms'] & PERMS_W_TAGWALL))
+ $body .= "\n\n@group+" . $x[0]['abook_id'] . "\n";
}
-*/
-
- $post_type = notags(trim($_REQUEST['type']));
+ /**
+ * fix naked links by passing through a callback to see if this is a red site
+ * (already known to us) which will get a zrl, otherwise link with url
+ */
+ $body = preg_replace_callback("/([^\]\='".'"'."]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\@\_\~\#\%\$\!\+\,]+)/ism", 'red_zrl_callback', $body);
/**
*
@@ -445,18 +428,6 @@ function item_post(&$a) {
}
}
- if(strlen($categories)) {
- $cats = explode(',',$categories);
- foreach($cats as $cat) {
- $post_tags[] = array(
- 'uid' => $profile_uid,
- 'type' => TERM_CATEGORY,
- 'otype' => TERM_OBJ_POST,
- 'term' => trim($cat),
- 'url' => ''
- );
- }
- }
// logger('post_tags: ' . print_r($post_tags,true));
@@ -489,6 +460,23 @@ function item_post(&$a) {
}
}
+// BBCODE end alert
+
+
+ if(strlen($categories)) {
+ $cats = explode(',',$categories);
+ foreach($cats as $cat) {
+ $post_tags[] = array(
+ 'uid' => $profile_uid,
+ 'type' => TERM_CATEGORY,
+ 'otype' => TERM_OBJ_POST,
+ 'term' => trim($cat),
+ 'url' => ''
+ );
+ }
+ }
+
+
$item_flags = ITEM_UNSEEN;
$item_restrict = ITEM_VISIBLE;
@@ -504,7 +492,6 @@ function item_post(&$a) {
if($webpage)
$item_restrict = $item_restrict | ITEM_WEBPAGE;
-
if(! strlen($verb))
@@ -512,20 +499,21 @@ function item_post(&$a) {
$notify_type = (($parent) ? 'comment-new' : 'wall-new' );
- $uri = item_message_id();
- $parent_uri = $uri;
+ $mid = (($message_id) ? $message_id : item_message_id());
+
+ $parent_mid = $mid;
if($parent_item)
- $parent_uri = $parent_item['uri'];
+ $parent_mid = $parent_item['mid'];
// Fallback so that we alway have a thr_parent
if(!$thr_parent)
- $thr_parent = $uri;
+ $thr_parent = $mid;
$datarray = array();
if(! $parent) {
- $datarray['parent_uri'] = $uri;
+ $datarray['parent_mid'] = $mid;
$item_flags = $item_flags | ITEM_THREAD_TOP;
}
@@ -540,8 +528,9 @@ function item_post(&$a) {
$datarray['commented'] = datetime_convert();
$datarray['received'] = datetime_convert();
$datarray['changed'] = datetime_convert();
- $datarray['uri'] = $uri;
- $datarray['parent_uri'] = $parent_uri;
+ $datarray['mid'] = $mid;
+ $datarray['parent_mid'] = $parent_mid;
+ $datarray['mimetype'] = $content_type;
$datarray['title'] = $title;
$datarray['body'] = $body;
$datarray['app'] = $app;
@@ -560,6 +549,7 @@ function item_post(&$a) {
$datarray['item_restrict'] = $item_restrict;
$datarray['item_flags'] = $item_flags;
+ $datarray['comment_policy'] = map_scope($channel['channel_w_comment']);
// preview mode - prepare the body for display and send it via json
@@ -573,6 +563,8 @@ function item_post(&$a) {
echo json_encode(array('preview' => $o));
killme();
}
+ if($orig_post)
+ $datarray['edit'] = true;
call_hooks('post_local',$datarray);
@@ -591,6 +583,22 @@ function item_post(&$a) {
}
+ if(mb_strlen($datarray['title']) > 255)
+ $datarray['title'] = mb_substr($datarray['title'],0,255);
+
+ if(array_key_exists('item_private',$datarray) && $datarray['item_private']) {
+ logger('Encrypting local storage');
+ $key = get_config('system','pubkey');
+ $datarray['item_flags'] = $datarray['item_flags'] | ITEM_OBSCURED;
+ if($datarray['title'])
+ $datarray['title'] = json_encode(aes_encapsulate($datarray['title'],$key));
+ if($datarray['body'])
+ $datarray['body'] = json_encode(aes_encapsulate($datarray['body'],$key));
+ }
+
+
+
+
if($orig_post) {
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `attach` = '%s', `edited` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
dbesc($datarray['title']),
@@ -613,6 +621,23 @@ function item_post(&$a) {
);
+ if(count($post_tags)) {
+ foreach($post_tags as $tag) {
+ if(strlen(trim($tag['term']))) {
+ q("insert into term (uid,oid,otype,type,term,url) values (%d,%d,%d,%d,'%s','%s')",
+ intval($tag['uid']),
+ intval($post_id),
+ intval($tag['otype']),
+ intval($tag['type']),
+ dbesc(trim($tag['term'])),
+ dbesc(trim($tag['url']))
+ );
+ }
+ }
+ }
+
+
+
proc_run('php', "include/notifier.php", 'edit_post', $post_id);
if((x($_REQUEST,'return')) && strlen($return_path)) {
logger('return: ' . $return_path);
@@ -659,7 +684,7 @@ function item_post(&$a) {
dbesc($parent_item['allow_gid']),
dbesc($parent_item['deny_cid']),
dbesc($parent_item['deny_gid']),
- intval($parent_item['private']),
+ intval($parent_item['item_private']),
intval($post_id)
);
@@ -669,11 +694,11 @@ function item_post(&$a) {
'from_xchan' => $datarray['author_xchan'],
'to_xchan' => $datarray['owner_xchan'],
'item' => $datarray,
- 'link' => $a->get_baseurl() . '/display/' . $datarray['uri'],
+ 'link' => $a->get_baseurl() . '/display/' . $datarray['mid'],
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $parent,
- 'parent_uri' => $parent_item['uri']
+ 'parent_mid' => $parent_item['mid']
));
}
@@ -688,7 +713,7 @@ function item_post(&$a) {
'from_xchan' => $datarray['author_xchan'],
'to_xchan' => $datarray['owner_xchan'],
'item' => $datarray,
- 'link' => $a->get_baseurl() . '/display/' . $datarray['uri'],
+ 'link' => $a->get_baseurl() . '/display/' . $datarray['mid'],
'verb' => ACTIVITY_POST,
'otype' => 'item'
));
@@ -700,10 +725,10 @@ function item_post(&$a) {
if(! $parent)
$parent = $post_id;
- $r = q("UPDATE `item` SET `parent` = %d, `parent_uri` = '%s', `changed` = '%s'
+ $r = q("UPDATE `item` SET `parent` = %d, `parent_mid` = '%s', `changed` = '%s'
WHERE `id` = %d LIMIT 1",
intval($parent),
- dbesc(($parent == $post_id) ? $uri : $parent_item['uri']),
+ dbesc(($parent == $post_id) ? $mid : $parent_item['mid']),
dbesc(datetime_convert()),
intval($post_id)
);
@@ -741,14 +766,14 @@ function item_post(&$a) {
// store page info as an alternate message_id so we can access it via
// https://sitename/page/$channelname/$pagetitle
// if no pagetitle was given or it couldn't be transliterated into a url, use the first
- // sixteen bytes of the uri - which makes the link portable and not quite as daunting
- // as the entire uri. If it were the post_id the link would be less portable.
+ // sixteen bytes of the mid - which makes the link portable and not quite as daunting
+ // as the entire mid. If it were the post_id the link would be less portable.
// We should have the ability to edit this and arrange pages into menus via the pages module
q("insert into item_id ( iid, uid, sid, service ) values ( %d, %d, '%s','%s' )",
intval($post_id),
intval($channel['channel_id']),
- dbesc(($pagetitle) ? $pagetitle : substr($uri,0,16)),
+ dbesc(($pagetitle) ? $pagetitle : substr($mid,0,16)),
dbesc('WEBPAGE')
);
}
@@ -822,18 +847,26 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
//is it a hash tag?
if(strpos($tag,'#') === 0) {
//if the tag is replaced...
- if(strpos($tag,'[url='))
+ if(strpos($tag,'[zrl='))
//...do nothing
return $replaced;
- //base tag has the tags name only
- $basetag = str_replace('_',' ',substr($tag,1));
- //create text for link
- $url = $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag);
- $newtag = '#[url=' . $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag) . ']' . $basetag . '[/url]';
- //replace tag by the link
- $body = str_replace($tag, $newtag, $body);
- $replaced = true;
-
+ if($tag == '#getzot') {
+ $basetag = 'getzot';
+ $url = 'http://getzot.com';
+ $newtag = '#[zrl=' . $url . ']' . $basetag . '[/zrl]';
+ $body = str_replace($tag,$newtag,$body);
+ $replace = true;
+ }
+ else {
+ //base tag has the tags name only
+ $basetag = str_replace('_',' ',substr($tag,1));
+ //create text for link
+ $url = $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag);
+ $newtag = '#[zrl=' . $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag) . ']' . $basetag . '[/zrl]';
+ //replace tag by the link
+ $body = str_replace($tag, $newtag, $body);
+ $replaced = true;
+ }
//is the link already in str_tags?
if(! stristr($str_tags,$newtag)) {
//append or set str_tags
@@ -846,7 +879,7 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
//is it a person tag?
if(strpos($tag,'@') === 0) {
//is it already replaced?
- if(strpos($tag,'[url='))
+ if(strpos($tag,'[zrl='))
return $replaced;
$stat = false;
//get the person's name
@@ -942,7 +975,7 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
//create profile link
$profile = str_replace(',','%2c',$profile);
$url = $profile;
- $newtag = '@[url=' . $profile . ']' . $newname . '[/url]';
+ $newtag = '@[zrl=' . $profile . ']' . $newname . '[/zrl]';
$body = str_replace('@' . $name, $newtag, $body);
//append tag to str_tags
if(! stristr($str_tags,$newtag)) {
@@ -962,8 +995,8 @@ function fix_attached_photo_permissions($uid,$xchan_hash,$body,
$str_contact_allow,$str_group_allow,$str_contact_deny,$str_group_deny) {
$match = null;
-
- if(preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) {
+ // match img and zmg image links
+ if(preg_match_all("/\[[zi]mg\](.*?)\[\/[zi]mg\]/",$body,$match)) {
$images = $match[1];
if($images) {
foreach($images as $image) {
diff --git a/mod/like.php b/mod/like.php
index 7c3df98ba..f617391a1 100755
--- a/mod/like.php
+++ b/mod/like.php
@@ -49,6 +49,7 @@ function like_content(&$a) {
$item = $r[0];
$owner_uid = $item['uid'];
+ $owner_aid = $item['aid'];
if(! perm_is_allowed($owner_uid,$observer['xchan_hash'],'post_comments')) {
notice( t('Permission denied') . EOL);
@@ -78,7 +79,7 @@ function like_content(&$a) {
dbesc($activity),
dbesc($observer['xchan_hash']),
intval($item_id),
- dbesc($item['uri'])
+ dbesc($item['mid'])
);
if($r) {
$like_item = $r[0];
@@ -97,22 +98,23 @@ function like_content(&$a) {
- $uri = item_message_id();
+ $mid = item_message_id();
$post_type = (($item['resource_type'] === 'photo') ? $t('photo') : t('status'));
- $links = array(array('rel' => 'alternate','type' => 'text/html',
- 'href' => z_root() . '/display/' . $item['uri']));
+ $links = array(array('rel' => 'alternate','type' => 'text/html', 'href' => $item['plink']));
$objtype = (($item['resource_type'] === 'photo') ? ACTIVITY_OBJ_PHOTO : ACTIVITY_OBJ_NOTE );
$body = $item['body'];
$obj = json_encode(array(
'type' => $objtype,
- 'id' => $item['uri'],
+ 'id' => $item['mid'],
'link' => $links,
'title' => $item['title'],
'content' => $item['body'],
+ 'created' => $item['created'],
+ 'edited' => $item['edited'],
'author' => array(
'name' => $item_author['xchan_name'],
'address' => $item_author['xchan_addr'],
@@ -124,6 +126,9 @@ function like_content(&$a) {
),
));
+ if(! ($item['item_flags'] & ITEM_THREAD_TOP))
+ $post_type = 'comment';
+
if($verb === 'like')
$bodyverb = t('%1$s likes %2$s\'s %3$s');
if($verb === 'dislike')
@@ -132,28 +137,29 @@ function like_content(&$a) {
if(! isset($bodyverb))
return;
- $item_flags = ITEM_ORIGIN;
+ $item_flags = ITEM_ORIGIN | ITEM_NOTSHOWN;
if($item['item_flags'] & ITEM_WALL)
$item_flags |= ITEM_WALL;
$arr = array();
- $arr['uri'] = $uri;
+ $arr['mid'] = $mid;
+ $arr['aid'] = $owner_aid;
$arr['uid'] = $owner_uid;
$arr['item_flags'] = $item_flags;
$arr['parent'] = $item['id'];
- $arr['parent_uri'] = $item['uri'];
- $arr['thr_parent'] = $item['uri'];
+ $arr['parent_mid'] = $item['mid'];
+ $arr['thr_parent'] = $item['mid'];
$arr['owner_xchan'] = $thread_owner['xchan_hash'];
$arr['author_xchan'] = $observer['xchan_hash'];
- $ulink = '[url=' . $item_owner['xchan_url'] . ']' . $item_owner['xchan_name'] . '[/url]';
- $alink = '[url=' . $observer['xchan_url'] . ']' . $observer['xchan_name'] . '[/url]';
- $plink = '[url=' . $a->get_baseurl() . '/display/' . $item['uri'] . ']' . $post_type . '[/url]';
+ $ulink = '[zrl=' . $item_author['xchan_url'] . ']' . $item_author['xchan_name'] . '[/zrl]';
+ $alink = '[zrl=' . $observer['xchan_url'] . ']' . $observer['xchan_name'] . '[/zrl]';
+ $plink = '[zrl=' . $a->get_baseurl() . '/display/' . $item['mid'] . ']' . $post_type . '[/zrl]';
- $arr['body'] = sprintf( $bodyverb, $ulink, $alink, $plink );
+ $arr['body'] = sprintf( $bodyverb, $alink, $ulink, $plink );
$arr['verb'] = $activity;
$arr['obj_type'] = $objtype;
diff --git a/mod/lockview.php b/mod/lockview.php
index 01a6997ee..7dda85623 100644
--- a/mod/lockview.php
+++ b/mod/lockview.php
@@ -49,7 +49,7 @@ function lockview_content(&$a) {
stringify_array_elms($deny_users,true);
if(count($allowed_groups)) {
- $r = q("SELECT name FROM group WHERE hash IN ( " . implode(', ', $allowed_groups) . " )");
+ $r = q("SELECT name FROM `group` WHERE hash IN ( " . implode(', ', $allowed_groups) . " )");
if($r)
foreach($r as $rr)
$l[] = '<b>' . $rr['name'] . '</b>';
@@ -61,7 +61,7 @@ function lockview_content(&$a) {
$l[] = $rr['xchan_name'];
}
if(count($deny_groups)) {
- $r = q("SELECT name FROM group WHERE hash IN ( " . implode(', ', $deny_groups) . " )");
+ $r = q("SELECT name FROM `group` WHERE hash IN ( " . implode(', ', $deny_groups) . " )");
if($r)
foreach($r as $rr)
$l[] = '<b><strike>' . $rr['name'] . '</strike></b>';
diff --git a/mod/magic.php b/mod/magic.php
index ba9e69a49..09a2e8a51 100644
--- a/mod/magic.php
+++ b/mod/magic.php
@@ -7,17 +7,18 @@ function magic_init(&$a) {
$addr = ((x($_REQUEST,'addr')) ? $_REQUEST['addr'] : '');
$hash = ((x($_REQUEST,'hash')) ? $_REQUEST['hash'] : '');
$dest = ((x($_REQUEST,'dest')) ? $_REQUEST['dest'] : '');
+ $rev = ((x($_REQUEST,'rev')) ? intval($_REQUEST['rev']) : 0);
if($hash) {
$x = q("select xchan.xchan_url, hubloc.* from xchan left join hubloc on xchan_hash = hubloc_hash
- where hubloc_hash = '%s' and (hubloc_flags & %d) limit 1",
+ where hubloc_hash = '%s' and (hubloc_flags & %d) order by hubloc_id desc limit 1",
dbesc($hash),
intval(HUBLOC_FLAGS_PRIMARY)
);
}
elseif($addr) {
$x = q("select hubloc.* from xchan left join hubloc on xchan_hash = hubloc_hash
- where xchan_addr = '%s' and (hubloc_flags & %d) limit 1",
+ where xchan_addr = '%s' and (hubloc_flags & %d) order by hubloc_id desc limit 1",
dbesc($addr),
intval(HUBLOC_FLAGS_PRIMARY)
);
@@ -25,17 +26,16 @@ function magic_init(&$a) {
else {
// See if we know anybody at the dest site that will unlock the door for us
$b = explode('/',$dest);
- if(count($b) >= 2)
- $u = $b[0] . '//' . $b[2];
-
- $x = q("select xchan.xchan_url, hubloc.* from xchan left join hubloc on xchan_hash = hubloc_hash
- where hubloc_url = '%s' limit 1",
- dbesc($u)
- );
+ if(count($b) >= 2) {
+ $u = $b[0] . '//' . $b[2];
+ $x = q("select xchan.xchan_url, hubloc.* from xchan left join hubloc on xchan_hash = hubloc_hash
+ where hubloc_url = '%s' order by hubloc_id desc limit 1",
+ dbesc($u)
+ );
+ }
}
-
if(! $x) {
// Finger them if they've never been seen here before
@@ -47,7 +47,7 @@ function magic_init(&$a) {
if($j)
import_xchan($j);
$x = q("select hubloc.* from xchan left join hubloc on xchan_hash = hubloc_hash
- where xchan_addr = '%s' and (hubloc_flags & %d) limit 1",
+ where xchan_addr = '%s' and (hubloc_flags & %d) order by hubloc_id desc limit 1",
dbesc($addr),
intval(HUBLOC_FLAGS_PRIMARY)
);
@@ -56,10 +56,30 @@ function magic_init(&$a) {
}
if(! $x) {
- notice( t('Channel not found.') . EOL);
- return;
+ if($rev)
+ goaway($dest);
+ else {
+ logger('mod_magic: channel not found.' . print_r($_REQUEST,true));
+ notice( t('Channel not found.') . EOL);
+ return;
+ }
}
+ // This is ready-made for a plugin that provides a blacklist or "ask me" before blindly authenticating.
+ // By default, we'll proceed without asking.
+
+ $arr = array(
+ 'channel_id' => local_user(),
+ 'xchan' => $x[0],
+ 'destination' => $dest,
+ 'proceed' => true
+ );
+
+ call_hooks('magic_auth',$arr);
+ $dest = $arr['destination'];
+ if(! $arr['proceed'])
+ goaway($dest);
+
if($x[0]['hubloc_url'] === z_root()) {
$webbie = substr($x[0]['hubloc_addr'],0,strpos('@',$x[0]['hubloc_addr']));
switch($dest) {
@@ -105,7 +125,7 @@ function magic_init(&$a) {
goaway($x[0]['hubloc_callback'] . '/' . substr($x[0]['hubloc_addr'],0,strpos($x[0]['hubloc_addr'],'@'))
. '/?f=&auth=' . $channel['channel_address'] . '@' . $a->get_hostname()
- . '&sec=' . $token . '&dest=' . $dest . '&version=' . ZOT_REVISION);
+ . '&sec=' . $token . '&dest=' . urlencode($dest) . '&version=' . ZOT_REVISION);
}
if(strpos($dest,'/'))
diff --git a/mod/message.php b/mod/message.php
index 98a1067ed..9c6cf75a6 100644
--- a/mod/message.php
+++ b/mod/message.php
@@ -9,13 +9,20 @@ require_once('include/Contact.php');
function message_aside(&$a) {
- $a->set_widget('newmessage',replace_macros(get_markup_template('message_side.tpl'), array(
+ $a->set_widget('msgaside',replace_macros(get_markup_template('message_side.tpl'), array(
'$tabs'=> array(),
+
+ '$check'=>array(
+ 'label' => t('Check Mail'),
+ 'url' => $a->get_baseurl(true) . '/message',
+ 'sel' => (argv(1) == ''),
+ ),
'$new'=>array(
'label' => t('New Message'),
'url' => $a->get_baseurl(true) . '/message/new',
'sel'=> (argv(1) == 'new'),
)
+
)));
}
@@ -41,7 +48,7 @@ function message_post(&$a) {
$ret = zot_finger($rstr,$channel);
- if(! $ret) {
+ if(! $ret['success']) {
notice( t('Unable to lookup recipient.') . EOL);
return;
}
@@ -160,9 +167,10 @@ function item_redir_and_replace_images($body, $images, $cid) {
$newbody = '';
for($i = 0; $i < count($images); $i++) {
- $search = '/\[url\=(.*?)\]\[!#saved_image' . $i . '#!\]\[\/url\]' . '/is';
- $replace = '[url=' . z_path() . '/redir/' . $cid
- . '?f=1&url=' . '$1' . '][!#saved_image' . $i . '#!][/url]' ;
+ $search = '/\[zrl\=(.*?)\]\[!#saved_image' . $i . '#!\]\[\/zrl\]' . '/is';
+//FIXME
+ $replace = '[zrl=' . z_path() . '/redir/' . $cid
+ . '?f=1&url=' . '$1' . '][!#saved_image' . $i . '#!][/zrl]' ;
$img_end = strpos($origbody, '[!#saved_image' . $i . '#!][/url]') + strlen('[!#saved_image' . $i . '#!][/url]');
$process_part = substr($origbody, 0, $img_end);
@@ -198,6 +206,7 @@ function message_content(&$a) {
}
$channel = $a->get_channel();
+ head_set_icon($channel['xchan_photo_s']);
$tpl = get_markup_template('mail_head.tpl');
$header = replace_macros($tpl, array(
@@ -392,7 +401,7 @@ function message_content(&$a) {
// FIXME - move this HTML to template
$select = $message[$recp]['xchan_name'] . '<input type="hidden" name="messageto" value="' . $message[$recp]['xchan_hash'] . '" />';
- $parent = '<input type="hidden" name="replyto" value="' . $message['parent_uri'] . '" />';
+ $parent = '<input type="hidden" name="replyto" value="' . $message['parent_mid'] . '" />';
$tpl = get_markup_template('mail_display.tpl');
$o = replace_macros($tpl, array(
diff --git a/mod/mood.php b/mod/mood.php
index 98064beab..7b6a0c392 100755
--- a/mod/mood.php
+++ b/mod/mood.php
@@ -30,15 +30,15 @@ function mood_init(&$a) {
if($parent) {
- $r = q("select uri, owner_xchan, private, allow_cid, allow_gid, deny_cid, deny_gid
+ $r = q("select mid, owner_xchan, private, allow_cid, allow_gid, deny_cid, deny_gid
from item where id = %d and parent = %d and uid = %d limit 1",
intval($parent),
intval($parent),
intval($uid)
);
if(count($r)) {
- $parent_uri = $r[0]['uri'];
- $private = $r[0]['private'];
+ $parent_mid = $r[0]['mid'];
+ $private = $r[0]['item_private'];
$allow_cid = $r[0]['allow_cid'];
$allow_gid = $r[0]['allow_gid'];
$deny_cid = $r[0]['deny_cid'];
@@ -58,11 +58,11 @@ function mood_init(&$a) {
$poster = $a->get_observer();
- $uri = item_message_id();
+ $mid = item_message_id();
- $action = sprintf( t('%1$s is currently %2$s'), '[url=' . $poster['xchan_url'] . ']' . $poster['xchan_name'] . '[/url]' , $verbs[$verb]);
+ $action = sprintf( t('%1$s is currently %2$s'), '[zrl=' . $poster['xchan_url'] . ']' . $poster['xchan_name'] . '[/zrl]' , $verbs[$verb]);
$item_flags = ITEM_WALL|ITEM_ORIGIN|ITEM_UNSEEN;
- if(! $parent_uri)
+ if(! $parent_mid)
$item_flags |= ITEM_THREAD_TOP;
@@ -70,16 +70,17 @@ function mood_init(&$a) {
$arr['aid'] = get_account_id();
$arr['uid'] = $uid;
- $arr['uri'] = $uri;
- $arr['parent_uri'] = (($parent_uri) ? $parent_uri : $uri);
+ $arr['mid'] = $mid;
+ $arr['parent_mid'] = (($parent_mid) ? $parent_mid : $mid);
$arr['item_flags'] = $item_flags;
$arr['author_xchan'] = $poster['xchan_hash'];
- $arr['owner_xchan'] = (($parent_uri) ? $r[0]['owner_xchan'] : $poster['xchan_hash']);
+ $arr['owner_xchan'] = (($parent_mid) ? $r[0]['owner_xchan'] : $poster['xchan_hash']);
$arr['title'] = '';
$arr['allow_cid'] = $allow_cid;
$arr['allow_gid'] = $allow_gid;
$arr['deny_cid'] = $deny_cid;
$arr['deny_gid'] = $deny_gid;
+ $arr['item_private'] = $private;
$arr['verb'] = $activity;
$arr['body'] = $action;
diff --git a/mod/network.php b/mod/network.php
index dae9fa6be..413990ce2 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -7,6 +7,10 @@ function network_init(&$a) {
notice( t('Permission denied.') . EOL);
return;
}
+
+ $channel = $a->get_channel();
+ $a->profile_uid = local_user();
+ head_set_icon($channel['xchan_photo_s']);
$is_a_date_query = false;
@@ -369,7 +373,7 @@ function network_content(&$a, $update = 0, $load = false) {
if(feature_enabled(local_user(),'affinity')) {
$tpl = get_markup_template('main_slider.tpl');
- $o .= replace_macros($tpl,array(
+ $x = replace_macros($tpl,array(
'$val' => intval($cmin) . ';' . intval($cmax),
'$refresh' => t('Refresh'),
'$me' => t('Me'),
@@ -380,6 +384,9 @@ function network_content(&$a, $update = 0, $load = false) {
'$acquaintances' => t('Acquaintances'),
'$world' => t('Everybody')
));
+ $arr = array('html' => $x);
+ call_hooks('main_slider',$arr);
+ $o .= $arr['html'];
}
$arr = array('tabs' => $tabs);
@@ -400,7 +407,7 @@ function network_content(&$a, $update = 0, $load = false) {
$x = array(
'is_owner' => true,
- 'allow_location' => $a->user['allow_location'], // FIXME
+ 'allow_location' => ((intval(get_pconfig($channel['channel_id'],'system','use_browser_location'))) ? '1' : ''),
'default_location' => $channel['channel_location'],
'nickname' => $channel['channel_address'],
'lockstate' => (($group || $cid || $channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
@@ -430,11 +437,11 @@ function network_content(&$a, $update = 0, $load = false) {
$sql_extra = " AND `item`.`parent` IN ( SELECT `parent` FROM `item` WHERE (item_flags & " . intval(ITEM_THREAD_TOP) . ") $sql_options ) ";
if($group) {
- $r = q("SELECT `name`, `id` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
- intval($group),
- intval($_SESSION['uid'])
- );
- if(! count($r)) {
+ $r = q("SELECT * FROM `group` WHERE id = %d AND uid = %d LIMIT 1",
+ intval($group),
+ intval(local_user())
+ );
+ if(! $r) {
if($update)
killme();
notice( t('No such group') . EOL );
@@ -442,33 +449,33 @@ function network_content(&$a, $update = 0, $load = false) {
// NOTREACHED
}
- $contacts = expand_groups(array($group));
- if((is_array($contacts)) && count($contacts)) {
- $contact_str = implode(',',$contacts);
- }
- else {
- $contact_str = ' 0 ';
- info( t('Group is empty'));
- }
+ $contacts = expand_groups(array($arr['group']));
+ if((is_array($contacts)) && count($contacts)) {
+ $contact_str = implode(',',$contacts);
+ }
+ else {
+ $contact_str = ' 0 ';
+ info( t('Group is empty'));
+ }
+
+ $sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND ( author_xchan IN ( $contact_str ) OR owner_xchan in ( $contact_str) or allow_gid like '" . protect_sprintf('%<' . dbesc($r[0]['hash']) . '>%') . "' ) and item_restrict = 0 ) ";
+
+ }
- $sql_extra = " AND `item`.`parent` IN ( SELECT DISTINCT(`parent`) FROM `item` WHERE 1 $sql_options AND ( `contact-id` IN ( $contact_str ) OR `allow_gid` like '" . protect_sprintf('%<' . intval($group) . '>%') . "' ) and deleted = 0 ) ";
- $o = '<h2>' . t('Group: ') . $r[0]['name'] . '</h2>' . $o;
- }
elseif($cid) {
- $r = q("SELECT `id`,`name`,`network`,`writable`,`nurl` FROM `contact` WHERE `id` = %d
- AND `blocked` = 0 AND `pending` = 0 LIMIT 1",
- intval($cid)
- );
- if(count($r)) {
- $sql_extra = " AND `item`.`parent` IN ( SELECT DISTINCT(`parent`) FROM `item` WHERE 1 $sql_options AND `contact-id` = " . intval($cid) . " and deleted = 0 ) ";
+ $r = q("SELECT * from abook where abook_id = %d and abook_channel = %d and not ( abook_flags & " . intval(ABOOK_FLAG_BLOCKED) . ") limit 1",
+ intval($cid),
+ intval(local_user())
+ );
+ if($r) {
+ $sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND uid = " . intval(local_user()) . " AND ( author_xchan = '" . dbesc($r[0]['abook_xchan']) . "' or owner_xchan = '" . dbesc($r[0]['abook_xchan']) . "' ) and item_restrict = 0 ) ";
$o = '<h2>' . t('Contact: ') . $r[0]['name'] . '</h2>' . $o;
- }
- else {
+ }
+ else {
notice( t('Invalid contact.') . EOL);
goaway($a->get_baseurl(true) . '/network');
- // NOTREACHED
- }
+ }
}
@@ -515,7 +522,7 @@ function network_content(&$a, $update = 0, $load = false) {
'$file' => $file,
'$cats' => '',
'$dend' => $datequery,
- '$uri' => '',
+ '$mid' => '',
'$dbegin' => $datequery2
));
}
@@ -713,6 +720,8 @@ function network_content(&$a, $update = 0, $load = false) {
$o .= alt_pager($a,count($items));
if($load) {
+ logger('mod_network: load: ' . count($items) . ' items', LOGGER_DATA);
+
profiler($start,$first,'network parents');
profiler($first,$second,'network children');
profiler($second,$third,'network authors');
diff --git a/mod/nogroup.php b/mod/nogroup.php
index bd1ec82ed..31ccaadbf 100644
--- a/mod/nogroup.php
+++ b/mod/nogroup.php
@@ -48,7 +48,7 @@ function nogroup_content(&$a) {
'username' => $rr['name'],
'sparkle' => $sparkle,
'itemurl' => $rr['url'],
- 'url' => $url,
+ 'link' => $url,
'network' => network_to_name($rr['network']),
);
}
diff --git a/mod/notifications.php b/mod/notifications.php
index 7d861037c..397ed272b 100644
--- a/mod/notifications.php
+++ b/mod/notifications.php
@@ -70,30 +70,31 @@ function notifications_content(&$a) {
nav_set_selected('notifications');
$o = '';
+
$tabs = array(
array(
'label' => t('System'),
'url'=>$a->get_baseurl(true) . '/notifications/system',
'sel'=> (($a->argv[1] == 'system') ? 'active' : ''),
),
- array(
- 'label' => t('Network'),
- 'url'=>$a->get_baseurl(true) . '/notifications/network',
- 'sel'=> (($a->argv[1] == 'network') ? 'active' : ''),
- ),
+// array(
+// 'label' => t('Network'),
+// 'url'=>$a->get_baseurl(true) . '/notifications/network',
+// 'sel'=> (($a->argv[1] == 'network') ? 'active' : ''),
+// ),
array(
'label' => t('Personal'),
'url'=>$a->get_baseurl(true) . '/notifications/personal',
'sel'=> (($a->argv[1] == 'personal') ? 'active' : ''),
),
- array(
- 'label' => t('Home'),
- 'url' => $a->get_baseurl(true) . '/notifications/home',
- 'sel'=> (($a->argv[1] == 'home') ? 'active' : ''),
- ),
+// array(
+// 'label' => t('Home'),
+// 'url' => $a->get_baseurl(true) . '/notifications/home',
+// 'sel'=> (($a->argv[1] == 'home') ? 'active' : ''),
+// ),
array(
'label' => t('Introductions'),
- 'url' => $a->get_baseurl(true) . '/notifications/intros',
+ 'url' => $a->get_baseurl(true) . '/connections/pending',
'sel'=> (($a->argv[1] == 'intros') ? 'active' : ''),
),
array(
@@ -105,6 +106,7 @@ function notifications_content(&$a) {
$o = "";
+//Disabled
if( (($a->argc > 1) && ($a->argv[1] == 'intros')) || (($a->argc == 1))) {
nav_set_selected('introductions');
@@ -221,7 +223,9 @@ function notifications_content(&$a) {
$o .= paginate($a);
return $o;
- } else if (($a->argc > 1) && ($a->argv[1] == 'network')) {
+ }
+
+ elseif (($a->argc > 1) && ($a->argv[1] == 'network')) {
$notif_tpl = get_markup_template('notifications.tpl');
@@ -428,11 +432,7 @@ function notifications_content(&$a) {
'$tabs' => $tabs,
'$notif_content' => $notif_content,
));
-
-
-
-
-
+
} else if (($a->argc > 1) && ($a->argv[1] == 'home')) {
diff --git a/mod/oembed.php b/mod/oembed.php
index 720a6d72b..adda63cf2 100644
--- a/mod/oembed.php
+++ b/mod/oembed.php
@@ -19,7 +19,7 @@ function oembed_init(&$a){
else {
echo "<html><body>";
- $url = base64url_decode($argv(1));
+ $url = base64url_decode(argv(1));
$j = oembed_fetch_url($url);
echo $j->html;
// logger('mod-oembed ' . $j->html, LOGGER_ALL);
diff --git a/mod/oexchange.php b/mod/oexchange.php
index 791a493ff..63b48751c 100644
--- a/mod/oexchange.php
+++ b/mod/oexchange.php
@@ -32,18 +32,19 @@ function oexchange_content(&$a) {
$tags = (((x($_REQUEST,'tags')) && strlen($_REQUEST['tags']))
? '&tags=' . urlencode(notags(trim($_REQUEST['tags']))) : '');
- $s = fetch_url($a->get_baseurl() . '/parse_url?f=&url=' . $url . $title . $description . $tags);
+ $ret = z_fetch_url($a->get_baseurl() . '/parse_url?f=&url=' . $url . $title . $description . $tags);
+
+ if($ret['success'])
+ $s = $ret['body'];
if(! strlen($s))
return;
- require_once('include/html2bbcode.php');
-
$post = array();
$post['profile_uid'] = local_user();
$post['return'] = '/oexchange/done' ;
- $post['body'] = html2bbcode($s);
+ $post['body'] = $s;
$post['type'] = 'wall';
$_REQUEST = $post;
diff --git a/mod/page.php b/mod/page.php
index 62f9d9204..51b292f37 100644
--- a/mod/page.php
+++ b/mod/page.php
@@ -2,9 +2,37 @@
require_once('include/items.php');
require_once('include/conversation.php');
+function page_init(&$a) {
+ // We need this to make sure the channel theme is always loaded.
+ $which = argv(1);
+ $profile = 0;
+ $channel = $a->get_channel();
+
+ if((local_user()) && (argc() > 2) && (argv(2) === 'view')) {
+ $which = $channel['channel_address'];
+ $profile = argv(1);
+ }
+
+ profile_load($a,$which,$profile);
+
+}
+
+
+
function page_content(&$a) {
+ $observer = $a->get_observer();
+ $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
+
+ $perms = get_all_perms($a->profile['profile_uid'],$ob_hash);
+
+ if(! $perms['view_pages']) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+
+
if(argc() < 3) {
notice( t('Invalid item.') . EOL);
return;
@@ -41,4 +69,4 @@ function page_content(&$a) {
$o .= prepare_page($r[0]);
return $o;
-} \ No newline at end of file
+}
diff --git a/mod/parse_url.php b/mod/parse_url.php
index 600d3dc8b..c206c24ec 100644
--- a/mod/parse_url.php
+++ b/mod/parse_url.php
@@ -55,34 +55,18 @@ function completeurl($url, $scheme) {
function parseurl_getsiteinfo($url) {
$siteinfo = array();
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_HEADER, 1);
- curl_setopt($ch, CURLOPT_NOBODY, 0);
- curl_setopt($ch, CURLOPT_TIMEOUT, 3);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch,CURLOPT_USERAGENT,'Opera/9.64(Windows NT 5.1; U; de) Presto/2.1.1');
-
- $header = curl_exec($ch);
- curl_close($ch);
-
- // Fetch the first mentioned charset. Can be in body or header
- if (preg_match('/charset=(.*?)['."'".'"\s\n]/', $header, $matches))
- $charset = trim(array_pop($matches));
- else
- $charset = "utf-8";
- $pos = strpos($header, "\r\n\r\n");
+ $result = z_fetch_url($url,false,0,array('novalidate' => true));
+ if(! $result['success'])
+ return $siteinfo;
- if ($pos)
- $body = trim(substr($header, $pos));
- else
- $body = $header;
+ $header = $result['header'];
+ $body = $result['body'];
- $body = mb_convert_encoding($body, "UTF-8", $charset);
- $body = mb_convert_encoding($body, 'HTML-ENTITIES', "UTF-8");
+ $body = mb_convert_encoding($body, 'UTF-8', 'UTF-8');
+ $body = mb_convert_encoding($body, 'HTML-ENTITIES', "UTF-8");
- $doc = new DOMDocument();
+ $doc = new DOMDocument();
@$doc->loadHTML($body);
deletenode($doc, 'style');
@@ -115,6 +99,9 @@ function parseurl_getsiteinfo($url) {
$attr["content"] = html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8");
switch (strtolower($attr["name"])) {
+ case 'generator':
+ $siteinfo['generator'] = $attr['content'];
+ break;
case "fulltitle":
$siteinfo["title"] = $attr["content"];
break;
@@ -245,6 +232,10 @@ function parse_url_content(&$a) {
else
$url = trim($_GET['url']);
+ if((substr($url,0,1) != '/') && (substr($url,0,4) != 'http'))
+ $url = 'http://' . $url;
+
+
if($_GET['title'])
$title = strip_tags(trim($_GET['title']));
@@ -290,6 +281,11 @@ function parse_url_content(&$a) {
$siteinfo = parseurl_getsiteinfo($url);
+ // If this is a Red site, use zrl rather than url so they get zids sent to them by default
+
+ if( x($siteinfo,'generator') && (strpos($siteinfo['generator'],RED_PLATFORM . ' ') === 0))
+ $template = str_replace('url','zrl',$template);
+
if($siteinfo["title"] == "") {
echo sprintf($template,$url,$url,'') . $str_tags;
killme();
diff --git a/mod/photo.php b/mod/photo.php
index aff4dc895..fffc15e53 100644
--- a/mod/photo.php
+++ b/mod/photo.php
@@ -1,7 +1,7 @@
<?php
require_once('include/security.php');
-require_once('include/Photo.php');
+require_once('include/photo/photo_driver.php');
function photo_init(&$a) {
@@ -118,7 +118,10 @@ function photo_init(&$a) {
intval($resolution)
);
if($r) {
- $data = file_get_contents('images/nosign.jpg');
+ logger('mod_photo: forbidden. ' . $a->query_string());
+ $observer = $a->get_observer();
+ logger('mod_photo: observer = ' . (($observer) ? $observer['xchan_addr'] : '(not authenticated)'));
+ $data = file_get_contents('images/nosign.png');
$mimetype = 'image/jpeg';
$prvcachecontrol = true;
}
@@ -151,7 +154,7 @@ function photo_init(&$a) {
}
if(isset($res) && intval($res) && $res < 500) {
- $ph = new Photo($data, $mimetype);
+ $ph = photo_factory($data, $mimetype);
if($ph->is_valid()) {
$ph->scaleImageSquare($res);
$data = $ph->imageString();
diff --git a/mod/photos.php b/mod/photos.php
index 90b2990aa..789e26949 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -1,5 +1,5 @@
<?php
-require_once('include/Photo.php');
+require_once('include/photo/photo_driver.php');
require_once('include/photos.php');
require_once('include/items.php');
require_once('include/acl_selectors.php');
@@ -59,7 +59,9 @@ function photos_post(&$a) {
logger('mod_photos: REQUEST ' . print_r($_REQUEST,true), LOGGER_DATA);
logger('mod_photos: FILES ' . print_r($_FILES,true), LOGGER_DATA);
- $phototypes = Photo::supportedTypes();
+ $ph = photo_factory('');
+
+ $phototypes = $ph->supportedTypes();
$can_post = false;
@@ -187,10 +189,10 @@ function photos_post(&$a) {
intval($page_owner_uid)
);
if(count($i)) {
- q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent_uri` = '%s' AND `uid` = %d",
+ q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent_mid` = '%s' AND `uid` = %d",
dbesc(datetime_convert()),
dbesc(datetime_convert()),
- dbesc($i[0]['uri']),
+ dbesc($i[0]['mid']),
intval($page_owner_uid)
);
@@ -233,7 +235,7 @@ function photos_post(&$a) {
intval($page_owner_uid)
);
if(count($r)) {
- $ph = new Photo($r[0]['data'], $r[0]['type']);
+ $ph = photo_factory($r[0]['data'], $r[0]['type']);
if($ph->is_valid()) {
$rotate_deg = ( (intval($_POST['rotate']) == 1) ? 270 : 90 );
$ph->rotate($rotate_deg);
@@ -280,9 +282,11 @@ function photos_post(&$a) {
}
}
- $p = q("SELECT * FROM `photo` WHERE `resource_id` = '%s' AND `uid` = %d ORDER BY `scale` DESC",
+ $p = q("SELECT * FROM `photo` WHERE `resource_id` = '%s' AND `uid` = %d and ( photo_flags = %d or photo_flags = %d ) ORDER BY `scale` DESC",
dbesc($resource_id),
- intval($page_owner_uid)
+ intval($page_owner_uid),
+ intval(PHOTO_NORMAL),
+ intval(PHOTO_PROFILE)
);
if(count($p)) {
$ext = $phototypes[$p[0]['type']];
@@ -413,13 +417,13 @@ function photos_post(&$a) {
}
if($profile) {
if(substr($notify,0,4) === 'cid:')
- $taginfo[] = array($newname,$profile,$notify,$r[0],'@[url=' . str_replace(',','%2c',$profile) . ']' . $newname . '[/url]');
+ $taginfo[] = array($newname,$profile,$notify,$r[0],'@[zrl=' . str_replace(',','%2c',$profile) . ']' . $newname . '[/zrl]');
else
$taginfo[] = array($newname,$profile,$notify,null,$str_tags .= '@[url=' . $profile . ']' . $newname . '[/url]');
if(strlen($str_tags))
$str_tags .= ',';
$profile = str_replace(',','%2c',$profile);
- $str_tags .= '@[url=' . $profile . ']' . $newname . '[/url]';
+ $str_tags .= '@[zrl=' . $profile . ']' . $newname . '[/zrl]';
}
}
}
@@ -459,13 +463,13 @@ function photos_post(&$a) {
if(count($taginfo)) {
foreach($taginfo as $tagged) {
- $uri = item_message_id();
+ $mid = item_message_id();
$arr = array();
$arr['uid'] = $page_owner_uid;
- $arr['uri'] = $uri;
- $arr['parent_uri'] = $uri;
+ $arr['mid'] = $mid;
+ $arr['parent_mid'] = $mid;
$arr['type'] = 'activity';
$arr['wall'] = 1;
$arr['contact-id'] = $owner_record['id'];
@@ -487,9 +491,9 @@ function photos_post(&$a) {
$arr['tag'] = $tagged[4];
$arr['inform'] = $tagged[2];
$arr['origin'] = 1;
- $arr['body'] = sprintf( t('%1$s was tagged in %2$s by %3$s'), '[url=' . $tagged[1] . ']' . $tagged[0] . '[/url]', '[url=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . t('a photo') . '[/url]', '[url=' . $owner_record['url'] . ']' . $owner_record['name'] . '[/url]') ;
+ $arr['body'] = sprintf( t('%1$s was tagged in %2$s by %3$s'), '[zrl=' . $tagged[1] . ']' . $tagged[0] . '[/zrl]', '[zrl=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . t('a photo') . '[/zrl]', '[zrl=' . $owner_record['url'] . ']' . $owner_record['name'] . '[/zrl]') ;
- $arr['body'] .= "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource_id'] . ']' . '[img]' . $a->get_baseurl() . "/photo/" . $p[0]['resource_id'] . '-' . $best . '.' . $ext . '[/img][/url]' . "\n" ;
+ $arr['body'] .= "\n\n" . '[zrl=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource_id'] . ']' . '[zmg]' . $a->get_baseurl() . "/photo/" . $p[0]['resource_id'] . '-' . $best . '.' . $ext . '[/zmg][/zrl]' . "\n" ;
$arr['object'] = '<object><type>' . ACTIVITY_OBJ_PERSON . '</type><title>' . $tagged[0] . '</title><id>' . $tagged[1] . '/' . $tagged[0] . '</id>';
$arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $tagged[1] . '" />' . "\n");
@@ -565,7 +569,8 @@ function photos_content(&$a) {
return;
}
- $phototypes = Photo::supportedTypes();
+ $ph = photo_factory('');
+ $phototypes = $ph->supportedTypes();
$_SESSION['photo_return'] = $a->cmd;
@@ -604,57 +609,8 @@ function photos_content(&$a) {
if((local_user()) && (local_user() == $owner_uid))
$can_post = true;
- else {
- if($community_page && remote_user()) {
- if(is_array($_SESSION['remote'])) {
- foreach($_SESSION['remote'] as $v) {
- if($v['uid'] == $owner_uid) {
- $contact_id = $v['cid'];
- break;
- }
- }
- }
- if($contact_id) {
-
- $r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
- intval($contact_id),
- intval($owner_uid)
- );
- if(count($r)) {
- $can_post = true;
- $contact = $r[0];
- $remote_contact = true;
- $visitor = $cid;
- }
- }
- }
- }
-
- // perhaps they're visiting - but not a community page, so they wouldn't have write access
-
- if(remote_user() && (! $visitor)) {
- $contact_id = 0;
- if(is_array($_SESSION['remote'])) {
- foreach($_SESSION['remote'] as $v) {
- if($v['uid'] == $owner_uid) {
- $contact_id = $v['cid'];
- break;
- }
- }
- }
- if($contact_id) {
- $groups = init_groups_visitor($contact_id);
- $r = q("SELECT * FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
- intval($contact_id),
- intval($owner_uid)
- );
- if(count($r)) {
- $contact = $r[0];
- $remote_contact = true;
- }
- }
- }
+// FIXME
if(! $remote_contact) {
if(local_user()) {
$contact_id = $_SESSION['cid'];
@@ -679,6 +635,9 @@ function photos_content(&$a) {
// dispatch request
//
+ /**
+ * Display upload form
+ */
if($datatype === 'upload') {
if(! ($can_post)) {
@@ -686,20 +645,16 @@ function photos_content(&$a) {
return;
}
-
$selname = (($datum) ? hex2bin($datum) : '');
-
-
$albumselect = '<select id="photos-upload-album-select" name="album" size="4">';
-
$albumselect .= '<option value="" ' . ((! $selname) ? ' selected="selected" ' : '') . '>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>';
if(count($a->data['albums'])) {
foreach($a->data['albums'] as $album) {
- if(($album['album'] === '') || ($album['album'] === 'Contact Photos') || ($album['album'] === t('Contact Photos')))
+ if($album['text'] === '')
continue;
- $selected = (($selname === $album['album']) ? ' selected="selected" ' : '');
- $albumselect .= '<option value="' . $album['album'] . '"' . $selected . '>' . $album['album'] . '</option>';
+ $selected = (($selname === $album['text']) ? ' selected="selected" ' : '');
+ $albumselect .= '<option value="' . $album['text'] . '"' . $selected . '>' . $album['text'] . '</option>';
}
}
@@ -719,6 +674,7 @@ function photos_content(&$a) {
$default_upload = '<input id="photos-upload-choose" type="file" name="userfile" /> <div class="photos-upload-submit-wrapper" >
<input type="submit" name="submit" value="' . t('Submit') . '" id="photos-upload-submit" /> </div>';
+ /* Show space usage */
$r = q("select sum(size) as total from photo where uid = %d and scale = 0 ",
intval($a->data['channel']['channel_id'])
@@ -733,15 +689,8 @@ function photos_content(&$a) {
$usage_message = sprintf( t('You have used %1$.2f Mbytes of photo storage.'), $r[0]['total'] / 1024000 );
}
-
- if($a->get_template_engine() === 'internal') {
- $albumselect_e = template_escape($albumselect);
- $aclselect_e = (($visitor) ? '' : template_escape(populate_acl($a->user, $celeb)));
- }
- else {
- $albumselect_e = $albumselect;
- $aclselect_e = (($visitor) ? '' : populate_acl($a->user, $celeb));
- }
+ $albumselect_e = $albumselect;
+ $aclselect_e = (($visitor) ? '' : populate_acl($a->user, $celeb));
$tpl = get_markup_template('photos_upload.tpl');
$o .= replace_macros($tpl,array(
@@ -764,18 +713,24 @@ function photos_content(&$a) {
return $o;
}
+ /*
+ * Display a single photo album
+ */
+
if($datatype === 'album') {
$album = hex2bin($datum);
$r = q("SELECT `resource_id`, max(`scale`) AS `scale` FROM `photo` WHERE `uid` = %d AND `album` = '%s'
- AND `scale` <= 4 $sql_extra GROUP BY `resource_id`",
+ AND `scale` <= 4 and (photo_flags = %d or photo_flags = %d ) $sql_extra GROUP BY `resource_id`",
intval($owner_uid),
- dbesc($album)
+ dbesc($album),
+ intval(PHOTO_NORMAL),
+ intval(PHOTO_PROFILE)
);
if(count($r)) {
$a->set_pager_total(count($r));
- $a->set_pager_itemspage(20);
+ $a->set_pager_itemspage(40);
}
if($_GET['order'] === 'posted')
@@ -784,9 +739,11 @@ function photos_content(&$a) {
$order = 'DESC';
$r = q("SELECT `resource_id`, `id`, `filename`, type, max(`scale`) AS `scale`, `desc` FROM `photo` WHERE `uid` = %d AND `album` = '%s'
- AND `scale` <= 4 $sql_extra GROUP BY `resource_id` ORDER BY `created` $order LIMIT %d , %d",
+ AND `scale` <= 4 and (photo_flags = %d or photo_flags = %d ) $sql_extra GROUP BY `resource_id` ORDER BY `created` $order LIMIT %d , %d",
intval($owner_uid),
dbesc($album),
+ intvaL(PHOTO_NORMAL),
+ intval(PHOTO_PROFILE),
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
@@ -835,11 +792,11 @@ function photos_content(&$a) {
$o .= '<div class="photos-upload-link" ><a href="' . $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/upload/' . bin2hex($album) . '" >' . t('Upload New Photos') . '</a></div>';
}
-
$tpl = get_markup_template('photo_album.tpl');
if(count($r))
$twist = 'rotright';
foreach($r as $rr) {
+
if($twist == 'rotright')
$twist = 'rotleft';
else
@@ -856,15 +813,26 @@ function photos_content(&$a) {
$desc_e = $rr['desc'];
}
+
+ if(feature_enabled($a->data['channel']['channel_id'],'prettyphoto')){
+ $imagelink = ($a->get_baseurl() . '/photo/' . $rr['resource_id'] . '.' . $ext );
+ $rel=("prettyPhoto[pp_gal]");
+ }
+ else {
+ $imagelink = ($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/image/' . $rr['resource_id']
+ . (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''));
+ $rel=("photo");
+ }
+
$o .= replace_macros($tpl,array(
'$id' => $rr['id'],
'$twist' => ' ' . $twist . rand(2,4),
- '$photolink' => $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/image/' . $rr['resource_id']
- . (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''),
+ '$photolink' => $imagelink,
+ '$rel' => $rel,
'$phototitle' => t('View Photo'),
'$imgsrc' => $a->get_baseurl() . '/photo/' . $rr['resource_id'] . '-' . $rr['scale'] . '.' .$ext,
'$imgalt' => $imgalt_e,
- '$desc'=> $desc_e
+ '$desc'=> $desc_e,
));
}
@@ -875,27 +843,36 @@ function photos_content(&$a) {
}
+ /**
+ * Display one photo
+ */
if($datatype === 'image') {
-
-
- //$o = '';
// fetch image, item containing image, then comments
$ph = q("SELECT * FROM `photo` WHERE `uid` = %d AND `resource_id` = '%s'
- $sql_extra ORDER BY `scale` ASC ",
+ and (photo_flags = %d or photo_flags = %d ) $sql_extra ORDER BY `scale` ASC ",
intval($owner_uid),
- dbesc($datum)
+ dbesc($datum),
+ intval(PHOTO_NORMAL),
+ intval(PHOTO_PROFILE)
+
);
- if(! count($ph)) {
+ if(! $ph) {
+
+ /* Check again - this time without specifying permissions */
+
$ph = q("SELECT `id` FROM `photo` WHERE `uid` = %d AND `resource_id` = '%s'
+ and ( photo_flags = %d or photo_flags = %d )
LIMIT 1",
intval($owner_uid),
- dbesc($datum)
+ dbesc($datum),
+ intval(PHOTO_NORMAL),
+ intval(PHOTO_PROFILE)
);
- if(count($ph))
+ if($ph)
notice( t('Permission denied. Access to this item may be restricted.'));
else
notice( t('Photo not available') . EOL );
@@ -912,9 +889,11 @@ function photos_content(&$a) {
$prvnxt = q("SELECT `resource_id` FROM `photo` WHERE `album` = '%s' AND `uid` = %d AND `scale` = 0
- $sql_extra ORDER BY `created` $order ",
+ and ( photo_flags = %d or photo_flags = %d ) $sql_extra ORDER BY `created` $order ",
dbesc($ph[0]['album']),
- intval($owner_uid)
+ intval($owner_uid),
+ intval(PHOTO_NORMAL),
+ intval(PHOTO_PROFILE)
);
if(count($prvnxt)) {
@@ -929,9 +908,9 @@ function photos_content(&$a) {
break;
}
}
- $edit_suffix = ((($cmd === 'edit') && ($can_post)) ? '/edit' : '');
- $prevlink = $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/image/' . $prvnxt[$prv]['resource_id'] . $edit_suffix . (($_GET['order'] === 'posted') ? '?f=&order=posted' : '');
- $nextlink = $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/image/' . $prvnxt[$nxt]['resource_id'] . $edit_suffix . (($_GET['order'] === 'posted') ? '?f=&order=posted' : '');
+
+ $prevlink = $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/image/' . $prvnxt[$prv]['resource_id'] . (($_GET['order'] === 'posted') ? '?f=&order=posted' : '');
+ $nextlink = $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/image/' . $prvnxt[$nxt]['resource_id'] . (($_GET['order'] === 'posted') ? '?f=&order=posted' : '');
}
@@ -954,7 +933,6 @@ function photos_content(&$a) {
if($can_post && ($ph[0]['uid'] == $owner_uid)) {
$tools = array(
- 'edit' => array($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/image/' . $datum . (($cmd === 'edit') ? '' : '/edit'), (($cmd === 'edit') ? t('View photo') : t('Edit photo'))),
'profile'=>array($a->get_baseurl() . '/profile_photo/use/'.$ph[0]['resource_id'], t('Use as profile photo')),
);
@@ -967,7 +945,7 @@ function photos_content(&$a) {
}
- if(! $cmd !== 'edit') {
+ if(! $can_post) {
$a->page['htmlhead'] .= '<script>
$(document).keydown(function(event) {' . "\n";
@@ -993,105 +971,66 @@ function photos_content(&$a) {
// Do we have an item for this photo?
- $linked_items = q("SELECT * FROM `item` WHERE `resource_id` = '%s' $sql_extra LIMIT 1",
+ $linked_items = q("SELECT * FROM item WHERE resource_id = '%s' and resource_type = 'photo'
+ $sql_extra LIMIT 1",
dbesc($datum)
);
- if(count($linked_items)) {
+ if($linked_items) {
+
$link_item = $linked_items[0];
- $r = q("SELECT COUNT(*) AS `total`
- FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
- WHERE `parent_uri` = '%s' AND `uri` != '%s' AND `item`.`deleted` = 0 and `item`.`moderated` = 0
- AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- AND `item`.`uid` = %d
- $sql_extra ",
- dbesc($link_item['uri']),
- dbesc($link_item['uri']),
+
+ $r = q("select * from item where parent_mid = '%s' and mid != '%s'
+ and item_restrict = 0 and uid = %d $sql_extra ",
+ dbesc($link_item['mid']),
+ dbesc($link_item['mid']),
intval($link_item['uid'])
);
- if(count($r))
- $a->set_pager_total($r[0]['total']);
-
-
- $r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
- `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`network`,
- `contact`.`rel`, `contact`.`thumb`, `contact`.`self`,
- `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
- FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
- WHERE `parent_uri` = '%s' AND `uri` != '%s' AND `item`.`deleted` = 0 and `item`.`moderated` = 0
- AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- AND `item`.`uid` = %d
- $sql_extra
- ORDER BY `parent` DESC, `id` ASC LIMIT %d ,%d ",
- dbesc($link_item['uri']),
- dbesc($link_item['uri']),
- intval($link_item['uid']),
- intval($a->pager['start']),
- intval($a->pager['itemspage'])
+ if($r) {
+ xchan_query($r);
+ $r = fetch_post_tags($r,true);
+ $r = conv_sort($r,'commented');
+ }
- );
-
if((local_user()) && (local_user() == $link_item['uid'])) {
- q("UPDATE `item` SET `unseen` = 0 WHERE `parent` = %d and `uid` = %d",
+ q("UPDATE `item` SET item_flags = (item_flags ^ %d) WHERE parent = %d and uid = %d and (item_flags & %d)",
+ intval(ITEM_UNSEEN),
intval($link_item['parent']),
- intval(local_user())
+ intval(local_user()),
+ intval(ITEM_UNSEEN)
);
}
}
- $tags=Null;
-
- if(count($linked_items) && strlen($link_item['tag'])) {
- $arr = explode(',',$link_item['tag']);
- // parse tags and add links
- $tag_str = '';
- foreach($arr as $t) {
- if(strlen($tag_str))
- $tag_str .= ', ';
- $tag_str .= bbcode($t);
- }
- $tags = array(t('Tags: '), $tag_str);
- if($cmd === 'edit') {
- $tags[] = $a->get_baseurl() . '/tagrm/' . $link_item['id'];
- $tags[] = t('[Remove any tag]');
- }
- }
-
- $edit = Null;
- if(($cmd === 'edit') && ($can_post)) {
- if($a->get_template_engine() === 'internal') {
- $album_e = template_escape($ph[0]['album']);
- $caption_e = template_escape($ph[0]['desc']);
- $aclselect_e = template_escape(populate_acl($ph[0]));
- }
- else {
- $album_e = $ph[0]['album'];
- $caption_e = $ph[0]['desc'];
- $aclselect_e = populate_acl($ph[0]);
- }
+ $edit = null;
+ if($can_post) {
- $edit_tpl = get_markup_template('photo_edit.tpl');
- $edit = replace_macros($edit_tpl, array(
- '$id' => $ph[0]['id'],
- '$rotatecw' => t('Rotate CW (right)'),
- '$rotateccw' => t('Rotate CCW (left)'),
- '$album' => $album_e,
- '$newalbum' => t('New album name'),
- '$nickname' => $a->data['channel']['channel_address'],
- '$resource_id' => $ph[0]['resource_id'],
- '$capt_label' => t('Caption'),
- '$caption' => $caption_e,
- '$tag_label' => t('Add a Tag'),
- '$tags' => $link_item['tag'],
- '$permissions' => t('Permissions'),
- '$aclselect' => $aclselect_e,
- '$help_tags' => t('Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping'),
- '$item_id' => ((count($linked_items)) ? $link_item['id'] : 0),
- '$submit' => t('Submit'),
- '$delete' => t('Delete Photo')
- ));
+ $album_e = $ph[0]['album'];
+ $caption_e = $ph[0]['desc'];
+ $aclselect_e = populate_acl($ph[0]);
+
+ $edit = array(
+ 'edit' => t('Edit photo'),
+ 'id' => $ph[0]['id'],
+ 'rotatecw' => t('Rotate CW (right)'),
+ 'rotateccw' => t('Rotate CCW (left)'),
+ 'album' => $album_e,
+ 'newalbum' => t('New album name'),
+ 'nickname' => $a->data['channel']['channel_address'],
+ 'resource_id' => $ph[0]['resource_id'],
+ 'capt_label' => t('Caption'),
+ 'caption' => $caption_e,
+ 'tag_label' => t('Add a Tag'),
+ 'tags' => $link_item['tag'],
+ 'permissions' => t('Permissions'),
+ 'aclselect' => $aclselect_e,
+ 'help_tags' => t('Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping'),
+ 'item_id' => ((count($linked_items)) ? $link_item['id'] : 0),
+ 'submit' => t('Submit'),
+ 'delete' => t('Delete Photo')
+ );
}
if(count($linked_items)) {
@@ -1142,7 +1081,7 @@ function photos_content(&$a) {
$dislike = '';
// display comments
- if(count($r)) {
+ if($r) {
foreach($r as $item) {
like_puller($a,$item,$alike,'like');
@@ -1223,16 +1162,10 @@ function photos_content(&$a) {
$drop = replace_macros(get_markup_template('photo_drop.tpl'), array('$id' => $item['id'], '$delete' => t('Delete')));
- if($a->get_template_engine() === 'internal') {
- $name_e = template_escape($profile_name);
- $title_e = template_escape($item['title']);
- $body_e = template_escape(bbcode($item['body']));
- }
- else {
- $name_e = $profile_name;
- $title_e = $item['title'];
- $body_e = bbcode($item['body']);
- }
+ $name_e = $profile_name;
+ $title_e = $item['title'];
+ $body_e = bbcode($item['body']);
+
$comments .= replace_macros($template,array(
'$id' => $item['item_id'],
@@ -1253,18 +1186,10 @@ function photos_content(&$a) {
$paginate = paginate($a);
}
- if($a->get_template_engine() === 'internal') {
- $album_e = array($album_link,template_escape($ph[0]['album']));
- $tags_e = template_escape($tags);
- $like_e = template_escape($like);
- $dislike_e = template_escape($dislike);
- }
- else {
- $album_e = array($album_link,$ph[0]['album']);
- $tags_e = $tags;
- $like_e = $like;
- $dislike_e = $dislike;
- }
+ $album_e = array($album_link,$ph[0]['album']);
+ $tags_e = $tags;
+ $like_e = $like;
+ $dislike_e = $dislike;
$photo_tpl = get_markup_template('photo_view.tpl');
$o .= replace_macros($photo_tpl, array(
@@ -1292,10 +1217,12 @@ function photos_content(&$a) {
//$o = '';
$r = q("SELECT `resource_id`, max(`scale`) AS `scale` FROM `photo` WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s'
- $sql_extra GROUP BY `resource_id`",
+ and ( photo_flags = %d or photo_flags = %d ) $sql_extra GROUP BY `resource_id`",
intval($a->data['channel']['channel_id']),
dbesc('Contact Photos'),
- dbesc( t('Contact Photos'))
+ dbesc( t('Contact Photos')),
+ intval(PHOTO_NORMAL),
+ intval(PHOTO_PROFILE)
);
if(count($r)) {
$a->set_pager_total(count($r));
@@ -1303,11 +1230,14 @@ function photos_content(&$a) {
}
$r = q("SELECT `resource_id`, `id`, `filename`, type, `album`, max(`scale`) AS `scale` FROM `photo`
- WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s'
+ WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s'
+ and ( photo_flags = %d or photo_flags = %d )
$sql_extra GROUP BY `resource_id` ORDER BY `created` DESC LIMIT %d , %d",
intval($a->data['channel']['channel_id']),
dbesc('Contact Photos'),
dbesc( t('Contact Photos')),
+ intval(PHOTO_NORMAL),
+ intval(PHOTO_PROFILE),
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
diff --git a/mod/ping.php b/mod/ping.php
index 827992c65..76d84d0e4 100644
--- a/mod/ping.php
+++ b/mod/ping.php
@@ -75,7 +75,7 @@ function ping_init(&$a) {
);
break;
case 'all_events':
- $r = q("update event set ignore = 1 where ignore = 0 and uid = %d",
+ $r = q("update event set `ignore` = 1 where `ignore` = 0 and uid = %d",
intval(local_user())
);
break;
@@ -209,7 +209,7 @@ function ping_init(&$a) {
if($r) {
foreach($r as $rr) {
$result[] = array(
- 'notify_link' => $a->get_baseurl() . '/intro/' . $rr['abook_id'],
+ 'notify_link' => $a->get_baseurl() . '/connections/' . $rr['abook_id'],
'name' => $rr['xchan_name'],
'url' => $rr['xchan_url'],
'photo' => $rr['xchan_photo_s'],
diff --git a/mod/poke.php b/mod/poke.php
index 163ef0cd8..b22f7d9d5 100755
--- a/mod/poke.php
+++ b/mod/poke.php
@@ -1,17 +1,30 @@
-<?php
+<?php /** @file */
+
+/**
+ *
+ * Poke, prod, finger, or otherwise do unspeakable things to somebody - who must be a connection in your address book
+ * This function can be invoked with the required arguments (verb and cid and private and possibly parent) silently via ajax or
+ * other web request. You must be logged in and connected to a channel.
+ * If the required arguments aren't present, we'll display a simple form to choose a recipient and a verb.
+ * parent is a special argument which let's you attach this activity as a comment to an existing conversation, which
+ * may have started with somebody else poking (etc.) somebody, but this isn't necessary. This can be used in the adult
+ * plugin version to have entire conversations where Alice poked Bob, Bob fingered Alice, Alice hugged Bob, etc.
+ *
+ * private creates a private conversation with the recipient. Otherwise your channel's default post privacy is used.
+ *
+ */
-require_once('include/security.php');
-require_once('include/bbcode.php');
require_once('include/items.php');
-
function poke_init(&$a) {
if(! local_user())
return;
$uid = local_user();
- $verb = notags(trim($_GET['verb']));
+ $channel = $a->get_channel();
+
+ $verb = notags(trim($_REQUEST['verb']));
if(! $verb)
return;
@@ -23,109 +36,86 @@ function poke_init(&$a) {
$activity = ACTIVITY_POKE . '#' . urlencode($verbs[$verb][0]);
- $contact_id = intval($_GET['cid']);
+ $contact_id = intval($_REQUEST['cid']);
if(! $contact_id)
return;
- $parent = ((x($_GET,'parent')) ? intval($_GET['parent']) : 0);
-
+ $parent = ((x($_REQUEST,'parent')) ? intval($_REQUEST['parent']) : 0);
logger('poke: verb ' . $verb . ' contact ' . $contact_id, LOGGER_DEBUG);
- $r = q("SELECT * FROM `contact` WHERE `id` = %d and `uid` = %d LIMIT 1",
+ $r = q("SELECT * FROM abook left join xchan on xchan_hash = abook_xchan where abook_id = %d and abook_channel = %d LIMIT 1",
intval($contact_id),
intval($uid)
);
- if(! count($r)) {
- logger('poke: no contact ' . $contact_id);
+ if(! $r) {
+ logger('poke: no target ' . $contact_id);
return;
}
$target = $r[0];
+ $parent_item = null;
if($parent) {
- $r = q("select uri, private, allow_cid, allow_gid, deny_cid, deny_gid
+ $r = q("select mid, item_private, owner_xchan, allow_cid, allow_gid, deny_cid, deny_gid
from item where id = %d and parent = %d and uid = %d limit 1",
intval($parent),
intval($parent),
intval($uid)
);
- if(count($r)) {
- $parent_uri = $r[0]['uri'];
- $private = $r[0]['private'];
- $allow_cid = $r[0]['allow_cid'];
- $allow_gid = $r[0]['allow_gid'];
- $deny_cid = $r[0]['deny_cid'];
- $deny_gid = $r[0]['deny_gid'];
+ if($r) {
+ $parent_item = $r[0];
+ $parent_mid = $r[0]['mid'];
+ $item_private = $r[0]['item_private'];
+ $allow_cid = $r[0]['allow_cid'];
+ $allow_gid = $r[0]['allow_gid'];
+ $deny_cid = $r[0]['deny_cid'];
+ $deny_gid = $r[0]['deny_gid'];
}
}
else {
- $private = ((x($_GET,'private')) ? intval($_GET['private']) : 0);
+ $item_private = ((x($_GET,'private')) ? intval($_GET['private']) : 0);
- $allow_cid = (($private) ? '<' . $target['id']. '>' : $a->user['allow_cid']);
- $allow_gid = (($private) ? '' : $a->user['allow_gid']);
- $deny_cid = (($private) ? '' : $a->user['deny_cid']);
- $deny_gid = (($private) ? '' : $a->user['deny_gid']);
+ $allow_cid = (($item_private) ? '<' . $target['abook_xchan']. '>' : $channel['channel_allow_cid']);
+ $allow_gid = (($item_private) ? '' : $channel['channel_allow_gid']);
+ $deny_cid = (($item_private) ? '' : $channel['channel_deny_cid']);
+ $deny_gid = (($item_private) ? '' : $channel['channel_deny_gid']);
}
-
-
- $poster = $a->contact;
-
- $uri = item_message_id();
-
$arr = array();
+ $arr['item_flags'] = ITEM_WALL | ITEM_ORIGIN;
+ if($parent_item)
+ $arr['item_flags'] |= ITEM_THREAD_TOP;
- $arr['uid'] = $uid;
- $arr['uri'] = $uri;
- $arr['parent_uri'] = (($parent_uri) ? $parent_uri : $uri);
- $arr['type'] = 'activity';
- $arr['wall'] = 1;
- $arr['contact-id'] = $poster['id'];
- $arr['owner-name'] = $poster['name'];
- $arr['owner-link'] = $poster['url'];
- $arr['owner-avatar'] = $poster['thumb'];
- $arr['author-name'] = $poster['name'];
- $arr['author-link'] = $poster['url'];
- $arr['author-avatar'] = $poster['thumb'];
+ $arr['owner_xchan'] = (($parent_item) ? $parent_item['owner_xchan'] : $channel['channel_hash']);
+ $arr['parent_mid'] = (($parent_mid) ? $parent_mid : $mid);
$arr['title'] = '';
$arr['allow_cid'] = $allow_cid;
$arr['allow_gid'] = $allow_gid;
$arr['deny_cid'] = $deny_cid;
$arr['deny_gid'] = $deny_gid;
- $arr['last-child'] = 1;
- $arr['visible'] = 1;
$arr['verb'] = $activity;
- $arr['private'] = $private;
- $arr['obj_type'] = ACTIVITY_OBJ_PERSON;
-
- $arr['origin'] = 1;
- $arr['body'] = '[url=' . $poster['url'] . ']' . $poster['name'] . '[/url]' . ' ' . t($verbs[$verb][0]) . ' ' . '[url=' . $target['url'] . ']' . $target['name'] . '[/url]';
-
- $arr['object'] = '<object><type>' . ACTIVITY_OBJ_PERSON . '</type><title>' . $target['name'] . '</title><id>' . $a->get_baseurl() . '/contact/' . $target['id'] . '</id>';
- $arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $target['url'] . '" />' . "\n");
-
- $arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $target['photo'] . '" />' . "\n");
- $arr['object'] .= '</link></object>' . "\n";
-
- $item_id = item_store($arr);
- if($item_id) {
- q("UPDATE `item` SET `plink` = '%s' WHERE `uid` = %d AND `id` = %d LIMIT 1",
- dbesc($a->get_baseurl() . '/display/' . $poster['nickname'] . '/' . $item_id),
- intval($uid),
- intval($item_id)
- );
- proc_run('php',"include/notifier.php","tag","$item_id");
- }
-
+ $arr['item_private'] = $item_private;
+ $arr['obj_type'] = ACTIVITY_OBJ_PERSON;
+ $arr['body'] = '[zrl=' . $channel['xchan_url'] . ']' . $channel['xchan_name'] . '[/zrl]' . ' ' . t($verbs[$verb][0]) . ' ' . '[zrl=' . $target['xchan_url'] . ']' . $target['xchan_name'] . '[/zrl]';
+
+ $obj = array(
+ 'type' => ACTIVITY_OBJ_PERSON,
+ 'title' => $target['xchan_name'],
+ 'id' => $target['xchan_hash'],
+ 'link' => array(
+ array('rel' => 'alternate', 'type' => 'text/html', 'href' => $target['xchan_url']),
+ array('rel' => 'photo', 'type' => $target['xchan_photo_mimetype'], 'href' => $target['xchan_photo_l'])
+ ),
+ );
- call_hooks('post_local_end', $arr);
+ $arr['object'] = json_encode($obj);
- proc_run('php',"include/notifier.php","like","$post_id");
+ post_activity_item($arr);
return;
}
@@ -142,43 +132,19 @@ function poke_content(&$a) {
$name = '';
$id = '';
- if(intval($_GET['c'])) {
- $r = q("select id,name from contact where id = %d and uid = %d limit 1",
- intval($_GET['c']),
+ if(intval($_REQUEST['c'])) {
+ $r = q("select abook_id, xchan_name from abook left join xchan on abook_xchan = xchan_hash
+ where abook_id = %d and abook_channel = %d limit 1",
+ intval($_REQUEST['c']),
intval(local_user())
);
- if(count($r)) {
- $name = $r[0]['name'];
- $id = $r[0]['id'];
+ if($r) {
+ $name = $r[0]['xchan_name'];
+ $id = $r[0]['abook_id'];
}
}
-
- $base = $a->get_baseurl();
-
- $a->page['htmlhead'] .= <<< EOT
-
-<script>$(document).ready(function() {
- var a;
- a = $("#poke-recip").autocomplete({
- serviceUrl: '$base/acl',
- minChars: 2,
- width: 350,
- onSelect: function(value,data) {
- $("#poke-recip-complete").val(data);
- }
- });
- a.setOptions({ params: { type: 'a' }});
-
-
-});
-
-</script>
-EOT;
-
- $parent = ((x($_GET,'parent')) ? intval($_GET['parent']) : '0');
-
-
+ $parent = ((x($_REQUEST,'parent')) ? intval($_REQUEST['parent']) : '0');
$verbs = get_poke_verbs();
diff --git a/mod/post.php b/mod/post.php
index e5fa1a418..07f2cd083 100644
--- a/mod/post.php
+++ b/mod/post.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
/**
* Zot endpoint
@@ -10,16 +10,16 @@ require_once('include/zot.php');
function post_init(&$a) {
- // All other access to this endpoint is via the post method.
+ // Most access to this endpoint is via the post method.
// Here we will pick out the magic auth params which arrive
- // as a get request.
+ // as a get request, and the only communications to arrive this way.
if(argc() > 1) {
$webbie = argv(1);
if(array_key_exists('auth',$_REQUEST)) {
-
+ logger('mod_zot: auth request received.');
$address = $_REQUEST['auth'];
$dest = $_REQUEST['dest'];
$sec = $_REQUEST['sec'];
@@ -49,7 +49,7 @@ function post_init(&$a) {
}
// Try and find a hubloc for the person attempting to auth
- $x = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash where hubloc_addr = '%s' limit 1",
+ $x = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash where hubloc_addr = '%s' order by hubloc_id desc limit 1",
dbesc($address)
);
@@ -60,7 +60,7 @@ function post_init(&$a) {
$j = json_decode($ret['body'],true);
if($j)
import_xchan($j);
- $x = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash where hubloc_addr = '%s' limit 1",
+ $x = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash where hubloc_addr = '%s' order by hubloc_id desc limit 1",
dbesc($address)
);
}
@@ -95,15 +95,32 @@ function post_init(&$a) {
$j = json_decode($result['body'],true);
}
- if($already_authed || $j['result']) {
+ if($already_authed || $j['success']) {
+ if($j['success']) {
+ // legit response, but we do need to check that this wasn't answered by a man-in-middle
+ if(! rsa_verify($sec . $x[0]['xchan_hash'],base64url_decode($j['confirm']),$x[0]['xchan_pubkey'])) {
+ logger('mod_zot: auth: final confirmation failed.');
+ goaway($desturl);
+ }
+ }
// everything is good... maybe
if(local_user()) {
- notice( t('Remote authentication blocked. You are logged into this site locally. Please logout and retry.') . EOL);
+
+ // tell them to logout if they're logged in locally as anything but the target remote account
+ // in which case just shut up because they don't need to be doing this at all.
+
+ if($a->channel['channel_hash'] != $x[0]['xchan_hash']) {
+ logger('mod_zot: auth: already authenticated locally as somebody else.');
+ notice( t('Remote authentication blocked. You are logged into this site locally. Please logout and retry.') . EOL);
+ }
goaway($desturl);
}
// log them in
$_SESSION['authenticated'] = 1;
$_SESSION['visitor_id'] = $x[0]['xchan_hash'];
+ $_SESSION['my_address'] = $address;
+ $arr = array('xchan' => $x[0], 'url' => $desturl, 'channel_address' => $webbie);
+ call_hooks('magic_auth_success',$arr);
$a->set_observer($x[0]);
require_once('include/security.php');
$a->set_groups(init_groups_visitor($_SESSION['visitor_id']));
@@ -137,12 +154,17 @@ function post_post(&$a) {
logger('mod_zot: ' . print_r($_REQUEST,true), LOGGER_DEBUG);
- $ret = array('result' => false);
+ $ret = array('success' => false);
$data = json_decode($_REQUEST['data'],true);
logger('mod_zot: data: ' . print_r($data,true), LOGGER_DATA);
+ /**
+ * Many message packets will arrive encrypted. The existence of an 'iv' element
+ * tells us we need to unencapsulate the AES-256-CBC content using the site private key
+ */
+
if(array_key_exists('iv',$data)) {
$data = aes_unencapsulate($data,get_config('system','prvkey'));
logger('mod_zot: decrypt1: ' . $data, LOGGER_DATA);
@@ -156,12 +178,20 @@ function post_post(&$a) {
if($msgtype === 'pickup') {
+ /**
+ * The 'pickup' message arrives with a tracking ID which is associated with a particular outq_hash
+ * First verify that that the returned signatures verify, then check that we have an outbound queue item
+ * with the correct hash.
+ * If everything verifies, find any/all outbound messages in the queue for this hubloc and send them back
+ *
+ */
+
if((! $data['secret']) || (! $data['secret_sig'])) {
$ret['message'] = 'no verification signature';
logger('mod_zot: pickup: ' . $ret['message'], LOGGER_DEBUG);
json_return_and_die($ret);
}
- $r = q("select hubloc_sitekey from hubloc where hubloc_url = '%s' and hubloc_callback = '%s' and hubloc_sitekey != '' limit 1",
+ $r = q("select distinct hubloc_sitekey from hubloc where hubloc_url = '%s' and hubloc_callback = '%s' and hubloc_sitekey != '' group by hubloc_sitekey ",
dbesc($data['url']),
dbesc($data['callback'])
);
@@ -170,23 +200,46 @@ function post_post(&$a) {
logger('mod_zot: pickup: ' . $ret['message']);
json_return_and_die($ret);
}
- // verify the url_sig
- $sitekey = $r[0]['hubloc_sitekey'];
- logger('sitekey: ' . $sitekey);
- if(! rsa_verify($data['callback'],base64url_decode($data['callback_sig']),$sitekey)) {
+ foreach ($r as $hubsite) {
+
+ // verify the url_sig
+ // If the server was re-installed at some point, there could be multiple hubs with the same url and callback.
+ // Only one will have a valid key.
+
+ $forgery = true;
+ $secret_fail = true;
+
+ $sitekey = $hubsite['hubloc_sitekey'];
+
+ logger('mod_zot: Checking sitekey: ' . $sitekey);
+
+ if(rsa_verify($data['callback'],base64url_decode($data['callback_sig']),$sitekey)) {
+ $forgery = false;
+ }
+ if(rsa_verify($data['secret'],base64url_decode($data['secret_sig']),$sitekey)) {
+ $secret_fail = false;
+ }
+ if((! $forgery) && (! $secret_fail))
+ break;
+ }
+ if($forgery) {
$ret['message'] = 'possible site forgery';
logger('mod_zot: pickup: ' . $ret['message']);
json_return_and_die($ret);
}
- if(! rsa_verify($data['secret'],base64url_decode($data['secret_sig']),$sitekey)) {
+ if($secret_fail) {
$ret['message'] = 'secret validation failed';
logger('mod_zot: pickup: ' . $ret['message']);
json_return_and_die($ret);
}
- // If we made it to here, we've got a valid pickup. Grab everything for this host and send it.
+ /**
+ * If we made it to here, the signatures verify, but we still don't know if the tracking ID is valid.
+ * It wouldn't be an error if the tracking ID isn't found, because we may have sent this particular
+ * queue item with another pickup (after the tracking ID for the other pickup was verified).
+ */
$r = q("select outq_posturl from outq where outq_hash = '%s' and outq_posturl = '%s' limit 1",
dbesc($data['secret']),
@@ -198,6 +251,11 @@ function post_post(&$a) {
json_return_and_die($ret);
}
+ /**
+ * Everything is good if we made it here, so find all messages that are going to this location
+ * and send them all.
+ */
+
$r = q("select * from outq where outq_posturl = '%s'",
dbesc($data['callback'])
);
@@ -214,16 +272,31 @@ function post_post(&$a) {
}
$encrypted = aes_encapsulate(json_encode($ret),$sitekey);
json_return_and_die($encrypted);
+
+ /** pickup: end */
}
+
+ /**
+ * All other message types require us to verify the sender. This is a generic check, so we
+ * will do it once here and bail if anything goes wrong.
+ */
+
if(array_key_exists('sender',$data)) {
$sender = $data['sender'];
}
+ /** Check if the sender is already verified here */
+
$hub = zot_gethub($sender);
+
if(! $hub) {
+
+ /** Have never seen this guid or this guid coming from this location. Check it and register it. */
+
// (!!) this will validate the sender
$result = zot_register_hub($sender);
+
if((! $result['success']) || (! zot_gethub($sender))) {
$ret['message'] = 'Hub not available.';
logger('mod_zot: no hub');
@@ -236,31 +309,41 @@ function post_post(&$a) {
if(array_key_exists('recipients',$data))
$recipients = $data['recipients'];
-
if($msgtype === 'purge') {
if($recipients) {
// basically this means "unfriend"
foreach($recipients as $recip) {
-
-
-
+ $r = q("select channel.*,xchan.* from channel
+ left join xchan on channel_hash = xchan_hash
+ where channel_guid = '%s' and channel_guid_sig = '%s' limit 1",
+ dbesc($recip['guid']),
+ dbesc($recip['guid_sig'])
+ );
+ if($r) {
+ $r = q("select abook_id from abook where uid = %d and abook_xchan = '%s' limit 1",
+ intval($r[0]['channel_id']),
+ dbesc(base64url_encode(hash('whirlpool',$sender['guid'] . $sender['guid_sig'], true)))
+ );
+ if($r) {
+ contact_remove($r[0]['channel_id'],$r[0]['abook_id']);
+ }
+ }
}
-
-
}
else {
- // basically this means the channel has committed suicide
+ // Unfriend everybody - basically this means the channel has committed suicide
$arr = $data['sender'];
$sender_hash = base64url_encode(hash('whirlpool',$arr['guid'] . $arr['guid_sig'], true));
require_once('include/Contact.php');
remove_all_xchan_resources($sender_hash);
- $ret['result'] = true;
+ $ret['success'] = true;
json_return_and_die($ret);
}
}
+
if($msgtype === 'refresh') {
// remote channel info (such as permissions or photo or something)
@@ -295,7 +378,7 @@ function post_post(&$a) {
'hubloc_url' => $sender['url']
),null);
}
- $ret['result'] = true;
+ $ret['success'] = true;
json_return_and_die($ret);
}
@@ -311,12 +394,13 @@ function post_post(&$a) {
$ret['delivery_report'] = $x;
}
- $ret['result'] = true;
+ $ret['success'] = true;
json_return_and_die($ret);
}
if($msgtype === 'auth_check') {
+ logger('mod_zot: auth_check');
$arr = $data['sender'];
$sender_hash = base64url_encode(hash('whirlpool',$arr['guid'] . $arr['guid_sig'], true));
@@ -340,7 +424,7 @@ function post_post(&$a) {
$arr = $data['recipients'][0];
$recip_hash = base64url_encode(hash('whirlpool',$arr['guid'] . $arr['guid_sig'], true));
- $c = q("select channel_id from channel where channel_hash = '%s' limit 1",
+ $c = q("select channel_id, channel_prvkey from channel where channel_hash = '%s' limit 1",
dbesc($recip_hash)
);
if(! $c) {
@@ -348,6 +432,8 @@ function post_post(&$a) {
json_return_and_die($ret);
}
+ $confirm = base64url_encode(rsa_sign($data['secret'] . $recip_hash,$c[0]['channel_prvkey']));
+
// This additionally checks for forged senders since we already stored the expected result in meta
// and we've already verified that this is them via zot_gethub() and that their key signed our token
@@ -365,7 +451,8 @@ function post_post(&$a) {
);
logger('mod_zot: auth_check: success', LOGGER_DEBUG);
- $ret['result'] = true;
+ $ret['success'] = true;
+ $ret['confirm'] = $confirm;
json_return_and_die($ret);
}
diff --git a/mod/probe.php b/mod/probe.php
index f90728df2..397f571c5 100644
--- a/mod/probe.php
+++ b/mod/probe.php
@@ -1,6 +1,5 @@
<?php
-require_once('include/Scrape.php');
require_once('include/zot.php');
function probe_content(&$a) {
diff --git a/mod/profile.php b/mod/profile.php
index 2f869a533..d59602ba0 100644
--- a/mod/profile.php
+++ b/mod/profile.php
@@ -10,25 +10,35 @@ function profile_init(&$a) {
return;
}
- $profile = 0;
+ $profile = '';
$channel = $a->get_channel();
if((local_user()) && (argc() > 2) && (argv(2) === 'view')) {
$which = $channel['channel_address'];
$profile = argv(1);
+ $r = q("select profile_guid from profile where id = %d and uid = %d limit 1",
+ intval($profile),
+ intval(local_user())
+ );
+ if(! $r)
+ $profile = '';
+ $profile = $r[0]['profile_guid'];
}
$a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/feed/' . $which .'" />' . "\r\n" ;
- $x = q("select channel_id as profile_uid from channel where channel_address = '%s' limit 1",
- dbesc(argv(1))
- );
- if($x) {
- $a->profile = $x[0];
+ if(! $profile) {
+ $x = q("select channel_id as profile_uid from channel where channel_address = '%s' limit 1",
+ dbesc(argv(1))
+ );
+ if($x) {
+ $a->profile = $x[0];
+ }
+ }
// $channel_display = get_pconfig($a->profile['profile_uid'],'system','channel_format');
// if(! $channel_display)
- profile_load($a,$which,$profile);
- }
+ profile_load($a,$which,$profile);
+
}
diff --git a/mod/profile_photo.php b/mod/profile_photo.php
index ea7a01bc9..64dfc0e83 100644
--- a/mod/profile_photo.php
+++ b/mod/profile_photo.php
@@ -1,6 +1,6 @@
<?php
-require_once("Photo.php");
+require_once('include/photo/photo_driver.php');
function profile_photo_init(&$a) {
@@ -77,7 +77,7 @@ function profile_photo_post(&$a) {
$base_image = $r[0];
- $im = new Photo($base_image['data'], $base_image['type']);
+ $im = photo_factory($base_image['data'], $base_image['type']);
if($im->is_valid()) {
$im->cropImage(175,$srcX,$srcY,$srcW,$srcH);
@@ -164,7 +164,7 @@ function profile_photo_post(&$a) {
}
$imagedata = @file_get_contents($src);
- $ph = new Photo($imagedata, $filetype);
+ $ph = photo_factory($imagedata, $filetype);
if(! $ph->is_valid()) {
notice( t('Unable to process image.') . EOL );
@@ -251,7 +251,7 @@ function profile_photo_content(&$a) {
return;
}
- $ph = new Photo($r[0]['data'], $r[0]['type']);
+ $ph = photo_factory($r[0]['data'], $r[0]['type']);
// go ahead as if we have just uploaded a new photo to crop
profile_photo_crop_ui_head($a, $ph);
}
diff --git a/mod/profiles.php b/mod/profiles.php
index e857c4216..173d97138 100644
--- a/mod/profiles.php
+++ b/mod/profiles.php
@@ -47,7 +47,7 @@ function profiles_init(&$a) {
if((argc() > 1) && (argv(1) === 'new')) {
- check_form_security_token_redirectOnErr('/profiles', 'profile_new', 't');
+// check_form_security_token_redirectOnErr('/profiles', 'profile_new', 't');
$r0 = q("SELECT `id` FROM `profile` WHERE `uid` = %d",
intval(local_user()));
@@ -59,7 +59,7 @@ function profiles_init(&$a) {
intval(local_user()));
$r2 = q("INSERT INTO `profile` (`aid`, `uid` , `profile_guid`, `profile_name` , `name`, `photo`, `thumb`)
- VALUES ( %d, '%s', '%s', '%s', '%s' )",
+ VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s' )",
intval(get_account_id()),
intval(local_user()),
dbesc(random_string()),
@@ -200,6 +200,11 @@ function profiles_post(&$a) {
$day = intval($_POST['day']);
if(($day > $mtab[$month]) || ($day < 0))
$day = 0;
+
+ if($year && (! ($month && $day))) {
+ $month = 1; $day = 1;
+ }
+
$dob = '0000-00-00';
$dob = sprintf('%04d-%02d-%02d',$year,$month,$day);
@@ -232,6 +237,7 @@ function profiles_post(&$a) {
$about = fix_mce_lf(escape_tags(trim($_POST['about'])));
$interest = fix_mce_lf(escape_tags(trim($_POST['interest'])));
$contact = fix_mce_lf(escape_tags(trim($_POST['contact'])));
+ $channels = fix_mce_lf(escape_tags(trim($_POST['channels'])));
$music = fix_mce_lf(escape_tags(trim($_POST['music'])));
$book = fix_mce_lf(escape_tags(trim($_POST['book'])));
$tv = fix_mce_lf(escape_tags(trim($_POST['tv'])));
@@ -393,6 +399,7 @@ function profiles_post(&$a) {
`about` = '%s',
`interest` = '%s',
`contact` = '%s',
+ `channels` = '%s',
`music` = '%s',
`book` = '%s',
`tv` = '%s',
@@ -426,6 +433,7 @@ function profiles_post(&$a) {
dbesc($about),
dbesc($interest),
dbesc($contact),
+ dbesc($channels),
dbesc($music),
dbesc($book),
dbesc($tv),
@@ -444,7 +452,7 @@ function profiles_post(&$a) {
$channel = $a->get_channel();
if($namechanged && $is_default) {
- $r = q("UPDATE xchan SET xchan_name = '%s', xchan_name_date` = '%s' WHERE xchan_hash = '%s' limit 1",
+ $r = q("UPDATE xchan SET xchan_name = '%s', xchan_name_date = '%s' WHERE xchan_hash = '%s' limit 1",
dbesc($name),
dbesc(datetime_convert()),
dbesc($channel['xchan_hash'])
@@ -516,6 +524,7 @@ function profiles_content(&$a) {
'$profile_drop_link' => 'profiles/drop/' . $r[0]['id'] . '?t='
. get_form_security_token("profile_drop"),
+ '$guid' => $r[0]['profile_guid'],
'$banner' => t('Edit Profile Details'),
'$submit' => t('Submit'),
'$viewprof' => t('View this profile'),
@@ -550,6 +559,7 @@ function profiles_content(&$a) {
'$lbl_about' => t('Tell us about yourself...'),
'$lbl_hobbies' => t('Hobbies/Interests'),
'$lbl_social' => t('Contact information and Social Networks'),
+ '$lbl_channels' => t('My other channels'),
'$lbl_music' => t('Musical interests'),
'$lbl_book' => t('Books, literature'),
'$lbl_tv' => t('Television'),
@@ -593,7 +603,8 @@ function profiles_content(&$a) {
'$romance' => $r[0]['romance'],
'$work' => $r[0]['work'],
'$education' => $r[0]['education'],
- '$contact' => $r[0]['contact']
+ '$contact' => $r[0]['contact'],
+ '$channels' => $r[0]['channels'],
));
$arr = array('profile' => $r[0], 'entry' => $o);
diff --git a/mod/randprof.php b/mod/randprof.php
index 0726b231a..bddb3251a 100644
--- a/mod/randprof.php
+++ b/mod/randprof.php
@@ -5,6 +5,7 @@ function randprof_init(&$a) {
require_once('include/Contact.php');
$x = random_profile();
if($x)
- goaway(zid($x));
+ goaway(chanlink_url($x));
+ // FIXME this doesn't work at the moment as a fallback
goaway($a->get_baseurl() . '/profile');
}
diff --git a/mod/search.php b/mod/search.php
index 1bea720a6..1335ea508 100644
--- a/mod/search.php
+++ b/mod/search.php
@@ -74,7 +74,7 @@ function search_post(&$a) {
}
-function search_content(&$a) {
+function search_content(&$a,$update = 0, $load = false) {
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
notice( t('Public access denied.') . EOL);
@@ -153,7 +153,7 @@ function search_content(&$a) {
// because browser prefetching might change it on us. We have to deliver it with the page.
$o .= '<div id="live-search"></div>' . "\r\n";
- $o .= "<script> var profile_uid = " . $a->profile['profile_uid']
+ $o .= "<script> var profile_uid = " . ((intval(local_user())) ? local_user() : (-1))
. "; var netargs = '?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
$a->page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array(
@@ -171,11 +171,11 @@ function search_content(&$a) {
'$nouveau' => '0',
'$wall' => '0',
'$page' => (($a->pager['page'] != 1) ? $a->pager['page'] : 1),
- '$search' => (($tag) ? '#' : '') . $search,
+ '$search' => (($tag) ? urlencode('#') : '') . $search,
'$order' => '',
'$file' => '',
'$cats' => '',
- '$uri' => '',
+ '$mid' => '',
'$dend' => '',
'$dbegin' => ''
));
@@ -186,20 +186,20 @@ function search_content(&$a) {
if(($update) && ($load)) {
-
$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
-
+dbg(1);
if($load) {
- $r = q("SELECT distinct(uri), item.* from item
+ $r = q("SELECT distinct mid, id as item_id from item
WHERE item_restrict = 0
AND (( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND item_private = 0 )
OR ( `item`.`uid` = %d ))
$sql_extra
- group by uri ORDER BY created DESC $pager_sql ",
+ group by mid ORDER BY created DESC $pager_sql ",
intval(local_user()),
intval(ABOOK_FLAG_BLOCKED)
);
+dbg(0);
}
else {
$r = array();
@@ -209,15 +209,15 @@ function search_content(&$a) {
if($r) {
$parents_str = ids_to_querystr($r,'item_id');
-
+dbg(1);
$items = q("SELECT `item`.*, `item`.`id` AS `item_id`
FROM `item`
- WHERE item_restrict = 0 and
- $sql_extra ",
- intval($a->profile['profile_uid']),
- dbesc($parents_str)
+ WHERE item_restrict = 0
+ $sql_extra and parent in ( $parents_str ) "
+// intval($a->profile['profile_uid']),
+// dbesc($parents_str)
);
-
+dbg(0);
xchan_query($items);
$items = fetch_post_tags($items,true);
$items = conv_sort($items,'created');
@@ -228,33 +228,33 @@ function search_content(&$a) {
- $r = q("SELECT distinct(`item`.`uri`), `item`.*, `item`.`id` AS `item_id`,
- `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`,
- `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
- `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`,
- `user`.`nickname`
- FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
- LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
- WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
- AND (( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `user`.`hidewall` = 0 )
- OR `item`.`uid` = %d )
- AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- $sql_extra
- group by `item`.`uri`
- ORDER BY `received` DESC LIMIT %d , %d ",
- intval(local_user()),
- intval($a->pager['start']),
- intval($a->pager['itemspage'])
+// $r = q("SELECT distinct(`item`.`mid`), `item`.*, `item`.`id` AS `item_id`,
+// `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`,
+// `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
+// `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`,
+// `user`.`nickname`
+// FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
+// LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
+// WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
+// AND (( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `user`.`hidewall` = 0 )
+// OR `item`.`uid` = %d )
+// AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
+// $sql_extra
+// group by `item`.`mid`
+// ORDER BY `received` DESC LIMIT %d , %d ",
+// intval(local_user()),
+// intval($a->pager['start']),
+// intval($a->pager['itemspage'])
- );
+// );
// $a = fetch_post_tags($a,true);
- if(! count($r)) {
- info( t('No results.') . EOL);
- return $o;
- }
+// if(! $items) {//
+// info( t('No results.') . EOL);
+// return $o;
+// }
if($tag)
@@ -262,9 +262,9 @@ function search_content(&$a) {
else
$o .= '<h2>Search results for: ' . htmlspecialchars($search) . '</h2>';
- $o .= conversation($a,$r,'search',false);
+ $o .= conversation($a,$items,'search',$update,'client');
- $o .= alt_pager($a,count($r));
+// $o .= alt_pager($a,count($r));
return $o;
}
diff --git a/mod/settings.php b/mod/settings.php
index da6cf709c..0cca41810 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -1,5 +1,6 @@
-<?php
+<?php /** @file */
+require_once('include/zot.php');
function get_theme_config_file($theme){
@@ -14,6 +15,11 @@ function get_theme_config_file($theme){
return null;
}
+function settings_init(&$a) {
+ $a->profile_uid = local_user();
+}
+
+
function settings_aside(&$a) {
@@ -115,13 +121,6 @@ function settings_post(&$a) {
return;
-// if(count($a->user) && x($a->user,'uid') && $a->user['uid'] != local_user()) {
-// notice( t('Permission denied.') . EOL);
-// return;
-// }
-
- $old_page_flags = $a->user['page-flags'];
-
if((argc() > 1) && (argv(1) === 'oauth') && x($_POST,'remove')){
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth');
@@ -182,6 +181,7 @@ function settings_post(&$a) {
check_form_security_token_redirectOnErr('/settings/featured', 'settings_featured');
call_hooks('feature_settings_post', $_POST);
+ build_sync_packet();
return;
}
@@ -194,6 +194,7 @@ function settings_post(&$a) {
set_pconfig(local_user(),'feature',substr($k,8),((intval($v)) ? 1 : 0));
}
}
+ build_sync_packet();
return;
}
@@ -237,6 +238,7 @@ function settings_post(&$a) {
);
call_hooks('display_settings_post', $_POST);
+ build_sync_packet();
goaway($a->get_baseurl(true) . '/settings/display' );
return; // NOTREACHED
}
@@ -292,7 +294,7 @@ function settings_post(&$a) {
$errs[] = t('Not valid email.');
$adm = trim(get_config('system','admin_email'));
if(($adm) && (strcasecmp($email,$adm) == 0)) {
- $errs[] = t('Protected email. Cannot change to that email.');
+ $errs[] = t('Protected email address. Cannot change to that email.');
$email = $a->user['email'];
}
if(! $errs) {
@@ -334,6 +336,7 @@ function settings_post(&$a) {
$expire_network_only = ((x($_POST,'expire_network_only'))? intval($_POST['expire_network_only']) : 0);
$allow_location = (((x($_POST,'allow_location')) && (intval($_POST['allow_location']) == 1)) ? 1: 0);
+
$publish = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
$page_flags = (((x($_POST,'page-flags')) && (intval($_POST['page-flags']))) ? intval($_POST['page-flags']) : 0);
$blockwall = (((x($_POST,'blockwall')) && (intval($_POST['blockwall']) == 1)) ? 0: 1); // this setting is inverted!
@@ -456,6 +459,8 @@ function settings_post(&$a) {
set_pconfig(local_user(),'system','post_newfriend', $post_newfriend);
set_pconfig(local_user(),'system','post_joingroup', $post_joingroup);
set_pconfig(local_user(),'system','post_profilechange', $post_profilechange);
+ set_pconfig(local_user(),'system','blocktags',$blocktags);
+
/*
if($page_flags == PAGE_PRVGROUP) {
@@ -500,9 +505,11 @@ function settings_post(&$a) {
);
*/
- $r = q("update channel set channel_name = '%s', channel_timezone = '%s', channel_max_anon_mail = %d, channel_max_friend_req = %d, channel_expire_days = %d, channel_r_stream = %d, channel_r_profile = %d, channel_r_photos = %d, channel_r_abook = %d, channel_w_stream = %d, channel_w_wall = %d, channel_w_tagwall = %d, channel_w_comment = %d, channel_w_mail = %d, channel_w_photos = %d, channel_w_chat = %d, channel_a_delegate = %d, channel_r_storage = %d, channel_w_storage = %d, channel_r_pages = %d, channel_w_pages = %d where channel_id = %d limit 1",
+ $r = q("update channel set channel_name = '%s', channel_timezone = '%s', channel_location = '%s', channel_notifyflags = %d, channel_max_anon_mail = %d, channel_max_friend_req = %d, channel_expire_days = %d, channel_r_stream = %d, channel_r_profile = %d, channel_r_photos = %d, channel_r_abook = %d, channel_w_stream = %d, channel_w_wall = %d, channel_w_tagwall = %d, channel_w_comment = %d, channel_w_mail = %d, channel_w_photos = %d, channel_w_chat = %d, channel_a_delegate = %d, channel_r_storage = %d, channel_w_storage = %d, channel_r_pages = %d, channel_w_pages = %d where channel_id = %d limit 1",
dbesc($username),
dbesc($timezone),
+ dbesc($defloc),
+ intval($notify),
intval($unkmail),
intval($maxreq),
intval($expire),
@@ -547,11 +554,12 @@ function settings_post(&$a) {
dbesc($username),
intval($channel['channel_id'])
);
- // we really need to send out notifications to all our friends
}
proc_run('php','include/directory.php',local_user());
+ build_sync_packet();
+
//$_SESSION['theme'] = $theme;
if($email_changed && $a->config['system']['register_policy'] == REGISTER_VERIFY) {
@@ -578,6 +586,11 @@ function settings_content(&$a) {
return;
}
+
+ $channel = $a->get_channel();
+ if($channel)
+ head_set_icon($channel['xchan_photo_s']);
+
// if(x($_SESSION,'submanage') && intval($_SESSION['submanage'])) {
// notice( t('Permission denied.') . EOL );
// return;
@@ -716,7 +729,6 @@ function settings_content(&$a) {
if((argc() > 1) && (argv(1) === 'features')) {
-
$arr = array();
$features = get_features();
@@ -736,6 +748,7 @@ function settings_content(&$a) {
'$submit' => t('Submit'),
'$field_yesno' => 'field_yesno.tpl',
));
+
return $o;
}
@@ -905,7 +918,6 @@ function settings_content(&$a) {
$expire = $channel['channel_expire_days'];
$blockwall = $a->user['blockwall'];
- $blocktags = $a->user['blocktags'];
$unkmail = $a->user['unkmail'];
$cntunkmail = $a->user['cntunkmail'];
@@ -937,6 +949,8 @@ function settings_content(&$a) {
$post_profilechange = get_pconfig(local_user(), 'system','post_profilechange');
$post_profilechange = (($post_profilechange===false)? '0': $post_profilechange); // default if not set: 0
+ $blocktags = get_pconfig(local_user(),'system','blocktags');
+ $blocktags = (($blocktags===false) ? '0' : $blocktags);
$timezone = date_default_timezone_get();
@@ -1005,11 +1019,16 @@ function settings_content(&$a) {
'$email' => array('email', t('Email Address:'), $email, ''),
'$timezone' => array('timezone_select' , t('Your Timezone:'), select_timezone($timezone), ''),
'$defloc' => array('defloc', t('Default Post Location:'), $defloc, ''),
- '$allowloc' => array('allow_location', t('Use Browser Location:'), (intval(get_pconfig(local_user(),'system','use_browser_location')) == 1), ''),
+ '$allowloc' => array('allow_location', t('Use Browser Location:'), ((get_pconfig(local_user(),'system','use_browser_location')) ? 1 : ''), ''),
'$h_prv' => t('Security and Privacy Settings'),
+ '$lbl_pmacro' => t('Quick Privacy Settings:'),
+ '$pmacro3' => t('Very Public - extremely permissive'),
+ '$pmacro2' => t('Typical - default public, privacy when desired'),
+ '$pmacro1' => t('Private - default private, rarely open or public'),
+ '$pmacro0' => t('Blocked - default blocked to/from everybody'),
'$permiss_arr' => $permiss,
'$maxreq' => array('maxreq', t('Maximum Friend Requests/Day:'), intval($channel['channel_max_friend_req']) , t('May reduce spam activity')),
diff --git a/mod/setup.php b/mod/setup.php
index b05b0cec3..3c0a133b7 100755
--- a/mod/setup.php
+++ b/mod/setup.php
@@ -27,6 +27,7 @@ function setup_post(&$a) {
case 3:
$urlpath = $a->get_path();
$dbhost = notags(trim($_POST['dbhost']));
+ $dbport = intval(notags(trim($_POST['dbport'])));
$dbuser = notags(trim($_POST['dbuser']));
$dbpass = notags(trim($_POST['dbpass']));
$dbdata = notags(trim($_POST['dbdata']));
@@ -34,12 +35,16 @@ function setup_post(&$a) {
$adminmail = notags(trim($_POST['adminmail']));
$siteurl = notags(trim($_POST['siteurl']));
- require_once("dba.php");
+ require_once('include/dba/dba_driver.php');
unset($db);
- $db = new dba($dbhost, $dbuser, $dbpass, $dbdata, true);
+ $db = dba_factory($dbhost, $dbport, $dbuser, $dbpass, $dbdata, true);
+ if(! $db->connected) {
+ echo "Database Connect failed: " . $db->error;
+ killme();
+ }
/*if(get_db_errno()) {
unset($db);
- $db = new dba($dbhost, $dbuser, $dbpass, '', true);
+ $db = dba_factory($dbhost, $dbport, $dbuser, $dbpass, '', true);
if(! get_db_errno()) {
$r = q("CREATE DATABASE '%s'",
@@ -47,7 +52,7 @@ function setup_post(&$a) {
);
if($r) {
unset($db);
- $db = new dba($dbhost, $dbuser, $dbpass, $dbdata, true);
+ $db = new dba($dbhost, $dbport, $dbuser, $dbpass, $dbdata, true);
} else {
$a->data['db_create_failed']=true;
}
@@ -65,6 +70,7 @@ function setup_post(&$a) {
case 4:
$urlpath = $a->get_path();
$dbhost = notags(trim($_POST['dbhost']));
+ $dbport = intval(notags(trim($_POST['dbport'])));
$dbuser = notags(trim($_POST['dbuser']));
$dbpass = notags(trim($_POST['dbpass']));
$dbdata = notags(trim($_POST['dbdata']));
@@ -74,13 +80,26 @@ function setup_post(&$a) {
$siteurl = notags(trim($_POST['siteurl']));
+ if($siteurl != z_root()) {
+ $test = z_fetch_url($siteurl."/setup/testrewrite");
+ if((! $test['success']) || ($test['body'] != 'ok')) {
+ $a->data['url_fail'] = true;
+ return;
+ }
+ }
// connect to db
- $db = new dba($dbhost, $dbuser, $dbpass, $dbdata, true);
+ $db = dba_factory($dbhost, $dbport, $dbuser, $dbpass, $dbdata, true);
+
+ if(! $db->connected) {
+ echo 'CRITICAL: DB not connected.';
+ killme();
+ }
$tpl = get_intltext_template('htconfig.tpl');
$txt = replace_macros($tpl,array(
'$dbhost' => $dbhost,
+ '$dbport' => $dbport,
'$dbuser' => $dbuser,
'$dbpass' => $dbpass,
'$dbdata' => $dbdata,
@@ -120,7 +139,7 @@ function setup_content(&$a) {
global $install_wizard_pass, $db;
$o = '';
$wizard_status = "";
- $install_title = t('Friendica Red Communications Server - Setup');
+ $install_title = t('Red Matrix Server - Setup');
@@ -128,6 +147,11 @@ function setup_content(&$a) {
$install_wizard_pass = 2;
$wizard_status = t('Could not connect to database.');
}
+ if(x($a->data,'url_fail')) {
+ $install_wizard_pass = 3;
+ $wizard_status = t('Could not connect to specified site URL. Possible SSL certificate or DNS issue.');
+ }
+
if(x($a->data,'db_create_failed')) {
$install_wizard_pass = 2;
$wizard_status = t('Could not create table.');
@@ -136,7 +160,7 @@ function setup_content(&$a) {
$db_return_text="";
if(x($a->data,'db_installed')) {
$txt = '<p style="font-size: 130%;">';
- $txt .= t('Your Friendica site database has been installed.') . EOL;
+ $txt .= t('Your site database has been installed.') . EOL;
$db_return_text .= $txt;
}
@@ -148,7 +172,7 @@ function setup_content(&$a) {
}
if($db && $db->connected) {
- $r = q("SELECT COUNT(*) as `total` FROM `user`");
+ $r = q("SELECT COUNT(*) as `total` FROM `account`");
if($r && count($r) && $r[0]['total']) {
$tpl = get_markup_template('install.tpl');
return replace_macros($tpl, array(
@@ -222,6 +246,7 @@ function setup_content(&$a) {
$dbhost = ((x($_POST,'dbhost')) ? notags(trim($_POST['dbhost'])) : 'localhost');
$dbuser = notags(trim($_POST['dbuser']));
+ $dbport = intval(notags(trim($_POST['dbport'])));
$dbpass = notags(trim($_POST['dbpass']));
$dbdata = notags(trim($_POST['dbdata']));
$phpath = notags(trim($_POST['phpath']));
@@ -233,13 +258,14 @@ function setup_content(&$a) {
$o .= replace_macros($tpl, array(
'$title' => $install_title,
'$pass' => t('Database connection'),
- '$info_01' => t('In order to install Friendica we need to know how to connect to your database.'),
+ '$info_01' => t('In order to install Red Matrix we need to know how to connect to your database.'),
'$info_02' => t('Please contact your hosting provider or site administrator if you have questions about these settings.'),
'$info_03' => t('The database you specify below should already exist. If it does not, please create it before continuing.'),
'$status' => $wizard_status,
- '$dbhost' => array('dbhost', t('Database Server Name'), $dbhost, ''),
+ '$dbhost' => array('dbhost', t('Database Server Name'), $dbhost, t('Default is localhost')),
+ '$dbport' => array('dbport', t('Database Port'), $dbport, t('Communication port number - use 0 for default')),
'$dbuser' => array('dbuser', t('Database Login Name'), $dbuser, ''),
'$dbpass' => array('dbpass', t('Database Login Password'), $dbpass, ''),
'$dbdata' => array('dbdata', t('Database Name'), $dbdata, ''),
@@ -262,6 +288,7 @@ function setup_content(&$a) {
case 3: { // Site settings
require_once('datetime.php');
$dbhost = ((x($_POST,'dbhost')) ? notags(trim($_POST['dbhost'])) : 'localhost');
+ $dbport = intval(notags(trim($_POST['dbuser'])));
$dbuser = notags(trim($_POST['dbuser']));
$dbpass = notags(trim($_POST['dbpass']));
$dbdata = notags(trim($_POST['dbdata']));
@@ -279,6 +306,7 @@ function setup_content(&$a) {
'$status' => $wizard_status,
'$dbhost' => $dbhost,
+ '$dbport' => $dbport,
'$dbuser' => $dbuser,
'$dbpass' => $dbpass,
'$dbdata' => $dbdata,
@@ -330,7 +358,7 @@ function check_php(&$phpath, &$checks) {
$help = "";
if(!$passed) {
$help .= t('Could not find a command line version of PHP in the web server PATH.'). EOL;
- $help .= t("If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron. See <a href='http://friendica.com/node/27'>'Activating scheduled tasks'</a>") . EOL ;
+ $help .= t("If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron.") . EOL;
$help .= EOL . EOL ;
$tpl = get_markup_template('field_input.tpl');
$help .= replace_macros($tpl, array(
@@ -397,6 +425,12 @@ function check_funcs(&$checks) {
check_add($ck_funcs, t('Apache mod_rewrite module'), true, true, "");
}
}
+ if((! function_exists('proc_open')) || strstr(ini_get('disable_functions'),'proc_open')) {
+ check_add($ck_funcs, t('proc_open'), false, true, t('Error: proc_open is required but is either not installed or has been disabled in php.ini'));
+ }
+ else {
+ check_add($ck_funcs, t('proc_open'), true, true, "");
+ }
if(! function_exists('curl_init')){
$ck_funcs[0]['status']= false;
@@ -438,7 +472,7 @@ function check_htconfig(&$checks) {
$status=false;
$help = t('The web installer needs to be able to create a file called ".htconfig.php" in the top folder of your web server and it is unable to do so.') .EOL;
$help .= t('This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can.').EOL;
- $help .= t('At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder.').EOL;
+ $help .= t('At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder.').EOL;
$help .= t('You can alternatively skip this procedure and perform a manual installation. Please see the file "install/INSTALL.txt" for instructions.').EOL;
}
@@ -452,8 +486,8 @@ function check_smarty3(&$checks) {
if( !is_writable('view/tpl/smarty3') ) {
$status=false;
- $help = t('Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering.') .EOL;
- $help .= t('In order to store these compiled templates, the web server needs to have write access to the directory view/tpl/smarty3/ under the Friendica top level folder.').EOL;
+ $help = t('Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering.') .EOL;
+ $help .= t('In order to store these compiled templates, the web server needs to have write access to the directory view/tpl/smarty3/ under the Red top level folder.').EOL;
$help .= t('Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder.').EOL;
$help .= t('Note: as a security measure, you should give the web server write access to view/tpl/smarty3/ only--not the template files (.tpl) that it contains.').EOL;
}
@@ -467,8 +501,17 @@ function check_htaccess(&$checks) {
$status = true;
$help = "";
if (function_exists('curl_init')){
- $test = fetch_url($a->get_baseurl()."/setup/testrewrite");
- if ($test!="ok") {
+ $test = z_fetch_url($a->get_baseurl()."/setup/testrewrite");
+ if(! $test['success']) {
+ if(strstr($a->get_baseurl(),'https://')) {
+ $test = z_fetch_url($a->get_baseurl() . "/setup/testrewrite",false,0,array('novalidate' => true));
+ if($test['success']) {
+ check_add($checks, t('SSL certificate validation'),false,true, t('SSL certificate cannot be validated. Fix certificate or disable https access to this site.'));
+ }
+ }
+ }
+
+ if ((! $test['success']) || ($test['body'] != "ok")) {
$status = false;
$help = t('Url rewrite in .htaccess is not working. Check your server configuration.');
}
@@ -521,7 +564,7 @@ function what_next() {
."<p>".t('IMPORTANT: You will need to [manually] setup a scheduled task for the poller.')
.t('Please see the file "install/INSTALL.txt".')
."</p><p>"
- .t("Go to your new Friendica node <a href='$baseurl/register'>registration page</a> and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel.")
+ .t("Go to your new Red node <a href='$baseurl/register'>registration page</a> and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel.")
."</p>";
}
diff --git a/mod/share.php b/mod/share.php
index 33aa9eede..f0b14541f 100644
--- a/mod/share.php
+++ b/mod/share.php
@@ -17,15 +17,22 @@ function share_init(&$a) {
xchan_query($r);
- $o = '[share]' . "\n";
-
- $o .= "\xE2\x99\xb2" . ' [url=' . $r[0]['author']['xchan_url'] . ']' . $r[0]['author']['xchan_name'] . '[/url]' . "\n";
- if($r[0]['title'])
- $o .= '[b]' . $r[0]['title'] . '[/b]' . "\n";
- $o .= $r[0]['body'] . "\n" ;
-
- $o .= (($r[0]['plink']) ? '[url=' . $r[0]['plink'] . ']' . t('link') . '[/url]' . "\n" : '') . '[/share]';
+ if (strpos($r[0]['body'], "[/share]") !== false) {
+ $pos = strpos($r[0]['body'], "[share");
+ $o = substr($r[0]['body'], $pos);
+ } else {
+ $o = "[share author='".str_replace("'", "&#039;",$r[0]['author']['xchan_name']).
+ "' profile='".$r[0]['author']['xchan_url'] .
+ "' avatar='".$r[0]['author']['xchan_photo_s'].
+ "' link='".$r[0]['plink'].
+ "' posted='".$r[0]['created']."']\n";
+ if($r[0]['title'])
+ $o .= '[b]'.$r[0]['title'].'[/b]'."\n";
+ $o .= $r[0]['body'];
+ $o.= "[/share]";
+ }
echo $o;
- killme();
+ killme();
+
}
diff --git a/mod/siteinfo.php b/mod/siteinfo.php
index 0cd569d20..f2f444fac 100644
--- a/mod/siteinfo.php
+++ b/mod/siteinfo.php
@@ -28,13 +28,13 @@ function siteinfo_init(&$a) {
}
$data = Array(
- 'version' => FRIENDICA_VERSION,
+ 'version' => RED_VERSION,
'url' => z_root(),
'plugins' => $visible_plugins,
'register_policy' => $register_policy[$a->config['system']['register_policy']],
'admin' => $admin,
'site_name' => $a->config['sitename'],
- 'platform' => FRIENDICA_PLATFORM,
+ 'platform' => RED_PLATFORM,
'info' => ((x($a->config,'info')) ? $a->config['info'] : '')
);
@@ -47,26 +47,10 @@ function siteinfo_init(&$a) {
function siteinfo_content(&$a) {
- // FIXME Gak - this needs to be a template.
-
- $o = '';
- $o .= '<h3>' . t('Red') . '</h3>';
-
-
- $o .= '<p></p><p>';
-
- $o .= t('This is Red - another decentralized, distributed communications project by the folks at Friendica.');
if(! get_config('system','hidden_version_siteinfo'))
- $o .= '</p><p>' . sprintf( t('Version %s'), FRIENDICA_VERSION ) . '</p><p>';
- $o .= '</p><p>';
- $o .= t('Running at web location') . ' ' . z_root() . '</p><p>';
-
- $o .= t('Please visit <a href="http://friendica.com">Friendica.com</a> to learn more about the Friendica and/or Red project.') . '</p><p>';
-
- $o .= t('Bug reports and issues: please visit') . ' ' . '<a href="http://bugs.friendica.com">Bugs.Friendica.com</a></p><p>';
- $o .= t('Suggestions, praise, donations, etc. - please email "Info" at Friendica - dot com') . '</p>';
-
- $o .= '<p></p>';
+ $version = sprintf( t('Version %s'), RED_VERSION );
+ else
+ $version = "";
$visible_plugins = array();
if(is_array($a->plugins) && count($a->plugins)) {
@@ -76,9 +60,9 @@ function siteinfo_content(&$a) {
$visible_plugins[] = $rr['name'];
}
-
+ $plugins_list = '';
if(count($visible_plugins)) {
- $o .= '<p>' . t('Installed plugins/addons/apps:') . '</p>';
+ $plugins_text = t('Installed plugins/addons/apps:');
$sorted = $visible_plugins;
$s = '';
sort($sorted);
@@ -88,10 +72,24 @@ function siteinfo_content(&$a) {
$s .= $p;
}
}
- $o .= '<div style="margin-left: 25px; margin-right: 25px;">' . $s . '</div>';
+ $plugins_list .= $s;
}
else
- $o .= '<p>' . t('No installed plugins/addons/apps') . '</p>';
+ $plugins_text = t('No installed plugins/addons/apps');
+
+ $o = replace_macros(get_markup_template('siteinfo.tpl'), array(
+ '$title' => t('Red'),
+ '$description' => t('This is Red - another decentralized, distributed communications project by the folks at Friendica.'),
+ '$version' => $version,
+ '$web_location' => t('Running at web location') . ' ' . z_root(),
+ '$visit' => t('Please visit <a href="http://friendica.com">Friendica.com</a> to learn more about the Friendica and/or Red project.'),
+ '$bug_text' => t('Bug reports and issues: please visit'),
+ '$bug_link_url' => 'http://bugs.friendica.com',
+ '$bug_link_text' => 'Bugs.Friendica.com',
+ '$contact' => t('Suggestions, praise, donations, etc. - please email "Info" at Friendica - dot com'),
+ '$plugins_text' => $plugins_text,
+ '$plugins_list' => $plugins_list
+ ));
call_hooks('about_hook', $o);
diff --git a/mod/sitelist.php b/mod/sitelist.php
new file mode 100644
index 000000000..1e6d0fcfb
--- /dev/null
+++ b/mod/sitelist.php
@@ -0,0 +1,51 @@
+<?php /** @file */
+
+function sitelist_init(&$a) {
+
+ $start = (($_REQUEST['start']) ? intval($_REQUEST['start']) : 0);
+ $limit = ((intval($_REQUEST['limit'])) ? intval($_REQUEST['limit']) : 30);
+ $order = (($_REQUEST['order']) ? $_REQUEST['order'] : 'random');
+ $open = (($_REQUEST['open']) ? intval($_REQUEST['open']) : false);
+
+
+ $sql_order = " order by site_url ";
+ if($order == 'random')
+ $sql_order = " order by rand() ";
+
+ $sql_limit = " limit $start, $limit ";
+
+ $sql_extra = "";
+ if($open)
+ $sql_extra = " and site_register = " . intval(REGISTER_OPEN) . " ";
+
+
+ $result = array('success' => false);
+
+ $r = q("select count(site_url) as total from site where 1 $sql_extra ");
+
+ if($r)
+ $result['total'] = intval($r[0]['total']);
+
+ $result['start'] = $start;
+ $result['limit'] = $limit;
+
+ $r = q("select * from site where true $sql_extra $sql_order $sql_limit");
+
+ $result['results'] = 0;
+ $result['entries'] = array();
+
+ if($r) {
+ $result['success'] = true;
+ $result['results'] = count($r);
+
+ foreach($r as $rr) {
+ $result['entries'][] = array('url' => $rr['site_url']);
+ }
+
+ }
+
+ echo json_encode($result);
+ killme();
+
+
+} \ No newline at end of file
diff --git a/mod/starred.php b/mod/starred.php
index 530c5c7e0..ca7621b0f 100644
--- a/mod/starred.php
+++ b/mod/starred.php
@@ -19,13 +19,7 @@ function starred_init(&$a) {
if(! count($r))
killme();
- $item_flags = $r[0]['item_flags'];
-
- if($item_flags & ITEM_STARRED)
- $item_flags -= ITEM_STARRED;
- else
- $item_flags += ITEM_STARRED;
-
+ $item_flags = ( $r[0]['item_flags'] ^ ITEM_STARRED );
$r = q("UPDATE item SET item_flags = %d WHERE uid = %d and id = %d LIMIT 1",
intval($item_flags),
diff --git a/mod/subthread.php b/mod/subthread.php
index f8918e25d..66dc86eb2 100755
--- a/mod/subthread.php
+++ b/mod/subthread.php
@@ -7,15 +7,15 @@ require_once('include/items.php');
function subthread_content(&$a) {
- if(! local_user() && ! remote_user()) {
+ if((! local_user()) && (! remote_user())) {
return;
}
$activity = ACTIVITY_FOLLOW;
- $item_id = (($a->argc > 1) ? notags(trim($a->argv[1])) : 0);
+ $item_id = ((argc() > 1) ? notags(trim(argv(1))) : 0);
- $r = q("SELECT * FROM `item` WHERE `parent` = '%s' OR `parent-uri` = '%s' and parent = id LIMIT 1",
+ $r = q("SELECT * FROM `item` WHERE `parent` = '%s' OR `parent_mid` = '%s' and parent = id LIMIT 1",
dbesc($item_id),
dbesc($item_id)
);
@@ -84,7 +84,7 @@ function subthread_content(&$a) {
return;
}
- $uri = item_message_id();
+ $mid = item_message_id();
$post_type = (($item['resource_id']) ? t('photo') : t('status'));
$objtype = (($item['resource_id']) ? ACTIVITY_OBJ_PHOTO : ACTIVITY_OBJ_NOTE );
@@ -96,7 +96,7 @@ function subthread_content(&$a) {
<object>
<type>$objtype</type>
<local>1</local>
- <id>{$item['uri']}</id>
+ <id>{$item['mid']}</id>
<link>$link</link>
<title></title>
<content>$body</content>
@@ -109,7 +109,7 @@ EOT;
$arr = array();
- $arr['uri'] = $uri;
+ $arr['mid'] = $mid;
$arr['uid'] = $owner_uid;
$arr['contact-id'] = $contact['id'];
$arr['type'] = 'activity';
@@ -117,8 +117,8 @@ EOT;
$arr['origin'] = 1;
$arr['gravity'] = GRAVITY_LIKE;
$arr['parent'] = $item['id'];
- $arr['parent-uri'] = $item['uri'];
- $arr['thr_parent'] = $item['uri'];
+ $arr['parent-mid'] = $item['mid'];
+ $arr['thr_parent'] = $item['mid'];
$arr['owner-name'] = $remote_owner['name'];
$arr['owner-link'] = $remote_owner['url'];
$arr['owner-avatar'] = $remote_owner['thumb'];
@@ -126,9 +126,9 @@ EOT;
$arr['author-link'] = $contact['url'];
$arr['author-avatar'] = $contact['thumb'];
- $ulink = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
- $alink = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]';
- $plink = '[url=' . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]';
+ $ulink = '[zrl=' . $contact['url'] . ']' . $contact['name'] . '[/zrl]';
+ $alink = '[zrl=' . $item['author-link'] . ']' . $item['author-name'] . '[/zrl]';
+ $plink = '[zrl=' . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/zrl]';
$arr['body'] = sprintf( $bodyverb, $ulink, $alink, $plink );
$arr['verb'] = $activity;
diff --git a/mod/suggest.php b/mod/suggest.php
index 4aed2e61a..f891ebefc 100644
--- a/mod/suggest.php
+++ b/mod/suggest.php
@@ -8,17 +8,21 @@ function suggest_init(&$a) {
if(! local_user())
return;
- if(x($_GET,'ignore') && intval($_GET['ignore'])) {
- q("insert into gcign ( uid, gcid ) values ( %d, %d ) ",
+ if(x($_GET,'ignore')) {
+ q("insert into xign ( uid, xchan ) values ( %d, '%s' ) ",
intval(local_user()),
- intval($_GET['ignore'])
+ dbesc($_GET['ignore'])
);
}
}
+function suggest_aside(&$a) {
+ $a->set_widget('follow', follow_widget());
+ $a->set_widget('findpeople', findpeople_widget());
+}
function suggest_content(&$a) {
@@ -31,38 +35,36 @@ function suggest_content(&$a) {
$_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd;
- $a->page['aside'] .= follow_widget();
- $a->page['aside'] .= findpeople_widget();
+ $r = suggestion_query(local_user(),get_observer_hash());
+ if(! $r) {
+ info( t('No suggestions available. If this is a new site, please try again in 24 hours.'));
+ return;
+ }
- $o .= '<h2>' . t('Friend Suggestions') . '</h2>';
+ $arr = array();
+ foreach($r as $rr) {
- $r = suggestion_query(local_user());
+ $connlnk = $a->get_baseurl() . '/follow/?url=' . $rr['xchan_addr'];
- if(! count($r)) {
- $o .= t('No suggestions available. If this is a new site, please try again in 24 hours.');
- return $o;
+ $arr[] = array(
+ 'url' => chanlink_url($rr['xchan_url']),
+ 'name' => $rr['xchan_name'],
+ 'photo' => $rr['xchan_photo_m'],
+ 'ignlnk' => $a->get_baseurl() . '/suggest?ignore=' . $rr['xchan_hash'],
+ 'conntxt' => t('Connect'),
+ 'connlnk' => $connlnk,
+ 'ignore' => t('Ignore/Hide')
+ );
}
- $tpl = get_markup_template('suggest_friends.tpl');
- foreach($r as $rr) {
-
- $connlnk = $a->get_baseurl() . '/follow/?url=' . (($rr['connect']) ? $rr['connect'] : $rr['url']);
-
- $o .= replace_macros($tpl,array(
- '$url' => zid($rr['url']),
- '$name' => $rr['name'],
- '$photo' => $rr['photo'],
- '$ignlnk' => $a->get_baseurl() . '/suggest?ignore=' . $rr['id'],
- '$conntxt' => t('Connect'),
- '$connlnk' => $connlnk,
- '$ignore' => t('Ignore/Hide')
- ));
- }
+ $o = replace_macros(get_markup_template('suggest_page.tpl'),array(
+ '$title' => t('Channel Suggestions'),
+ '$entries' => $arr
+ ));
- $o .= cleardiv();
-// $o .= paginate($a);
return $o;
+
}
diff --git a/mod/tagger.php b/mod/tagger.php
index 9c36a8b09..ec5c92184 100644
--- a/mod/tagger.php
+++ b/mod/tagger.php
@@ -11,6 +11,8 @@ function tagger_content(&$a) {
return;
}
+ $observer_hash = get_observer_hash();
+
$term = notags(trim($_GET['term']));
// no commas allowed
$term = str_replace(array(',',' '),array('','_'),$term);
@@ -23,11 +25,12 @@ function tagger_content(&$a) {
logger('tagger: tag ' . $term . ' item ' . $item_id);
- $r = q("SELECT * FROM `item` WHERE `id` = '%s' LIMIT 1",
- dbesc($item_id)
+ $r = q("SELECT * FROM item left join xchan on xchan_hash = author_xchan WHERE id = '%s' and uid = %d LIMIT 1",
+ dbesc($item_id),
+ intval(local_user())
);
- if(! $item_id || (! count($r))) {
+ if((! $item_id) || (! $r)) {
logger('tagger: no item ' . $item_id);
return;
}
@@ -36,89 +39,82 @@ function tagger_content(&$a) {
$owner_uid = $item['uid'];
- $r = q("select `nickname`,`blocktags` from user where uid = %d limit 1",
- intval($owner_uid)
- );
- if(count($r)) {
- $owner_nick = $r[0]['nickname'];
- $blocktags = $r[0]['blocktags'];
+ switch($item['resource_type']) {
+ case 'photo':
+ $targettype = ACTIVITY_OBJ_PHOTO;
+ $post_type = t('photo');
+ break;
+ case 'event':
+ $targgettype = ACTIVITY_OBJ_EVENT;
+ $post_type = t('event');
+ break;
+ default:
+ $targettype = ACTIVITY_OBJ_NOTE;
+ $post_type = t('status');
+ if($item['mid'] != $item['parent_mid'])
+ $post_type = t('comment');
+ break;
}
- if(local_user() != $owner_uid)
- return;
- $r = q("select * from contact where self = 1 and uid = %d limit 1",
- intval(local_user())
- );
- if(count($r))
- $contact = $r[0];
- else {
- logger('tagger: no contact_id');
- return;
- }
+ $links = array(array('rel' => 'alternate','type' => 'text/html',
+ 'href' => z_root() . '/display/' . $item['mid']));
- $uri = item_message_id();
- $xterm = xmlify($term);
- $post_type = (($item['resource_id']) ? t('photo') : t('status'));
- $targettype = (($item['resource_id']) ? ACTIVITY_OBJ_PHOTO : ACTIVITY_OBJ_NOTE );
+ $target = json_encode(array(
+ 'type' => $targettype,
+ 'id' => $item['mid'],
+ 'link' => $links,
+ 'title' => $item['title'],
+ 'content' => $item['body'],
+ 'created' => $item['created'],
+ 'edited' => $item['edited'],
+ 'author' => array(
+ 'name' => $item['xchan_name'],
+ 'address' => $item['xchan_addr'],
+ 'guid' => $item['xchan_guid'],
+ 'guid_sig' => $item['xchan_guid_sig'],
+ 'link' => array(
+ array('rel' => 'alternate', 'type' => 'text/html', 'href' => $item['xchan_url']),
+ array('rel' => 'photo', 'type' => $item['xchan_photo_mimetype'], 'href' => $item['xchan_photo_m'])),
+ ),
+ ));
- $link = xmlify('<link rel="alternate" type="text/html" href="'
- . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . '" />' . "\n") ;
- $body = xmlify($item['body']);
- $target = <<< EOT
- <target>
- <type>$targettype</type>
- <local>1</local>
- <id>{$item['uri']}</id>
- <link>$link</link>
- <title></title>
- <content>$body</content>
- </target>
-EOT;
+ $link = xmlify('<link rel="alternate" type="text/html" href="'
+ . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . '" />' . "\n") ;
$tagid = $a->get_baseurl() . '/search?tag=' . $term;
$objtype = ACTIVITY_OBJ_TAGTERM;
- $obj = <<< EOT
- <object>
- <type>$objtype</type>
- <local>1</local>
- <id>$tagid</id>
- <link>$tagid</link>
- <title>$xterm</title>
- <content>$xterm</content>
- </object>
-EOT;
+ $obj = json_encode(array(
+ 'type' => $objtype,
+ 'id' => $tagid,
+ 'link' => array(array('rel' => 'alternate','type' => 'text/html', 'href' => $tagid)),
+ 'title' => $term,
+ 'content' => $term
+ ));
$bodyverb = t('%1$s tagged %2$s\'s %3$s with %4$s');
- if(! isset($bodyverb))
- return;
+ $termlink = html_entity_decode('&#x2317;') . '[zrl=' . $a->get_baseurl() . '/search?tag=' . urlencode($term) . ']'. $term . '[/zrl]';
- $termlink = html_entity_decode('&#x2317;') . '[url=' . $a->get_baseurl() . '/search?tag=' . urlencode($term) . ']'. $term . '[/url]';
+ $channel = $a->get_channel();
$arr = array();
- $arr['uri'] = $uri;
- $arr['uid'] = $owner_uid;
- $arr['contact-id'] = $contact['id'];
- $arr['type'] = 'activity';
- $arr['wall'] = $item['wall'];
- $arr['gravity'] = GRAVITY_COMMENT;
- $arr['parent'] = $item['id'];
- $arr['parent_uri'] = $item['uri'];
- $arr['owner-name'] = $item['author-name'];
- $arr['owner-link'] = $item['author-link'];
- $arr['owner-avatar'] = $item['author-avatar'];
- $arr['author-name'] = $contact['name'];
- $arr['author-link'] = $contact['url'];
- $arr['author-avatar'] = $contact['thumb'];
+ $arr['owner_xchan'] = $item['owner_xchan'];
+ $arr['author_xchan'] = $channel['channel_hash'];
+
+
+ $arr['item_flags'] = ITEM_ORIGIN;
+ if($item['item_flags'] & ITEM_WALL)
+ $arr['item_flags'] |= ITEM_WALL;
- $ulink = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
- $alink = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]';
- $plink = '[url=' . $item['plink'] . ']' . $post_type . '[/url]';
+ $ulink = '[zrl=' . $channel['xchan_url'] . ']' . $channel['channel_name'] . '[/zrl]';
+ $alink = '[zrl=' . $item['xchan_url'] . ']' . $item['xchan_name'] . '[/zrl]';
+ $plink = '[zrl=' . $item['plink'] . ']' . $post_type . '[/zrl]';
+
$arr['body'] = sprintf( $bodyverb, $ulink, $alink, $plink, $termlink );
$arr['verb'] = ACTIVITY_TAG;
@@ -126,65 +122,14 @@ EOT;
$arr['target'] = $target;
$arr['obj_type'] = $objtype;
$arr['object'] = $obj;
- $arr['private'] = $item['private'];
- $arr['allow_cid'] = $item['allow_cid'];
- $arr['allow_gid'] = $item['allow_gid'];
- $arr['deny_cid'] = $item['deny_cid'];
- $arr['deny_gid'] = $item['deny_gid'];
- $arr['visible'] = 1;
- $arr['unseen'] = 1;
- $arr['origin'] = 1;
-
- $post_id = item_store($arr);
-
- q("UPDATE `item` set plink = '%s' where id = %d limit 1",
- dbesc($a->get_baseurl() . '/display/' . $owner_nick . '/' . $post_id),
- intval($post_id)
- );
-
-
- if(! $item['visible']) {
- $r = q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d AND `uid` = %d LIMIT 1",
- intval($item['id']),
- intval($owner_uid)
- );
- }
-
- if((! $blocktags) && (! stristr($item['tag'], ']' . $term . '[' ))) {
- q("update item set tag = '%s' where id = %d limit 1",
- dbesc($item['tag'] . (strlen($item['tag']) ? ',' : '') . '#[url=' . $a->get_baseurl() . '/search?tag=' . $term . ']'. $term . '[/url]'),
- intval($item['id'])
- );
- }
-
- // if the original post is on this site, update it.
-
- $r = q("select `tag`,`id`,`uid` from item where `origin` = 1 AND `uri` = '%s' LIMIT 1",
- dbesc($item['uri'])
- );
- if(count($r)) {
- $x = q("SELECT `blocktags` FROM `user` WHERE `uid` = %d limit 1",
- intval($r[0]['uid'])
- );
- if(count($x) && !$x[0]['blocktags'] && (! stristr($r[0]['tag'], ']' . $term . '['))) {
- q("update item set tag = '%s' where id = %d limit 1",
- dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . '#[url=' . $a->get_baseurl() . '/search?tag=' . $term . ']'. $term . '[/url]'),
- intval($r[0]['id'])
- );
- }
-
- }
-
-
- $arr['id'] = $post_id;
-
- call_hooks('post_local_end', $arr);
+ $arr['parent_mid'] = $item['mid'];
+
+ store_item_tag($item['uid'],$item['id'],TERM_OBJ_POST,TERM_HASHTAG,$term,$tagid);
+ $ret = post_activity_item($arr);
- proc_run('php',"include/notifier.php","tag","$post_id");
+ if($ret['success'])
+ proc_run('php','include/notifier.php','tag',$ret['activity']['id']);
killme();
- return; // NOTREACHED
-
-
} \ No newline at end of file
diff --git a/mod/thing.php b/mod/thing.php
new file mode 100644
index 000000000..91bdca78a
--- /dev/null
+++ b/mod/thing.php
@@ -0,0 +1,196 @@
+<?php /** @file */
+
+require_once('include/items.php');
+
+
+function thing_init(&$a) {
+
+ if(! local_user())
+ return;
+
+ $account_id = $a->get_account();
+ $channel = $a->get_channel();
+
+
+ $name = escape_tags($_REQUEST['term']);
+ $verb = escape_tags($_REQUEST['verb']);
+ $profile_guid = escape_tags($_REQUEST['profile']);
+ $url = $_REQUEST['link'];
+ $photo = $_REQUEST['photo'];
+
+ $hash = random_string();
+
+
+ $verbs = obj_verbs();
+
+ /**
+ * verbs: [0] = first person singular, e.g. "I want", [1] = 3rd person singular, e.g. "Bill wants"
+ * We use the first person form when creating an activity, but the third person for use in activities
+ * FIXME: There is no accounting for verb gender for languages where this is significant. We may eventually
+ * require obj_verbs() to provide full conjugations and specify which form to use in the $_REQUEST params to this module.
+ */
+
+ $translated_verb = $verbs[$verb][1];
+
+ /**
+ * The site administrator can do things that normals cannot.
+ * This is restricted because it will likely cause
+ * an activitystreams protocol violation and the activity might
+ * choke in some other network and result in unnecessary
+ * support requests. It isn't because we're trying to be heavy-handed
+ * about what you can and can't do.
+ */
+
+ if(! $translated_verb) {
+ if(is_site_admin())
+ $translated_verb = $verb;
+ }
+
+ /**
+ * Things, objects: We do not provide definite (a, an) or indefinite (the) articles or singular/plural designators
+ * That needs to be specified in your thing. e.g. Mike has "a carrot", Greg wants "balls", Bob likes "the Boston Red Sox".
+ */
+
+ /**
+ * Future work on this module might produce more complex activities with targets, e.g. Phillip likes Karen's moustache
+ * and to describe other non-thing objects like channels, such as Karl wants Susan - where Susan represents a channel profile.
+ */
+
+ if((! $name) || (! $translated_verb))
+ return;
+
+ $sql = (($profile_guid) ? " and profile_guid = '" . dbesc($profile_guid) . "' " : " and is_default = 1 ");
+ $p = q("select profile_guid, is_default from profile where uid = %d $sql limit 1",
+ intval(local_user())
+ );
+ if($p)
+ $profile = $p[0];
+ else
+ return;
+
+
+ $r = q("select * from term where uid = %d and otype = %d and type = %d and term = '%s' limit 1",
+ intval(local_user()),
+ intval(TERM_OBJ_THING),
+ intval(TERM_THING),
+ dbesc($name)
+ );
+ if(! $r) {
+ $r = q("insert into term ( aid, uid, oid, otype, type, term, url, imgurl, term_hash )
+ values( %d, %d, %d, %d, %d, '%s', '%s', '%s', '%s' ) ",
+ intval($account_id),
+ intval(local_user()),
+ 0,
+ intval(TERM_OBJ_THING),
+ intval(TERM_THING),
+ dbesc($name),
+ dbesc(($url) ? $url : z_root() . '/thing/' . $hash),
+ dbesc(($photo) ? $photo : ''),
+ dbesc($hash)
+ );
+ $r = q("select * from term where uid = %d and otype = %d and type = %d and term = '%s' limit 1",
+ intval(local_user()),
+ intval(TERM_OBJ_THING),
+ intval(TERM_THING),
+ dbesc($name)
+ );
+ }
+ $term = $r[0];
+
+ $r = q("insert into obj ( obj_page, obj_verb, obj_type, obj_channel, obj_obj) values ('%s','%s', %d, %d, '%s') ",
+ dbesc($profile['profile_guid']),
+ dbesc($verb),
+ intval(TERM_OBJ_THING),
+ intval(local_user()),
+ dbesc($term['term_hash'])
+ );
+
+ if(! $r) {
+ notice( t('Object store: failed'));
+ return;
+ }
+
+ info( t('thing/stuff added'));
+
+ $arr = array();
+ $links = array(array('rel' => 'alternate','type' => 'text/html',
+ 'href' => $term['url']));
+
+ $objtype = ACTIVITY_OBJ_THING;
+
+ $obj = json_encode(array(
+ 'type' => $objtype,
+ 'id' => $term['url'],
+ 'link' => $links,
+ 'title' => $term['term'],
+ 'content' => $term['term']
+ ));
+
+ $bodyverb = str_replace('OBJ: ', '',t('OBJ: %1$s %2$s %3$s'));
+
+ $arr['owner_xchan'] = $channel['channel_hash'];
+ $arr['author_xchan'] = $channel['channel_hash'];
+
+
+ $arr['item_flags'] = ITEM_ORIGIN|ITEM_WALL|ITEM_THREAD_TOP;
+
+ $ulink = '[zrl=' . $channel['xchan_url'] . ']' . $channel['channel_name'] . '[/zrl]';
+ $plink = '[zrl=' . $term['url'] . ']' . $term['term'] . '[/zrl]';
+
+ $arr['body'] = sprintf( $bodyverb, $ulink, $translated_verb, $plink );
+
+ $arr['verb'] = $verb;
+ $arr['obj_type'] = $objtype;
+ $arr['object'] = $obj;
+
+ if(! $profile['is_default']) {
+ $arr['item_private'] = true;
+ $str = '';
+ $r = q("select abook_hash from abook where abook_channel = %d and abook_profile = '%s'",
+ intval(local_user()),
+ dbesc($profile_guid)
+ );
+ if($r) {
+ $arr['allow_cid'] = '';
+ foreach($r as $rr)
+ $arr['allow_cid'] .= '<' . $rr['abook_hash'] . '>';
+ }
+ else
+ $arr['allow_cid'] = '<' . get_observer_hash() . '>';
+ }
+
+ $ret = post_activity_item($arr);
+
+ if($ret['success'])
+ proc_run('php','include/notifier.php','tag',$ret['activity']['id']);
+
+}
+
+
+function thing_content(&$a) {
+
+ /* placeholders */
+
+ if(argc() > 1) {
+ return t('not yet implemented.');
+ }
+
+ require_once('include/contact_selectors.php');
+
+ $o .= replace_macros(get_markup_template('thing_input.tpl'),array(
+ '$thing_hdr' => t('Add Stuff to your Profile'),
+ '$multiprof' => feature_enabled(local_user(),'multi_profiles'),
+ '$profile_lbl' => t('Select a profile'),
+ '$profile_select' => contact_profile_assign(''),
+ '$verb_lbl' => t('Select a category of stuff. e.g. I ______ something'),
+ '$verb_select' => obj_verb_selector(),
+ '$thing_lbl' => t('Name of thing or stuff e.g. something'),
+ '$url_lbl' => t('URL of thing or stuff (optional)'),
+ '$img_lbl' => t('URL for photo of thing or stuff (optional)'),
+ '$submit' => t('Submit')
+ ));
+
+ return $o;
+
+
+}
diff --git a/mod/update_channel.php b/mod/update_channel.php
index 19226297b..bdde0a3be 100644
--- a/mod/update_channel.php
+++ b/mod/update_channel.php
@@ -39,15 +39,17 @@ function update_channel_content(&$a) {
$replace = "<img\${1} dst=\"\${2}\"";
$text = preg_replace($pattern, $replace, $text);
- $replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />';
- $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
- $text = preg_replace($pattern, $replace, $text);
- $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
- $text = preg_replace($pattern, $replace, $text);
- $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
- $text = preg_replace($pattern, $replace, $text);
- $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
- $text = preg_replace($pattern, $replace, $text);
+ if(! $load) {
+ $replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />';
+ $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ }
/**
* reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well
diff --git a/mod/update_display.php b/mod/update_display.php
index c8eb9c3a3..5802852bb 100644
--- a/mod/update_display.php
+++ b/mod/update_display.php
@@ -16,11 +16,12 @@ function update_display_content(&$a) {
echo (($_GET['msie'] == 1) ? '<div>' : '<section>');
- $text = display_content($a,$profile_uid, $load);
- $pattern = "/<img([^>]*) src=\"([^\"]*)\"/";
- $replace = "<img\${1} dst=\"\${2}\"";
- $text = preg_replace($pattern, $replace, $text);
+ $text = display_content($a,$profile_uid, $load);
+ $pattern = "/<img([^>]*) src=\"([^\"]*)\"/";
+ $replace = "<img\${1} dst=\"\${2}\"";
+ $text = preg_replace($pattern, $replace, $text);
+ if(! $load) {
$replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />';
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
@@ -30,9 +31,9 @@ function update_display_content(&$a) {
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
$text = preg_replace($pattern, $replace, $text);
+ }
-
- echo str_replace("\t",' ',$text);
+ echo str_replace("\t",' ',$text);
echo (($_GET['msie'] == 1) ? '</div>' : '</section>');
echo "</body></html>\r\n";
// logger('update_display: ' . $text);
diff --git a/mod/update_network.php b/mod/update_network.php
index 16de19365..bb6245f65 100644
--- a/mod/update_network.php
+++ b/mod/update_network.php
@@ -19,16 +19,17 @@ function update_network_content(&$a) {
$replace = "<img\${1} dst=\"\${2}\"";
$text = preg_replace($pattern, $replace, $text);
- $replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />';
- $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
- $text = preg_replace($pattern, $replace, $text);
- $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
- $text = preg_replace($pattern, $replace, $text);
- $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
- $text = preg_replace($pattern, $replace, $text);
- $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
- $text = preg_replace($pattern, $replace, $text);
-
+ if(! $load) {
+ $replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />';
+ $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ }
echo str_replace("\t",' ',$text);
echo (($_GET['msie'] == 1) ? '</div>' : '</section>');
diff --git a/mod/update_search.php b/mod/update_search.php
new file mode 100644
index 000000000..ec7599b79
--- /dev/null
+++ b/mod/update_search.php
@@ -0,0 +1,66 @@
+<?php
+
+/**
+ * Module: update_profile
+ * Purpose: AJAX synchronisation of search page
+ *
+ */
+
+
+require_once('mod/search.php');
+
+function update_search_content(&$a) {
+
+ $profile_uid = intval($_GET['p']);
+ if(! $profile_uid)
+ $profile_uid = (-1);
+
+ $load = (((argc() > 1) && (argv(1) == 'load')) ? 1 : 0);
+
+ header("Content-type: text/html");
+ echo "<!DOCTYPE html><html><body>\r\n";
+
+ /**
+ * We can remove this hack once Internet Explorer recognises HTML5 natively
+ */
+
+ echo (($_GET['msie'] == 1) ? '<div>' : '<section>');
+
+ /**
+ *
+ * Grab the page inner contents by calling the content function from the profile module directly,
+ * but move any image src attributes to another attribute name. This is because
+ * some browsers will prefetch all the images for the page even if we don't need them.
+ * The only ones we need to fetch are those for new page additions, which we'll discover
+ * on the client side and then swap the image back.
+ *
+ */
+
+ $text = search_content($a,$profile_uid,$load);
+
+ $pattern = "/<img([^>]*) src=\"([^\"]*)\"/";
+ $replace = "<img\${1} dst=\"\${2}\"";
+ $text = preg_replace($pattern, $replace, $text);
+
+ if(! $load) {
+ $replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />';
+ $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ }
+
+ /**
+ * reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well
+ */
+
+ echo str_replace("\t",' ',$text);
+ echo (($_GET['msie'] == 1) ? '</div>' : '</section>');
+ echo "</body></html>\r\n";
+ killme();
+
+} \ No newline at end of file
diff --git a/mod/viewconnections.php b/mod/viewconnections.php
index e6c739562..9c85d63b6 100644
--- a/mod/viewconnections.php
+++ b/mod/viewconnections.php
@@ -63,18 +63,19 @@ function viewconnections_content(&$a) {
foreach($r as $rr) {
$url = zid($rr['xchan_url']);
-
- $contacts[] = array(
- 'id' => $rr['abook_id'],
- 'img_hover' => sprintf( t('Visit %s\'s profile [%s]'), $rr['xchan_name'], $rr['xchan_url']),
- 'thumb' => $rr['xchan_photo_m'],
- 'name' => substr($rr['xchan_name'],0,20),
- 'username' => $rr['xchan_addr'],
- 'url' => $url,
- 'sparkle' => '',
- 'itemurl' => $rr['url'],
- 'network' => '',
- );
+ if($url) {
+ $contacts[] = array(
+ 'id' => $rr['abook_id'],
+ 'img_hover' => sprintf( t('Visit %s\'s profile [%s]'), $rr['xchan_name'], $rr['xchan_url']),
+ 'thumb' => $rr['xchan_photo_m'],
+ 'name' => substr($rr['xchan_name'],0,20),
+ 'username' => $rr['xchan_addr'],
+ 'link' => $url,
+ 'sparkle' => '',
+ 'itemurl' => $rr['url'],
+ 'network' => '',
+ );
+ }
}
diff --git a/mod/wall_upload.php b/mod/wall_upload.php
index cee40744f..dd5d760b3 100644
--- a/mod/wall_upload.php
+++ b/mod/wall_upload.php
@@ -1,6 +1,6 @@
<?php
-require_once('Photo.php');
+require_once('include/photo/photo_driver.php');
require_once('include/photos.php');
@@ -52,8 +52,11 @@ function wall_upload_post(&$a) {
$m = $ret['body'];
+ // This might make Friendica for Android uploads work again, as it won't have any knowledge of zrl and zmg tags
+ // and these tags probably aren't useful with other client apps.
+
if($using_api)
- return($ret['body']);
+ return(str_replace(array('zrl','zmg'),array('url','img'),$ret['body']));
else
echo "\n\n" . $ret['body'] . "\n\n";
killme();
diff --git a/mod/webpages.php b/mod/webpages.php
new file mode 100644
index 000000000..f2026ea0b
--- /dev/null
+++ b/mod/webpages.php
@@ -0,0 +1,76 @@
+<?php
+
+function webpages_init(&$a) {
+
+ if(argc() > 1)
+ $which = argv(1);
+ else {
+ notice( t('Requested profile is not available.') . EOL );
+ $a->error = 404;
+ return;
+ }
+
+ $profile = 0;
+ $channel = $a->get_channel();
+
+ if((local_user()) && (argc() > 2) && (argv(2) === 'view')) {
+ $which = $channel['channel_address'];
+ $profile = argv(1);
+ }
+
+ profile_load($a,$which,$profile);
+
+}
+
+function webpages_content(&$a) {
+
+// We can do better, but since editing only works for local users and all posts are webpages, return anyone else for now.
+
+if (!local_user()) return;
+
+
+// Create a status editor (for now - we'll need a WYSIWYG eventually) to create pages
+require_once ('include/conversation.php');
+ $x = array(
+ 'webpage' => 1,
+ 'is_owner' => true,
+ 'nickname' => $a->profile['channel_address'],
+ 'lockstate' => (($group || $cid || $channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
+ 'bang' => (($group || $cid) ? '!' : ''),
+ 'visitor' => 'block',
+ 'profile_uid' => local_user()
+ );
+
+ $o .= status_editor($a,$x);
+
+//Get a list of webpages. We can't display all them because endless scroll makes that unusable, so just list titles and an edit link.
+// FIXME - we should sort these results, but it's not obvious what order yet. Alphabetical? Created order?
+
+$r = q("select * from item_id where uid = %d and service = 'WEBPAGE'",
+ intval(local_user())
+);
+
+ $pages = null;
+
+ if($r) {
+ $pages = array();
+ foreach($r as $rr) {
+ $pages[$rr['iid']][] = array('url' => $rr['iid'],'title' => $rr['sid']);
+ }
+ }
+
+
+//Build the base URL for edit links
+ $url = z_root() . "/editwebpage/" . $a->profile['channel_address'];
+// This isn't pretty, but it works. Until I figure out what to do with the UI, it's Good Enough(TM).
+ return $o . replace_macros(get_markup_template("webpagelist.tpl"), array(
+ '$baseurl' => $url,
+ '$edit' => t('Edit'),
+ '$pages' => $pages,
+ '$channel' => $a->profile['channel_address'],
+ '$view' => t('View'),
+
+ ));
+
+
+}
diff --git a/mod/wfinger.php b/mod/wfinger.php
new file mode 100644
index 000000000..33d2fe478
--- /dev/null
+++ b/mod/wfinger.php
@@ -0,0 +1,99 @@
+<?php
+
+function wfinger_init(&$a) {
+
+ $result = array();
+
+ $scheme = '';
+
+ if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS'])
+ $scheme = 'https';
+ elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443))
+ $scheme = 'https';
+
+ // Don't complain to me - I'm just implementing the spec.
+
+ if($scheme !== 'https') {
+ header($_SERVER["SERVER_PROTOCOL"] . ' ' . 500 . ' ' . 'Webfinger requires HTTPS');
+ killme();
+ }
+
+ $resource = $_REQUEST['resource'];
+
+ header('Access-Control-Allow-Origin: *');
+
+ header('Content-type: application/jrd+json');
+
+ $r = null;
+
+ if($resource) {
+
+ if(strpos($resource,'acct:') === 0) {
+ $channel = str_replace('acct:','',$resource);
+ $channel = substr($channel,0,strpos($channel,'@'));
+ }
+ if(strpos($resource,'http') === 0) {
+ $channel = str_replace('~','',basename($resource));
+ }
+
+ $r = q("select * from channel left join xchan on channel_hash = xchan_hash
+ where channel_address = '%s' limit 1",
+ dbesc($channel)
+ );
+
+ }
+
+ if($resource && $r) {
+
+ $result['subject'] = $resource;
+
+ $aliases = array(
+ 'acct:' . $r[0]['channel_address'] . '@' . $a->get_hostname(),
+ z_root() . '/channel/' . $r[0]['channel_address'],
+ z_root() . '/~' . $r[0]['channel_address']
+ );
+
+ $result['aliases'] = array();
+
+ foreach($aliases as $alias)
+ if($alias != $resource)
+ $result['aliases'][] = $alias;
+
+
+ $result['links'] = array(
+
+ array(
+ 'rel' => 'http://webfinger.example/rel/avatar',
+ 'type' => $r[0]['xchan_photo_mimetype'],
+ 'href' => $r[0]['xchan_photo_l']
+ ),
+
+ array(
+ 'rel' => 'http://webfinger.example/rel/profile-page',
+ 'href' => z_root() . '/profile/' . $r[0]['channel_address'],
+ ),
+
+ array(
+ 'rel' => 'http://webfinger.example/rel/blog',
+ 'href' => z_root() . '/channel/' . $r[0]['channel_address'],
+ ),
+
+ array(
+ 'rel' => 'http://purl.org/zot/protocol',
+ 'href' => z_root() . '/.well-known/zot-info' . '?zaddr=' . $r[0]['xchan_addr'],
+ )
+ );
+
+ }
+ else {
+ header($_SERVER["SERVER_PROTOCOL"] . ' ' . 400 . ' ' . 'Bad Request');
+ killme();
+ }
+
+ $arr = array('channel' => $r[0], 'request' => $_REQUEST, 'result' => $result);
+ call_hooks('webfinger',$arr);
+
+ echo json_encode($arr['result']);
+ killme();
+
+} \ No newline at end of file
diff --git a/mod/zfinger.php b/mod/zfinger.php
index 74353e8f9..a3da62162 100644
--- a/mod/zfinger.php
+++ b/mod/zfinger.php
@@ -91,6 +91,9 @@ function zfinger_init(&$a) {
$profile['birthday'] = $p[0]['dob'];
if($profile['birthday'] != '0000-00-00')
$profile['next_birthday'] = z_birthday($p[0]['dob'],$e['channel_timezone']);
+
+ if($age = age($p[0]['dob'],$e['channel_timezone'],''))
+ $profile['age'] = $age;
$profile['gender'] = $p[0]['gender'];
$profile['marital'] = $p[0]['marital'];
$profile['sexual'] = $p[0]['sexual'];
@@ -145,6 +148,12 @@ function zfinger_init(&$a) {
// array of (verified) hubs this channel uses
$ret['locations'] = array();
+
+
+
+
+
+
$x = zot_get_hubloc(array($e['channel_hash']));
if($x && count($x)) {
foreach($x as $hub) {
@@ -164,6 +173,8 @@ function zfinger_init(&$a) {
$ret['site'] = array();
$ret['site']['url'] = z_root();
+ $ret['site']['url_sig'] = base64url_encode(rsa_sign(z_root(),$e['channel_prvkey']));
+
$dirmode = get_config('system','directory_mode');
if(($dirmode === false) || ($dirmode == DIRECTORY_MODE_NORMAL))
$ret['site']['directory_mode'] = 'normal';
@@ -175,7 +186,46 @@ function zfinger_init(&$a) {
$ret['site']['directory_mode'] = 'standalone';
if($dirmode != DIRECTORY_MODE_NORMAL)
$ret['site']['directory_url'] = z_root() . '/dirsearch';
-
+
+
+ // hide detailed site information if you're off the grid
+
+ if($dirmode != DIRECTORY_MODE_STANDALONE) {
+
+ $register_policy = intval(get_config('system','register_policy'));
+
+
+ if($register_policy == REGISTER_CLOSED)
+ $ret['site']['register_policy'] = 'closed';
+ if($register_policy == REGISTER_APPROVE)
+ $ret['site']['register_policy'] = 'approve';
+ if($register_policy == REGISTER_OPEN)
+ $ret['site']['register_policy'] = 'open';
+
+ require_once('include/account.php');
+ $ret['site']['accounts'] = account_total();
+
+ require_once('include/identity.php');
+ $ret['site']['channels'] = channel_total();
+
+
+ $ret['site']['version'] = RED_PLATFORM . ' ' . RED_VERSION . '[' . DB_UPDATE_VERSION . ']';
+
+ $ret['site']['admin'] = get_config('system','admin_email');
+
+ $visible_plugins = array();
+ if(is_array($a->plugins) && count($a->plugins)) {
+ $r = q("select * from addon where hidden = 0");
+ if($r)
+ foreach($r as $rr)
+ $visible_plugins[] = $rr['name'];
+ }
+
+ $ret['site']['plugins'] = $visible_plugins;
+ $ret['site']['sitehash'] = get_config('system','location_hash');
+ $ret['site']['sitename'] = get_config('system','sitename');
+
+ }
json_return_and_die($ret);
} \ No newline at end of file
diff --git a/mod/zotfeed.php b/mod/zotfeed.php
index 76a860139..2ca049563 100644
--- a/mod/zotfeed.php
+++ b/mod/zotfeed.php
@@ -9,7 +9,7 @@ function zotfeed_init(&$a) {
$mindate = (($_REQUEST['mindate']) ? datetime_convert('UTC','UTC',$_REQUEST['mindate']) : '');
if(! $mindate)
- $mindate = '0000-00-00 00:00:00';
+ $mindate = datetime_convert('UTC','UTC', 'now - 1 month');
if(get_config('system','block_public') && (! get_account_id()) && (! remote_user())) {
$result['message'] = 'Public access denied';
diff --git a/mod/zperms.php b/mod/zperms.php
deleted file mode 100644
index 6a7097cd6..000000000
--- a/mod/zperms.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-function zperms_init(&$a) {
-
- require_once('include/zot.php');
- require_once('include/Contact.php');
- require_once('include/crypto.php');
-
- $ret = array('success' => false);
-
- $zguid = ((x($_REQUEST,'guid')) ? $_REQUEST['guid'] : '');
- $zaddr = ((x($_REQUEST,'address')) ? $_REQUEST['address'] : '');
- $ztarget = ((x($_REQUEST,'target')) ? $_REQUEST['target'] : '');
- $zsig = ((x($_REQUEST,'target_sig')) ? $_REQUEST['target_sig'] : '');
-
- $r = null;
-
- if(strlen($zguid)) {
- $r = q("select * from channel where channel_guid = '%s' limit 1",
- dbesc($zguid)
- );
- }
- elseif(strlen($zaddr)) {
- $r = q("select * from channel where channel_address = '%s' limit 1",
- dbesc($zaddr)
- );
- }
- else {
- $ret['message'] = 'Invalid request';
- json_return_and_die($ret);
- }
-
- if(! ($r && count($r))) {
- $ret['message'] = 'Item not found.';
- json_return_and_die($ret);
- }
- $e = $r[0];
-
- $id = $e['channel_id'];
- $r = q("select contact.*, profile.*
- from contact left join profile on contact.uid = profile.uid
- where contact.uid = %d && contact.self = 1 and profile.is_default = 1 limit 1",
- intval($id)
- );
- if($r && count($r)) {
- $profile = $r[0];
- }
-
-
-
- $ret['success'] = true;
- $ret['guid'] = $e['channel_guid'];
- $ret['guid_sig'] = base64url_encode(rsa_sign($e['channel_guid'],$e['channel_prvkey']));
- $ret['key'] = $e['channel_pubkey'];
- $ret['name'] = $e['channel_name'];
- $ret['address'] = $e['channel_address'];
- $ret['target'] = $ztarget;
- $ret['target_sig'] = $zsig;
- $ret['permissions'] = map_perms($r[0],$ztarget,$zsig);
-
- $ret['profile'] = $profile;
-
- // array of (verified) hubs this channel uses
-
- $ret['hubs'] = array();
- $x = zot_get_hubloc(array($e['channel_guid']));
- if($x && count($x)) {
- foreach($x as $hub) {
- if(! ($hub['hubloc_flags'] & HUBLOC_FLAGS_UNVERIFIED)) {
- $ret['hubs'][] = array(
- 'primary' => (($hub['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY) ? true : false),
- 'url' => $hub['hubloc_url'],
- /// hmmm we probably shouldn't sign somebody else's hub. FIXME
- 'url_sig' => base64url_encode(rsa_sign($hub['hubloc_url'],$e['channel_prvkey'])),
- 'callback' => $hub['hubloc_callback'],
- 'sitekey' => $hub['hubloc_sitekey']
- );
- }
- }
- }
-
- json_return_and_die($ret);
-
-}
diff --git a/sample-lighttpd.conf b/sample-lighttpd.conf
new file mode 100644
index 000000000..213719ac9
--- /dev/null
+++ b/sample-lighttpd.conf
@@ -0,0 +1,85 @@
+# See http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions
+
+### LOAD MODULES
+server.modules = (
+ "mod_access",
+ "mod_accesslog",
+ "mod_fastcgi",
+ "mod_redirect",
+ "mod_rewrite"
+)
+
+### BASIC STUFF
+server.port = 80
+
+server.username = "http"
+
+server.groupname = "http"
+
+server.document-root = "/path/to/your/www/files" #adjust to your setup
+
+server.errorlog = "/var/log/lighttpd/error.log"
+
+accesslog.filename = "/var/log/lighttpd/access.log"
+
+### DISABLE DIR LISTING
+dir-listing.activate = "disable"
+
+### DISABLE REJECT EXPECT HEADER
+### (needed for curl POST requests - otherwise they fail with error 417)
+server.reject-expect-100-with-417 = "disable"
+
+### DEFINE SUPPORTED INDEX FILENAMES
+index-file.names = (
+ "index.html",
+ "index.htm",
+ "index.php"
+)
+
+### DEFINE SUPPORTED MIME TYPES
+mimetype.assign = (
+ ".html" => "text/html",
+ ".htm" => "text/html",
+ ".css" => "text/css",
+ ".txt" => "text/plain",
+ ".svg" => "image/svg+xml",
+ ".jpg" => "image/jpeg",
+ ".png" => "image/png"
+)
+
+### DONT EVER SERVE FILES WITH EXTENSION
+static-file.exclude-extensions = ( ".php" )
+
+### PHP WITH PHP-FPM
+### (needs php-fpm installed and running)
+fastcgi.server = (
+ ".php" => (
+ "localhost" => (
+ "socket" => "/run/php-fpm/php-fpm.sock",
+ "broken-scriptfilename" => "enable",
+ "allow-x-sendfile" => "enable"
+ )
+ )
+)
+
+### ENABLE SSL
+$SERVER["socket"] == ":443" {
+ ssl.engine = "enable"
+ ssl.ca-file = "/etc/lighttpd/certs/ca-certs.crt" #adjust to your needs
+ ssl.pemfile = "/etc/lighttpd/certs/red-ssl.crt" #adjust to your needs
+}
+
+### RISTRICT ACCESS TO DIRECTORYS AND FILES
+$HTTP["url"] =~ "\.(out|log|htaccess)$" {
+ url.access-deny = ("")
+}
+
+$HTTP["url"] =~ "(^|/)\.git" {
+ url.access-deny = ("")
+}
+
+### URL REWRITE RULES
+url.rewrite-if-not-file = (
+ "^\/([^\?]*)\?(.*)$" => "/index.php?q=$1&$2",
+ "^\/(.*)$" => "/index.php?q=$1"
+)
diff --git a/util/Doxyfile b/util/Doxyfile
new file mode 100644
index 000000000..edb8a8464
--- /dev/null
+++ b/util/Doxyfile
@@ -0,0 +1,21 @@
+INPUT = boot.php mod include setup util view
+RECURSIVE = YES
+PROJECT_NAME = "The Red Matrix"
+PROJECT_LOGO = images/rhash-64.png
+EXCLUDE = .htconfig.php library doc .git
+EXCLUDE_PATTERNS = *smarty3* *strings.php *.out *test*
+OUTPUT_DIRECTORY = doc
+GENERATE_HTML = YES
+HTML_OUTPUT = html/
+HTML_FILE_EXTENSION = .html
+GENERATE_LATEX = NO
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = YES
+GENERATE_TODOLIST = YES
+USE_MDFILE_AS_MAINPAGE = README
+REFERENCED_BY_RELATION = YES
+GENERATE_TREEVIEW = YES
+HTML_FOOTER = util/Doxygen.footer
+
+
+
diff --git a/util/Doxygen.footer b/util/Doxygen.footer
new file mode 100644
index 000000000..fd40910d9
--- /dev/null
+++ b/util/Doxygen.footer
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/util/db_update.php b/util/db_update.php
index 775a6585a..ceef061c1 100644
--- a/util/db_update.php
+++ b/util/db_update.php
@@ -1,24 +1,14 @@
<?php
+
+
/**
* @package util
*/
-/*
-* require boot.php
-*/
-require_once("boot.php");
-
-$a = new App;
-@include(".htconfig.php");
-
-$lang = get_best_language();
-load_translation_table($lang);
-
-require_once("dba.php");
-$db = new dba($db_host, $db_user, $db_pass, $db_data, false);
- unset($db_host, $db_user, $db_pass, $db_data);
+require_once('boot.php');
+require_once('include/cli_startup.php');
-$build = get_config('system','build');
+cli_startup();
echo "Old DB VERSION: " . $build . "\n";
echo "New DB VERSION: " . DB_UPDATE_VERSION . "\n";
diff --git a/util/fresh.md b/util/fresh.md
index ff4dfaa94..7bdf87ff3 100644
--- a/util/fresh.md
+++ b/util/fresh.md
@@ -1,7 +1,6 @@
-Fresh - The Friendica REd Shell
+Fresh - The Freaking REd Shell
===============================
-
This will only work on Unix/Linux. If the readline module is installed, we will
use that for input, otherwise we will just read from stdin and write to stdout.
diff --git a/util/makedocs b/util/makedocs
new file mode 100755
index 000000000..53e78e6b0
--- /dev/null
+++ b/util/makedocs
@@ -0,0 +1,2 @@
+#!/bin/sh
+/home/macgirvin/bin/doxygen util/Doxyfile
diff --git a/util/messages.po b/util/messages.po
index 472d1c21f..04d946a6c 100644
--- a/util/messages.po
+++ b/util/messages.po
@@ -1,4278 +1,3730 @@
-# FRIENDICA Distributed Social Network
-# Copyright (C) 2010, 2011 the Friendica Project
-# This file is distributed under the same license as the Friendica package.
-# Mike Macgirvin, 2010
+# Red Communications Project
+# Copyright (C) 2013 the Friendica Project
+# This file is distributed under the same license as the Red package.
+# Mike Macgirvin, 2013
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: 3.0.1397\n"
+"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-07-07 10:00-0700\n"
+"POT-Creation-Date: 2013-08-02 00:01-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: ../../mod/oexchange.php:25
-msgid "Post successful."
-msgstr ""
-
-#: ../../mod/update_notes.php:41 ../../mod/update_community.php:18
-#: ../../mod/update_network.php:22 ../../mod/update_profile.php:41
-msgid "[Embedded content - reload page to view]"
-msgstr ""
-
-#: ../../mod/crepair.php:102
-msgid "Contact settings applied."
-msgstr ""
-
-#: ../../mod/crepair.php:104
-msgid "Contact update failed."
-msgstr ""
-
-#: ../../mod/crepair.php:115 ../../mod/wall_attach.php:44
-#: ../../mod/fsuggest.php:78 ../../mod/events.php:140 ../../mod/api.php:26
-#: ../../mod/api.php:31 ../../mod/photos.php:135 ../../mod/photos.php:957
-#: ../../mod/editpost.php:10 ../../mod/install.php:151
-#: ../../mod/notifications.php:66 ../../mod/contacts.php:145
-#: ../../mod/settings.php:106 ../../mod/settings.php:537
-#: ../../mod/settings.php:542 ../../mod/manage.php:86 ../../mod/network.php:6
-#: ../../mod/notes.php:20 ../../mod/wallmessage.php:9
-#: ../../mod/wallmessage.php:33 ../../mod/wallmessage.php:79
-#: ../../mod/wallmessage.php:103 ../../mod/attach.php:33
-#: ../../mod/group.php:19 ../../mod/viewconnections.php:22
-#: ../../mod/register.php:38 ../../mod/regmod.php:116 ../../mod/item.php:124
-#: ../../mod/item.php:140 ../../mod/profile_photo.php:19
-#: ../../mod/profile_photo.php:141 ../../mod/profile_photo.php:152
-#: ../../mod/profile_photo.php:165 ../../mod/message.php:45
-#: ../../mod/message.php:97 ../../mod/allfriends.php:9
-#: ../../mod/nogroup.php:25 ../../mod/wall_upload.php:53
-#: ../../mod/follow.php:9 ../../mod/display.php:138 ../../mod/profiles.php:7
-#: ../../mod/profiles.php:400 ../../mod/delegate.php:6
-#: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81
-#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:510
-#: ../../addon/facebook/facebook.php:516 ../../addon/dav/layout.fnk.php:353
-#: ../../include/items.php:3457 ../../index.php:309
-msgid "Permission denied."
-msgstr ""
-
-#: ../../mod/crepair.php:129 ../../mod/fsuggest.php:20
-#: ../../mod/fsuggest.php:92 ../../mod/dfrn_confirm.php:118
-msgid "Contact not found."
+#: ../../include/acl_selectors.php:235
+msgid "Visible to everybody"
msgstr ""
-#: ../../mod/crepair.php:135
-msgid "Repair Contact Settings"
+#: ../../include/acl_selectors.php:236
+msgid "show"
msgstr ""
-#: ../../mod/crepair.php:137
-msgid ""
-"<strong>WARNING: This is highly advanced</strong> and if you enter incorrect "
-"information your communications with this contact may stop working."
+#: ../../include/acl_selectors.php:237
+msgid "don't show"
msgstr ""
-#: ../../mod/crepair.php:138
-msgid ""
-"Please use your browser 'Back' button <strong>now</strong> if you are "
-"uncertain what to do on this page."
+#: ../../include/activities.php:37
+msgid " and "
msgstr ""
-#: ../../mod/crepair.php:144
-msgid "Return to contact editor"
+#: ../../include/activities.php:45
+msgid "public profile"
msgstr ""
-#: ../../mod/crepair.php:148 ../../mod/settings.php:557
-#: ../../mod/settings.php:583 ../../mod/admin.php:661 ../../mod/admin.php:670
-msgid "Name"
+#: ../../include/activities.php:48
+#, php-format
+msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
msgstr ""
-#: ../../mod/crepair.php:149
-msgid "Account Nickname"
+#: ../../include/activities.php:49
+#, php-format
+msgid "Visit %1$s's %2$s"
msgstr ""
-#: ../../mod/crepair.php:150
-msgid "@Tagname - overrides Name/Nickname"
+#: ../../include/activities.php:52
+#, php-format
+msgid "%1$s has an updated %2$s, changing %3$s."
msgstr ""
-#: ../../mod/crepair.php:151
-msgid "Account URL"
+#: ../../include/api.php:968
+msgid "Public Timeline"
msgstr ""
-#: ../../mod/crepair.php:152
-msgid "Friend Request URL"
+#: ../../include/enotify.php:36
+msgid "Red Matrix Notification"
msgstr ""
-#: ../../mod/crepair.php:153
-msgid "Friend Confirm URL"
+#: ../../include/enotify.php:39
+msgid "Thank You,"
msgstr ""
-#: ../../mod/crepair.php:154
-msgid "Notification Endpoint URL"
+#: ../../include/enotify.php:41
+#, php-format
+msgid "%s Administrator"
msgstr ""
-#: ../../mod/crepair.php:155
-msgid "Poll/Feed URL"
+#: ../../include/enotify.php:64
+#, php-format
+msgid "%s <!item_type!>"
msgstr ""
-#: ../../mod/crepair.php:156
-msgid "New photo from this URL"
+#: ../../include/enotify.php:68
+#, php-format
+msgid "[Red:Notify] New mail received at %s"
msgstr ""
-#: ../../mod/crepair.php:166 ../../mod/fsuggest.php:107
-#: ../../mod/events.php:436 ../../mod/photos.php:992 ../../mod/photos.php:1063
-#: ../../mod/photos.php:1309 ../../mod/photos.php:1349
-#: ../../mod/photos.php:1389 ../../mod/photos.php:1420
-#: ../../mod/install.php:246 ../../mod/install.php:284
-#: ../../mod/localtime.php:45 ../../mod/content.php:691
-#: ../../mod/contacts.php:343 ../../mod/settings.php:555
-#: ../../mod/settings.php:709 ../../mod/settings.php:770
-#: ../../mod/settings.php:971 ../../mod/group.php:85 ../../mod/message.php:216
-#: ../../mod/message.php:412 ../../mod/admin.php:422 ../../mod/admin.php:658
-#: ../../mod/admin.php:794 ../../mod/admin.php:993 ../../mod/admin.php:1080
-#: ../../mod/profiles.php:569 ../../mod/invite.php:119
-#: ../../addon/fromgplus/fromgplus.php:40
-#: ../../addon/facebook/facebook.php:619
-#: ../../addon/snautofollow/snautofollow.php:64
-#: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:93
-#: ../../addon/nsfw/nsfw.php:57 ../../addon/page/page.php:210
-#: ../../addon/planets/planets.php:158
-#: ../../addon/uhremotestorage/uhremotestorage.php:89
-#: ../../addon/randplace/randplace.php:177 ../../addon/dwpost/dwpost.php:93
-#: ../../addon/drpost/drpost.php:110 ../../addon/startpage/startpage.php:92
-#: ../../addon/geonames/geonames.php:187 ../../addon/oembed.old/oembed.php:41
-#: ../../addon/impressum/impressum.php:82
-#: ../../addon/notimeline/notimeline.php:64 ../../addon/blockem/blockem.php:57
-#: ../../addon/qcomment/qcomment.php:61
-#: ../../addon/openstreetmap/openstreetmap.php:70
-#: ../../addon/libertree/libertree.php:90 ../../addon/mathjax/mathjax.php:42
-#: ../../addon/editplain/editplain.php:84 ../../addon/blackout/blackout.php:98
-#: ../../addon/gravatar/gravatar.php:86
-#: ../../addon/pageheader/pageheader.php:55 ../../addon/ijpost/ijpost.php:93
-#: ../../addon/jappixmini/jappixmini.php:302
-#: ../../addon/statusnet/statusnet.php:278
-#: ../../addon/statusnet/statusnet.php:292
-#: ../../addon/statusnet/statusnet.php:318
-#: ../../addon/statusnet/statusnet.php:325
-#: ../../addon/statusnet/statusnet.php:353
-#: ../../addon/statusnet/statusnet.php:567 ../../addon/tumblr/tumblr.php:90
-#: ../../addon/numfriends/numfriends.php:85 ../../addon/gnot/gnot.php:88
-#: ../../addon/wppost/wppost.php:110 ../../addon/showmore/showmore.php:48
-#: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:180
-#: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:387
-#: ../../addon/irc/irc.php:55 ../../addon/blogger/blogger.php:102
-#: ../../addon/posterous/posterous.php:103
-#: ../../view/theme/cleanzero/config.php:80
-#: ../../view/theme/diabook/theme.php:757
-#: ../../view/theme/diabook/config.php:190
-#: ../../view/theme/quattro/config.php:52 ../../view/theme/dispy/config.php:70
-#: ../../include/conversation.php:580
-msgid "Submit"
+#: ../../include/enotify.php:70
+#, php-format
+msgid "%1$s sent you a new private message at %2$s."
msgstr ""
-#: ../../mod/help.php:30
-msgid "Help:"
+#: ../../include/enotify.php:71
+#, php-format
+msgid "%1$s sent you %2$s."
msgstr ""
-#: ../../mod/help.php:34 ../../addon/dav/layout.fnk.php:116
-#: ../../include/nav.php:86
-msgid "Help"
+#: ../../include/enotify.php:71
+msgid "a private message"
msgstr ""
-#: ../../mod/help.php:38 ../../index.php:218
-msgid "Not Found"
+#: ../../include/enotify.php:72
+#, php-format
+msgid "Please visit %s to view and/or reply to your private messages."
msgstr ""
-#: ../../mod/help.php:41 ../../index.php:221
-msgid "Page not found."
+#: ../../include/enotify.php:118
+#, php-format
+msgid "%1$s commented on [zrl=%2$s]a %3$s[/zrl]"
msgstr ""
-#: ../../mod/wall_attach.php:58
+#: ../../include/enotify.php:125
#, php-format
-msgid "File exceeds size limit of %d"
+msgid "%1$s commented on [zrl=%2$s]%3$s's %4$s[/zrl]"
msgstr ""
-#: ../../mod/wall_attach.php:99 ../../mod/wall_attach.php:110
-msgid "File upload failed."
+#: ../../include/enotify.php:133
+#, php-format
+msgid "%1$s commented on [zrl=%2$s]your %3$s[/zrl]"
msgstr ""
-#: ../../mod/fsuggest.php:63
-msgid "Friend suggestion sent."
+#: ../../include/enotify.php:143
+#, php-format
+msgid "[Red:Notify] Comment to conversation #%1$d by %2$s"
msgstr ""
-#: ../../mod/fsuggest.php:97
-msgid "Suggest Friends"
+#: ../../include/enotify.php:144
+#, php-format
+msgid "%s commented on an item/conversation you have been following."
msgstr ""
-#: ../../mod/fsuggest.php:99
+#: ../../include/enotify.php:147 ../../include/enotify.php:164
+#: ../../include/enotify.php:190 ../../include/enotify.php:208
+#: ../../include/enotify.php:221
#, php-format
-msgid "Suggest a friend for %s"
+msgid "Please visit %s to view and/or reply to the conversation."
msgstr ""
-#: ../../mod/events.php:66
-msgid "Event title and start time are required."
+#: ../../include/enotify.php:154
+#, php-format
+msgid "[Red:Notify] %s posted to your profile wall"
msgstr ""
-#: ../../mod/events.php:260
-msgid "l, F j"
+#: ../../include/enotify.php:156
+#, php-format
+msgid "%1$s posted to your profile wall at %2$s"
msgstr ""
-#: ../../mod/events.php:282
-msgid "Edit event"
+#: ../../include/enotify.php:158
+#, php-format
+msgid "%1$s posted to [zrl=%2$s]your wall[/zrl]"
msgstr ""
-#: ../../mod/events.php:304 ../../include/text.php:1069
-msgid "link to source"
+#: ../../include/enotify.php:184
+#, php-format
+msgid "[Red:Notify] %s tagged you"
msgstr ""
-#: ../../mod/events.php:328 ../../view/theme/diabook/theme.php:131
-#: ../../include/nav.php:52 ../../boot.php:1595
-msgid "Events"
+#: ../../include/enotify.php:185
+#, php-format
+msgid "%1$s tagged you at %2$s"
msgstr ""
-#: ../../mod/events.php:329
-msgid "Create New Event"
+#: ../../include/enotify.php:186
+#, php-format
+msgid "%1$s [zrl=%2$s]tagged you[/zrl]."
msgstr ""
-#: ../../mod/events.php:330 ../../addon/dav/layout.fnk.php:154
-msgid "Previous"
+#: ../../include/enotify.php:198
+#, php-format
+msgid "[Red:Notify] %1$s poked you"
msgstr ""
-#: ../../mod/events.php:331 ../../mod/install.php:205
-#: ../../addon/dav/layout.fnk.php:157
-msgid "Next"
+#: ../../include/enotify.php:199
+#, php-format
+msgid "%1$s poked you at %2$s"
msgstr ""
-#: ../../mod/events.php:404
-msgid "hour:minute"
+#: ../../include/enotify.php:200
+#, php-format
+msgid "%1$s [zrl=%2$s]poked you[/zrl]."
msgstr ""
-#: ../../mod/events.php:414
-msgid "Event details"
+#: ../../include/enotify.php:215
+#, php-format
+msgid "[Red:Notify] %s tagged your post"
msgstr ""
-#: ../../mod/events.php:415
+#: ../../include/enotify.php:216
#, php-format
-msgid "Format is %s %s. Starting date and Title are required."
+msgid "%1$s tagged your post at %2$s"
msgstr ""
-#: ../../mod/events.php:417
-msgid "Event Starts:"
+#: ../../include/enotify.php:217
+#, php-format
+msgid "%1$s tagged [zrl=%2$s]your post[/zrl]"
msgstr ""
-#: ../../mod/events.php:417 ../../mod/events.php:431
-msgid "Required"
+#: ../../include/enotify.php:228
+msgid "[Red:Notify] Introduction received"
msgstr ""
-#: ../../mod/events.php:420
-msgid "Finish date/time is not known or not relevant"
+#: ../../include/enotify.php:229
+#, php-format
+msgid "You've received an introduction from '%1$s' at %2$s"
msgstr ""
-#: ../../mod/events.php:422
-msgid "Event Finishes:"
+#: ../../include/enotify.php:230
+#, php-format
+msgid "You've received [zrl=%1$s]an introduction[/zrl] from %2$s."
msgstr ""
-#: ../../mod/events.php:425
-msgid "Adjust for viewer timezone"
+#: ../../include/enotify.php:233 ../../include/enotify.php:251
+#, php-format
+msgid "You may visit their profile at %s"
msgstr ""
-#: ../../mod/events.php:427
-msgid "Description:"
+#: ../../include/enotify.php:235
+#, php-format
+msgid "Please visit %s to approve or reject the introduction."
msgstr ""
-#: ../../mod/events.php:429 ../../mod/directory.php:132
-#: ../../include/event.php:40 ../../include/bb2diaspora.php:409
-#: ../../boot.php:1172
-msgid "Location:"
+#: ../../include/enotify.php:242
+msgid "[Red:Notify] Friend suggestion received"
msgstr ""
-#: ../../mod/events.php:431
-msgid "Title:"
+#: ../../include/enotify.php:243
+#, php-format
+msgid "You've received a friend suggestion from '%1$s' at %2$s"
msgstr ""
-#: ../../mod/events.php:433
-msgid "Share this event"
+#: ../../include/enotify.php:244
+#, php-format
+msgid "You've received [zrl=%1$s]a friend suggestion[/zrl] for %2$s from %3$s."
msgstr ""
-#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
-#: ../../mod/dfrn_request.php:845 ../../mod/settings.php:556
-#: ../../mod/settings.php:582 ../../addon/js_upload/js_upload.php:45
-msgid "Cancel"
+#: ../../include/enotify.php:249
+msgid "Name:"
msgstr ""
-#: ../../mod/tagrm.php:41
-msgid "Tag removed"
+#: ../../include/enotify.php:250
+msgid "Photo:"
msgstr ""
-#: ../../mod/tagrm.php:79
-msgid "Remove Item Tag"
+#: ../../include/enotify.php:253
+#, php-format
+msgid "Please visit %s to approve or reject the suggestion."
msgstr ""
-#: ../../mod/tagrm.php:81
-msgid "Select a tag to remove: "
+#: ../../include/Contact.php:55 ../../include/contact_widgets.php:9
+#: ../../mod/match.php:58 ../../mod/suggest.php:56 ../../boot.php:1611
+msgid "Connect"
msgstr ""
-#: ../../mod/tagrm.php:93 ../../mod/delegate.php:130
-msgid "Remove"
+#: ../../include/Contact.php:71
+msgid "New window"
msgstr ""
-#: ../../mod/dfrn_poll.php:94 ../../mod/dfrn_poll.php:522
-#, php-format
-msgid "%s welcomes %s"
+#: ../../include/Contact.php:72
+msgid "Open the selected location in a different window or browser tab"
msgstr ""
-#: ../../mod/api.php:76 ../../mod/api.php:102
-msgid "Authorize application connection"
+#: ../../include/Contact.php:383 ../../include/conversation.php:893
+msgid "Poke"
msgstr ""
-#: ../../mod/api.php:77
-msgid "Return to your app and insert this Securty Code:"
+#: ../../include/Contact.php:384 ../../include/conversation.php:887
+msgid "View Status"
msgstr ""
-#: ../../mod/api.php:89
-msgid "Please login to continue."
+#: ../../include/Contact.php:385 ../../include/nav.php:75
+#: ../../include/conversation.php:888 ../../mod/connections.php:294
+#: ../../mod/connections.php:401
+msgid "View Profile"
msgstr ""
-#: ../../mod/api.php:104
-msgid ""
-"Do you want to authorize this application to access your posts and contacts, "
-"and/or create new posts for you?"
+#: ../../include/Contact.php:386 ../../include/conversation.php:889
+msgid "View Photos"
msgstr ""
-#: ../../mod/api.php:105 ../../mod/dfrn_request.php:833
-#: ../../mod/settings.php:887 ../../mod/settings.php:893
-#: ../../mod/settings.php:901 ../../mod/settings.php:905
-#: ../../mod/settings.php:910 ../../mod/settings.php:916
-#: ../../mod/settings.php:922 ../../mod/settings.php:928
-#: ../../mod/settings.php:958 ../../mod/settings.php:959
-#: ../../mod/settings.php:960 ../../mod/settings.php:961
-#: ../../mod/settings.php:962 ../../mod/register.php:234
-#: ../../mod/profiles.php:546
-msgid "Yes"
+#: ../../include/Contact.php:387 ../../include/conversation.php:890
+msgid "Network Posts"
msgstr ""
-#: ../../mod/api.php:106 ../../mod/dfrn_request.php:834
-#: ../../mod/settings.php:887 ../../mod/settings.php:893
-#: ../../mod/settings.php:901 ../../mod/settings.php:905
-#: ../../mod/settings.php:910 ../../mod/settings.php:916
-#: ../../mod/settings.php:922 ../../mod/settings.php:928
-#: ../../mod/settings.php:958 ../../mod/settings.php:959
-#: ../../mod/settings.php:960 ../../mod/settings.php:961
-#: ../../mod/settings.php:962 ../../mod/register.php:235
-#: ../../mod/profiles.php:547
-msgid "No"
+#: ../../include/Contact.php:388 ../../include/conversation.php:891
+msgid "Edit Contact"
msgstr ""
-#: ../../mod/photos.php:46 ../../boot.php:1589
-msgid "Photo Albums"
+#: ../../include/Contact.php:389 ../../include/conversation.php:892
+msgid "Send PM"
msgstr ""
-#: ../../mod/photos.php:54 ../../mod/photos.php:156 ../../mod/photos.php:971
-#: ../../mod/photos.php:1055 ../../mod/photos.php:1070
-#: ../../mod/photos.php:1498 ../../mod/photos.php:1510
-#: ../../addon/communityhome/communityhome.php:110
-#: ../../view/theme/diabook/theme.php:598
-msgid "Contact Photos"
+#: ../../include/contact_selectors.php:30
+msgid "Unknown | Not categorised"
msgstr ""
-#: ../../mod/photos.php:61 ../../mod/photos.php:1080 ../../mod/photos.php:1548
-msgid "Upload New Photos"
+#: ../../include/contact_selectors.php:31
+msgid "Block immediately"
msgstr ""
-#: ../../mod/photos.php:72 ../../mod/settings.php:21
-msgid "everybody"
+#: ../../include/contact_selectors.php:32
+msgid "Shady, spammer, self-marketer"
msgstr ""
-#: ../../mod/photos.php:145
-msgid "Contact information unavailable"
+#: ../../include/contact_selectors.php:33
+msgid "Known to me, but no opinion"
msgstr ""
-#: ../../mod/photos.php:156 ../../mod/photos.php:660 ../../mod/photos.php:1055
-#: ../../mod/photos.php:1070 ../../mod/profile_photo.php:60
-#: ../../mod/profile_photo.php:67 ../../mod/profile_photo.php:74
-#: ../../mod/profile_photo.php:176 ../../mod/profile_photo.php:254
-#: ../../mod/profile_photo.php:263
-#: ../../addon/communityhome/communityhome.php:111
-#: ../../view/theme/diabook/theme.php:599 ../../include/user.php:318
-#: ../../include/user.php:325 ../../include/user.php:332
-msgid "Profile Photos"
+#: ../../include/contact_selectors.php:34
+msgid "OK, probably harmless"
msgstr ""
-#: ../../mod/photos.php:166
-msgid "Album not found."
+#: ../../include/contact_selectors.php:35
+msgid "Reputable, has my trust"
msgstr ""
-#: ../../mod/photos.php:184 ../../mod/photos.php:1064
-msgid "Delete Album"
+#: ../../include/contact_selectors.php:54
+msgid "Frequently"
msgstr ""
-#: ../../mod/photos.php:247 ../../mod/photos.php:1310
-msgid "Delete Photo"
+#: ../../include/contact_selectors.php:55
+msgid "Hourly"
msgstr ""
-#: ../../mod/photos.php:591
-msgid "was tagged in a"
+#: ../../include/contact_selectors.php:56
+msgid "Twice daily"
msgstr ""
-#: ../../mod/photos.php:591 ../../mod/like.php:144 ../../mod/tagger.php:70
-#: ../../addon/communityhome/communityhome.php:163
-#: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1321
-#: ../../include/diaspora.php:1777 ../../include/conversation.php:53
-#: ../../include/conversation.php:126
-msgid "photo"
+#: ../../include/contact_selectors.php:57
+msgid "Daily"
msgstr ""
-#: ../../mod/photos.php:591
-msgid "by"
+#: ../../include/contact_selectors.php:58
+msgid "Weekly"
msgstr ""
-#: ../../mod/photos.php:696 ../../addon/js_upload/js_upload.php:315
-msgid "Image exceeds size limit of "
+#: ../../include/contact_selectors.php:59
+msgid "Monthly"
msgstr ""
-#: ../../mod/photos.php:704
-msgid "Image file is empty."
+#: ../../include/contact_selectors.php:74
+msgid "Friendica"
msgstr ""
-#: ../../mod/photos.php:736 ../../mod/profile_photo.php:126
-#: ../../mod/wall_upload.php:99
-msgid "Unable to process image."
+#: ../../include/contact_selectors.php:75
+msgid "OStatus"
msgstr ""
-#: ../../mod/photos.php:763 ../../mod/profile_photo.php:259
-#: ../../mod/wall_upload.php:118
-msgid "Image upload failed."
+#: ../../include/contact_selectors.php:76
+msgid "RSS/Atom"
msgstr ""
-#: ../../mod/photos.php:849 ../../mod/community.php:16
-#: ../../mod/dfrn_request.php:759 ../../mod/viewconnections.php:17
-#: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:29
-msgid "Public access denied."
+#: ../../include/contact_selectors.php:77 ../../mod/admin.php:626
+#: ../../mod/admin.php:635 ../../boot.php:1353
+msgid "Email"
msgstr ""
-#: ../../mod/photos.php:859
-msgid "No photos selected"
+#: ../../include/contact_selectors.php:78
+msgid "Diaspora"
msgstr ""
-#: ../../mod/photos.php:938
-msgid "Access to this item is restricted."
+#: ../../include/contact_selectors.php:79
+msgid "Facebook"
msgstr ""
-#: ../../mod/photos.php:1002
-#, php-format
-msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
+#: ../../include/contact_selectors.php:80
+msgid "Zot!"
msgstr ""
-#: ../../mod/photos.php:1005
-#, php-format
-msgid "You have used %1$.2f Mbytes of photo storage."
+#: ../../include/contact_selectors.php:81
+msgid "LinkedIn"
msgstr ""
-#: ../../mod/photos.php:1011
-msgid "Upload Photos"
+#: ../../include/contact_selectors.php:82
+msgid "XMPP/IM"
msgstr ""
-#: ../../mod/photos.php:1015 ../../mod/photos.php:1059
-msgid "New album name: "
+#: ../../include/contact_selectors.php:83
+msgid "MySpace"
msgstr ""
-#: ../../mod/photos.php:1016
-msgid "or existing album name: "
+#: ../../include/contact_widgets.php:6
+msgid "Add New Connection"
msgstr ""
-#: ../../mod/photos.php:1017
-msgid "Do not show a status post for this upload"
+#: ../../include/contact_widgets.php:7
+msgid "Enter the channel address"
msgstr ""
-#: ../../mod/photos.php:1019 ../../mod/photos.php:1305
-msgid "Permissions"
+#: ../../include/contact_widgets.php:8
+msgid "Example: bob@example.com, http://example.com/barbara"
msgstr ""
-#: ../../mod/photos.php:1074
-msgid "Edit Album"
-msgstr ""
+#: ../../include/contact_widgets.php:23
+#, php-format
+msgid "%d invitation available"
+msgid_plural "%d invitations available"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../mod/photos.php:1098 ../../mod/photos.php:1531
-msgid "View Photo"
+#: ../../include/contact_widgets.php:29
+msgid "Find Channels"
msgstr ""
-#: ../../mod/photos.php:1133
-msgid "Permission denied. Access to this item may be restricted."
+#: ../../include/contact_widgets.php:30
+msgid "Enter name or interest"
msgstr ""
-#: ../../mod/photos.php:1135
-msgid "Photo not available"
+#: ../../include/contact_widgets.php:31
+msgid "Connect/Follow"
msgstr ""
-#: ../../mod/photos.php:1185
-msgid "View photo"
+#: ../../include/contact_widgets.php:32
+msgid "Examples: Robert Morgenstein, Fishing"
msgstr ""
-#: ../../mod/photos.php:1185
-msgid "Edit photo"
+#: ../../include/contact_widgets.php:33 ../../mod/directory.php:164
+#: ../../mod/directory.php:169 ../../mod/connections.php:658
+msgid "Find"
msgstr ""
-#: ../../mod/photos.php:1186
-msgid "Use as profile photo"
+#: ../../include/contact_widgets.php:34 ../../mod/suggest.php:64
+msgid "Channel Suggestions"
msgstr ""
-#: ../../mod/photos.php:1192 ../../mod/content.php:601
-#: ../../include/conversation.php:490
-msgid "Private Message"
+#: ../../include/contact_widgets.php:35
+msgid "Similar Interests"
msgstr ""
-#: ../../mod/photos.php:1214
-msgid "View Full Size"
+#: ../../include/contact_widgets.php:36
+msgid "Random Profile"
msgstr ""
-#: ../../mod/photos.php:1282
-msgid "Tags: "
+#: ../../include/contact_widgets.php:37
+msgid "Invite Friends"
msgstr ""
-#: ../../mod/photos.php:1285
-msgid "[Remove any tag]"
+#: ../../include/contact_widgets.php:61 ../../include/features.php:58
+msgid "Saved Folders"
msgstr ""
-#: ../../mod/photos.php:1295
-msgid "Rotate CW (right)"
+#: ../../include/contact_widgets.php:64 ../../include/contact_widgets.php:91
+msgid "Everything"
msgstr ""
-#: ../../mod/photos.php:1296
-msgid "Rotate CCW (left)"
+#: ../../include/contact_widgets.php:88
+msgid "Categories"
msgstr ""
-#: ../../mod/photos.php:1298
-msgid "New album name"
-msgstr ""
+#: ../../include/contact_widgets.php:121
+#, php-format
+msgid "%d connection in common"
+msgid_plural "%d connections in common"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../mod/photos.php:1301
-msgid "Caption"
+#: ../../include/contact_widgets.php:126 ../../include/js_strings.php:7
+#: ../../include/ItemObject.php:255
+msgid "show more"
msgstr ""
-#: ../../mod/photos.php:1303
-msgid "Add a Tag"
+#: ../../include/datetime.php:43 ../../include/datetime.php:45
+msgid "Miscellaneous"
msgstr ""
-#: ../../mod/photos.php:1307
-msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
+#: ../../include/datetime.php:152 ../../include/datetime.php:284
+msgid "year"
msgstr ""
-#: ../../mod/photos.php:1327 ../../mod/content.php:665
-#: ../../include/conversation.php:554
-msgid "I like this (toggle)"
+#: ../../include/datetime.php:157 ../../include/datetime.php:285
+msgid "month"
msgstr ""
-#: ../../mod/photos.php:1328 ../../mod/content.php:666
-#: ../../include/conversation.php:555
-msgid "I don't like this (toggle)"
+#: ../../include/datetime.php:162 ../../include/datetime.php:287
+msgid "day"
msgstr ""
-#: ../../mod/photos.php:1329 ../../include/conversation.php:993
-msgid "Share"
+#: ../../include/datetime.php:275
+msgid "never"
msgstr ""
-#: ../../mod/photos.php:1330 ../../mod/editpost.php:104
-#: ../../mod/content.php:482 ../../mod/content.php:842
-#: ../../mod/wallmessage.php:145 ../../mod/message.php:215
-#: ../../mod/message.php:413 ../../include/conversation.php:371
-#: ../../include/conversation.php:731 ../../include/conversation.php:1012
-msgid "Please wait"
+#: ../../include/datetime.php:281
+msgid "less than a second ago"
msgstr ""
-#: ../../mod/photos.php:1346 ../../mod/photos.php:1386
-#: ../../mod/photos.php:1417 ../../mod/content.php:688
-#: ../../include/conversation.php:577
-msgid "This is you"
+#: ../../include/datetime.php:284
+msgid "years"
msgstr ""
-#: ../../mod/photos.php:1348 ../../mod/photos.php:1388
-#: ../../mod/photos.php:1419 ../../mod/content.php:690
-#: ../../include/conversation.php:579 ../../boot.php:564
-msgid "Comment"
+#: ../../include/datetime.php:285
+msgid "months"
msgstr ""
-#: ../../mod/photos.php:1350 ../../mod/editpost.php:125
-#: ../../mod/content.php:700 ../../include/conversation.php:589
-#: ../../include/conversation.php:1030
-msgid "Preview"
+#: ../../include/datetime.php:286
+msgid "week"
msgstr ""
-#: ../../mod/photos.php:1447 ../../mod/content.php:439
-#: ../../mod/content.php:720 ../../mod/settings.php:618
-#: ../../mod/settings.php:707 ../../mod/group.php:168 ../../mod/admin.php:665
-#: ../../include/conversation.php:328 ../../include/conversation.php:609
-msgid "Delete"
+#: ../../include/datetime.php:286
+msgid "weeks"
msgstr ""
-#: ../../mod/photos.php:1537
-msgid "View Album"
+#: ../../include/datetime.php:287
+msgid "days"
msgstr ""
-#: ../../mod/photos.php:1546
-msgid "Recent Photos"
+#: ../../include/datetime.php:288
+msgid "hour"
msgstr ""
-#: ../../mod/community.php:21
-msgid "Not available."
+#: ../../include/datetime.php:288
+msgid "hours"
msgstr ""
-#: ../../mod/community.php:30 ../../view/theme/diabook/theme.php:133
-#: ../../include/nav.php:101
-msgid "Community"
+#: ../../include/datetime.php:289
+msgid "minute"
msgstr ""
-#: ../../mod/community.php:61 ../../mod/search.php:144
-msgid "No results."
+#: ../../include/datetime.php:289
+msgid "minutes"
msgstr ""
-#: ../../mod/friendica.php:55
-msgid "This is Friendica, version"
+#: ../../include/datetime.php:290
+msgid "second"
msgstr ""
-#: ../../mod/friendica.php:56
-msgid "running at web location"
+#: ../../include/datetime.php:290
+msgid "seconds"
msgstr ""
-#: ../../mod/friendica.php:58
-msgid ""
-"Please visit <a href=\"http://friendica.com\">Friendica.com</a> to learn "
-"more about the Friendica project."
+#: ../../include/datetime.php:299
+#, php-format
+msgid "%1$d %2$s ago"
msgstr ""
-#: ../../mod/friendica.php:60
-msgid "Bug reports and issues: please visit"
+#: ../../include/dba/dba_driver.php:50
+#, php-format
+msgid "Cannot locate DNS info for database server '%s'"
msgstr ""
-#: ../../mod/friendica.php:61
-msgid ""
-"Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - "
-"dot com"
+#: ../../include/event.php:11 ../../include/bb2diaspora.php:433
+msgid "l F d, Y \\@ g:i A"
msgstr ""
-#: ../../mod/friendica.php:75
-msgid "Installed plugins/addons/apps:"
+#: ../../include/event.php:20 ../../include/bb2diaspora.php:439
+msgid "Starts:"
msgstr ""
-#: ../../mod/friendica.php:88
-msgid "No installed plugins/addons/apps"
+#: ../../include/event.php:30 ../../include/bb2diaspora.php:447
+msgid "Finishes:"
msgstr ""
-#: ../../mod/editpost.php:17 ../../mod/editpost.php:27
-msgid "Item not found"
+#: ../../include/event.php:40 ../../include/bb2diaspora.php:455
+#: ../../mod/events.php:450 ../../mod/directory.php:120 ../../boot.php:1665
+msgid "Location:"
msgstr ""
-#: ../../mod/editpost.php:36
-msgid "Edit post"
+#: ../../include/features.php:21
+msgid "General Features"
msgstr ""
-#: ../../mod/editpost.php:80 ../../include/conversation.php:979
-msgid "Post to Email"
+#: ../../include/features.php:22
+msgid "Content Expiration"
msgstr ""
-#: ../../mod/editpost.php:95 ../../mod/content.php:707
-#: ../../mod/settings.php:617 ../../include/conversation.php:596
-msgid "Edit"
+#: ../../include/features.php:22
+msgid "Remove old posts/comments after a period of time"
msgstr ""
-#: ../../mod/editpost.php:96 ../../mod/wallmessage.php:143
-#: ../../mod/message.php:213 ../../mod/message.php:410
-#: ../../include/conversation.php:994
-msgid "Upload photo"
+#: ../../include/features.php:23
+msgid "Multiple Profiles"
msgstr ""
-#: ../../mod/editpost.php:97 ../../include/conversation.php:996
-msgid "Attach file"
+#: ../../include/features.php:23
+msgid "Ability to create multiple profiles"
msgstr ""
-#: ../../mod/editpost.php:98 ../../mod/wallmessage.php:144
-#: ../../mod/message.php:214 ../../mod/message.php:411
-#: ../../include/conversation.php:998
-msgid "Insert web link"
+#: ../../include/features.php:24
+msgid "Web Pages"
msgstr ""
-#: ../../mod/editpost.php:99
-msgid "Insert YouTube video"
+#: ../../include/features.php:24
+msgid "Provide managed web pages on your channel"
msgstr ""
-#: ../../mod/editpost.php:100
-msgid "Insert Vorbis [.ogg] video"
+#: ../../include/features.php:25
+msgid "Enhanced Photo Albums"
msgstr ""
-#: ../../mod/editpost.php:101
-msgid "Insert Vorbis [.ogg] audio"
+#: ../../include/features.php:25
+msgid "Enable photo album with enhanced features"
msgstr ""
-#: ../../mod/editpost.php:102 ../../include/conversation.php:1004
-msgid "Set your location"
+#: ../../include/features.php:27
+msgid "Extended Identity Sharing"
msgstr ""
-#: ../../mod/editpost.php:103 ../../include/conversation.php:1006
-msgid "Clear browser location"
+#: ../../include/features.php:27 ../../include/js_strings.php:28
+msgid " "
msgstr ""
-#: ../../mod/editpost.php:105 ../../include/conversation.php:1013
-msgid "Permission settings"
+#: ../../include/features.php:28
+msgid "Expert Mode"
msgstr ""
-#: ../../mod/editpost.php:113 ../../include/conversation.php:1022
-msgid "CC: email addresses"
+#: ../../include/features.php:28
+msgid "Enable Expert Mode to provide advanced configuration options"
msgstr ""
-#: ../../mod/editpost.php:114 ../../include/conversation.php:1023
-msgid "Public post"
+#: ../../include/features.php:35
+msgid "Post Composition Features"
msgstr ""
-#: ../../mod/editpost.php:117 ../../include/conversation.php:1009
-msgid "Set title"
+#: ../../include/features.php:36
+msgid "Richtext Editor"
msgstr ""
-#: ../../mod/editpost.php:119 ../../include/conversation.php:1011
-msgid "Categories (comma-separated list)"
+#: ../../include/features.php:36
+msgid "Enable richtext editor"
msgstr ""
-#: ../../mod/editpost.php:120 ../../include/conversation.php:1025
-msgid "Example: bob@example.com, mary@example.com"
+#: ../../include/features.php:37
+msgid "Post Preview"
msgstr ""
-#: ../../mod/editpost.php:135 ../../include/conversation.php:1166
-msgid "Friendica mobile web"
+#: ../../include/features.php:37
+msgid "Allow previewing posts and comments before publishing them"
msgstr ""
-#: ../../mod/dfrn_request.php:93
-msgid "This introduction has already been accepted."
+#: ../../include/features.php:42
+msgid "Network and Stream Filtering"
msgstr ""
-#: ../../mod/dfrn_request.php:118 ../../mod/dfrn_request.php:512
-msgid "Profile location is not valid or does not contain profile information."
+#: ../../include/features.php:43
+msgid "Search by Date"
msgstr ""
-#: ../../mod/dfrn_request.php:123 ../../mod/dfrn_request.php:517
-msgid "Warning: profile location has no identifiable owner name."
+#: ../../include/features.php:43
+msgid "Ability to select posts by date ranges"
msgstr ""
-#: ../../mod/dfrn_request.php:125 ../../mod/dfrn_request.php:519
-msgid "Warning: profile location has no profile photo."
+#: ../../include/features.php:44
+msgid "Collections Filter"
msgstr ""
-#: ../../mod/dfrn_request.php:128 ../../mod/dfrn_request.php:522
-#, php-format
-msgid "%d required parameter was not found at the given location"
-msgid_plural "%d required parameters were not found at the given location"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../mod/dfrn_request.php:170
-msgid "Introduction complete."
+#: ../../include/features.php:44
+msgid "Enable widget to display Network posts only from selected collections"
msgstr ""
-#: ../../mod/dfrn_request.php:209
-msgid "Unrecoverable protocol error."
+#: ../../include/features.php:45 ../../mod/network.php:167
+#: ../../mod/search.php:17
+msgid "Saved Searches"
msgstr ""
-#: ../../mod/dfrn_request.php:237
-msgid "Profile unavailable."
+#: ../../include/features.php:45
+msgid "Save search terms for re-use"
msgstr ""
-#: ../../mod/dfrn_request.php:262
-#, php-format
-msgid "%s has received too many connection requests today."
+#: ../../include/features.php:46
+msgid "Network Personal Tab"
msgstr ""
-#: ../../mod/dfrn_request.php:263
-msgid "Spam protection measures have been invoked."
+#: ../../include/features.php:46
+msgid "Enable tab to display only Network posts that you've interacted on"
msgstr ""
-#: ../../mod/dfrn_request.php:264
-msgid "Friends are advised to please try again in 24 hours."
+#: ../../include/features.php:47
+msgid "Network New Tab"
msgstr ""
-#: ../../mod/dfrn_request.php:326
-msgid "Invalid locator"
+#: ../../include/features.php:47
+msgid "Enable tab to display all new Network activity"
msgstr ""
-#: ../../mod/dfrn_request.php:335
-msgid "Invalid email address."
+#: ../../include/features.php:48
+msgid "Affinity Tool"
msgstr ""
-#: ../../mod/dfrn_request.php:361
-msgid "This account has not been configured for email. Request failed."
+#: ../../include/features.php:48
+msgid "Filter stream activity by depth of relationships"
msgstr ""
-#: ../../mod/dfrn_request.php:457
-msgid "Unable to resolve your name at the provided location."
+#: ../../include/features.php:53
+msgid "Post/Comment Tools"
msgstr ""
-#: ../../mod/dfrn_request.php:470
-msgid "You have already introduced yourself here."
+#: ../../include/features.php:54
+msgid "Multiple Deletion"
msgstr ""
-#: ../../mod/dfrn_request.php:474
-#, php-format
-msgid "Apparently you are already friends with %s."
+#: ../../include/features.php:54
+msgid "Select and delete multiple posts/comments at once"
msgstr ""
-#: ../../mod/dfrn_request.php:495
-msgid "Invalid profile URL."
+#: ../../include/features.php:55
+msgid "Edit Sent Posts"
msgstr ""
-#: ../../mod/dfrn_request.php:501 ../../include/follow.php:27
-msgid "Disallowed profile URL."
+#: ../../include/features.php:55
+msgid "Edit and correct posts and comments after sending"
msgstr ""
-#: ../../mod/dfrn_request.php:570 ../../mod/contacts.php:122
-msgid "Failed to update contact record."
+#: ../../include/features.php:56
+msgid "Tagging"
msgstr ""
-#: ../../mod/dfrn_request.php:591
-msgid "Your introduction has been sent."
+#: ../../include/features.php:56
+msgid "Ability to tag existing posts"
msgstr ""
-#: ../../mod/dfrn_request.php:644
-msgid "Please login to confirm introduction."
+#: ../../include/features.php:57
+msgid "Post Categories"
msgstr ""
-#: ../../mod/dfrn_request.php:658
-msgid ""
-"Incorrect identity currently logged in. Please login to <strong>this</"
-"strong> profile."
+#: ../../include/features.php:57
+msgid "Add categories to your posts"
msgstr ""
-#: ../../mod/dfrn_request.php:669
-msgid "Hide this contact"
+#: ../../include/features.php:58
+msgid "Ability to file posts under folders"
msgstr ""
-#: ../../mod/dfrn_request.php:672
-#, php-format
-msgid "Welcome home %s."
+#: ../../include/features.php:59
+msgid "Dislike Posts"
msgstr ""
-#: ../../mod/dfrn_request.php:673
-#, php-format
-msgid "Please confirm your introduction/connection request to %s."
+#: ../../include/features.php:59
+msgid "Ability to dislike posts/comments"
msgstr ""
-#: ../../mod/dfrn_request.php:674
-msgid "Confirm"
+#: ../../include/features.php:60
+msgid "Star Posts"
msgstr ""
-#: ../../mod/dfrn_request.php:715 ../../include/items.php:2883
-msgid "[Name Withheld]"
+#: ../../include/features.php:60
+msgid "Ability to mark special posts with a star indicator"
msgstr ""
-#: ../../mod/dfrn_request.php:808
-msgid ""
-"Please enter your 'Identity Address' from one of the following supported "
-"communications networks:"
+#: ../../include/features.php:61
+msgid "Tag Cloud"
msgstr ""
-#: ../../mod/dfrn_request.php:824
-msgid "<strike>Connect as an email follower</strike> (Coming soon)"
+#: ../../include/features.php:61
+msgid "Provide a personal tag cloud on your channel page"
msgstr ""
-#: ../../mod/dfrn_request.php:826
+#: ../../include/group.php:25
msgid ""
-"If you are not yet a member of the free social web, <a href=\"http://dir."
-"friendica.com/siteinfo\">follow this link to find a public Friendica site "
-"and join us today</a>."
-msgstr ""
-
-#: ../../mod/dfrn_request.php:829
-msgid "Friend/Connection Request"
+"A deleted group with this name was revived. Existing item permissions "
+"<strong>may</strong> apply to this group and any future members. If this is "
+"not what you intended, please create another group with a different name."
msgstr ""
-#: ../../mod/dfrn_request.php:830
-msgid ""
-"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, "
-"testuser@identi.ca"
+#: ../../include/group.php:222
+msgid "Default privacy group for new contacts"
msgstr ""
-#: ../../mod/dfrn_request.php:831
-msgid "Please answer the following:"
+#: ../../include/group.php:241
+msgid "All Channels"
msgstr ""
-#: ../../mod/dfrn_request.php:832
-#, php-format
-msgid "Does %s know you?"
+#: ../../include/group.php:263
+msgid "edit"
msgstr ""
-#: ../../mod/dfrn_request.php:835
-msgid "Add a personal note:"
+#: ../../include/group.php:284
+msgid "Collections"
msgstr ""
-#: ../../mod/dfrn_request.php:837 ../../include/contact_selectors.php:76
-msgid "Friendica"
+#: ../../include/group.php:285
+msgid "Edit collection"
msgstr ""
-#: ../../mod/dfrn_request.php:838
-msgid "StatusNet/Federated Social Web"
+#: ../../include/group.php:286
+msgid "Create a new collection"
msgstr ""
-#: ../../mod/dfrn_request.php:839 ../../mod/settings.php:652
-#: ../../include/contact_selectors.php:80
-msgid "Diaspora"
+#: ../../include/group.php:287
+msgid "Channels not in any collection"
msgstr ""
-#: ../../mod/dfrn_request.php:840
-#, php-format
-msgid ""
-" - please do not use this form. Instead, enter %s into your Diaspora search "
-"bar."
+#: ../../include/group.php:289 ../../mod/network.php:168
+msgid "add"
msgstr ""
-#: ../../mod/dfrn_request.php:841
-msgid "Your Identity Address:"
+#: ../../include/js_strings.php:5
+msgid "Delete this item?"
msgstr ""
-#: ../../mod/dfrn_request.php:844
-msgid "Submit Request"
+#: ../../include/js_strings.php:6 ../../include/ItemObject.php:504
+#: ../../mod/photos.php:1069 ../../mod/photos.php:1107
+#: ../../mod/photos.php:1134
+msgid "Comment"
msgstr ""
-#: ../../mod/install.php:117
-msgid "Friendica Social Communications Server - Setup"
+#: ../../include/js_strings.php:8
+msgid "show fewer"
msgstr ""
-#: ../../mod/install.php:123
-msgid "Could not connect to database."
+#: ../../include/js_strings.php:9
+msgid "Password too short"
msgstr ""
-#: ../../mod/install.php:127
-msgid "Could not create table."
+#: ../../include/js_strings.php:10
+msgid "Passwords do not match"
msgstr ""
-#: ../../mod/install.php:133
-msgid "Your Friendica site database has been installed."
+#: ../../include/js_strings.php:11 ../../mod/photos.php:45
+msgid "everybody"
msgstr ""
-#: ../../mod/install.php:138
-msgid ""
-"You may need to import the file \"database.sql\" manually using phpmyadmin "
-"or mysql."
+#: ../../include/js_strings.php:13
+msgid "timeago.prefixAgo"
msgstr ""
-#: ../../mod/install.php:139 ../../mod/install.php:204
-#: ../../mod/install.php:489
-msgid "Please see the file \"INSTALL.txt\"."
+#: ../../include/js_strings.php:14
+msgid "timeago.suffixAgo"
msgstr ""
-#: ../../mod/install.php:201
-msgid "System check"
+#: ../../include/js_strings.php:15
+msgid "ago"
msgstr ""
-#: ../../mod/install.php:206
-msgid "Check again"
+#: ../../include/js_strings.php:16
+msgid "from now"
msgstr ""
-#: ../../mod/install.php:225
-msgid "Database connection"
+#: ../../include/js_strings.php:17
+msgid "less than a minute"
msgstr ""
-#: ../../mod/install.php:226
-msgid ""
-"In order to install Friendica we need to know how to connect to your "
-"database."
+#: ../../include/js_strings.php:18
+msgid "about a minute"
msgstr ""
-#: ../../mod/install.php:227
-msgid ""
-"Please contact your hosting provider or site administrator if you have "
-"questions about these settings."
+#: ../../include/js_strings.php:19
+#, php-format
+msgid "%d minutes"
msgstr ""
-#: ../../mod/install.php:228
-msgid ""
-"The database you specify below should already exist. If it does not, please "
-"create it before continuing."
+#: ../../include/js_strings.php:20
+msgid "about an hour"
msgstr ""
-#: ../../mod/install.php:232
-msgid "Database Server Name"
+#: ../../include/js_strings.php:21
+#, php-format
+msgid "about %d hours"
msgstr ""
-#: ../../mod/install.php:233
-msgid "Database Login Name"
+#: ../../include/js_strings.php:22
+msgid "a day"
msgstr ""
-#: ../../mod/install.php:234
-msgid "Database Login Password"
+#: ../../include/js_strings.php:23
+#, php-format
+msgid "%d days"
msgstr ""
-#: ../../mod/install.php:235
-msgid "Database Name"
+#: ../../include/js_strings.php:24
+msgid "about a month"
msgstr ""
-#: ../../mod/install.php:236 ../../mod/install.php:275
-msgid "Site administrator email address"
+#: ../../include/js_strings.php:25
+#, php-format
+msgid "%d months"
msgstr ""
-#: ../../mod/install.php:236 ../../mod/install.php:275
-msgid ""
-"Your account email address must match this in order to use the web admin "
-"panel."
+#: ../../include/js_strings.php:26
+msgid "about a year"
msgstr ""
-#: ../../mod/install.php:240 ../../mod/install.php:278
-msgid "Please select a default timezone for your website"
+#: ../../include/js_strings.php:27
+#, php-format
+msgid "%d years"
msgstr ""
-#: ../../mod/install.php:265
-msgid "Site settings"
+#: ../../include/js_strings.php:29
+msgid "timeago.numbers"
msgstr ""
-#: ../../mod/install.php:318
-msgid "Could not find a command line version of PHP in the web server PATH."
+#: ../../include/message.php:17
+msgid "No recipient provided."
msgstr ""
-#: ../../mod/install.php:319
-msgid ""
-"If you don't have a command line version of PHP installed on server, you "
-"will not be able to run background polling via cron. See <a href='http://"
-"friendica.com/node/27'>'Activating scheduled tasks'</a>"
+#: ../../include/message.php:22
+msgid "[no subject]"
msgstr ""
-#: ../../mod/install.php:323
-msgid "PHP executable path"
+#: ../../include/message.php:37
+msgid "Unable to determine sender."
msgstr ""
-#: ../../mod/install.php:323
-msgid ""
-"Enter full path to php executable. You can leave this blank to continue the "
-"installation."
+#: ../../include/message.php:106
+msgid "Stored post could not be verified."
msgstr ""
-#: ../../mod/install.php:328
-msgid "Command line PHP"
+#: ../../include/network.php:1103
+msgid "view full size"
msgstr ""
-#: ../../mod/install.php:337
-msgid ""
-"The command line version of PHP on your system does not have "
-"\"register_argc_argv\" enabled."
+#: ../../include/photo/photo_driver.php:495
+#: ../../include/photo/photo_driver.php:502
+#: ../../include/photo/photo_driver.php:509 ../../include/photos.php:51
+#: ../../mod/photos.php:97 ../../mod/photos.php:754 ../../mod/photos.php:776
+#: ../../mod/profile_photo.php:88 ../../mod/profile_photo.php:93
+#: ../../mod/profile_photo.php:98 ../../mod/profile_photo.php:223
+#: ../../mod/profile_photo.php:323 ../../mod/profile_photo.php:332
+msgid "Profile Photos"
msgstr ""
-#: ../../mod/install.php:338
-msgid "This is required for message delivery to work."
+#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:118
+#: ../../mod/profperm.php:112
+msgid "Profile"
msgstr ""
-#: ../../mod/install.php:340
-msgid "PHP register_argc_argv"
+#: ../../include/profile_advanced.php:15 ../../mod/settings.php:1018
+msgid "Full Name:"
msgstr ""
-#: ../../mod/install.php:361
-msgid ""
-"Error: the \"openssl_pkey_new\" function on this system is not able to "
-"generate encryption keys"
+#: ../../include/profile_advanced.php:17 ../../mod/directory.php:122
+#: ../../boot.php:1667
+msgid "Gender:"
msgstr ""
-#: ../../mod/install.php:362
-msgid ""
-"If running under Windows, please see \"http://www.php.net/manual/en/openssl."
-"installation.php\"."
+#: ../../include/profile_advanced.php:22
+msgid "j F, Y"
msgstr ""
-#: ../../mod/install.php:364
-msgid "Generate encryption keys"
+#: ../../include/profile_advanced.php:23
+msgid "j F"
msgstr ""
-#: ../../mod/install.php:371
-msgid "libCurl PHP module"
+#: ../../include/profile_advanced.php:30
+msgid "Birthday:"
msgstr ""
-#: ../../mod/install.php:372
-msgid "GD graphics PHP module"
+#: ../../include/profile_advanced.php:34
+msgid "Age:"
msgstr ""
-#: ../../mod/install.php:373
-msgid "OpenSSL PHP module"
+#: ../../include/profile_advanced.php:37 ../../mod/directory.php:124
+#: ../../boot.php:1668
+msgid "Status:"
msgstr ""
-#: ../../mod/install.php:374
-msgid "mysqli PHP module"
+#: ../../include/profile_advanced.php:43
+#, php-format
+msgid "for %1$d %2$s"
msgstr ""
-#: ../../mod/install.php:375
-msgid "mb_string PHP module"
+#: ../../include/profile_advanced.php:46 ../../mod/profiles.php:549
+msgid "Sexual Preference:"
msgstr ""
-#: ../../mod/install.php:380 ../../mod/install.php:382
-msgid "Apache mod_rewrite module"
+#: ../../include/profile_advanced.php:48 ../../mod/directory.php:126
+#: ../../boot.php:1669
+msgid "Homepage:"
msgstr ""
-#: ../../mod/install.php:380
-msgid ""
-"Error: Apache webserver mod-rewrite module is required but not installed."
+#: ../../include/profile_advanced.php:50 ../../mod/profiles.php:551
+msgid "Hometown:"
msgstr ""
-#: ../../mod/install.php:388
-msgid "Error: libCURL PHP module required but not installed."
+#: ../../include/profile_advanced.php:52
+msgid "Tags:"
msgstr ""
-#: ../../mod/install.php:392
-msgid ""
-"Error: GD graphics PHP module with JPEG support required but not installed."
+#: ../../include/profile_advanced.php:54 ../../mod/profiles.php:552
+msgid "Political Views:"
msgstr ""
-#: ../../mod/install.php:396
-msgid "Error: openssl PHP module required but not installed."
+#: ../../include/profile_advanced.php:56
+msgid "Religion:"
msgstr ""
-#: ../../mod/install.php:400
-msgid "Error: mysqli PHP module required but not installed."
+#: ../../include/profile_advanced.php:58 ../../mod/directory.php:128
+msgid "About:"
msgstr ""
-#: ../../mod/install.php:404
-msgid "Error: mb_string PHP module required but not installed."
+#: ../../include/profile_advanced.php:60
+msgid "Hobbies/Interests:"
msgstr ""
-#: ../../mod/install.php:421
-msgid ""
-"The web installer needs to be able to create a file called \".htconfig.php\" "
-"in the top folder of your web server and it is unable to do so."
+#: ../../include/profile_advanced.php:62 ../../mod/profiles.php:555
+msgid "Likes:"
msgstr ""
-#: ../../mod/install.php:422
-msgid ""
-"This is most often a permission setting, as the web server may not be able "
-"to write files in your folder - even if you can."
+#: ../../include/profile_advanced.php:64 ../../mod/profiles.php:556
+msgid "Dislikes:"
msgstr ""
-#: ../../mod/install.php:423
-msgid ""
-"At the end of this procedure, we will give you a text to save in a file "
-"named .htconfig.php in your Friendica top folder."
+#: ../../include/profile_advanced.php:67
+msgid "Contact information and Social Networks:"
msgstr ""
-#: ../../mod/install.php:424
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation. "
-"Please see the file \"INSTALL.txt\" for instructions."
+#: ../../include/profile_advanced.php:69
+msgid "Musical interests:"
msgstr ""
-#: ../../mod/install.php:427
-msgid ".htconfig.php is writable"
+#: ../../include/profile_advanced.php:71
+msgid "Books, literature:"
msgstr ""
-#: ../../mod/install.php:439
-msgid ""
-"Url rewrite in .htaccess is not working. Check your server configuration."
+#: ../../include/profile_advanced.php:73
+msgid "Television:"
msgstr ""
-#: ../../mod/install.php:441
-msgid "Url rewrite is working"
+#: ../../include/profile_advanced.php:75
+msgid "Film/dance/culture/entertainment:"
msgstr ""
-#: ../../mod/install.php:451
-msgid ""
-"The database configuration file \".htconfig.php\" could not be written. "
-"Please use the enclosed text to create a configuration file in your web "
-"server root."
+#: ../../include/profile_advanced.php:77
+msgid "Love/Romance:"
msgstr ""
-#: ../../mod/install.php:476
-msgid "Errors encountered creating database tables."
+#: ../../include/profile_advanced.php:79
+msgid "Work/employment:"
msgstr ""
-#: ../../mod/install.php:487
-msgid "<h1>What next</h1>"
+#: ../../include/profile_advanced.php:81
+msgid "School/education:"
msgstr ""
-#: ../../mod/install.php:488
-msgid ""
-"IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
+#: ../../include/security.php:48
+msgid "Welcome "
msgstr ""
-#: ../../mod/localtime.php:12 ../../include/event.php:11
-#: ../../include/bb2diaspora.php:387
-msgid "l F d, Y \\@ g:i A"
+#: ../../include/security.php:49
+msgid "Please upload a profile photo."
msgstr ""
-#: ../../mod/localtime.php:24
-msgid "Time Conversion"
+#: ../../include/security.php:52
+msgid "Welcome back "
msgstr ""
-#: ../../mod/localtime.php:26
+#: ../../include/security.php:355
msgid ""
-"Friendika provides this service for sharing events with other networks and "
-"friends in unknown timezones."
-msgstr ""
-
-#: ../../mod/localtime.php:30
-#, php-format
-msgid "UTC time: %s"
+"The form security token was not correct. This probably happened because the "
+"form has been opened for too long (>3 hours) before submitting it."
msgstr ""
-#: ../../mod/localtime.php:33
-#, php-format
-msgid "Current timezone: %s"
+#: ../../include/bbcode.php:94 ../../include/bbcode.php:412
+#: ../../include/bbcode.php:413
+msgid "Image/photo"
msgstr ""
-#: ../../mod/localtime.php:36
+#: ../../include/bbcode.php:161
#, php-format
-msgid "Converted localtime: %s"
+msgid "%1$s wrote the following %2$s %3$s"
msgstr ""
-#: ../../mod/localtime.php:41
-msgid "Please select your timezone:"
-msgstr ""
-
-#: ../../mod/match.php:12
-msgid "Profile Match"
+#: ../../include/bbcode.php:163
+msgid "post"
msgstr ""
-#: ../../mod/match.php:20
-msgid "No keywords to match. Please add keywords to your default profile."
+#: ../../include/bbcode.php:376 ../../include/bbcode.php:396
+msgid "$1 wrote:"
msgstr ""
-#: ../../mod/match.php:57
-msgid "is interested in:"
+#: ../../include/bbcode.php:417 ../../include/bbcode.php:418
+msgid "Encrypted content"
msgstr ""
-#: ../../mod/match.php:58 ../../mod/suggest.php:59
-#: ../../include/contact_widgets.php:9 ../../boot.php:1116
-msgid "Connect"
+#: ../../include/nav.php:71 ../../include/nav.php:86 ../../boot.php:1350
+msgid "Logout"
msgstr ""
-#: ../../mod/match.php:65 ../../mod/dirfind.php:60
-msgid "No matches"
+#: ../../include/nav.php:71 ../../include/nav.php:86
+msgid "End this session"
msgstr ""
-#: ../../mod/lockview.php:39
-msgid "Remote privacy information not available."
+#: ../../include/nav.php:74 ../../include/nav.php:116
+#: ../../include/nav.php:148
+msgid "Home"
msgstr ""
-#: ../../mod/lockview.php:43
-msgid "Visible to:"
+#: ../../include/nav.php:74 ../../include/nav.php:148
+msgid "Your posts and conversations"
msgstr ""
-#: ../../mod/content.php:119 ../../mod/network.php:436
-msgid "No such group"
+#: ../../include/nav.php:75
+msgid "Your profile page"
msgstr ""
-#: ../../mod/content.php:130 ../../mod/network.php:447
-msgid "Group is empty"
+#: ../../include/nav.php:77
+msgid "Edit Profiles"
msgstr ""
-#: ../../mod/content.php:134 ../../mod/network.php:451
-msgid "Group: "
+#: ../../include/nav.php:77
+msgid "Manage/Edit Profiles"
msgstr ""
-#: ../../mod/content.php:438 ../../mod/content.php:719
-#: ../../include/conversation.php:327 ../../include/conversation.php:608
-msgid "Select"
+#: ../../include/nav.php:78 ../../mod/fbrowser.php:25 ../../boot.php:2086
+msgid "Photos"
msgstr ""
-#: ../../mod/content.php:455 ../../mod/content.php:812
-#: ../../mod/content.php:813 ../../include/conversation.php:344
-#: ../../include/conversation.php:701 ../../include/conversation.php:702
-#, php-format
-msgid "View %s's profile @ %s"
+#: ../../include/nav.php:78
+msgid "Your photos"
msgstr ""
-#: ../../mod/content.php:465 ../../mod/content.php:824
-#: ../../include/conversation.php:354 ../../include/conversation.php:713
-#, php-format
-msgid "%s from %s"
+#: ../../include/nav.php:84 ../../boot.php:1351
+msgid "Login"
msgstr ""
-#: ../../mod/content.php:480 ../../include/conversation.php:369
-msgid "View in context"
+#: ../../include/nav.php:84
+msgid "Sign in"
msgstr ""
-#: ../../mod/content.php:586 ../../include/conversation.php:475
+#: ../../include/nav.php:100
#, php-format
-msgid "%d comment"
-msgid_plural "%d comments"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../mod/content.php:587 ../../addon/page/page.php:76
-#: ../../addon/page/page.php:110 ../../addon/showmore/showmore.php:87
-#: ../../include/contact_widgets.php:188 ../../include/conversation.php:476
-#: ../../boot.php:565
-msgid "show more"
-msgstr ""
-
-#: ../../mod/content.php:665 ../../include/conversation.php:554
-msgid "like"
-msgstr ""
-
-#: ../../mod/content.php:666 ../../include/conversation.php:555
-msgid "dislike"
+msgid "%s - click to logout"
msgstr ""
-#: ../../mod/content.php:668 ../../include/conversation.php:557
-msgid "Share this"
-msgstr ""
-
-#: ../../mod/content.php:668 ../../include/conversation.php:557
-msgid "share"
-msgstr ""
-
-#: ../../mod/content.php:692 ../../include/conversation.php:581
-msgid "Bold"
+#: ../../include/nav.php:103
+msgid "Click to authenticate to your home hub"
msgstr ""
-#: ../../mod/content.php:693 ../../include/conversation.php:582
-msgid "Italic"
+#: ../../include/nav.php:116
+msgid "Home Page"
msgstr ""
-#: ../../mod/content.php:694 ../../include/conversation.php:583
-msgid "Underline"
+#: ../../include/nav.php:120 ../../mod/register.php:181 ../../boot.php:1326
+msgid "Register"
msgstr ""
-#: ../../mod/content.php:695 ../../include/conversation.php:584
-msgid "Quote"
+#: ../../include/nav.php:120
+msgid "Create an account"
msgstr ""
-#: ../../mod/content.php:696 ../../include/conversation.php:585
-msgid "Code"
+#: ../../include/nav.php:125 ../../mod/help.php:34
+msgid "Help"
msgstr ""
-#: ../../mod/content.php:697 ../../include/conversation.php:586
-msgid "Image"
+#: ../../include/nav.php:125
+msgid "Help and documentation"
msgstr ""
-#: ../../mod/content.php:698 ../../include/conversation.php:587
-msgid "Link"
+#: ../../include/nav.php:128
+msgid "Apps"
msgstr ""
-#: ../../mod/content.php:699 ../../include/conversation.php:588
-msgid "Video"
+#: ../../include/nav.php:128
+msgid "Addon applications, utilities, games"
msgstr ""
-#: ../../mod/content.php:732 ../../include/conversation.php:621
-msgid "add star"
+#: ../../include/nav.php:130 ../../include/text.php:701
+#: ../../include/text.php:702 ../../mod/search.php:96
+msgid "Search"
msgstr ""
-#: ../../mod/content.php:733 ../../include/conversation.php:622
-msgid "remove star"
+#: ../../include/nav.php:130
+msgid "Search site content"
msgstr ""
-#: ../../mod/content.php:734 ../../include/conversation.php:623
-msgid "toggle star status"
+#: ../../include/nav.php:133 ../../mod/directory.php:168
+msgid "Directory"
msgstr ""
-#: ../../mod/content.php:737 ../../include/conversation.php:626
-msgid "starred"
+#: ../../include/nav.php:133
+msgid "Channel Locator"
msgstr ""
-#: ../../mod/content.php:738 ../../include/conversation.php:627
-msgid "add tag"
+#: ../../include/nav.php:144
+msgid "Matrix"
msgstr ""
-#: ../../mod/content.php:742 ../../include/conversation.php:631
-msgid "save to folder"
+#: ../../include/nav.php:144
+msgid "Conversations from your grid"
msgstr ""
-#: ../../mod/content.php:814 ../../include/conversation.php:703
-msgid "to"
+#: ../../include/nav.php:145
+msgid "See all matrix notifications"
msgstr ""
-#: ../../mod/content.php:815 ../../include/conversation.php:704
-msgid "Wall-to-Wall"
+#: ../../include/nav.php:146
+msgid "Mark all matrix notifications seen"
msgstr ""
-#: ../../mod/content.php:816 ../../include/conversation.php:705
-msgid "via Wall-To-Wall:"
+#: ../../include/nav.php:149
+msgid "See all channel notifications"
msgstr ""
-#: ../../mod/home.php:26 ../../addon/communityhome/communityhome.php:179
-#, php-format
-msgid "Welcome to %s"
+#: ../../include/nav.php:150
+msgid "Mark all channel notifications seen"
msgstr ""
-#: ../../mod/notifications.php:26
-msgid "Invalid request identifier."
+#: ../../include/nav.php:153
+msgid "Intros"
msgstr ""
-#: ../../mod/notifications.php:35 ../../mod/notifications.php:161
-#: ../../mod/notifications.php:207
-msgid "Discard"
+#: ../../include/nav.php:153 ../../mod/connections.php:544
+msgid "New Connections"
msgstr ""
-#: ../../mod/notifications.php:51 ../../mod/notifications.php:160
-#: ../../mod/notifications.php:206 ../../mod/contacts.php:316
-#: ../../mod/contacts.php:370
-msgid "Ignore"
+#: ../../include/nav.php:154
+msgid "See all channel introductions"
msgstr ""
-#: ../../mod/notifications.php:75
-msgid "System"
+#: ../../include/nav.php:157
+msgid "Notices"
msgstr ""
-#: ../../mod/notifications.php:80 ../../include/nav.php:113
-msgid "Network"
+#: ../../include/nav.php:157 ../../mod/notifications.php:218
+msgid "Notifications"
msgstr ""
-#: ../../mod/notifications.php:85 ../../mod/network.php:300
-msgid "Personal"
+#: ../../include/nav.php:158
+msgid "See all notifications"
msgstr ""
-#: ../../mod/notifications.php:90 ../../view/theme/diabook/theme.php:127
-#: ../../include/nav.php:77 ../../include/nav.php:115
-msgid "Home"
+#: ../../include/nav.php:159
+msgid "Mark all system notifications seen"
msgstr ""
-#: ../../mod/notifications.php:95 ../../include/nav.php:121
-msgid "Introductions"
+#: ../../include/nav.php:161
+msgid "Mail"
msgstr ""
-#: ../../mod/notifications.php:100 ../../mod/message.php:105
-#: ../../include/nav.php:128
-msgid "Messages"
+#: ../../include/nav.php:161
+msgid "Private mail"
msgstr ""
-#: ../../mod/notifications.php:119
-msgid "Show Ignored Requests"
+#: ../../include/nav.php:162
+msgid "See all private messages"
msgstr ""
-#: ../../mod/notifications.php:119
-msgid "Hide Ignored Requests"
+#: ../../include/nav.php:163
+msgid "Mark all private messages seen"
msgstr ""
-#: ../../mod/notifications.php:145 ../../mod/notifications.php:191
-msgid "Notification type: "
+#: ../../include/nav.php:164
+msgid "Inbox"
msgstr ""
-#: ../../mod/notifications.php:146
-msgid "Friend Suggestion"
+#: ../../include/nav.php:165
+msgid "Outbox"
msgstr ""
-#: ../../mod/notifications.php:148
-#, php-format
-msgid "suggested by %s"
+#: ../../include/nav.php:166 ../../mod/message.php:21
+msgid "New Message"
msgstr ""
-#: ../../mod/notifications.php:153 ../../mod/notifications.php:200
-#: ../../mod/contacts.php:376
-msgid "Hide this contact from others"
+#: ../../include/nav.php:169 ../../mod/events.php:348 ../../boot.php:2097
+msgid "Events"
msgstr ""
-#: ../../mod/notifications.php:154 ../../mod/notifications.php:201
-msgid "Post a new friend activity"
+#: ../../include/nav.php:169
+msgid "Event Calendar"
msgstr ""
-#: ../../mod/notifications.php:154 ../../mod/notifications.php:201
-msgid "if applicable"
+#: ../../include/nav.php:170
+msgid "See all events"
msgstr ""
-#: ../../mod/notifications.php:157 ../../mod/notifications.php:204
-#: ../../mod/admin.php:663
-msgid "Approve"
+#: ../../include/nav.php:171
+msgid "Mark all events seen"
msgstr ""
-#: ../../mod/notifications.php:177
-msgid "Claims to be known to you: "
+#: ../../include/nav.php:173
+msgid "Channel Select"
msgstr ""
-#: ../../mod/notifications.php:177
-msgid "yes"
+#: ../../include/nav.php:173
+msgid "Manage Your Channels"
msgstr ""
-#: ../../mod/notifications.php:177
-msgid "no"
+#: ../../include/nav.php:175 ../../mod/settings.php:107
+#: ../../mod/admin.php:718 ../../mod/admin.php:923
+msgid "Settings"
msgstr ""
-#: ../../mod/notifications.php:184
-msgid "Approve as: "
+#: ../../include/nav.php:175
+msgid "Account/Channel Settings"
msgstr ""
-#: ../../mod/notifications.php:185
-msgid "Friend"
+#: ../../include/nav.php:177 ../../mod/connections.php:652
+msgid "Connections"
msgstr ""
-#: ../../mod/notifications.php:186
-msgid "Sharer"
+#: ../../include/nav.php:177
+msgid "Manage/Edit Friends and Connections"
msgstr ""
-#: ../../mod/notifications.php:186
-msgid "Fan/Admirer"
+#: ../../include/nav.php:184 ../../mod/admin.php:106
+msgid "Admin"
msgstr ""
-#: ../../mod/notifications.php:192
-msgid "Friend/Connect Request"
+#: ../../include/nav.php:184
+msgid "Site Setup and Configuration"
msgstr ""
-#: ../../mod/notifications.php:192
-msgid "New Follower"
+#: ../../include/nav.php:207
+msgid "Nothing new here"
msgstr ""
-#: ../../mod/notifications.php:213
-msgid "No introductions."
+#: ../../include/nav.php:212
+msgid "Please wait..."
msgstr ""
-#: ../../mod/notifications.php:216 ../../include/nav.php:122
-msgid "Notifications"
+#: ../../include/notify.php:23
+msgid "created a new post"
msgstr ""
-#: ../../mod/notifications.php:253 ../../mod/notifications.php:378
-#: ../../mod/notifications.php:465
+#: ../../include/notify.php:24
#, php-format
-msgid "%s liked %s's post"
+msgid "commented on %s's post"
msgstr ""
-#: ../../mod/notifications.php:262 ../../mod/notifications.php:387
-#: ../../mod/notifications.php:474
-#, php-format
-msgid "%s disliked %s's post"
+#: ../../include/oembed.php:148
+msgid "Embedded content"
msgstr ""
-#: ../../mod/notifications.php:276 ../../mod/notifications.php:401
-#: ../../mod/notifications.php:488
-#, php-format
-msgid "%s is now friends with %s"
+#: ../../include/oembed.php:157
+msgid "Embedding disabled"
msgstr ""
-#: ../../mod/notifications.php:283 ../../mod/notifications.php:408
-#, php-format
-msgid "%s created a new post"
+#: ../../include/photos.php:15 ../../include/attach.php:102
+#: ../../include/attach.php:133 ../../include/attach.php:189
+#: ../../include/attach.php:204 ../../include/attach.php:237
+#: ../../include/attach.php:251 ../../include/attach.php:272
+#: ../../include/attach.php:464 ../../include/items.php:4580
+#: ../../mod/common.php:43 ../../mod/events.php:134 ../../mod/invite.php:13
+#: ../../mod/invite.php:99 ../../mod/allfriends.php:10 ../../mod/api.php:26
+#: ../../mod/api.php:31 ../../mod/page.php:31 ../../mod/setup.php:181
+#: ../../mod/settings.php:585 ../../mod/viewconnections.php:33
+#: ../../mod/viewconnections.php:38 ../../mod/delegate.php:6
+#: ../../mod/group.php:15 ../../mod/photos.php:74 ../../mod/photos.php:644
+#: ../../mod/viewsrc.php:12 ../../mod/message.php:204 ../../mod/item.php:151
+#: ../../mod/network.php:7 ../../mod/intro.php:50
+#: ../../mod/connections.php:165 ../../mod/profiles.php:163
+#: ../../mod/profiles.php:476 ../../mod/new_channel.php:66
+#: ../../mod/new_channel.php:97 ../../mod/manage.php:6
+#: ../../mod/crepair.php:115 ../../mod/nogroup.php:25
+#: ../../mod/profile_photo.php:185 ../../mod/profile_photo.php:198
+#: ../../mod/editwebpage.php:42 ../../mod/notifications.php:66
+#: ../../mod/editpost.php:11 ../../mod/poke.php:128 ../../mod/channel.php:108
+#: ../../mod/fsuggest.php:78 ../../mod/suggest.php:32
+#: ../../mod/register.php:60 ../../mod/regmod.php:18 ../../mod/mood.php:112
+#: ../../index.php:178 ../../index.php:340
+msgid "Permission denied."
msgstr ""
-#: ../../mod/notifications.php:284 ../../mod/notifications.php:409
-#: ../../mod/notifications.php:497
+#: ../../include/photos.php:88
#, php-format
-msgid "%s commented on %s's post"
-msgstr ""
-
-#: ../../mod/notifications.php:298
-msgid "No more network notifications."
+msgid "Image exceeds website size limit of %lu bytes"
msgstr ""
-#: ../../mod/notifications.php:302
-msgid "Network Notifications"
-msgstr ""
-
-#: ../../mod/notifications.php:328 ../../mod/notify.php:61
-msgid "No more system notifications."
-msgstr ""
-
-#: ../../mod/notifications.php:332 ../../mod/notify.php:65
-msgid "System Notifications"
-msgstr ""
-
-#: ../../mod/notifications.php:423
-msgid "No more personal notifications."
-msgstr ""
-
-#: ../../mod/notifications.php:427
-msgid "Personal Notifications"
-msgstr ""
-
-#: ../../mod/notifications.php:504
-msgid "No more home notifications."
-msgstr ""
-
-#: ../../mod/notifications.php:508
-msgid "Home Notifications"
-msgstr ""
-
-#: ../../mod/contacts.php:83 ../../mod/contacts.php:163
-msgid "Could not access contact record."
+#: ../../include/photos.php:95
+msgid "Image file is empty."
msgstr ""
-#: ../../mod/contacts.php:97
-msgid "Could not locate selected profile."
+#: ../../include/photos.php:124 ../../mod/profile_photo.php:145
+msgid "Unable to process image"
msgstr ""
-#: ../../mod/contacts.php:120
-msgid "Contact updated."
+#: ../../include/photos.php:178
+msgid "Photo storage failed."
msgstr ""
-#: ../../mod/contacts.php:185
-msgid "Contact has been blocked"
+#: ../../include/photos.php:279 ../../boot.php:2089
+msgid "Photo Albums"
msgstr ""
-#: ../../mod/contacts.php:185
-msgid "Contact has been unblocked"
+#: ../../include/photos.php:283 ../../mod/photos.php:792
+#: ../../mod/photos.php:1287
+msgid "Upload New Photos"
msgstr ""
-#: ../../mod/contacts.php:199
-msgid "Contact has been ignored"
+#: ../../include/profile_selectors.php:6
+msgid "Male"
msgstr ""
-#: ../../mod/contacts.php:199
-msgid "Contact has been unignored"
+#: ../../include/profile_selectors.php:6
+msgid "Female"
msgstr ""
-#: ../../mod/contacts.php:215
-msgid "Contact has been archived"
+#: ../../include/profile_selectors.php:6
+msgid "Currently Male"
msgstr ""
-#: ../../mod/contacts.php:215
-msgid "Contact has been unarchived"
+#: ../../include/profile_selectors.php:6
+msgid "Currently Female"
msgstr ""
-#: ../../mod/contacts.php:228
-msgid "Contact has been removed."
+#: ../../include/profile_selectors.php:6
+msgid "Mostly Male"
msgstr ""
-#: ../../mod/contacts.php:258
-#, php-format
-msgid "You are mutual friends with %s"
+#: ../../include/profile_selectors.php:6
+msgid "Mostly Female"
msgstr ""
-#: ../../mod/contacts.php:262
-#, php-format
-msgid "You are sharing with %s"
+#: ../../include/profile_selectors.php:6
+msgid "Transgender"
msgstr ""
-#: ../../mod/contacts.php:267
-#, php-format
-msgid "%s is sharing with you"
+#: ../../include/profile_selectors.php:6
+msgid "Intersex"
msgstr ""
-#: ../../mod/contacts.php:284
-msgid "Private communications are not available for this contact."
+#: ../../include/profile_selectors.php:6
+msgid "Transsexual"
msgstr ""
-#: ../../mod/contacts.php:287
-msgid "Never"
+#: ../../include/profile_selectors.php:6
+msgid "Hermaphrodite"
msgstr ""
-#: ../../mod/contacts.php:291
-msgid "(Update was successful)"
+#: ../../include/profile_selectors.php:6
+msgid "Neuter"
msgstr ""
-#: ../../mod/contacts.php:291
-msgid "(Update was not successful)"
+#: ../../include/profile_selectors.php:6
+msgid "Non-specific"
msgstr ""
-#: ../../mod/contacts.php:293
-msgid "Suggest friends"
+#: ../../include/profile_selectors.php:6
+msgid "Other"
msgstr ""
-#: ../../mod/contacts.php:297
-#, php-format
-msgid "Network type: %s"
+#: ../../include/profile_selectors.php:6
+msgid "Undecided"
msgstr ""
-#: ../../mod/contacts.php:300 ../../include/contact_widgets.php:183
-#, php-format
-msgid "%d contact in common"
-msgid_plural "%d contacts in common"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../mod/contacts.php:305
-msgid "View all contacts"
+#: ../../include/profile_selectors.php:23
+msgid "Males"
msgstr ""
-#: ../../mod/contacts.php:310 ../../mod/contacts.php:369
-#: ../../mod/admin.php:667
-msgid "Unblock"
+#: ../../include/profile_selectors.php:23
+msgid "Females"
msgstr ""
-#: ../../mod/contacts.php:310 ../../mod/contacts.php:369
-#: ../../mod/admin.php:666
-msgid "Block"
+#: ../../include/profile_selectors.php:23
+msgid "Gay"
msgstr ""
-#: ../../mod/contacts.php:313
-msgid "Toggle Blocked status"
+#: ../../include/profile_selectors.php:23
+msgid "Lesbian"
msgstr ""
-#: ../../mod/contacts.php:316 ../../mod/contacts.php:370
-msgid "Unignore"
+#: ../../include/profile_selectors.php:23
+msgid "No Preference"
msgstr ""
-#: ../../mod/contacts.php:319
-msgid "Toggle Ignored status"
+#: ../../include/profile_selectors.php:23
+msgid "Bisexual"
msgstr ""
-#: ../../mod/contacts.php:323
-msgid "Unarchive"
+#: ../../include/profile_selectors.php:23
+msgid "Autosexual"
msgstr ""
-#: ../../mod/contacts.php:323
-msgid "Archive"
+#: ../../include/profile_selectors.php:23
+msgid "Abstinent"
msgstr ""
-#: ../../mod/contacts.php:326
-msgid "Toggle Archive status"
+#: ../../include/profile_selectors.php:23
+msgid "Virgin"
msgstr ""
-#: ../../mod/contacts.php:329
-msgid "Repair"
+#: ../../include/profile_selectors.php:23
+msgid "Deviant"
msgstr ""
-#: ../../mod/contacts.php:332
-msgid "Advanced Contact Settings"
+#: ../../include/profile_selectors.php:23
+msgid "Fetish"
msgstr ""
-#: ../../mod/contacts.php:338
-msgid "Communications lost with this contact!"
+#: ../../include/profile_selectors.php:23
+msgid "Oodles"
msgstr ""
-#: ../../mod/contacts.php:341
-msgid "Contact Editor"
+#: ../../include/profile_selectors.php:23
+msgid "Nonsexual"
msgstr ""
-#: ../../mod/contacts.php:344
-msgid "Profile Visibility"
+#: ../../include/profile_selectors.php:42
+msgid "Single"
msgstr ""
-#: ../../mod/contacts.php:345
-#, php-format
-msgid ""
-"Please choose the profile you would like to display to %s when viewing your "
-"profile securely."
+#: ../../include/profile_selectors.php:42
+msgid "Lonely"
msgstr ""
-#: ../../mod/contacts.php:346
-msgid "Contact Information / Notes"
+#: ../../include/profile_selectors.php:42
+msgid "Available"
msgstr ""
-#: ../../mod/contacts.php:347
-msgid "Edit contact notes"
+#: ../../include/profile_selectors.php:42
+msgid "Unavailable"
msgstr ""
-#: ../../mod/contacts.php:352 ../../mod/contacts.php:544
-#: ../../mod/viewconnections.php:62 ../../mod/nogroup.php:40
-#, php-format
-msgid "Visit %s's profile [%s]"
+#: ../../include/profile_selectors.php:42
+msgid "Has crush"
msgstr ""
-#: ../../mod/contacts.php:353
-msgid "Block/Unblock contact"
+#: ../../include/profile_selectors.php:42
+msgid "Infatuated"
msgstr ""
-#: ../../mod/contacts.php:354
-msgid "Ignore contact"
+#: ../../include/profile_selectors.php:42
+msgid "Dating"
msgstr ""
-#: ../../mod/contacts.php:355
-msgid "Repair URL settings"
+#: ../../include/profile_selectors.php:42
+msgid "Unfaithful"
msgstr ""
-#: ../../mod/contacts.php:356
-msgid "View conversations"
+#: ../../include/profile_selectors.php:42
+msgid "Sex Addict"
msgstr ""
-#: ../../mod/contacts.php:358
-msgid "Delete contact"
+#: ../../include/profile_selectors.php:42 ../../include/identity.php:233
+#: ../../mod/network.php:381 ../../mod/connections.php:367
+msgid "Friends"
msgstr ""
-#: ../../mod/contacts.php:362
-msgid "Last update:"
+#: ../../include/profile_selectors.php:42
+msgid "Friends/Benefits"
msgstr ""
-#: ../../mod/contacts.php:364
-msgid "Update public posts"
+#: ../../include/profile_selectors.php:42
+msgid "Casual"
msgstr ""
-#: ../../mod/contacts.php:366 ../../mod/admin.php:1138
-msgid "Update now"
+#: ../../include/profile_selectors.php:42
+msgid "Engaged"
msgstr ""
-#: ../../mod/contacts.php:373
-msgid "Currently blocked"
+#: ../../include/profile_selectors.php:42
+msgid "Married"
msgstr ""
-#: ../../mod/contacts.php:374
-msgid "Currently ignored"
+#: ../../include/profile_selectors.php:42
+msgid "Imaginarily married"
msgstr ""
-#: ../../mod/contacts.php:375
-msgid "Currently archived"
+#: ../../include/profile_selectors.php:42
+msgid "Partners"
msgstr ""
-#: ../../mod/contacts.php:376
-msgid ""
-"Replies/likes to your public posts <strong>may</strong> still be visible"
+#: ../../include/profile_selectors.php:42
+msgid "Cohabiting"
msgstr ""
-#: ../../mod/contacts.php:429
-msgid "Suggestions"
+#: ../../include/profile_selectors.php:42
+msgid "Common law"
msgstr ""
-#: ../../mod/contacts.php:432
-msgid "Suggest potential friends"
+#: ../../include/profile_selectors.php:42
+msgid "Happy"
msgstr ""
-#: ../../mod/contacts.php:435 ../../mod/group.php:191
-msgid "All Contacts"
+#: ../../include/profile_selectors.php:42
+msgid "Not looking"
msgstr ""
-#: ../../mod/contacts.php:438
-msgid "Show all contacts"
+#: ../../include/profile_selectors.php:42
+msgid "Swinger"
msgstr ""
-#: ../../mod/contacts.php:441
-msgid "Unblocked"
+#: ../../include/profile_selectors.php:42
+msgid "Betrayed"
msgstr ""
-#: ../../mod/contacts.php:444
-msgid "Only show unblocked contacts"
+#: ../../include/profile_selectors.php:42
+msgid "Separated"
msgstr ""
-#: ../../mod/contacts.php:448
-msgid "Blocked"
+#: ../../include/profile_selectors.php:42
+msgid "Unstable"
msgstr ""
-#: ../../mod/contacts.php:451
-msgid "Only show blocked contacts"
+#: ../../include/profile_selectors.php:42
+msgid "Divorced"
msgstr ""
-#: ../../mod/contacts.php:455
-msgid "Ignored"
+#: ../../include/profile_selectors.php:42
+msgid "Imaginarily divorced"
msgstr ""
-#: ../../mod/contacts.php:458
-msgid "Only show ignored contacts"
+#: ../../include/profile_selectors.php:42
+msgid "Widowed"
msgstr ""
-#: ../../mod/contacts.php:462
-msgid "Archived"
+#: ../../include/profile_selectors.php:42
+msgid "Uncertain"
msgstr ""
-#: ../../mod/contacts.php:465
-msgid "Only show archived contacts"
+#: ../../include/profile_selectors.php:42
+msgid "It's complicated"
msgstr ""
-#: ../../mod/contacts.php:469
-msgid "Hidden"
+#: ../../include/profile_selectors.php:42
+msgid "Don't care"
msgstr ""
-#: ../../mod/contacts.php:472
-msgid "Only show hidden contacts"
+#: ../../include/profile_selectors.php:42
+msgid "Ask me"
msgstr ""
-#: ../../mod/contacts.php:520
-msgid "Mutual Friendship"
+#: ../../include/account.php:22
+msgid "Not a valid email address"
msgstr ""
-#: ../../mod/contacts.php:524
-msgid "is a fan of yours"
+#: ../../include/account.php:24
+msgid "Your email domain is not among those allowed on this site"
msgstr ""
-#: ../../mod/contacts.php:528
-msgid "you are a fan of"
+#: ../../include/account.php:30
+msgid "Your email address is already registered at this site."
msgstr ""
-#: ../../mod/contacts.php:545 ../../mod/nogroup.php:41
-msgid "Edit contact"
+#: ../../include/account.php:63
+msgid "An invitation is required."
msgstr ""
-#: ../../mod/contacts.php:566 ../../view/theme/diabook/theme.php:129
-#: ../../include/nav.php:139
-msgid "Contacts"
+#: ../../include/account.php:67
+msgid "Invitation could not be verified."
msgstr ""
-#: ../../mod/contacts.php:570
-msgid "Search your contacts"
+#: ../../include/account.php:117
+msgid "Please enter the required information."
msgstr ""
-#: ../../mod/contacts.php:571 ../../mod/directory.php:57
-msgid "Finding: "
+#: ../../include/account.php:178
+msgid "Failed to store account information."
msgstr ""
-#: ../../mod/contacts.php:572 ../../mod/directory.php:59
-#: ../../include/contact_widgets.php:33
-msgid "Find"
+#: ../../include/account.php:264
+#, php-format
+msgid "Registration request at %s"
msgstr ""
-#: ../../mod/lostpass.php:16
-msgid "No valid account found."
+#: ../../include/account.php:266 ../../include/account.php:293
+#: ../../include/account.php:350 ../../include/items.php:4105
+#: ../../boot.php:1191
+msgid "Administrator"
msgstr ""
-#: ../../mod/lostpass.php:32
-msgid "Password reset request issued. Check your email."
+#: ../../include/account.php:288
+msgid "your registration password"
msgstr ""
-#: ../../mod/lostpass.php:43
+#: ../../include/account.php:291 ../../include/account.php:348
#, php-format
-msgid "Password reset requested at %s"
-msgstr ""
-
-#: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107
-#: ../../mod/register.php:90 ../../mod/register.php:144
-#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:752
-#: ../../addon/facebook/facebook.php:702
-#: ../../addon/facebook/facebook.php:1192
-#: ../../addon/public_server/public_server.php:62
-#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:2892
-#: ../../boot.php:766
-msgid "Administrator"
+msgid "Registration details for %s"
msgstr ""
-#: ../../mod/lostpass.php:65
-msgid ""
-"Request could not be verified. (You may have previously submitted it.) "
-"Password reset failed."
+#: ../../include/account.php:357
+msgid "Account approved."
msgstr ""
-#: ../../mod/lostpass.php:83 ../../boot.php:898
-msgid "Password Reset"
+#: ../../include/account.php:391
+#, php-format
+msgid "Registration revoked for %s"
msgstr ""
-#: ../../mod/lostpass.php:84
-msgid "Your password has been reset as requested."
+#: ../../include/identity.php:14
+msgid "Unable to obtain identity information from database"
msgstr ""
-#: ../../mod/lostpass.php:85
-msgid "Your new password is"
+#: ../../include/identity.php:36
+msgid "Empty name"
msgstr ""
-#: ../../mod/lostpass.php:86
-msgid "Save or copy your new password - and then"
+#: ../../include/identity.php:38
+msgid "Name too long"
msgstr ""
-#: ../../mod/lostpass.php:87
-msgid "click here to login"
+#: ../../include/identity.php:80
+msgid "No account identifier"
msgstr ""
-#: ../../mod/lostpass.php:88
+#: ../../include/identity.php:95
msgid ""
-"Your password may be changed from the <em>Settings</em> page after "
-"successful login."
+"Nickname has unsupported characters or is already being used on this site."
msgstr ""
-#: ../../mod/lostpass.php:119
-msgid "Forgot your Password?"
+#: ../../include/identity.php:143
+msgid "Unable to retrieve created identity"
msgstr ""
-#: ../../mod/lostpass.php:120
-msgid ""
-"Enter your email address and submit to have your password reset. Then check "
-"your email for further instructions."
+#: ../../include/identity.php:208
+msgid "Default Profile"
msgstr ""
-#: ../../mod/lostpass.php:121
-msgid "Nickname or Email: "
+#: ../../include/plugin.php:435 ../../include/plugin.php:437
+msgid "Click here to upgrade."
msgstr ""
-#: ../../mod/lostpass.php:122
-msgid "Reset"
+#: ../../include/plugin.php:443
+msgid "This action exceeds the limits set by your subscription plan."
msgstr ""
-#: ../../mod/settings.php:50 ../../include/nav.php:137
-msgid "Account settings"
+#: ../../include/plugin.php:448
+msgid "This action is not available under your subscription plan."
msgstr ""
-#: ../../mod/settings.php:55
-msgid "Display settings"
+#: ../../include/zot.php:423
+msgid "Invalid data packet"
msgstr ""
-#: ../../mod/settings.php:61
-msgid "Connector settings"
+#: ../../include/zot.php:433
+msgid "Unable to verify channel signature"
msgstr ""
-#: ../../mod/settings.php:66
-msgid "Plugin settings"
+#: ../../include/zot.php:560
+#, php-format
+msgid "Unable to verify site signature for %s"
msgstr ""
-#: ../../mod/settings.php:71
-msgid "Connected apps"
+#: ../../include/text.php:281
+msgid "prev"
msgstr ""
-#: ../../mod/settings.php:76
-msgid "Export personal data"
+#: ../../include/text.php:283
+msgid "first"
msgstr ""
-#: ../../mod/settings.php:81
-msgid "Remove account"
+#: ../../include/text.php:312
+msgid "last"
msgstr ""
-#: ../../mod/settings.php:89 ../../mod/admin.php:753 ../../mod/admin.php:958
-#: ../../addon/dav/layout.fnk.php:116 ../../addon/mathjax/mathjax.php:36
-#: ../../view/theme/diabook/theme.php:643
-#: ../../view/theme/diabook/theme.php:773 ../../include/nav.php:137
-msgid "Settings"
+#: ../../include/text.php:315
+msgid "next"
msgstr ""
-#: ../../mod/settings.php:133
-msgid "Missing some important data!"
+#: ../../include/text.php:327
+msgid "older"
msgstr ""
-#: ../../mod/settings.php:136 ../../mod/settings.php:581
-msgid "Update"
+#: ../../include/text.php:329
+msgid "newer"
msgstr ""
-#: ../../mod/settings.php:241
-msgid "Failed to connect with email account using the settings provided."
+#: ../../include/text.php:620
+msgid "No connections"
msgstr ""
-#: ../../mod/settings.php:246
-msgid "Email settings updated."
+#: ../../include/text.php:631
+#, php-format
+msgid "%d Connection"
+msgid_plural "%d Connections"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../include/text.php:643
+msgid "View Connections"
msgstr ""
-#: ../../mod/settings.php:305
-msgid "Passwords do not match. Password unchanged."
+#: ../../include/text.php:704 ../../mod/filer.php:36
+msgid "Save"
msgstr ""
-#: ../../mod/settings.php:310
-msgid "Empty passwords are not allowed. Password unchanged."
+#: ../../include/text.php:742
+msgid "poke"
msgstr ""
-#: ../../mod/settings.php:321
-msgid "Password changed."
+#: ../../include/text.php:742 ../../include/conversation.php:233
+msgid "poked"
msgstr ""
-#: ../../mod/settings.php:323
-msgid "Password update failed. Please try again."
+#: ../../include/text.php:743
+msgid "ping"
msgstr ""
-#: ../../mod/settings.php:386
-msgid " Please use a shorter name."
+#: ../../include/text.php:743
+msgid "pinged"
msgstr ""
-#: ../../mod/settings.php:388
-msgid " Name too short."
+#: ../../include/text.php:744
+msgid "prod"
msgstr ""
-#: ../../mod/settings.php:394
-msgid " Not valid email."
+#: ../../include/text.php:744
+msgid "prodded"
msgstr ""
-#: ../../mod/settings.php:396
-msgid " Cannot change to that email."
+#: ../../include/text.php:745
+msgid "slap"
msgstr ""
-#: ../../mod/settings.php:450
-msgid "Private forum has no privacy permissions. Using default privacy group."
+#: ../../include/text.php:745
+msgid "slapped"
msgstr ""
-#: ../../mod/settings.php:454
-msgid "Private forum has no privacy permissions and no default privacy group."
+#: ../../include/text.php:746
+msgid "finger"
msgstr ""
-#: ../../mod/settings.php:484 ../../addon/facebook/facebook.php:495
-#: ../../addon/impressum/impressum.php:77
-#: ../../addon/openstreetmap/openstreetmap.php:80
-#: ../../addon/mathjax/mathjax.php:66 ../../addon/piwik/piwik.php:105
-#: ../../addon/twitter/twitter.php:382
-msgid "Settings updated."
+#: ../../include/text.php:746
+msgid "fingered"
msgstr ""
-#: ../../mod/settings.php:554 ../../mod/settings.php:580
-#: ../../mod/settings.php:616
-msgid "Add application"
+#: ../../include/text.php:747
+msgid "rebuff"
msgstr ""
-#: ../../mod/settings.php:558 ../../mod/settings.php:584
-#: ../../addon/statusnet/statusnet.php:561
-msgid "Consumer Key"
+#: ../../include/text.php:747
+msgid "rebuffed"
msgstr ""
-#: ../../mod/settings.php:559 ../../mod/settings.php:585
-#: ../../addon/statusnet/statusnet.php:560
-msgid "Consumer Secret"
+#: ../../include/text.php:759
+msgid "happy"
msgstr ""
-#: ../../mod/settings.php:560 ../../mod/settings.php:586
-msgid "Redirect"
+#: ../../include/text.php:760
+msgid "sad"
msgstr ""
-#: ../../mod/settings.php:561 ../../mod/settings.php:587
-msgid "Icon url"
+#: ../../include/text.php:761
+msgid "mellow"
msgstr ""
-#: ../../mod/settings.php:572
-msgid "You can't edit this application."
+#: ../../include/text.php:762
+msgid "tired"
msgstr ""
-#: ../../mod/settings.php:615
-msgid "Connected Apps"
+#: ../../include/text.php:763
+msgid "perky"
msgstr ""
-#: ../../mod/settings.php:619
-msgid "Client key starts with"
+#: ../../include/text.php:764
+msgid "angry"
msgstr ""
-#: ../../mod/settings.php:620
-msgid "No name"
+#: ../../include/text.php:765
+msgid "stupified"
msgstr ""
-#: ../../mod/settings.php:621
-msgid "Remove authorization"
+#: ../../include/text.php:766
+msgid "puzzled"
msgstr ""
-#: ../../mod/settings.php:632
-msgid "No Plugin settings configured"
+#: ../../include/text.php:767
+msgid "interested"
msgstr ""
-#: ../../mod/settings.php:640 ../../addon/widgets/widgets.php:123
-msgid "Plugin Settings"
+#: ../../include/text.php:768
+msgid "bitter"
msgstr ""
-#: ../../mod/settings.php:652 ../../mod/settings.php:653
-#, php-format
-msgid "Built-in support for %s connectivity is %s"
+#: ../../include/text.php:769
+msgid "cheerful"
msgstr ""
-#: ../../mod/settings.php:652 ../../mod/settings.php:653
-msgid "enabled"
+#: ../../include/text.php:770
+msgid "alive"
msgstr ""
-#: ../../mod/settings.php:652 ../../mod/settings.php:653
-msgid "disabled"
+#: ../../include/text.php:771
+msgid "annoyed"
msgstr ""
-#: ../../mod/settings.php:653
-msgid "StatusNet"
+#: ../../include/text.php:772
+msgid "anxious"
msgstr ""
-#: ../../mod/settings.php:685
-msgid "Email access is disabled on this site."
+#: ../../include/text.php:773
+msgid "cranky"
msgstr ""
-#: ../../mod/settings.php:691
-msgid "Connector Settings"
+#: ../../include/text.php:774
+msgid "disturbed"
msgstr ""
-#: ../../mod/settings.php:696
-msgid "Email/Mailbox Setup"
+#: ../../include/text.php:775
+msgid "frustrated"
msgstr ""
-#: ../../mod/settings.php:697
-msgid ""
-"If you wish to communicate with email contacts using this service "
-"(optional), please specify how to connect to your mailbox."
+#: ../../include/text.php:776
+msgid "motivated"
msgstr ""
-#: ../../mod/settings.php:698
-msgid "Last successful email check:"
+#: ../../include/text.php:777
+msgid "relaxed"
msgstr ""
-#: ../../mod/settings.php:700
-msgid "IMAP server name:"
+#: ../../include/text.php:778
+msgid "surprised"
msgstr ""
-#: ../../mod/settings.php:701
-msgid "IMAP port:"
+#: ../../include/text.php:940
+msgid "Monday"
msgstr ""
-#: ../../mod/settings.php:702
-msgid "Security:"
+#: ../../include/text.php:940
+msgid "Tuesday"
msgstr ""
-#: ../../mod/settings.php:702 ../../mod/settings.php:707
-msgid "None"
+#: ../../include/text.php:940
+msgid "Wednesday"
msgstr ""
-#: ../../mod/settings.php:703
-msgid "Email login name:"
+#: ../../include/text.php:940
+msgid "Thursday"
msgstr ""
-#: ../../mod/settings.php:704
-msgid "Email password:"
+#: ../../include/text.php:940
+msgid "Friday"
msgstr ""
-#: ../../mod/settings.php:705
-msgid "Reply-to address:"
+#: ../../include/text.php:940
+msgid "Saturday"
msgstr ""
-#: ../../mod/settings.php:706
-msgid "Send public posts to all email contacts:"
+#: ../../include/text.php:940
+msgid "Sunday"
msgstr ""
-#: ../../mod/settings.php:707
-msgid "Action after import:"
+#: ../../include/text.php:944
+msgid "January"
msgstr ""
-#: ../../mod/settings.php:707
-msgid "Mark as seen"
+#: ../../include/text.php:944
+msgid "February"
msgstr ""
-#: ../../mod/settings.php:707
-msgid "Move to folder"
+#: ../../include/text.php:944
+msgid "March"
msgstr ""
-#: ../../mod/settings.php:708
-msgid "Move to folder:"
+#: ../../include/text.php:944
+msgid "April"
msgstr ""
-#: ../../mod/settings.php:768
-msgid "Display Settings"
+#: ../../include/text.php:944
+msgid "May"
msgstr ""
-#: ../../mod/settings.php:774
-msgid "Display Theme:"
+#: ../../include/text.php:944
+msgid "June"
msgstr ""
-#: ../../mod/settings.php:775
-msgid "Update browser every xx seconds"
+#: ../../include/text.php:944
+msgid "July"
msgstr ""
-#: ../../mod/settings.php:775
-msgid "Minimum of 10 seconds, no maximum"
+#: ../../include/text.php:944
+msgid "August"
msgstr ""
-#: ../../mod/settings.php:776
-msgid "Number of items to display on the network page:"
+#: ../../include/text.php:944
+msgid "September"
msgstr ""
-#: ../../mod/settings.php:776
-msgid "Maximum of 100 items"
+#: ../../include/text.php:944
+msgid "October"
msgstr ""
-#: ../../mod/settings.php:777
-msgid "Don't show emoticons"
+#: ../../include/text.php:944
+msgid "November"
msgstr ""
-#: ../../mod/settings.php:848
-msgid "Normal Account Page"
+#: ../../include/text.php:944
+msgid "December"
msgstr ""
-#: ../../mod/settings.php:849
-msgid "This account is a normal personal profile"
+#: ../../include/text.php:1029
+msgid "unknown.???"
msgstr ""
-#: ../../mod/settings.php:852
-msgid "Soapbox Page"
+#: ../../include/text.php:1030
+msgid "bytes"
msgstr ""
-#: ../../mod/settings.php:853
-msgid "Automatically approve all connection/friend requests as read-only fans"
+#: ../../include/text.php:1066 ../../include/text.php:1081
+#: ../../include/conversation.php:793
+msgid "remove"
msgstr ""
-#: ../../mod/settings.php:856
-msgid "Community Forum/Celebrity Account"
+#: ../../include/text.php:1066 ../../include/text.php:1081
+msgid "[remove]"
msgstr ""
-#: ../../mod/settings.php:857
-msgid "Automatically approve all connection/friend requests as read-write fans"
+#: ../../include/text.php:1069 ../../include/conversation.php:655
+msgid "Categories:"
msgstr ""
-#: ../../mod/settings.php:860
-msgid "Automatic Friend Page"
+#: ../../include/text.php:1084 ../../include/conversation.php:656
+msgid "Filed under:"
msgstr ""
-#: ../../mod/settings.php:861
-msgid "Automatically approve all connection/friend requests as friends"
+#: ../../include/text.php:1100 ../../include/text.php:1112
+msgid "Click to open/close"
msgstr ""
-#: ../../mod/settings.php:864
-msgid "Private Forum [Experimental]"
+#: ../../include/text.php:1264 ../../mod/events.php:326
+msgid "link to source"
msgstr ""
-#: ../../mod/settings.php:865
-msgid "Private forum - approved members only"
+#: ../../include/text.php:1296
+msgid "default"
msgstr ""
-#: ../../mod/settings.php:877
-msgid "OpenID:"
+#: ../../include/text.php:1308
+msgid "Select an alternate language"
msgstr ""
-#: ../../mod/settings.php:877
-msgid "(Optional) Allow this OpenID to login to this account."
+#: ../../include/text.php:1460 ../../include/conversation.php:115
+#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:45
+msgid "photo"
msgstr ""
-#: ../../mod/settings.php:887
-msgid "Publish your default profile in your local site directory?"
+#: ../../include/text.php:1463 ../../include/conversation.php:118
+#: ../../mod/tagger.php:49
+msgid "event"
msgstr ""
-#: ../../mod/settings.php:893
-msgid "Publish your default profile in the global social directory?"
+#: ../../include/text.php:1466 ../../include/conversation.php:143
+#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:53
+msgid "status"
msgstr ""
-#: ../../mod/settings.php:901
-msgid "Hide your contact/friend list from viewers of your default profile?"
+#: ../../include/text.php:1468 ../../include/conversation.php:145
+#: ../../mod/tagger.php:55
+msgid "comment"
msgstr ""
-#: ../../mod/settings.php:905
-msgid "Hide your profile details from unknown viewers?"
+#: ../../include/text.php:1473
+msgid "activity"
msgstr ""
-#: ../../mod/settings.php:910
-msgid "Allow friends to post to your profile page?"
+#: ../../include/auth.php:65
+msgid "Logged out."
msgstr ""
-#: ../../mod/settings.php:916
-msgid "Allow friends to tag your posts?"
+#: ../../include/auth.php:177
+msgid "Failed authentication"
msgstr ""
-#: ../../mod/settings.php:922
-msgid "Allow us to suggest you as a potential friend to new members?"
+#: ../../include/auth.php:186
+msgid "Login failed."
msgstr ""
-#: ../../mod/settings.php:928
-msgid "Permit unknown people to send you private mail?"
+#: ../../include/follow.php:21
+msgid "Channel is blocked on this site."
msgstr ""
-#: ../../mod/settings.php:936
-msgid "Profile is <strong>not published</strong>."
+#: ../../include/follow.php:26
+msgid "Channel location missing."
msgstr ""
-#: ../../mod/settings.php:939 ../../mod/profile_photo.php:213
-msgid "or"
+#: ../../include/follow.php:43
+msgid "Channel discovery failed. Website may be down or misconfigured."
msgstr ""
-#: ../../mod/settings.php:944
-msgid "Your Identity Address is"
+#: ../../include/follow.php:51
+msgid "Response from remote channel was not understood."
msgstr ""
-#: ../../mod/settings.php:955
-msgid "Automatically expire posts after this many days:"
+#: ../../include/follow.php:58
+msgid "Response from remote channel was incomplete."
msgstr ""
-#: ../../mod/settings.php:955
-msgid "If empty, posts will not expire. Expired posts will be deleted"
+#: ../../include/follow.php:124
+msgid "local account not found."
msgstr ""
-#: ../../mod/settings.php:956
-msgid "Advanced expiration settings"
+#: ../../include/follow.php:133
+msgid "Cannot connect to yourself."
msgstr ""
-#: ../../mod/settings.php:957
-msgid "Advanced Expiration"
+#: ../../include/permissions.php:13
+msgid "Can view my \"public\" stream and posts"
msgstr ""
-#: ../../mod/settings.php:958
-msgid "Expire posts:"
+#: ../../include/permissions.php:14
+msgid "Can view my \"public\" channel profile"
msgstr ""
-#: ../../mod/settings.php:959
-msgid "Expire personal notes:"
+#: ../../include/permissions.php:15
+msgid "Can view my \"public\" photo albums"
msgstr ""
-#: ../../mod/settings.php:960
-msgid "Expire starred posts:"
+#: ../../include/permissions.php:16
+msgid "Can view my \"public\" address book"
msgstr ""
-#: ../../mod/settings.php:961
-msgid "Expire photos:"
+#: ../../include/permissions.php:17
+msgid "Can view my \"public\" file storage"
msgstr ""
-#: ../../mod/settings.php:962
-msgid "Only expire posts by others:"
+#: ../../include/permissions.php:18
+msgid "Can view my \"public\" pages"
msgstr ""
-#: ../../mod/settings.php:969
-msgid "Account Settings"
+#: ../../include/permissions.php:21
+msgid "Can send me their channel stream and posts"
msgstr ""
-#: ../../mod/settings.php:977
-msgid "Password Settings"
+#: ../../include/permissions.php:22
+msgid "Can post on my channel page (\"wall\")"
msgstr ""
-#: ../../mod/settings.php:978
-msgid "New Password:"
+#: ../../include/permissions.php:23
+msgid "Can comment on my posts"
msgstr ""
-#: ../../mod/settings.php:979
-msgid "Confirm:"
+#: ../../include/permissions.php:24
+msgid "Can send me private mail messages"
msgstr ""
-#: ../../mod/settings.php:979
-msgid "Leave password fields blank unless changing"
+#: ../../include/permissions.php:25
+msgid "Can post photos to my photo albums"
msgstr ""
-#: ../../mod/settings.php:983
-msgid "Basic Settings"
+#: ../../include/permissions.php:26
+msgid "Can forward to all my channel contacts via post @mentions"
msgstr ""
-#: ../../mod/settings.php:984 ../../include/profile_advanced.php:15
-msgid "Full Name:"
+#: ../../include/permissions.php:26
+msgid "Advanced - useful for creating group forum channels"
msgstr ""
-#: ../../mod/settings.php:985
-msgid "Email Address:"
+#: ../../include/permissions.php:27
+msgid "Can chat with me (when available)"
msgstr ""
-#: ../../mod/settings.php:986
-msgid "Your Timezone:"
+#: ../../include/permissions.php:27
+msgid "Requires compatible chat plugin"
msgstr ""
-#: ../../mod/settings.php:987
-msgid "Default Post Location:"
+#: ../../include/permissions.php:28
+msgid "Can write to my \"public\" file storage"
msgstr ""
-#: ../../mod/settings.php:988
-msgid "Use Browser Location:"
+#: ../../include/permissions.php:29
+msgid "Can edit my \"public\" pages"
msgstr ""
-#: ../../mod/settings.php:991
-msgid "Security and Privacy Settings"
+#: ../../include/permissions.php:31
+msgid "Can administer my channel resources"
msgstr ""
-#: ../../mod/settings.php:993
-msgid "Maximum Friend Requests/Day:"
+#: ../../include/permissions.php:31
+msgid "Extremely advanced. Leave this alone unless you know what you are doing"
msgstr ""
-#: ../../mod/settings.php:993 ../../mod/settings.php:1012
-msgid "(to prevent spam abuse)"
+#: ../../include/taxonomy.php:166
+msgid "Tags"
msgstr ""
-#: ../../mod/settings.php:994
-msgid "Default Post Permissions"
+#: ../../include/taxonomy.php:187
+msgid "have"
msgstr ""
-#: ../../mod/settings.php:995
-msgid "(click to open/close)"
+#: ../../include/taxonomy.php:187
+msgid "has"
msgstr ""
-#: ../../mod/settings.php:1012
-msgid "Maximum private messages per day from unknown people:"
+#: ../../include/taxonomy.php:188
+msgid "want"
msgstr ""
-#: ../../mod/settings.php:1015
-msgid "Notification Settings"
+#: ../../include/taxonomy.php:188
+msgid "wants"
msgstr ""
-#: ../../mod/settings.php:1016
-msgid "By default post a status message when:"
+#: ../../include/taxonomy.php:189 ../../include/ItemObject.php:165
+msgid "like"
msgstr ""
-#: ../../mod/settings.php:1017
-msgid "accepting a friend request"
+#: ../../include/taxonomy.php:189
+msgid "likes"
msgstr ""
-#: ../../mod/settings.php:1018
-msgid "joining a forum/community"
+#: ../../include/taxonomy.php:190 ../../include/ItemObject.php:166
+msgid "dislike"
msgstr ""
-#: ../../mod/settings.php:1019
-msgid "making an <em>interesting</em> profile change"
+#: ../../include/taxonomy.php:190
+msgid "dislikes"
msgstr ""
-#: ../../mod/settings.php:1020
-msgid "Send a notification email when:"
+#: ../../include/attach.php:184 ../../include/attach.php:232
+msgid "Item was not found."
msgstr ""
-#: ../../mod/settings.php:1021
-msgid "You receive an introduction"
+#: ../../include/attach.php:285
+msgid "No source file."
msgstr ""
-#: ../../mod/settings.php:1022
-msgid "Your introductions are confirmed"
+#: ../../include/attach.php:302
+msgid "Cannot locate file to replace"
msgstr ""
-#: ../../mod/settings.php:1023
-msgid "Someone writes on your profile wall"
+#: ../../include/attach.php:320
+msgid "Cannot locate file to revise/update"
msgstr ""
-#: ../../mod/settings.php:1024
-msgid "Someone writes a followup comment"
+#: ../../include/attach.php:331
+#, php-format
+msgid "File exceeds size limit of %d"
msgstr ""
-#: ../../mod/settings.php:1025
-msgid "You receive a private message"
+#: ../../include/attach.php:424
+msgid "File upload failed. Possible system limit or action terminated."
msgstr ""
-#: ../../mod/settings.php:1026
-msgid "You receive a friend suggestion"
+#: ../../include/attach.php:436
+msgid "Stored file could not be verified. Upload failed."
msgstr ""
-#: ../../mod/settings.php:1027
-msgid "You are tagged in a post"
+#: ../../include/attach.php:480 ../../include/attach.php:497
+msgid "Path not available."
msgstr ""
-#: ../../mod/settings.php:1030
-msgid "Advanced Account/Page Type Settings"
+#: ../../include/ItemObject.php:87 ../../mod/photos.php:942
+msgid "Private Message"
msgstr ""
-#: ../../mod/settings.php:1031
-msgid "Change the behaviour of this account for special situations"
+#: ../../include/ItemObject.php:92 ../../mod/webpages.php:68
+#: ../../mod/settings.php:670 ../../mod/editwebpage.php:97
+#: ../../mod/editpost.php:76
+msgid "Edit"
msgstr ""
-#: ../../mod/manage.php:90
-msgid "Manage Identities and/or Pages"
+#: ../../include/ItemObject.php:104 ../../include/conversation.php:619
+#: ../../mod/settings.php:671 ../../mod/group.php:177
+#: ../../mod/photos.php:1162 ../../mod/admin.php:630
+#: ../../mod/connections.php:334
+msgid "Delete"
msgstr ""
-#: ../../mod/manage.php:93
-msgid ""
-"Toggle between different identities or community/group pages which share "
-"your account details or which you have been granted \"manage\" permissions"
+#: ../../include/ItemObject.php:110 ../../include/conversation.php:618
+msgid "Select"
msgstr ""
-#: ../../mod/manage.php:95
-msgid "Select an identity to manage: "
+#: ../../include/ItemObject.php:114
+msgid "save to folder"
msgstr ""
-#: ../../mod/network.php:97
-msgid "Search Results For:"
+#: ../../include/ItemObject.php:142
+msgid "add star"
msgstr ""
-#: ../../mod/network.php:137 ../../mod/search.php:16
-msgid "Remove term"
+#: ../../include/ItemObject.php:143
+msgid "remove star"
msgstr ""
-#: ../../mod/network.php:146 ../../mod/search.php:13
-msgid "Saved Searches"
+#: ../../include/ItemObject.php:144
+msgid "toggle star status"
msgstr ""
-#: ../../mod/network.php:147 ../../include/group.php:244
-msgid "add"
+#: ../../include/ItemObject.php:148
+msgid "starred"
msgstr ""
-#: ../../mod/network.php:287
-msgid "Commented Order"
+#: ../../include/ItemObject.php:159
+msgid "add tag"
msgstr ""
-#: ../../mod/network.php:290
-msgid "Sort by Comment Date"
+#: ../../include/ItemObject.php:165 ../../mod/photos.php:1049
+msgid "I like this (toggle)"
msgstr ""
-#: ../../mod/network.php:293
-msgid "Posted Order"
+#: ../../include/ItemObject.php:166 ../../mod/photos.php:1050
+msgid "I don't like this (toggle)"
msgstr ""
-#: ../../mod/network.php:296
-msgid "Sort by Post Date"
+#: ../../include/ItemObject.php:168
+msgid "Share this"
msgstr ""
-#: ../../mod/network.php:303
-msgid "Posts that mention or involve you"
+#: ../../include/ItemObject.php:168
+msgid "share"
msgstr ""
-#: ../../mod/network.php:306
-msgid "New"
+#: ../../include/ItemObject.php:192 ../../include/ItemObject.php:193
+#, php-format
+msgid "View %s's profile - %s"
msgstr ""
-#: ../../mod/network.php:309
-msgid "Activity Stream - by date"
+#: ../../include/ItemObject.php:194
+msgid "to"
msgstr ""
-#: ../../mod/network.php:312
-msgid "Starred"
+#: ../../include/ItemObject.php:195
+msgid "Wall-to-Wall"
msgstr ""
-#: ../../mod/network.php:315
-msgid "Favourite Posts"
+#: ../../include/ItemObject.php:196
+msgid "via Wall-To-Wall:"
msgstr ""
-#: ../../mod/network.php:318
-msgid "Shared Links"
+#: ../../include/ItemObject.php:206 ../../include/conversation.php:665
+#, php-format
+msgid " from %s"
msgstr ""
-#: ../../mod/network.php:321
-msgid "Interesting Links"
+#: ../../include/ItemObject.php:233 ../../include/conversation.php:684
+#: ../../include/conversation.php:1040 ../../mod/photos.php:1052
+#: ../../mod/message.php:297 ../../mod/message.php:430
+#: ../../mod/editwebpage.php:106 ../../mod/editpost.php:85
+msgid "Please wait"
msgstr ""
-#: ../../mod/network.php:388
+#: ../../include/ItemObject.php:254
#, php-format
-msgid "Warning: This group contains %s member from an insecure network."
-msgid_plural ""
-"Warning: This group contains %s members from an insecure network."
+msgid "%d comment"
+msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-#: ../../mod/network.php:391
-msgid "Private messages to this group are at risk of public disclosure."
-msgstr ""
-
-#: ../../mod/network.php:461
-msgid "Contact: "
-msgstr ""
-
-#: ../../mod/network.php:463
-msgid "Private messages to this person are at risk of public disclosure."
-msgstr ""
-
-#: ../../mod/network.php:468
-msgid "Invalid contact."
+#: ../../include/ItemObject.php:502 ../../mod/photos.php:1067
+#: ../../mod/photos.php:1105 ../../mod/photos.php:1132
+msgid "This is you"
msgstr ""
-#: ../../mod/notes.php:44 ../../boot.php:1601
-msgid "Personal Notes"
+#: ../../include/ItemObject.php:505 ../../mod/events.php:458
+#: ../../mod/thing.php:190 ../../mod/invite.php:138 ../../mod/setup.php:283
+#: ../../mod/setup.php:326 ../../mod/settings.php:608
+#: ../../mod/settings.php:720 ../../mod/settings.php:748
+#: ../../mod/settings.php:772 ../../mod/settings.php:843
+#: ../../mod/settings.php:1010 ../../mod/group.php:83 ../../mod/photos.php:675
+#: ../../mod/photos.php:769 ../../mod/photos.php:1031
+#: ../../mod/photos.php:1070 ../../mod/photos.php:1108
+#: ../../mod/photos.php:1135 ../../mod/message.php:298
+#: ../../mod/message.php:429 ../../mod/admin.php:400 ../../mod/admin.php:623
+#: ../../mod/admin.php:759 ../../mod/admin.php:958 ../../mod/admin.php:1045
+#: ../../mod/connections.php:411 ../../mod/profiles.php:529
+#: ../../mod/import.php:356 ../../mod/crepair.php:166 ../../mod/poke.php:166
+#: ../../mod/fsuggest.php:108 ../../mod/mood.php:135
+#: ../../view/theme/redbasic/php/config.php:136
+#: ../../view/theme/redbasic/php/config.php:154
+#: ../../view/theme/redstrap/php/config.php:131
+msgid "Submit"
msgstr ""
-#: ../../mod/notes.php:63 ../../mod/filer.php:30
-#: ../../addon/facebook/facebook.php:770
-#: ../../addon/privacy_image_cache/privacy_image_cache.php:187
-#: ../../addon/dav/layout.fnk.php:384 ../../include/text.php:652
-msgid "Save"
+#: ../../include/ItemObject.php:506
+msgid "Bold"
msgstr ""
-#: ../../mod/wallmessage.php:42 ../../mod/wallmessage.php:112
-#, php-format
-msgid "Number of daily wall messages for %s exceeded. Message failed."
+#: ../../include/ItemObject.php:507
+msgid "Italic"
msgstr ""
-#: ../../mod/wallmessage.php:56 ../../mod/message.php:66
-msgid "No recipient selected."
+#: ../../include/ItemObject.php:508
+msgid "Underline"
msgstr ""
-#: ../../mod/wallmessage.php:59
-msgid "Unable to check your home location."
+#: ../../include/ItemObject.php:509
+msgid "Quote"
msgstr ""
-#: ../../mod/wallmessage.php:62 ../../mod/message.php:73
-msgid "Message could not be sent."
+#: ../../include/ItemObject.php:510
+msgid "Code"
msgstr ""
-#: ../../mod/wallmessage.php:65 ../../mod/message.php:76
-msgid "Message collection failure."
+#: ../../include/ItemObject.php:511
+msgid "Image"
msgstr ""
-#: ../../mod/wallmessage.php:68 ../../mod/message.php:79
-msgid "Message sent."
+#: ../../include/ItemObject.php:512
+msgid "Link"
msgstr ""
-#: ../../mod/wallmessage.php:86 ../../mod/wallmessage.php:95
-msgid "No recipient."
+#: ../../include/ItemObject.php:513
+msgid "Video"
msgstr ""
-#: ../../mod/wallmessage.php:124 ../../mod/message.php:172
-#: ../../include/conversation.php:947
-msgid "Please enter a link URL:"
+#: ../../include/ItemObject.php:514 ../../include/conversation.php:1058
+#: ../../mod/photos.php:1071 ../../mod/editwebpage.php:126
+#: ../../mod/editpost.php:105
+msgid "Preview"
msgstr ""
-#: ../../mod/wallmessage.php:131 ../../mod/message.php:200
-msgid "Send Private Message"
+#: ../../include/conversation.php:121
+msgid "channel"
msgstr ""
-#: ../../mod/wallmessage.php:132
+#: ../../include/conversation.php:161 ../../mod/like.php:133
#, php-format
-msgid ""
-"If you wish for %s to respond, please check that the privacy settings on "
-"your site allow private mail from unknown senders."
+msgid "%1$s likes %2$s's %3$s"
msgstr ""
-#: ../../mod/wallmessage.php:133 ../../mod/message.php:201
-#: ../../mod/message.php:401
-msgid "To:"
+#: ../../include/conversation.php:164 ../../mod/like.php:135
+#, php-format
+msgid "%1$s doesn't like %2$s's %3$s"
msgstr ""
-#: ../../mod/wallmessage.php:134 ../../mod/message.php:206
-#: ../../mod/message.php:403
-msgid "Subject:"
+#: ../../include/conversation.php:198
+#, php-format
+msgid "%1$s is now connected with %2$s"
msgstr ""
-#: ../../mod/wallmessage.php:140 ../../mod/message.php:210
-#: ../../mod/message.php:406 ../../mod/invite.php:113
-msgid "Your message:"
+#: ../../include/conversation.php:229
+#, php-format
+msgid "%1$s poked %2$s"
msgstr ""
-#: ../../mod/newmember.php:6
-msgid "Welcome to Friendica"
+#: ../../include/conversation.php:251 ../../mod/mood.php:63
+#, php-format
+msgid "%1$s is currently %2$s"
msgstr ""
-#: ../../mod/newmember.php:8
-msgid "New Member Checklist"
+#: ../../include/conversation.php:643
+#, php-format
+msgid "View %s's profile @ %s"
msgstr ""
-#: ../../mod/newmember.php:12
-msgid ""
-"We would like to offer some tips and links to help make your experience "
-"enjoyable. Click any item to visit the relevant page. A link to this page "
-"will be visible from your home page for two weeks after your initial "
-"registration and then will quietly disappear."
+#: ../../include/conversation.php:682
+msgid "View in context"
msgstr ""
-#: ../../mod/newmember.php:16
-msgid ""
-"On your <em>Quick Start</em> page - find a brief introduction to your "
-"profile and network tabs, connect to Facebook, make some new connections, "
-"and find some groups to join."
+#: ../../include/conversation.php:797
+msgid "Loading..."
msgstr ""
-#: ../../mod/newmember.php:18
-msgid ""
-"On your <em>Settings</em> page - change your initial password. Also make a "
-"note of your Identity Address. This looks just like an email address - and "
-"will be useful in making friends on the free social web."
+#: ../../include/conversation.php:798
+msgid "Delete Selected Items"
msgstr ""
-#: ../../mod/newmember.php:20
-msgid ""
-"Review the other settings, particularly the privacy settings. An unpublished "
-"directory listing is like having an unlisted phone number. In general, you "
-"should probably publish your listing - unless all of your friends and "
-"potential friends know exactly how to find you."
+#: ../../include/conversation.php:886
+msgid "Follow Thread"
msgstr ""
-#: ../../mod/newmember.php:32 ../../mod/profperm.php:103
-#: ../../view/theme/diabook/theme.php:128 ../../include/profile_advanced.php:7
-#: ../../include/profile_advanced.php:84 ../../include/nav.php:50
-#: ../../boot.php:1642
-msgid "Profile"
+#: ../../include/conversation.php:955
+#, php-format
+msgid "%s likes this."
msgstr ""
-#: ../../mod/newmember.php:36 ../../mod/profile_photo.php:211
-msgid "Upload Profile Photo"
+#: ../../include/conversation.php:955
+#, php-format
+msgid "%s doesn't like this."
msgstr ""
-#: ../../mod/newmember.php:36
-msgid ""
-"Upload a profile photo if you have not done so already. Studies have shown "
-"that people with real photos of themselves are ten times more likely to make "
-"friends than people who do not."
+#: ../../include/conversation.php:959
+#, php-format
+msgid "<span %1$s>%2$d people</span> like this."
msgstr ""
-#: ../../mod/newmember.php:38
-msgid "Edit Your Profile"
+#: ../../include/conversation.php:961
+#, php-format
+msgid "<span %1$s>%2$d people</span> don't like this."
msgstr ""
-#: ../../mod/newmember.php:38
-msgid ""
-"Edit your <strong>default</strong> profile to your liking. Review the "
-"settings for hiding your list of friends and hiding the profile from unknown "
-"visitors."
+#: ../../include/conversation.php:967
+msgid "and"
msgstr ""
-#: ../../mod/newmember.php:40
-msgid "Profile Keywords"
+#: ../../include/conversation.php:970
+#, php-format
+msgid ", and %d other people"
msgstr ""
-#: ../../mod/newmember.php:40
-msgid ""
-"Set some public keywords for your default profile which describe your "
-"interests. We may be able to find other people with similar interests and "
-"suggest friendships."
+#: ../../include/conversation.php:971
+#, php-format
+msgid "%s like this."
msgstr ""
-#: ../../mod/newmember.php:44
-msgid "Connecting"
+#: ../../include/conversation.php:971
+#, php-format
+msgid "%s don't like this."
msgstr ""
-#: ../../mod/newmember.php:49 ../../mod/newmember.php:51
-#: ../../addon/facebook/facebook.php:728
-#: ../../include/contact_selectors.php:81
-msgid "Facebook"
+#: ../../include/conversation.php:996
+msgid "Visible to <strong>everybody</strong>"
msgstr ""
-#: ../../mod/newmember.php:49
-msgid ""
-"Authorise the Facebook Connector if you currently have a Facebook account "
-"and we will (optionally) import all your Facebook friends and conversations."
+#: ../../include/conversation.php:997 ../../mod/message.php:253
+#: ../../mod/message.php:364
+msgid "Please enter a link URL:"
msgstr ""
-#: ../../mod/newmember.php:51
-msgid ""
-"<em>If</em> this is your own personal server, installing the Facebook addon "
-"may ease your transition to the free social web."
+#: ../../include/conversation.php:998
+msgid "Please enter a video link/URL:"
msgstr ""
-#: ../../mod/newmember.php:56
-msgid "Importing Emails"
+#: ../../include/conversation.php:999
+msgid "Please enter an audio link/URL:"
msgstr ""
-#: ../../mod/newmember.php:56
-msgid ""
-"Enter your email access information on your Connector Settings page if you "
-"wish to import and interact with friends or mailing lists from your email "
-"INBOX"
+#: ../../include/conversation.php:1000
+msgid "Tag term:"
msgstr ""
-#: ../../mod/newmember.php:58
-msgid "Go to Your Contacts Page"
+#: ../../include/conversation.php:1001 ../../mod/filer.php:35
+msgid "Save to Folder:"
msgstr ""
-#: ../../mod/newmember.php:58
-msgid ""
-"Your Contacts page is your gateway to managing friendships and connecting "
-"with friends on other networks. Typically you enter their address or site "
-"URL in the <em>Add New Contact</em> dialog."
+#: ../../include/conversation.php:1002
+msgid "Where are you right now?"
msgstr ""
-#: ../../mod/newmember.php:60
-msgid "Go to Your Site's Directory"
+#: ../../include/conversation.php:1017 ../../mod/photos.php:1051
+msgid "Share"
msgstr ""
-#: ../../mod/newmember.php:60
-msgid ""
-"The Directory page lets you find other people in this network or other "
-"federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on "
-"their profile page. Provide your own Identity Address if requested."
+#: ../../include/conversation.php:1019
+msgid "Page link title"
msgstr ""
-#: ../../mod/newmember.php:62
-msgid "Finding New People"
+#: ../../include/conversation.php:1021 ../../mod/message.php:295
+#: ../../mod/message.php:427 ../../mod/editwebpage.php:98
+#: ../../mod/editpost.php:77
+msgid "Upload photo"
msgstr ""
-#: ../../mod/newmember.php:62
-msgid ""
-"On the side panel of the Contacts page are several tools to find new "
-"friends. We can match people by interest, look up people by name or "
-"interest, and provide suggestions based on network relationships. On a brand "
-"new site, friend suggestions will usually begin to be populated within 24 "
-"hours."
+#: ../../include/conversation.php:1022
+msgid "upload photo"
msgstr ""
-#: ../../mod/newmember.php:66 ../../include/group.php:239
-msgid "Groups"
+#: ../../include/conversation.php:1023 ../../mod/editwebpage.php:99
+#: ../../mod/editpost.php:78
+msgid "Attach file"
msgstr ""
-#: ../../mod/newmember.php:70
-msgid "Group Your Contacts"
+#: ../../include/conversation.php:1024
+msgid "attach file"
msgstr ""
-#: ../../mod/newmember.php:70
-msgid ""
-"Once you have made some friends, organize them into private conversation "
-"groups from the sidebar of your Contacts page and then you can interact with "
-"each group privately on your Network page."
+#: ../../include/conversation.php:1025 ../../mod/message.php:296
+#: ../../mod/message.php:428 ../../mod/editwebpage.php:100
+#: ../../mod/editpost.php:79
+msgid "Insert web link"
msgstr ""
-#: ../../mod/newmember.php:73
-msgid "Why Aren't My Posts Public?"
+#: ../../include/conversation.php:1026
+msgid "web link"
msgstr ""
-#: ../../mod/newmember.php:73
-msgid ""
-"Friendica respects your privacy. By default, your posts will only show up to "
-"people you've added as friends. For more information, see the help section "
-"from the link above."
+#: ../../include/conversation.php:1027
+msgid "Insert video link"
msgstr ""
-#: ../../mod/newmember.php:78
-msgid "Getting Help"
+#: ../../include/conversation.php:1028
+msgid "video link"
msgstr ""
-#: ../../mod/newmember.php:82
-msgid "Go to the Help Section"
+#: ../../include/conversation.php:1029
+msgid "Insert audio link"
msgstr ""
-#: ../../mod/newmember.php:82
-msgid ""
-"Our <strong>help</strong> pages may be consulted for detail on other program "
-"features and resources."
+#: ../../include/conversation.php:1030
+msgid "audio link"
msgstr ""
-#: ../../mod/attach.php:8
-msgid "Item not available."
+#: ../../include/conversation.php:1031 ../../mod/editwebpage.php:104
+#: ../../mod/editpost.php:83
+msgid "Set your location"
msgstr ""
-#: ../../mod/attach.php:20
-msgid "Item was not found."
+#: ../../include/conversation.php:1032
+msgid "set location"
msgstr ""
-#: ../../mod/group.php:29
-msgid "Group created."
+#: ../../include/conversation.php:1033 ../../mod/editwebpage.php:105
+#: ../../mod/editpost.php:84
+msgid "Clear browser location"
msgstr ""
-#: ../../mod/group.php:35
-msgid "Could not create group."
+#: ../../include/conversation.php:1034
+msgid "clear location"
msgstr ""
-#: ../../mod/group.php:47 ../../mod/group.php:137
-msgid "Group not found."
+#: ../../include/conversation.php:1036 ../../mod/editwebpage.php:118
+#: ../../mod/editpost.php:97
+msgid "Set title"
msgstr ""
-#: ../../mod/group.php:60
-msgid "Group name changed."
+#: ../../include/conversation.php:1039 ../../mod/editwebpage.php:120
+#: ../../mod/editpost.php:99
+msgid "Categories (comma-separated list)"
msgstr ""
-#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:308
-msgid "Permission denied"
+#: ../../include/conversation.php:1041 ../../mod/editwebpage.php:107
+#: ../../mod/editpost.php:86
+msgid "Permission settings"
msgstr ""
-#: ../../mod/group.php:90
-msgid "Create a group of contacts/friends."
+#: ../../include/conversation.php:1042
+msgid "permissions"
msgstr ""
-#: ../../mod/group.php:91 ../../mod/group.php:177
-msgid "Group Name: "
+#: ../../include/conversation.php:1050 ../../mod/editwebpage.php:115
+#: ../../mod/editpost.php:94
+msgid "Public post"
msgstr ""
-#: ../../mod/group.php:110
-msgid "Group removed."
+#: ../../include/conversation.php:1052 ../../mod/editwebpage.php:121
+#: ../../mod/editpost.php:100
+msgid "Example: bob@example.com, mary@example.com"
msgstr ""
-#: ../../mod/group.php:112
-msgid "Unable to remove group."
+#: ../../include/items.php:156 ../../mod/like.php:55 ../../mod/group.php:70
+#: ../../mod/profperm.php:28 ../../index.php:339
+msgid "Permission denied"
msgstr ""
-#: ../../mod/group.php:176
-msgid "Group Editor"
+#: ../../include/items.php:2633
+#, php-format
+msgid "%s's birthday"
msgstr ""
-#: ../../mod/group.php:189
-msgid "Members"
+#: ../../include/items.php:2634
+#, php-format
+msgid "Happy Birthday %s"
msgstr ""
-#: ../../mod/group.php:221 ../../mod/profperm.php:105
-msgid "Click on a contact to add or remove."
+#: ../../include/items.php:4095
+msgid "[Name Withheld]"
msgstr ""
-#: ../../mod/profperm.php:25 ../../mod/profperm.php:55
-msgid "Invalid profile identifier."
+#: ../../include/items.php:4103
+msgid "A new person is sharing with you at "
msgstr ""
-#: ../../mod/profperm.php:101
-msgid "Profile Visibility Editor"
+#: ../../include/items.php:4103
+msgid "You have a new follower at "
msgstr ""
-#: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:128
-#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:84
-#: ../../include/nav.php:50 ../../boot.php:1580
-msgid "Profile"
+#: ../../include/items.php:4529 ../../mod/page.php:62 ../../mod/viewsrc.php:18
+#: ../../mod/home.php:64 ../../mod/admin.php:142 ../../mod/admin.php:667
+#: ../../mod/admin.php:866 ../../mod/display.php:33
+msgid "Item not found."
msgstr ""
-#: ../../mod/profperm.php:114
-msgid "Visible To"
+#: ../../include/items.php:4701
+msgid "Archives"
msgstr ""
-#: ../../mod/profperm.php:130
-msgid "All Contacts (with secure profile access)"
+#: ../../include/items.php:4862 ../../mod/group.php:43 ../../mod/group.php:141
+msgid "Collection not found."
msgstr ""
-#: ../../mod/viewconnections.php:39
-msgid "No contacts."
+#: ../../include/items.php:4872
+msgid "Collection has no members."
msgstr ""
-#: ../../mod/viewconnections.php:76 ../../include/text.php:589
-msgid "View Contacts"
+#: ../../include/items.php:4888
+msgid "Connection not found."
msgstr ""
-#: ../../mod/register.php:88 ../../mod/regmod.php:52
-#, php-format
-msgid "Registration details for %s"
+#: ../../mod/common.php:10
+msgid "No channel."
msgstr ""
-#: ../../mod/register.php:96
-msgid ""
-"Registration successful. Please check your email for further instructions."
+#: ../../mod/common.php:47
+msgid "Common connections"
msgstr ""
-#: ../../mod/register.php:100
-msgid "Failed to send email message. Here is the message that failed."
+#: ../../mod/common.php:52
+msgid "No connections in common."
msgstr ""
-#: ../../mod/register.php:105
-msgid "Your registration can not be processed."
+#: ../../mod/events.php:66
+msgid "Event title and start time are required."
msgstr ""
-#: ../../mod/register.php:142
-#, php-format
-msgid "Registration request at %s"
+#: ../../mod/events.php:281
+msgid "l, F j"
msgstr ""
-#: ../../mod/register.php:151
-msgid "Your registration is pending approval by the site owner."
+#: ../../mod/events.php:303
+msgid "Edit event"
msgstr ""
-#: ../../mod/register.php:189
-msgid ""
-"This site has exceeded the number of allowed daily account registrations. "
-"Please try again tomorrow."
+#: ../../mod/events.php:349
+msgid "Create New Event"
msgstr ""
-#: ../../mod/register.php:215
-msgid ""
-"You may (optionally) fill in this form via OpenID by supplying your OpenID "
-"and clicking 'Register'."
+#: ../../mod/events.php:350
+msgid "Previous"
msgstr ""
-#: ../../mod/register.php:216
-msgid ""
-"If you are not familiar with OpenID, please leave that field blank and fill "
-"in the rest of the items."
+#: ../../mod/events.php:351 ../../mod/setup.php:237
+msgid "Next"
msgstr ""
-#: ../../mod/register.php:217
-msgid "Your OpenID (optional): "
+#: ../../mod/events.php:425
+msgid "hour:minute"
msgstr ""
-#: ../../mod/register.php:231
-msgid "Include your profile in member directory?"
+#: ../../mod/events.php:435
+msgid "Event details"
msgstr ""
-#: ../../mod/register.php:251
-msgid "Membership on this site is by invitation only."
+#: ../../mod/events.php:436
+#, php-format
+msgid "Format is %s %s. Starting date and Title are required."
msgstr ""
-#: ../../mod/register.php:252
-msgid "Your invitation ID: "
+#: ../../mod/events.php:438
+msgid "Event Starts:"
msgstr ""
-#: ../../mod/register.php:255 ../../mod/admin.php:423
-msgid "Registration"
+#: ../../mod/events.php:438 ../../mod/events.php:452
+msgid "Required"
msgstr ""
-#: ../../mod/register.php:263
-msgid "Your Full Name (e.g. Joe Smith): "
+#: ../../mod/events.php:441
+msgid "Finish date/time is not known or not relevant"
msgstr ""
-#: ../../mod/register.php:264
-msgid "Your Email Address: "
+#: ../../mod/events.php:443
+msgid "Event Finishes:"
msgstr ""
-#: ../../mod/register.php:265
-msgid ""
-"Choose a profile nickname. This must begin with a text character. Your "
-"profile address on this site will then be '<strong>nickname@$sitename</"
-"strong>'."
+#: ../../mod/events.php:446
+msgid "Adjust for viewer timezone"
msgstr ""
-#: ../../mod/register.php:266
-msgid "Choose a nickname: "
+#: ../../mod/events.php:448
+msgid "Description:"
msgstr ""
-#: ../../mod/register.php:269 ../../include/nav.php:81 ../../boot.php:864
-msgid "Register"
+#: ../../mod/events.php:452
+msgid "Title:"
msgstr ""
-#: ../../mod/dirfind.php:26
-msgid "People Search"
+#: ../../mod/events.php:454
+msgid "Share this event"
msgstr ""
-#: ../../mod/like.php:144 ../../mod/like.php:301 ../../mod/tagger.php:70
-#: ../../addon/facebook/facebook.php:1586
-#: ../../addon/communityhome/communityhome.php:158
-#: ../../addon/communityhome/communityhome.php:167
-#: ../../view/theme/diabook/theme.php:565
-#: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1777
-#: ../../include/conversation.php:48 ../../include/conversation.php:57
-#: ../../include/conversation.php:121 ../../include/conversation.php:130
-msgid "status"
+#: ../../mod/thing.php:109
+msgid "Object store: failed"
msgstr ""
-#: ../../mod/like.php:161 ../../addon/facebook/facebook.php:1590
-#: ../../addon/communityhome/communityhome.php:172
-#: ../../view/theme/diabook/theme.php:579 ../../include/diaspora.php:1793
-#: ../../include/conversation.php:65
-#, php-format
-msgid "%1$s likes %2$s's %3$s"
+#: ../../mod/thing.php:113
+msgid "thing/stuff added"
msgstr ""
-#: ../../mod/like.php:163 ../../include/conversation.php:68
+#: ../../mod/thing.php:129
#, php-format
-msgid "%1$s doesn't like %2$s's %3$s"
+msgid "OBJ: %1$s %2$s %3$s"
msgstr ""
-#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:159
-#: ../../mod/admin.php:702 ../../mod/admin.php:901 ../../mod/display.php:37
-#: ../../mod/display.php:142 ../../include/items.php:3336
-msgid "Item not found."
+#: ../../mod/thing.php:175
+msgid "not yet implemented."
msgstr ""
-#: ../../mod/viewsrc.php:7
-msgid "Access denied."
+#: ../../mod/thing.php:181
+msgid "Add Stuff to your Profile"
msgstr ""
-#: ../../mod/fbrowser.php:25 ../../view/theme/diabook/theme.php:130
-#: ../../include/nav.php:51 ../../boot.php:1586
-msgid "Photos"
+#: ../../mod/thing.php:183
+msgid "Select a profile"
msgstr ""
-#: ../../mod/fbrowser.php:96
-msgid "Files"
+#: ../../mod/thing.php:185
+msgid "Select a category of stuff. e.g. I ______ something"
msgstr ""
-#: ../../mod/regmod.php:61
-msgid "Account approved."
+#: ../../mod/thing.php:187
+msgid "Name of thing or stuff e.g. something"
msgstr ""
-#: ../../mod/regmod.php:98
-#, php-format
-msgid "Registration revoked for %s"
+#: ../../mod/thing.php:188
+msgid "URL of thing or stuff (optional)"
msgstr ""
-#: ../../mod/regmod.php:110
-msgid "Please login."
+#: ../../mod/thing.php:189
+msgid "URL for photo of thing or stuff (optional)"
msgstr ""
-#: ../../mod/item.php:89
-msgid "Unable to locate original post."
+#: ../../mod/invite.php:25
+msgid "Total invitation limit exceeded."
msgstr ""
-#: ../../mod/item.php:258
-msgid "Empty post discarded."
-msgstr ""
-
-#: ../../mod/item.php:379 ../../mod/wall_upload.php:115
-#: ../../mod/wall_upload.php:124 ../../mod/wall_upload.php:131
-#: ../../include/message.php:144
-msgid "Wall Photos"
+#: ../../mod/invite.php:47
+#, php-format
+msgid "%s : Not a valid email address."
msgstr ""
-#: ../../mod/item.php:784
-msgid "System error. Post not saved."
+#: ../../mod/invite.php:71
+msgid "Please join us on Red"
msgstr ""
-#: ../../mod/item.php:809
-#, php-format
-msgid ""
-"This message was sent to you by %s, a member of the Friendica social network."
+#: ../../mod/invite.php:82
+msgid "Invitation limit exceeded. Please contact your site administrator."
msgstr ""
-#: ../../mod/item.php:811
+#: ../../mod/invite.php:87
#, php-format
-msgid "You may visit them online at %s"
-msgstr ""
-
-#: ../../mod/item.php:812
-msgid ""
-"Please contact the sender by replying to this post if you do not wish to "
-"receive these messages."
+msgid "%s : Message delivery failed."
msgstr ""
-#: ../../mod/item.php:814
+#: ../../mod/invite.php:91
#, php-format
-msgid "%s posted an update."
-msgstr ""
+msgid "%d message sent."
+msgid_plural "%d messages sent."
+msgstr[0] ""
+msgstr[1] ""
-#: ../../mod/profile_photo.php:30
-msgid "Image uploaded but image cropping failed."
+#: ../../mod/invite.php:110
+msgid "You have no more invitations available"
msgstr ""
-#: ../../mod/profile_photo.php:63 ../../mod/profile_photo.php:70
-#: ../../mod/profile_photo.php:77 ../../mod/profile_photo.php:266
+#: ../../mod/invite.php:118
#, php-format
-msgid "Image size reduction [%s] failed."
-msgstr ""
-
-#: ../../mod/profile_photo.php:91
msgid ""
-"Shift-reload the page or clear browser cache if the new photo does not "
-"display immediately."
-msgstr ""
-
-#: ../../mod/profile_photo.php:101
-msgid "Unable to process image"
+"Visit %s for a list of public sites that you can join. Friendica members on "
+"other sites can all connect with each other, as well as with members of many "
+"other social networks."
msgstr ""
-#: ../../mod/profile_photo.php:117 ../../mod/wall_upload.php:77
+#: ../../mod/invite.php:120
#, php-format
-msgid "Image exceeds size limit of %d"
-msgstr ""
-
-#: ../../mod/profile_photo.php:209
-msgid "Upload File:"
-msgstr ""
-
-#: ../../mod/profile_photo.php:210
-msgid "Upload Profile Photo"
-msgstr ""
-
-#: ../../mod/profile_photo.php:211
-msgid "Upload"
-msgstr ""
-
-#: ../../mod/profile_photo.php:213
-msgid "skip this step"
-msgstr ""
-
-#: ../../mod/profile_photo.php:213
-msgid "select a photo from your photo albums"
-msgstr ""
-
-#: ../../mod/profile_photo.php:226
-msgid "Crop Image"
-msgstr ""
-
-#: ../../mod/profile_photo.php:227
-msgid "Please adjust the image cropping for optimum viewing."
-msgstr ""
-
-#: ../../mod/profile_photo.php:229
-msgid "Done Editing"
-msgstr ""
-
-#: ../../mod/profile_photo.php:257
-msgid "Image uploaded successfully."
-msgstr ""
-
-#: ../../mod/hcard.php:10
-msgid "No profile"
-msgstr ""
-
-#: ../../mod/removeme.php:45 ../../mod/removeme.php:48
-msgid "Remove My Account"
-msgstr ""
-
-#: ../../mod/removeme.php:46
msgid ""
-"This will completely remove your account. Once this has been done it is not "
-"recoverable."
-msgstr ""
-
-#: ../../mod/removeme.php:47
-msgid "Please enter your password for verification:"
-msgstr ""
-
-#: ../../mod/message.php:9 ../../include/nav.php:131
-msgid "New Message"
-msgstr ""
-
-#: ../../mod/message.php:70
-msgid "Unable to locate contact information."
-msgstr ""
-
-#: ../../mod/message.php:120
-msgid "Message deleted."
-msgstr ""
-
-#: ../../mod/message.php:150
-msgid "Conversation removed."
-msgstr ""
-
-#: ../../mod/message.php:249
-msgid "No messages."
+"To accept this invitation, please visit and register at %s or any other "
+"public Friendica website."
msgstr ""
-#: ../../mod/message.php:256
+#: ../../mod/invite.php:121
#, php-format
-msgid "Unknown sender - %s"
+msgid ""
+"Friendica sites all inter-connect to create a huge privacy-enhanced social "
+"web that is owned and controlled by its members. They can also connect with "
+"many traditional social networks. See %s for a list of alternate Friendica "
+"sites you can join."
msgstr ""
-#: ../../mod/message.php:259
-#, php-format
-msgid "You and %s"
+#: ../../mod/invite.php:124
+msgid ""
+"Our apologies. This system is not currently configured to connect with other "
+"public sites or invite members."
msgstr ""
-#: ../../mod/message.php:262
-#, php-format
-msgid "%s and You"
+#: ../../mod/invite.php:130
+msgid "Send invitations"
msgstr ""
-#: ../../mod/message.php:272 ../../mod/message.php:394
-msgid "Delete conversation"
+#: ../../mod/invite.php:131
+msgid "Enter email addresses, one per line:"
msgstr ""
-#: ../../mod/message.php:275
-msgid "D, d M Y - g:i A"
+#: ../../mod/invite.php:132 ../../mod/message.php:292
+#: ../../mod/message.php:423
+msgid "Your message:"
msgstr ""
-#: ../../mod/message.php:277
-#, php-format
-msgid "%d message"
-msgid_plural "%d messages"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../mod/message.php:312
-msgid "Message not available."
+#: ../../mod/invite.php:133
+msgid ""
+"You are cordially invited to join me and other close friends on Friendica - "
+"and help us to create a better social web."
msgstr ""
-#: ../../mod/message.php:377
-msgid "Delete message"
+#: ../../mod/invite.php:135
+msgid "You will need to supply this invitation code: $invite_code"
msgstr ""
-#: ../../mod/message.php:396
+#: ../../mod/invite.php:135
msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
+"Once you have registered, please connect with me via my profile page at:"
msgstr ""
-#: ../../mod/message.php:400
-msgid "Send Reply"
+#: ../../mod/invite.php:137
+msgid ""
+"For more information about the Friendica project and why we feel it is "
+"important, please visit http://friendica.com"
msgstr ""
-#: ../../mod/allfriends.php:34
+#: ../../mod/allfriends.php:35
#, php-format
msgid "Friends of %s"
msgstr ""
-#: ../../mod/allfriends.php:40
+#: ../../mod/allfriends.php:41
msgid "No friends to display."
msgstr ""
-#: ../../mod/admin.php:55
-msgid "Theme settings updated."
-msgstr ""
-
-#: ../../mod/admin.php:96 ../../mod/admin.php:421
-msgid "Site"
-msgstr ""
-
-#: ../../mod/admin.php:97 ../../mod/admin.php:657 ../../mod/admin.php:669
-msgid "Users"
-msgstr ""
-
-#: ../../mod/admin.php:98 ../../mod/admin.php:751 ../../mod/admin.php:793
-msgid "Plugins"
+#: ../../mod/webpages.php:8 ../../mod/profile.php:8 ../../mod/channel.php:8
+#: ../../boot.php:1524
+msgid "Requested profile is not available."
msgstr ""
-#: ../../mod/admin.php:99 ../../mod/admin.php:956 ../../mod/admin.php:992
-msgid "Themes"
+#: ../../mod/webpages.php:71
+msgid "View"
msgstr ""
-#: ../../mod/admin.php:100
-msgid "DB updates"
+#: ../../mod/api.php:76 ../../mod/api.php:102
+msgid "Authorize application connection"
msgstr ""
-#: ../../mod/admin.php:115 ../../mod/admin.php:122 ../../mod/admin.php:1079
-msgid "Logs"
+#: ../../mod/api.php:77
+msgid "Return to your app and insert this Securty Code:"
msgstr ""
-#: ../../mod/admin.php:120 ../../include/nav.php:146
-msgid "Admin"
+#: ../../mod/api.php:89
+msgid "Please login to continue."
msgstr ""
-#: ../../mod/admin.php:121
-msgid "Plugin Features"
+#: ../../mod/api.php:104
+msgid ""
+"Do you want to authorize this application to access your posts and contacts, "
+"and/or create new posts for you?"
msgstr ""
-#: ../../mod/admin.php:123
-msgid "User registrations waiting for confirmation"
+#: ../../mod/api.php:105 ../../mod/settings.php:965 ../../mod/settings.php:970
+#: ../../mod/settings.php:993 ../../mod/settings.php:995
+#: ../../mod/settings.php:996 ../../mod/settings.php:997
+#: ../../mod/profiles.php:506
+msgid "Yes"
msgstr ""
-#: ../../mod/admin.php:183 ../../mod/admin.php:639
-msgid "Normal Account"
+#: ../../mod/api.php:106 ../../mod/settings.php:965 ../../mod/settings.php:970
+#: ../../mod/settings.php:993 ../../mod/settings.php:995
+#: ../../mod/settings.php:996 ../../mod/settings.php:997
+#: ../../mod/profiles.php:507
+msgid "No"
msgstr ""
-#: ../../mod/admin.php:184 ../../mod/admin.php:640
-msgid "Soapbox Account"
+#: ../../mod/apps.php:8
+msgid "No installed applications."
msgstr ""
-#: ../../mod/admin.php:185 ../../mod/admin.php:641
-msgid "Community/Celebrity Account"
+#: ../../mod/apps.php:13
+msgid "Applications"
msgstr ""
-#: ../../mod/admin.php:186 ../../mod/admin.php:642
-msgid "Automatic Friend Account"
+#: ../../mod/page.php:37
+msgid "Invalid item."
msgstr ""
-#: ../../mod/admin.php:187
-msgid "Blog Account"
+#: ../../mod/page.php:49 ../../mod/chanview.php:78 ../../mod/home.php:51
+#: ../../mod/magic.php:63 ../../mod/wall_upload.php:35
+msgid "Channel not found."
msgstr ""
-#: ../../mod/admin.php:188
-msgid "Private Forum"
+#: ../../mod/attach.php:9
+msgid "Item not available."
msgstr ""
-#: ../../mod/admin.php:207
-msgid "Message queues"
+#: ../../mod/setup.php:142
+msgid "Red Matrix Server - Setup"
msgstr ""
-#: ../../mod/admin.php:212 ../../mod/admin.php:420 ../../mod/admin.php:656
-#: ../../mod/admin.php:750 ../../mod/admin.php:792 ../../mod/admin.php:955
-#: ../../mod/admin.php:991 ../../mod/admin.php:1078
-msgid "Administration"
+#: ../../mod/setup.php:148
+msgid "Could not connect to database."
msgstr ""
-#: ../../mod/admin.php:213
-msgid "Summary"
+#: ../../mod/setup.php:152
+msgid ""
+"Could not connect to specified site URL. Possible SSL certificate or DNS "
+"issue."
msgstr ""
-#: ../../mod/admin.php:215
-msgid "Registered users"
+#: ../../mod/setup.php:157
+msgid "Could not create table."
msgstr ""
-#: ../../mod/admin.php:217
-msgid "Pending registrations"
+#: ../../mod/setup.php:163
+msgid "Your site database has been installed."
msgstr ""
-#: ../../mod/admin.php:218
-msgid "Version"
+#: ../../mod/setup.php:168
+msgid ""
+"You may need to import the file \"install/database.sql\" manually using "
+"phpmyadmin or mysql."
msgstr ""
-#: ../../mod/admin.php:220
-msgid "Active plugins"
+#: ../../mod/setup.php:169 ../../mod/setup.php:236 ../../mod/setup.php:565
+msgid "Please see the file \"install/INSTALL.txt\"."
msgstr ""
-#: ../../mod/admin.php:359
-msgid "Site settings updated."
+#: ../../mod/setup.php:233
+msgid "System check"
msgstr ""
-#: ../../mod/admin.php:407
-msgid "Closed"
+#: ../../mod/setup.php:238
+msgid "Check again"
msgstr ""
-#: ../../mod/admin.php:408
-msgid "Requires approval"
+#: ../../mod/setup.php:260
+msgid "Database connection"
msgstr ""
-#: ../../mod/admin.php:409
-msgid "Open"
+#: ../../mod/setup.php:261
+msgid ""
+"In order to install Red Matrix we need to know how to connect to your "
+"database."
msgstr ""
-#: ../../mod/admin.php:413
-msgid "No SSL policy, links will track page SSL state"
+#: ../../mod/setup.php:262
+msgid ""
+"Please contact your hosting provider or site administrator if you have "
+"questions about these settings."
msgstr ""
-#: ../../mod/admin.php:414
-msgid "Force all links to use SSL"
+#: ../../mod/setup.php:263
+msgid ""
+"The database you specify below should already exist. If it does not, please "
+"create it before continuing."
msgstr ""
-#: ../../mod/admin.php:415
-msgid "Self-signed certificate, use SSL for local links only (discouraged)"
+#: ../../mod/setup.php:267
+msgid "Database Server Name"
msgstr ""
-#: ../../mod/admin.php:424
-msgid "File upload"
+#: ../../mod/setup.php:267
+msgid "Default is localhost"
msgstr ""
-#: ../../mod/admin.php:425
-msgid "Policies"
+#: ../../mod/setup.php:268
+msgid "Database Port"
msgstr ""
-#: ../../mod/admin.php:426
-msgid "Advanced"
+#: ../../mod/setup.php:268
+msgid "Communication port number - use 0 for default"
msgstr ""
-#: ../../mod/admin.php:430 ../../addon/statusnet/statusnet.php:558
-msgid "Site name"
+#: ../../mod/setup.php:269
+msgid "Database Login Name"
msgstr ""
-#: ../../mod/admin.php:431
-msgid "Banner/Logo"
+#: ../../mod/setup.php:270
+msgid "Database Login Password"
msgstr ""
-#: ../../mod/admin.php:432
-msgid "System language"
+#: ../../mod/setup.php:271
+msgid "Database Name"
msgstr ""
-#: ../../mod/admin.php:433
-msgid "System theme"
+#: ../../mod/setup.php:273 ../../mod/setup.php:315
+msgid "Site administrator email address"
msgstr ""
-#: ../../mod/admin.php:433
+#: ../../mod/setup.php:273 ../../mod/setup.php:315
msgid ""
-"Default system theme - may be over-ridden by user profiles - <a href='#' "
-"id='cnftheme'>change theme settings</a>"
-msgstr ""
-
-#: ../../mod/admin.php:434
-msgid "SSL link policy"
-msgstr ""
-
-#: ../../mod/admin.php:434
-msgid "Determines whether generated links should be forced to use SSL"
-msgstr ""
-
-#: ../../mod/admin.php:435
-msgid "Maximum image size"
+"Your account email address must match this in order to use the web admin "
+"panel."
msgstr ""
-#: ../../mod/admin.php:435
-msgid ""
-"Maximum size in bytes of uploaded images. Default is 0, which means no "
-"limits."
+#: ../../mod/setup.php:274 ../../mod/setup.php:317
+msgid "Website URL"
msgstr ""
-#: ../../mod/admin.php:437
-msgid "Register policy"
+#: ../../mod/setup.php:274 ../../mod/setup.php:317
+msgid "Please use SSL (https) URL if available."
msgstr ""
-#: ../../mod/admin.php:438
-msgid "Register text"
+#: ../../mod/setup.php:277 ../../mod/setup.php:320
+msgid "Please select a default timezone for your website"
msgstr ""
-#: ../../mod/admin.php:438
-msgid "Will be displayed prominently on the registration page."
+#: ../../mod/setup.php:304
+msgid "Site settings"
msgstr ""
-#: ../../mod/admin.php:439
-msgid "Accounts abandoned after x days"
+#: ../../mod/setup.php:360
+msgid "Could not find a command line version of PHP in the web server PATH."
msgstr ""
-#: ../../mod/admin.php:439
+#: ../../mod/setup.php:361
msgid ""
-"Will not waste system resources polling external sites for abandonded "
-"accounts. Enter 0 for no time limit."
+"If you don't have a command line version of PHP installed on server, you "
+"will not be able to run background polling via cron."
msgstr ""
-#: ../../mod/admin.php:440
-msgid "Allowed friend domains"
+#: ../../mod/setup.php:365
+msgid "PHP executable path"
msgstr ""
-#: ../../mod/admin.php:440
+#: ../../mod/setup.php:365
msgid ""
-"Comma separated list of domains which are allowed to establish friendships "
-"with this site. Wildcards are accepted. Empty to allow any domains"
+"Enter full path to php executable. You can leave this blank to continue the "
+"installation."
msgstr ""
-#: ../../mod/admin.php:441
-msgid "Allowed email domains"
+#: ../../mod/setup.php:370
+msgid "Command line PHP"
msgstr ""
-#: ../../mod/admin.php:441
+#: ../../mod/setup.php:379
msgid ""
-"Comma separated list of domains which are allowed in email addresses for "
-"registrations to this site. Wildcards are accepted. Empty to allow any "
-"domains"
-msgstr ""
-
-#: ../../mod/admin.php:442
-msgid "Block public"
+"The command line version of PHP on your system does not have "
+"\"register_argc_argv\" enabled."
msgstr ""
-#: ../../mod/admin.php:442
-msgid ""
-"Check to block public access to all otherwise public personal pages on this "
-"site unless you are currently logged in."
+#: ../../mod/setup.php:380
+msgid "This is required for message delivery to work."
msgstr ""
-#: ../../mod/admin.php:443
-msgid "Force publish"
+#: ../../mod/setup.php:382
+msgid "PHP register_argc_argv"
msgstr ""
-#: ../../mod/admin.php:443
+#: ../../mod/setup.php:403
msgid ""
-"Check to force all profiles on this site to be listed in the site directory."
-msgstr ""
-
-#: ../../mod/admin.php:444
-msgid "Global directory update URL"
+"Error: the \"openssl_pkey_new\" function on this system is not able to "
+"generate encryption keys"
msgstr ""
-#: ../../mod/admin.php:444
+#: ../../mod/setup.php:404
msgid ""
-"URL to update the global directory. If this is not set, the global directory "
-"is completely unavailable to the application."
-msgstr ""
-
-#: ../../mod/admin.php:446
-msgid "Block multiple registrations"
-msgstr ""
-
-#: ../../mod/admin.php:446
-msgid "Disallow users to register additional accounts for use as pages."
-msgstr ""
-
-#: ../../mod/admin.php:447
-msgid "OpenID support"
+"If running under Windows, please see \"http://www.php.net/manual/en/openssl."
+"installation.php\"."
msgstr ""
-#: ../../mod/admin.php:447
-msgid "OpenID support for registration and logins."
+#: ../../mod/setup.php:406
+msgid "Generate encryption keys"
msgstr ""
-#: ../../mod/admin.php:448
-msgid "Fullname check"
+#: ../../mod/setup.php:413
+msgid "libCurl PHP module"
msgstr ""
-#: ../../mod/admin.php:448
-msgid ""
-"Force users to register with a space between firstname and lastname in Full "
-"name, as an antispam measure"
+#: ../../mod/setup.php:414
+msgid "GD graphics PHP module"
msgstr ""
-#: ../../mod/admin.php:449
-msgid "UTF-8 Regular expressions"
+#: ../../mod/setup.php:415
+msgid "OpenSSL PHP module"
msgstr ""
-#: ../../mod/admin.php:449
-msgid "Use PHP UTF8 regular expressions"
+#: ../../mod/setup.php:416
+msgid "mysqli PHP module"
msgstr ""
-#: ../../mod/admin.php:450
-msgid "Show Community Page"
+#: ../../mod/setup.php:417
+msgid "mb_string PHP module"
msgstr ""
-#: ../../mod/admin.php:450
-msgid ""
-"Display a Community page showing all recent public postings on this site."
+#: ../../mod/setup.php:418
+msgid "mcrypt PHP module"
msgstr ""
-#: ../../mod/admin.php:451
-msgid "Enable OStatus support"
+#: ../../mod/setup.php:423 ../../mod/setup.php:425
+msgid "Apache mod_rewrite module"
msgstr ""
-#: ../../mod/admin.php:451
+#: ../../mod/setup.php:423
msgid ""
-"Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All "
-"communications in OStatus are public, so privacy warnings will be "
-"occasionally displayed."
-msgstr ""
-
-#: ../../mod/admin.php:452
-msgid "Enable Diaspora support"
-msgstr ""
-
-#: ../../mod/admin.php:452
-msgid "Provide built-in Diaspora network compatibility."
+"Error: Apache webserver mod-rewrite module is required but not installed."
msgstr ""
-#: ../../mod/admin.php:453
-msgid "Only allow Friendica contacts"
+#: ../../mod/setup.php:429 ../../mod/setup.php:432
+msgid "proc_open"
msgstr ""
-#: ../../mod/admin.php:453
+#: ../../mod/setup.php:429
msgid ""
-"All contacts must use Friendica protocols. All other built-in communication "
-"protocols disabled."
+"Error: proc_open is required but is either not installed or has been "
+"disabled in php.ini"
msgstr ""
-#: ../../mod/admin.php:454
-msgid "Verify SSL"
+#: ../../mod/setup.php:437
+msgid "Error: libCURL PHP module required but not installed."
msgstr ""
-#: ../../mod/admin.php:454
+#: ../../mod/setup.php:441
msgid ""
-"If you wish, you can turn on strict certificate checking. This will mean you "
-"cannot connect (at all) to self-signed SSL sites."
-msgstr ""
-
-#: ../../mod/admin.php:455
-msgid "Proxy user"
+"Error: GD graphics PHP module with JPEG support required but not installed."
msgstr ""
-#: ../../mod/admin.php:456
-msgid "Proxy URL"
+#: ../../mod/setup.php:445
+msgid "Error: openssl PHP module required but not installed."
msgstr ""
-#: ../../mod/admin.php:457
-msgid "Network timeout"
+#: ../../mod/setup.php:449
+msgid "Error: mysqli PHP module required but not installed."
msgstr ""
-#: ../../mod/admin.php:457
-msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
+#: ../../mod/setup.php:453
+msgid "Error: mb_string PHP module required but not installed."
msgstr ""
-#: ../../mod/admin.php:458
-msgid "Delivery interval"
+#: ../../mod/setup.php:457
+msgid "Error: mcrypt PHP module required but not installed."
msgstr ""
-#: ../../mod/admin.php:458
+#: ../../mod/setup.php:473
msgid ""
-"Delay background delivery processes by this many seconds to reduce system "
-"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
-"for large dedicated servers."
-msgstr ""
-
-#: ../../mod/admin.php:459
-msgid "Poll interval"
+"The web installer needs to be able to create a file called \".htconfig.php\" "
+"in the top folder of your web server and it is unable to do so."
msgstr ""
-#: ../../mod/admin.php:459
+#: ../../mod/setup.php:474
msgid ""
-"Delay background polling processes by this many seconds to reduce system "
-"load. If 0, use delivery interval."
-msgstr ""
-
-#: ../../mod/admin.php:460
-msgid "Maximum Load Average"
+"This is most often a permission setting, as the web server may not be able "
+"to write files in your folder - even if you can."
msgstr ""
-#: ../../mod/admin.php:460
+#: ../../mod/setup.php:475
msgid ""
-"Maximum system load before delivery and poll processes are deferred - "
-"default 50."
-msgstr ""
-
-#: ../../mod/admin.php:474
-msgid "Update has been marked successful"
-msgstr ""
-
-#: ../../mod/admin.php:484
-#, php-format
-msgid "Executing %s failed. Check system logs."
-msgstr ""
-
-#: ../../mod/admin.php:487
-#, php-format
-msgid "Update %s was successfully applied."
-msgstr ""
-
-#: ../../mod/admin.php:491
-#, php-format
-msgid "Update %s did not return a status. Unknown if it succeeded."
-msgstr ""
-
-#: ../../mod/admin.php:494
-#, php-format
-msgid "Update function %s could not be found."
-msgstr ""
-
-#: ../../mod/admin.php:509
-msgid "No failed updates."
-msgstr ""
-
-#: ../../mod/admin.php:513
-msgid "Failed Updates"
+"At the end of this procedure, we will give you a text to save in a file "
+"named .htconfig.php in your Red top folder."
msgstr ""
-#: ../../mod/admin.php:514
+#: ../../mod/setup.php:476
msgid ""
-"This does not include updates prior to 1139, which did not return a status."
-msgstr ""
-
-#: ../../mod/admin.php:515
-msgid "Mark success (if update was manually applied)"
-msgstr ""
-
-#: ../../mod/admin.php:516
-msgid "Attempt to execute this update step automatically"
-msgstr ""
-
-#: ../../mod/admin.php:541
-#, php-format
-msgid "%s user blocked/unblocked"
-msgid_plural "%s users blocked/unblocked"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../mod/admin.php:548
-#, php-format
-msgid "%s user deleted"
-msgid_plural "%s users deleted"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../mod/admin.php:587
-#, php-format
-msgid "User '%s' deleted"
-msgstr ""
-
-#: ../../mod/admin.php:595
-#, php-format
-msgid "User '%s' unblocked"
-msgstr ""
-
-#: ../../mod/admin.php:595
-#, php-format
-msgid "User '%s' blocked"
-msgstr ""
-
-#: ../../mod/admin.php:659
-msgid "select all"
-msgstr ""
-
-#: ../../mod/admin.php:660
-msgid "User registrations waiting for confirm"
-msgstr ""
-
-#: ../../mod/admin.php:661
-msgid "Request date"
-msgstr ""
-
-#: ../../mod/admin.php:661 ../../mod/admin.php:670
-#: ../../include/contact_selectors.php:79
-msgid "Email"
-msgstr ""
-
-#: ../../mod/admin.php:662
-msgid "No registrations."
-msgstr ""
-
-#: ../../mod/admin.php:664
-msgid "Deny"
-msgstr ""
-
-#: ../../mod/admin.php:670
-msgid "Register date"
+"You can alternatively skip this procedure and perform a manual installation. "
+"Please see the file \"install/INSTALL.txt\" for instructions."
msgstr ""
-#: ../../mod/admin.php:670
-msgid "Last login"
+#: ../../mod/setup.php:479
+msgid ".htconfig.php is writable"
msgstr ""
-#: ../../mod/admin.php:670
-msgid "Last item"
+#: ../../mod/setup.php:489
+msgid ""
+"Red uses the Smarty3 template engine to render its web views. Smarty3 "
+"compiles templates to PHP to speed up rendering."
msgstr ""
-#: ../../mod/admin.php:670
-msgid "Account"
+#: ../../mod/setup.php:490
+msgid ""
+"In order to store these compiled templates, the web server needs to have "
+"write access to the directory view/tpl/smarty3/ under the Red top level "
+"folder."
msgstr ""
-#: ../../mod/admin.php:672
+#: ../../mod/setup.php:491
msgid ""
-"Selected users will be deleted!\\n\\nEverything these users had posted on "
-"this site will be permanently deleted!\\n\\nAre you sure?"
+"Please ensure that the user that your web server runs as (e.g. www-data) has "
+"write access to this folder."
msgstr ""
-#: ../../mod/admin.php:673
+#: ../../mod/setup.php:492
msgid ""
-"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
-"site will be permanently deleted!\\n\\nAre you sure?"
+"Note: as a security measure, you should give the web server write access to "
+"view/tpl/smarty3/ only--not the template files (.tpl) that it contains."
msgstr ""
-#: ../../mod/admin.php:714
-#, php-format
-msgid "Plugin %s disabled."
+#: ../../mod/setup.php:495
+msgid "view/tpl/smarty3 is writable"
msgstr ""
-#: ../../mod/admin.php:718
-#, php-format
-msgid "Plugin %s enabled."
+#: ../../mod/setup.php:509
+msgid "SSL certificate validation"
msgstr ""
-#: ../../mod/admin.php:728 ../../mod/admin.php:926
-msgid "Disable"
+#: ../../mod/setup.php:509
+msgid ""
+"SSL certificate cannot be validated. Fix certificate or disable https access "
+"to this site."
msgstr ""
-#: ../../mod/admin.php:730 ../../mod/admin.php:928
-msgid "Enable"
+#: ../../mod/setup.php:516
+msgid ""
+"Url rewrite in .htaccess is not working. Check your server configuration."
msgstr ""
-#: ../../mod/admin.php:752 ../../mod/admin.php:957
-msgid "Toggle"
+#: ../../mod/setup.php:518
+msgid "Url rewrite is working"
msgstr ""
-#: ../../mod/admin.php:760 ../../mod/admin.php:967
-msgid "Author: "
+#: ../../mod/setup.php:528
+msgid ""
+"The database configuration file \".htconfig.php\" could not be written. "
+"Please use the enclosed text to create a configuration file in your web "
+"server root."
msgstr ""
-#: ../../mod/admin.php:761 ../../mod/admin.php:968
-msgid "Maintainer: "
+#: ../../mod/setup.php:552
+msgid "Errors encountered creating database tables."
msgstr ""
-#: ../../mod/admin.php:890
-msgid "No themes found."
+#: ../../mod/setup.php:563
+msgid "<h1>What next</h1>"
msgstr ""
-#: ../../mod/admin.php:949
-msgid "Screenshot"
+#: ../../mod/setup.php:564
+msgid ""
+"IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
msgstr ""
-#: ../../mod/admin.php:997
-msgid "[Experimental]"
+#: ../../mod/subthread.php:105
+#, php-format
+msgid "%1$s is following %2$s's %3$s"
msgstr ""
-#: ../../mod/admin.php:998
-msgid "[Unsupported]"
+#: ../../mod/update_network.php:23 ../../mod/update_channel.php:43
+#: ../../mod/update_search.php:46 ../../mod/update_display.php:25
+#: ../../mod/update_community.php:18
+msgid "[Embedded content - reload page to view]"
msgstr ""
-#: ../../mod/admin.php:1025
-msgid "Log settings updated."
+#: ../../mod/chanview.php:94
+msgid "toggle full screen mode"
msgstr ""
-#: ../../mod/admin.php:1081
-msgid "Clear"
+#: ../../mod/tagger.php:98
+#, php-format
+msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr ""
-#: ../../mod/admin.php:1087
-msgid "Debugging"
+#: ../../mod/settings.php:49
+msgid "Account settings"
msgstr ""
-#: ../../mod/admin.php:1088
-msgid "Log file"
+#: ../../mod/settings.php:55
+msgid "Channel settings"
msgstr ""
-#: ../../mod/admin.php:1088
-msgid ""
-"Must be writable by web server. Relative to your Friendica top-level "
-"directory."
+#: ../../mod/settings.php:61
+msgid "Additional features"
msgstr ""
-#: ../../mod/admin.php:1089
-msgid "Log level"
+#: ../../mod/settings.php:67
+msgid "Feature settings"
msgstr ""
-#: ../../mod/admin.php:1139
-msgid "Close"
+#: ../../mod/settings.php:73
+msgid "Display settings"
msgstr ""
-#: ../../mod/admin.php:1145
-msgid "FTP Host"
+#: ../../mod/settings.php:79
+msgid "Connected apps"
msgstr ""
-#: ../../mod/admin.php:1146
-msgid "FTP Path"
+#: ../../mod/settings.php:85
+msgid "Export channel"
msgstr ""
-#: ../../mod/admin.php:1147
-msgid "FTP User"
+#: ../../mod/settings.php:97
+msgid "Automatic Permissions (Advanced)"
msgstr ""
-#: ../../mod/admin.php:1148
-msgid "FTP Password"
+#: ../../mod/settings.php:145
+msgid "Missing some important data!"
msgstr ""
-#: ../../mod/profile.php:21 ../../boot.php:1029
-msgid "Requested profile is not available."
+#: ../../mod/settings.php:148 ../../mod/settings.php:634
+msgid "Update"
msgstr ""
-#: ../../mod/profile.php:141 ../../mod/display.php:75
-msgid "Access to this profile has been restricted."
+#: ../../mod/settings.php:261
+msgid "Passwords do not match. Password unchanged."
msgstr ""
-#: ../../mod/profile.php:166
-msgid "Tips for New Members"
+#: ../../mod/settings.php:265
+msgid "Empty passwords are not allowed. Password unchanged."
msgstr ""
-#: ../../mod/ping.php:185
-msgid "{0} wants to be your friend"
+#: ../../mod/settings.php:278
+msgid "Password changed."
msgstr ""
-#: ../../mod/ping.php:190
-msgid "{0} sent you a message"
+#: ../../mod/settings.php:280
+msgid "Password update failed. Please try again."
msgstr ""
-#: ../../mod/ping.php:195
-msgid "{0} requested registration"
+#: ../../mod/settings.php:294
+msgid "Not valid email."
msgstr ""
-#: ../../mod/ping.php:201
-#, php-format
-msgid "{0} commented %s's post"
+#: ../../mod/settings.php:297
+msgid "Protected email address. Cannot change to that email."
msgstr ""
-#: ../../mod/ping.php:206
-#, php-format
-msgid "{0} liked %s's post"
+#: ../../mod/settings.php:306
+msgid "System failure storing new email. Please try again."
msgstr ""
-#: ../../mod/ping.php:211
-#, php-format
-msgid "{0} disliked %s's post"
+#: ../../mod/settings.php:536
+msgid "Settings updated."
msgstr ""
-#: ../../mod/ping.php:216
-#, php-format
-msgid "{0} is now friends with %s"
+#: ../../mod/settings.php:607 ../../mod/settings.php:633
+#: ../../mod/settings.php:669
+msgid "Add application"
msgstr ""
-#: ../../mod/ping.php:221
-msgid "{0} posted"
+#: ../../mod/settings.php:609 ../../mod/settings.php:635
+#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 ../../mod/fbrowser.php:81
+#: ../../mod/fbrowser.php:116
+msgid "Cancel"
msgstr ""
-#: ../../mod/ping.php:226
-#, php-format
-msgid "{0} tagged %s's post with #%s"
+#: ../../mod/settings.php:610 ../../mod/settings.php:636
+#: ../../mod/admin.php:626 ../../mod/crepair.php:148
+msgid "Name"
msgstr ""
-#: ../../mod/ping.php:232
-msgid "{0} mentioned you in a post"
+#: ../../mod/settings.php:611 ../../mod/settings.php:637
+msgid "Consumer Key"
msgstr ""
-#: ../../mod/nogroup.php:58
-msgid "Contacts who are not members of a group"
+#: ../../mod/settings.php:612 ../../mod/settings.php:638
+msgid "Consumer Secret"
msgstr ""
-#: ../../mod/openid.php:24
-msgid "OpenID protocol error. No ID returned."
+#: ../../mod/settings.php:613 ../../mod/settings.php:639
+msgid "Redirect"
msgstr ""
-#: ../../mod/openid.php:53
-msgid ""
-"Account not found and OpenID registration is not permitted on this site."
+#: ../../mod/settings.php:614 ../../mod/settings.php:640
+msgid "Icon url"
msgstr ""
-#: ../../mod/openid.php:93 ../../include/auth.php:99
-#: ../../include/auth.php:162
-msgid "Login failed."
+#: ../../mod/settings.php:625
+msgid "You can't edit this application."
msgstr ""
-#: ../../mod/follow.php:27
-msgid "Contact added"
+#: ../../mod/settings.php:668
+msgid "Connected Apps"
msgstr ""
-#: ../../mod/common.php:42
-msgid "Common Friends"
+#: ../../mod/settings.php:672
+msgid "Client key starts with"
msgstr ""
-#: ../../mod/common.php:78
-msgid "No contacts in common."
+#: ../../mod/settings.php:673
+msgid "No name"
msgstr ""
-#: ../../mod/share.php:28 ../../include/bb2diaspora.php:226
-msgid "link"
+#: ../../mod/settings.php:674
+msgid "Remove authorization"
msgstr ""
-#: ../../mod/display.php:135
-msgid "Item has been removed."
+#: ../../mod/settings.php:685
+msgid "No feature settings configured"
msgstr ""
-#: ../../mod/apps.php:4
-msgid "Applications"
+#: ../../mod/settings.php:693
+msgid "Feature Settings"
msgstr ""
-#: ../../mod/apps.php:7
-msgid "No installed applications."
+#: ../../mod/settings.php:716
+msgid "Account Settings"
msgstr ""
-#: ../../mod/search.php:83 ../../include/text.php:649
-#: ../../include/text.php:650 ../../include/nav.php:91
-msgid "Search"
+#: ../../mod/settings.php:717
+msgid "Password Settings"
msgstr ""
-#: ../../mod/profiles.php:21 ../../mod/profiles.php:410
-#: ../../mod/profiles.php:524 ../../mod/dfrn_confirm.php:62
-msgid "Profile not found."
+#: ../../mod/settings.php:718
+msgid "New Password:"
msgstr ""
-#: ../../mod/profiles.php:31
-msgid "Profile Name is required."
+#: ../../mod/settings.php:719
+msgid "Confirm:"
msgstr ""
-#: ../../mod/profiles.php:155
-msgid "Marital Status"
+#: ../../mod/settings.php:719
+msgid "Leave password fields blank unless changing"
msgstr ""
-#: ../../mod/profiles.php:159
-msgid "Romantic Partner"
+#: ../../mod/settings.php:721 ../../mod/settings.php:1019
+msgid "Email Address:"
msgstr ""
-#: ../../mod/profiles.php:163
-msgid "Likes"
+#: ../../mod/settings.php:722
+msgid "Remove Account"
msgstr ""
-#: ../../mod/profiles.php:167
-msgid "Dislikes"
+#: ../../mod/settings.php:723
+msgid "Warning: This action is permanent and cannot be reversed."
msgstr ""
-#: ../../mod/profiles.php:171
-msgid "Work/Employment"
+#: ../../mod/settings.php:739
+msgid "Off"
msgstr ""
-#: ../../mod/profiles.php:174
-msgid "Religion"
+#: ../../mod/settings.php:739
+msgid "On"
msgstr ""
-#: ../../mod/profiles.php:178
-msgid "Political Views"
+#: ../../mod/settings.php:746
+msgid "Additional Features"
msgstr ""
-#: ../../mod/profiles.php:182
-msgid "Gender"
+#: ../../mod/settings.php:771
+msgid "Connector Settings"
msgstr ""
-#: ../../mod/profiles.php:186
-msgid "Sexual Preference"
+#: ../../mod/settings.php:801 ../../mod/admin.php:359
+msgid "No special theme for mobile devices"
msgstr ""
-#: ../../mod/profiles.php:190
-msgid "Homepage"
+#: ../../mod/settings.php:841
+msgid "Display Settings"
msgstr ""
-#: ../../mod/profiles.php:194
-msgid "Interests"
+#: ../../mod/settings.php:847
+msgid "Display Theme:"
msgstr ""
-#: ../../mod/profiles.php:198
-msgid "Address"
+#: ../../mod/settings.php:848
+msgid "Mobile Theme:"
msgstr ""
-#: ../../mod/profiles.php:205 ../../addon/dav/layout.fnk.php:310
-msgid "Location"
+#: ../../mod/settings.php:849
+msgid "Update browser every xx seconds"
msgstr ""
-#: ../../mod/profiles.php:288
-msgid "Profile updated."
+#: ../../mod/settings.php:849
+msgid "Minimum of 10 seconds, no maximum"
msgstr ""
-#: ../../mod/profiles.php:355
-msgid " and "
+#: ../../mod/settings.php:850
+msgid "Maximum number of conversations to load at any time:"
msgstr ""
-#: ../../mod/profiles.php:363
-msgid "public profile"
+#: ../../mod/settings.php:850
+msgid "Maximum of 100 items"
msgstr ""
-#: ../../mod/profiles.php:366
-#, php-format
-msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
+#: ../../mod/settings.php:851
+msgid "Don't show emoticons"
msgstr ""
-#: ../../mod/profiles.php:367
-#, php-format
-msgid " - Visit %1$s's %2$s"
+#: ../../mod/settings.php:887
+msgid "Nobody except yourself"
msgstr ""
-#: ../../mod/profiles.php:370
-#, php-format
-msgid "%1$s has an updated %2$s, changing %3$s."
+#: ../../mod/settings.php:888
+msgid "Only those you specifically allow"
msgstr ""
-#: ../../mod/profiles.php:429
-msgid "Profile deleted."
+#: ../../mod/settings.php:889
+msgid "Anybody in your address book"
msgstr ""
-#: ../../mod/profiles.php:447 ../../mod/profiles.php:481
-msgid "Profile-"
+#: ../../mod/settings.php:890
+msgid "Anybody on this website"
msgstr ""
-#: ../../mod/profiles.php:466 ../../mod/profiles.php:508
-msgid "New profile created."
+#: ../../mod/settings.php:891
+msgid "Anybody in this network"
msgstr ""
-#: ../../mod/profiles.php:487
-msgid "Profile unavailable to clone."
+#: ../../mod/settings.php:892
+msgid "Anybody on the internet"
msgstr ""
-#: ../../mod/profiles.php:545
-msgid "Hide your contact/friend list from viewers of this profile?"
+#: ../../mod/settings.php:965
+msgid "Publish your default profile in the network directory"
msgstr ""
-#: ../../mod/profiles.php:568
-msgid "Edit Profile Details"
+#: ../../mod/settings.php:970
+msgid "Allow us to suggest you as a potential friend to new members?"
msgstr ""
-#: ../../mod/profiles.php:570
-msgid "View this profile"
+#: ../../mod/settings.php:974 ../../mod/profile_photo.php:276
+msgid "or"
msgstr ""
-#: ../../mod/profiles.php:571
-msgid "Create a new profile using these settings"
+#: ../../mod/settings.php:979
+msgid "Your channel address is"
msgstr ""
-#: ../../mod/profiles.php:572
-msgid "Clone this profile"
+#: ../../mod/settings.php:990
+msgid "Automatically expire posts after this many days:"
msgstr ""
-#: ../../mod/profiles.php:573
-msgid "Delete this profile"
+#: ../../mod/settings.php:990
+msgid "If empty, posts will not expire. Expired posts will be deleted"
msgstr ""
-#: ../../mod/profiles.php:574
-msgid "Profile Name:"
+#: ../../mod/settings.php:991
+msgid "Advanced expiration settings"
msgstr ""
-#: ../../mod/profiles.php:575
-msgid "Your Full Name:"
+#: ../../mod/settings.php:992
+msgid "Advanced Expiration"
msgstr ""
-#: ../../mod/profiles.php:576
-msgid "Title/Description:"
+#: ../../mod/settings.php:993
+msgid "Expire posts:"
msgstr ""
-#: ../../mod/profiles.php:577
-msgid "Your Gender:"
+#: ../../mod/settings.php:995
+msgid "Expire starred posts:"
msgstr ""
-#: ../../mod/profiles.php:578
-#, php-format
-msgid "Birthday (%s):"
+#: ../../mod/settings.php:996
+msgid "Expire photos:"
msgstr ""
-#: ../../mod/profiles.php:579
-msgid "Street Address:"
+#: ../../mod/settings.php:997
+msgid "Only expire posts by others:"
msgstr ""
-#: ../../mod/profiles.php:580
-msgid "Locality/City:"
+#: ../../mod/settings.php:1008
+msgid "Channel Settings"
msgstr ""
-#: ../../mod/profiles.php:581
-msgid "Postal/Zip Code:"
+#: ../../mod/settings.php:1017
+msgid "Basic Settings"
msgstr ""
-#: ../../mod/profiles.php:582
-msgid "Country:"
+#: ../../mod/settings.php:1020
+msgid "Your Timezone:"
msgstr ""
-#: ../../mod/profiles.php:583
-msgid "Region/State:"
+#: ../../mod/settings.php:1021
+msgid "Default Post Location:"
msgstr ""
-#: ../../mod/profiles.php:584
-msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
+#: ../../mod/settings.php:1022
+msgid "Use Browser Location:"
msgstr ""
-#: ../../mod/profiles.php:585
-msgid "Who: (if applicable)"
+#: ../../mod/settings.php:1025
+msgid "Security and Privacy Settings"
msgstr ""
-#: ../../mod/profiles.php:586
-msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
+#: ../../mod/settings.php:1027
+msgid "Quick Privacy Settings:"
msgstr ""
-#: ../../mod/profiles.php:587
-msgid "Since [date]:"
+#: ../../mod/settings.php:1028
+msgid "Very Public - extremely permissive"
msgstr ""
-#: ../../mod/profiles.php:588 ../../include/profile_advanced.php:46
-msgid "Sexual Preference:"
+#: ../../mod/settings.php:1029
+msgid "Typical - default public, privacy when desired"
msgstr ""
-#: ../../mod/profiles.php:589
-msgid "Homepage URL:"
+#: ../../mod/settings.php:1030
+msgid "Private - default private, rarely open or public"
msgstr ""
-#: ../../mod/profiles.php:590 ../../include/profile_advanced.php:50
-msgid "Hometown:"
+#: ../../mod/settings.php:1031
+msgid "Blocked - default blocked to/from everybody"
msgstr ""
-#: ../../mod/profiles.php:591 ../../include/profile_advanced.php:54
-msgid "Political Views:"
+#: ../../mod/settings.php:1034
+msgid "Maximum Friend Requests/Day:"
msgstr ""
-#: ../../mod/profiles.php:592
-msgid "Religious Views:"
+#: ../../mod/settings.php:1034
+msgid "May reduce spam activity"
msgstr ""
-#: ../../mod/profiles.php:593
-msgid "Public Keywords:"
+#: ../../mod/settings.php:1035
+msgid "Default Post Permissions"
msgstr ""
-#: ../../mod/profiles.php:594
-msgid "Private Keywords:"
+#: ../../mod/settings.php:1036
+msgid "(click to open/close)"
msgstr ""
-#: ../../mod/profiles.php:595 ../../include/profile_advanced.php:62
-msgid "Likes:"
+#: ../../mod/settings.php:1049
+msgid "Maximum private messages per day from unknown people:"
msgstr ""
-#: ../../mod/profiles.php:596 ../../include/profile_advanced.php:64
-msgid "Dislikes:"
+#: ../../mod/settings.php:1049
+msgid "Useful to reduce spamming"
msgstr ""
-#: ../../mod/profiles.php:597
-msgid "Example: fishing photography software"
+#: ../../mod/settings.php:1052
+msgid "Notification Settings"
msgstr ""
-#: ../../mod/profiles.php:598
-msgid "(Used for suggesting potential friends, can be seen by others)"
+#: ../../mod/settings.php:1053
+msgid "By default post a status message when:"
msgstr ""
-#: ../../mod/profiles.php:599
-msgid "(Used for searching profiles, never shown to others)"
+#: ../../mod/settings.php:1054
+msgid "accepting a friend request"
msgstr ""
-#: ../../mod/profiles.php:600
-msgid "Tell us about yourself..."
+#: ../../mod/settings.php:1055
+msgid "joining a forum/community"
msgstr ""
-#: ../../mod/profiles.php:601
-msgid "Hobbies/Interests"
+#: ../../mod/settings.php:1056
+msgid "making an <em>interesting</em> profile change"
msgstr ""
-#: ../../mod/profiles.php:602
-msgid "Contact information and Social Networks"
+#: ../../mod/settings.php:1057
+msgid "Send a notification email when:"
msgstr ""
-#: ../../mod/profiles.php:603
-msgid "Musical interests"
+#: ../../mod/settings.php:1058
+msgid "You receive an introduction"
msgstr ""
-#: ../../mod/profiles.php:604
-msgid "Books, literature"
+#: ../../mod/settings.php:1059
+msgid "Your introductions are confirmed"
msgstr ""
-#: ../../mod/profiles.php:605
-msgid "Television"
+#: ../../mod/settings.php:1060
+msgid "Someone writes on your profile wall"
msgstr ""
-#: ../../mod/profiles.php:606
-msgid "Film/dance/culture/entertainment"
+#: ../../mod/settings.php:1061
+msgid "Someone writes a followup comment"
msgstr ""
-#: ../../mod/profiles.php:607
-msgid "Love/romance"
+#: ../../mod/settings.php:1062
+msgid "You receive a private message"
msgstr ""
-#: ../../mod/profiles.php:608
-msgid "Work/employment"
+#: ../../mod/settings.php:1063
+msgid "You receive a friend suggestion"
msgstr ""
-#: ../../mod/profiles.php:609
-msgid "School/education"
+#: ../../mod/settings.php:1064
+msgid "You are tagged in a post"
msgstr ""
-#: ../../mod/profiles.php:614
-msgid ""
-"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
-"be visible to anybody using the internet."
+#: ../../mod/settings.php:1065
+msgid "You are poked/prodded/etc. in a post"
msgstr ""
-#: ../../mod/profiles.php:624 ../../mod/directory.php:109
-msgid "Age: "
+#: ../../mod/settings.php:1068
+msgid "Advanced Account/Page Type Settings"
msgstr ""
-#: ../../mod/profiles.php:663
-msgid "Edit/Manage Profiles"
+#: ../../mod/settings.php:1069
+msgid "Change the behaviour of this account for special situations"
msgstr ""
-#: ../../mod/profiles.php:664 ../../boot.php:1138
-msgid "Change profile photo"
+#: ../../mod/viewconnections.php:28 ../../mod/directory.php:23
+#: ../../mod/photos.php:558 ../../mod/display.php:9 ../../mod/search.php:80
+#: ../../mod/community.php:18
+msgid "Public access denied."
msgstr ""
-#: ../../mod/profiles.php:665 ../../boot.php:1139
-msgid "Create New Profile"
+#: ../../mod/viewconnections.php:57
+msgid "No connections."
msgstr ""
-#: ../../mod/profiles.php:676 ../../boot.php:1149
-msgid "Profile Image"
+#: ../../mod/viewconnections.php:69 ../../mod/nogroup.php:40
+#, php-format
+msgid "Visit %s's profile [%s]"
msgstr ""
-#: ../../mod/profiles.php:678 ../../boot.php:1152
-msgid "visible to everybody"
+#: ../../mod/viewconnections.php:83
+msgid "View Connnections"
msgstr ""
-#: ../../mod/profiles.php:679 ../../boot.php:1153
-msgid "Edit visibility"
+#: ../../mod/tagrm.php:41
+msgid "Tag removed"
msgstr ""
-#: ../../mod/filer.php:29 ../../include/conversation.php:951
-msgid "Save to Folder:"
+#: ../../mod/tagrm.php:79
+msgid "Remove Item Tag"
msgstr ""
-#: ../../mod/filer.php:29
-msgid "- select -"
+#: ../../mod/tagrm.php:81
+msgid "Select a tag to remove: "
msgstr ""
-#: ../../mod/tagger.php:103 ../../include/conversation.php:138
-#, php-format
-msgid "%1$s tagged %2$s's %3$s with %4$s"
+#: ../../mod/tagrm.php:93 ../../mod/delegate.php:130
+msgid "Remove"
msgstr ""
#: ../../mod/delegate.php:95
@@ -4310,3538 +3762,2587 @@ msgstr ""
msgid "No entries."
msgstr ""
-#: ../../mod/babel.php:17
-msgid "Source (bbcode) text:"
-msgstr ""
-
-#: ../../mod/babel.php:25
-msgid "Source input: "
-msgstr ""
-
-#: ../../mod/babel.php:29
-msgid "bb2html: "
-msgstr ""
-
-#: ../../mod/babel.php:33
-msgid "bb2html2bb: "
-msgstr ""
-
-#: ../../mod/babel.php:37
-msgid "bb2md: "
-msgstr ""
-
-#: ../../mod/babel.php:41
-msgid "bb2md2html: "
-msgstr ""
-
-#: ../../mod/babel.php:45
-msgid "bb2dia2bb: "
-msgstr ""
-
-#: ../../mod/babel.php:49
-msgid "bb2md2html2bb: "
-msgstr ""
-
-#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:626
-#: ../../include/contact_widgets.php:34
-msgid "Friend Suggestions"
-msgstr ""
-
-#: ../../mod/suggest.php:44
-msgid ""
-"No suggestions available. If this is a new site, please try again in 24 "
-"hours."
-msgstr ""
-
-#: ../../mod/suggest.php:61
-msgid "Ignore/Hide"
-msgstr ""
-
-#: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:624
-msgid "Global Directory"
-msgstr ""
-
-#: ../../mod/directory.php:55
-msgid "Find on this site"
-msgstr ""
-
-#: ../../mod/directory.php:58
-msgid "Site Directory"
+#: ../../mod/directory.php:107 ../../mod/profiles.php:584
+msgid "Age: "
msgstr ""
-#: ../../mod/directory.php:112
+#: ../../mod/directory.php:110
msgid "Gender: "
msgstr ""
-#: ../../mod/directory.php:134 ../../include/profile_advanced.php:17
-#: ../../boot.php:1174
-msgid "Gender:"
-msgstr ""
-
-#: ../../mod/directory.php:136 ../../include/profile_advanced.php:37
-#: ../../boot.php:1177
-msgid "Status:"
+#: ../../mod/directory.php:165
+msgid "Finding:"
msgstr ""
-#: ../../mod/directory.php:138 ../../include/profile_advanced.php:48
-#: ../../boot.php:1179
-msgid "Homepage:"
+#: ../../mod/directory.php:173
+msgid "next page"
msgstr ""
-#: ../../mod/directory.php:140 ../../include/profile_advanced.php:58
-msgid "About:"
+#: ../../mod/directory.php:173
+msgid "previous page"
msgstr ""
-#: ../../mod/directory.php:178
+#: ../../mod/directory.php:180
msgid "No entries (some entries may be hidden)."
msgstr ""
-#: ../../mod/invite.php:35
-#, php-format
-msgid "%s : Not a valid email address."
-msgstr ""
-
-#: ../../mod/invite.php:59
-msgid "Please join us on Friendica"
-msgstr ""
-
-#: ../../mod/invite.php:69
-#, php-format
-msgid "%s : Message delivery failed."
-msgstr ""
-
-#: ../../mod/invite.php:73
-#, php-format
-msgid "%d message sent."
-msgid_plural "%d messages sent."
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../mod/invite.php:92
-msgid "You have no more invitations available"
-msgstr ""
-
-#: ../../mod/invite.php:100
-#, php-format
-msgid ""
-"Visit %s for a list of public sites that you can join. Friendica members on "
-"other sites can all connect with each other, as well as with members of many "
-"other social networks."
-msgstr ""
-
-#: ../../mod/invite.php:102
-#, php-format
-msgid ""
-"To accept this invitation, please visit and register at %s or any other "
-"public Friendica website."
-msgstr ""
-
-#: ../../mod/invite.php:103
-#, php-format
-msgid ""
-"Friendica sites all inter-connect to create a huge privacy-enhanced social "
-"web that is owned and controlled by its members. They can also connect with "
-"many traditional social networks. See %s for a list of alternate Friendica "
-"sites you can join."
-msgstr ""
-
-#: ../../mod/invite.php:106
-msgid ""
-"Our apologies. This system is not currently configured to connect with other "
-"public sites or invite members."
-msgstr ""
-
-#: ../../mod/invite.php:111
-msgid "Send invitations"
-msgstr ""
-
-#: ../../mod/invite.php:112
-msgid "Enter email addresses, one per line:"
-msgstr ""
-
-#: ../../mod/invite.php:114
-msgid ""
-"You are cordially invited to join me and other close friends on Friendica - "
-"and help us to create a better social web."
+#: ../../mod/dirfind.php:26
+msgid "People Search"
msgstr ""
-#: ../../mod/invite.php:116
-msgid "You will need to supply this invitation code: $invite_code"
+#: ../../mod/dirfind.php:60 ../../mod/match.php:65
+msgid "No matches"
msgstr ""
-#: ../../mod/invite.php:116
-msgid ""
-"Once you have registered, please connect with me via my profile page at:"
+#: ../../mod/group.php:25
+msgid "Collection created."
msgstr ""
-#: ../../mod/invite.php:118
-msgid ""
-"For more information about the Friendica project and why we feel it is "
-"important, please visit http://friendica.com"
+#: ../../mod/group.php:31
+msgid "Could not create collection."
msgstr ""
-#: ../../mod/dfrn_confirm.php:119
-msgid ""
-"This may occasionally happen if contact was requested by both persons and it "
-"has already been approved."
+#: ../../mod/group.php:56
+msgid "Collection name changed."
msgstr ""
-#: ../../mod/dfrn_confirm.php:237
-msgid "Response from remote site was not understood."
+#: ../../mod/group.php:88
+msgid "Create a collection of connections."
msgstr ""
-#: ../../mod/dfrn_confirm.php:246
-msgid "Unexpected response from remote site: "
+#: ../../mod/group.php:89 ../../mod/group.php:184
+msgid "Collection Name: "
msgstr ""
-#: ../../mod/dfrn_confirm.php:254
-msgid "Confirmation completed successfully."
+#: ../../mod/group.php:108
+msgid "Collection removed."
msgstr ""
-#: ../../mod/dfrn_confirm.php:256 ../../mod/dfrn_confirm.php:270
-#: ../../mod/dfrn_confirm.php:277
-msgid "Remote site reported: "
+#: ../../mod/group.php:110
+msgid "Unable to remove collection."
msgstr ""
-#: ../../mod/dfrn_confirm.php:268
-msgid "Temporary failure. Please wait and try again."
+#: ../../mod/group.php:183
+msgid "Collection Editor"
msgstr ""
-#: ../../mod/dfrn_confirm.php:275
-msgid "Introduction failed or was revoked."
+#: ../../mod/group.php:196
+msgid "Members"
msgstr ""
-#: ../../mod/dfrn_confirm.php:420
-msgid "Unable to set contact photo."
+#: ../../mod/group.php:198
+msgid "All Connected Channels"
msgstr ""
-#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:577
-#: ../../include/conversation.php:101
-#, php-format
-msgid "%1$s is now friends with %2$s"
+#: ../../mod/group.php:231
+msgid "Click on a channel to add or remove."
msgstr ""
-#: ../../mod/dfrn_confirm.php:562
-#, php-format
-msgid "No user record found for '%s' "
+#: ../../mod/photos.php:83
+msgid "Page owner information could not be retrieved."
msgstr ""
-#: ../../mod/dfrn_confirm.php:572
-msgid "Our site encryption key is apparently messed up."
+#: ../../mod/photos.php:103
+msgid "Album not found."
msgstr ""
-#: ../../mod/dfrn_confirm.php:583
-msgid "Empty site URL was provided or URL could not be decrypted by us."
+#: ../../mod/photos.php:125 ../../mod/photos.php:770
+msgid "Delete Album"
msgstr ""
-#: ../../mod/dfrn_confirm.php:604
-msgid "Contact record was not found for you on our site."
+#: ../../mod/photos.php:165 ../../mod/photos.php:1032
+msgid "Delete Photo"
msgstr ""
-#: ../../mod/dfrn_confirm.php:618
+#: ../../mod/photos.php:494
#, php-format
-msgid "Site public key not available in contact record for URL %s."
+msgid "%1$s was tagged in %2$s by %3$s"
msgstr ""
-#: ../../mod/dfrn_confirm.php:638
-msgid ""
-"The ID provided by your system is a duplicate on our system. It should work "
-"if you try again."
+#: ../../mod/photos.php:494
+msgid "a photo"
msgstr ""
-#: ../../mod/dfrn_confirm.php:649
-msgid "Unable to set your contact credentials on our system."
+#: ../../mod/photos.php:568
+msgid "No photos selected"
msgstr ""
-#: ../../mod/dfrn_confirm.php:716
-msgid "Unable to update your contact profile details on our system"
+#: ../../mod/photos.php:622
+msgid "Access to this item is restricted."
msgstr ""
-#: ../../mod/dfrn_confirm.php:750
+#: ../../mod/photos.php:686
#, php-format
-msgid "Connection accepted at %s"
+msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
msgstr ""
-#: ../../mod/dfrn_confirm.php:799
+#: ../../mod/photos.php:689
#, php-format
-msgid "%1$s has joined %2$s"
-msgstr ""
-
-#: ../../addon/fromgplus/fromgplus.php:29
-msgid "Google+ Import Settings"
-msgstr ""
-
-#: ../../addon/fromgplus/fromgplus.php:32
-msgid "Enable Google+ Import"
-msgstr ""
-
-#: ../../addon/fromgplus/fromgplus.php:35
-msgid "Google Account ID"
-msgstr ""
-
-#: ../../addon/fromgplus/fromgplus.php:55
-msgid "Google+ Import Settings saved."
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:523
-msgid "Facebook disabled"
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:528
-msgid "Updating contacts"
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:551
-msgid "Facebook API key is missing."
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:558
-msgid "Facebook Connect"
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:564
-msgid "Install Facebook connector for this account."
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:571
-msgid "Remove Facebook connector"
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:576
-msgid ""
-"Re-authenticate [This is necessary whenever your Facebook password is "
-"changed.]"
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:583
-msgid "Post to Facebook by default"
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:589
-msgid ""
-"Facebook friend linking has been disabled on this site. The following "
-"settings will have no effect."
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:593
-msgid ""
-"Facebook friend linking has been disabled on this site. If you disable it, "
-"you will be unable to re-enable it."
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:596
-msgid "Link all your Facebook friends and conversations on this website"
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:598
-msgid ""
-"Facebook conversations consist of your <em>profile wall</em> and your friend "
-"<em>stream</em>."
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:599
-msgid "On this website, your Facebook friend stream is only visible to you."
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:600
-msgid ""
-"The following settings determine the privacy of your Facebook profile wall "
-"on this website."
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:604
-msgid ""
-"On this website your Facebook profile wall conversations will only be "
-"visible to you"
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:609
-msgid "Do not import your Facebook profile wall conversations"
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:611
-msgid ""
-"If you choose to link conversations and leave both of these boxes unchecked, "
-"your Facebook profile wall will be merged with your profile wall on this "
-"website and your privacy settings on this website will be used to determine "
-"who may see the conversations."
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:616
-msgid "Comma separated applications to ignore"
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:700
-msgid "Problems with Facebook Real-Time Updates"
-msgstr ""
-
-#: ../../addon/facebook/facebook.php:729
-msgid "Facebook Connector Settings"
+msgid "You have used %1$.2f Mbytes of photo storage."
msgstr ""
-#: ../../addon/facebook/facebook.php:744
-msgid "Facebook API Key"
+#: ../../mod/photos.php:697
+msgid "Upload Photos"
msgstr ""
-#: ../../addon/facebook/facebook.php:754
-msgid ""
-"Error: it appears that you have specified the App-ID and -Secret in your ."
-"htconfig.php file. As long as they are specified there, they cannot be set "
-"using this form.<br><br>"
+#: ../../mod/photos.php:701 ../../mod/photos.php:765
+msgid "New album name: "
msgstr ""
-#: ../../addon/facebook/facebook.php:759
-msgid ""
-"Error: the given API Key seems to be incorrect (the application access token "
-"could not be retrieved)."
+#: ../../mod/photos.php:702
+msgid "or existing album name: "
msgstr ""
-#: ../../addon/facebook/facebook.php:761
-msgid "The given API Key seems to work correctly."
+#: ../../mod/photos.php:703
+msgid "Do not show a status post for this upload"
msgstr ""
-#: ../../addon/facebook/facebook.php:763
-msgid ""
-"The correctness of the API Key could not be detected. Something strange's "
-"going on."
+#: ../../mod/photos.php:705 ../../mod/photos.php:1027
+msgid "Permissions"
msgstr ""
-#: ../../addon/facebook/facebook.php:766
-msgid "App-ID / API-Key"
+#: ../../mod/photos.php:754 ../../mod/photos.php:776 ../../mod/photos.php:1223
+#: ../../mod/photos.php:1238
+msgid "Contact Photos"
msgstr ""
-#: ../../addon/facebook/facebook.php:767
-msgid "Application secret"
+#: ../../mod/photos.php:780
+msgid "Edit Album"
msgstr ""
-#: ../../addon/facebook/facebook.php:768
-#, php-format
-msgid "Polling Interval in minutes (minimum %1$s minutes)"
+#: ../../mod/photos.php:786
+msgid "Show Newest First"
msgstr ""
-#: ../../addon/facebook/facebook.php:769
-msgid ""
-"Synchronize comments (no comments on Facebook are missed, at the cost of "
-"increased system load)"
+#: ../../mod/photos.php:788
+msgid "Show Oldest First"
msgstr ""
-#: ../../addon/facebook/facebook.php:773
-msgid "Real-Time Updates"
+#: ../../mod/photos.php:832 ../../mod/photos.php:1270
+msgid "View Photo"
msgstr ""
-#: ../../addon/facebook/facebook.php:777
-msgid "Real-Time Updates are activated."
+#: ../../mod/photos.php:876
+msgid "Permission denied. Access to this item may be restricted."
msgstr ""
-#: ../../addon/facebook/facebook.php:778
-msgid "Deactivate Real-Time Updates"
+#: ../../mod/photos.php:878
+msgid "Photo not available"
msgstr ""
-#: ../../addon/facebook/facebook.php:780
-msgid "Real-Time Updates not activated."
+#: ../../mod/photos.php:936
+msgid "Use as profile photo"
msgstr ""
-#: ../../addon/facebook/facebook.php:780
-msgid "Activate Real-Time Updates"
+#: ../../mod/photos.php:964
+msgid "View Full Size"
msgstr ""
-#: ../../addon/facebook/facebook.php:799 ../../addon/dav/layout.fnk.php:360
-msgid "The new values have been saved."
+#: ../../mod/photos.php:1015
+msgid "Edit photo"
msgstr ""
-#: ../../addon/facebook/facebook.php:823
-msgid "Post to Facebook"
+#: ../../mod/photos.php:1017
+msgid "Rotate CW (right)"
msgstr ""
-#: ../../addon/facebook/facebook.php:921
-msgid ""
-"Post to Facebook cancelled because of multi-network access permission "
-"conflict."
+#: ../../mod/photos.php:1018
+msgid "Rotate CCW (left)"
msgstr ""
-#: ../../addon/facebook/facebook.php:1141
-msgid "View on Friendica"
+#: ../../mod/photos.php:1020
+msgid "New album name"
msgstr ""
-#: ../../addon/facebook/facebook.php:1174
-msgid "Facebook post failed. Queued for retry."
+#: ../../mod/photos.php:1023
+msgid "Caption"
msgstr ""
-#: ../../addon/facebook/facebook.php:1214
-msgid "Your Facebook connection became invalid. Please Re-authenticate."
+#: ../../mod/photos.php:1025
+msgid "Add a Tag"
msgstr ""
-#: ../../addon/facebook/facebook.php:1215
-msgid "Facebook connection became invalid"
+#: ../../mod/photos.php:1029
+msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
msgstr ""
-#: ../../addon/facebook/facebook.php:1216
-#, php-format
-msgid ""
-"Hi %1$s,\n"
-"\n"
-"The connection between your accounts on %2$s and Facebook became invalid. "
-"This usually happens after you change your Facebook-password. To enable the "
-"connection again, you have to %3$sre-authenticate the Facebook-connector%4$s."
+#: ../../mod/photos.php:1276
+msgid "View Album"
msgstr ""
-#: ../../addon/snautofollow/snautofollow.php:32
-msgid "StatusNet AutoFollow settings updated."
+#: ../../mod/photos.php:1285
+msgid "Recent Photos"
msgstr ""
-#: ../../addon/snautofollow/snautofollow.php:56
-msgid "StatusNet AutoFollow Settings"
+#: ../../mod/ping.php:160
+msgid "sent you a private message"
msgstr ""
-#: ../../addon/snautofollow/snautofollow.php:58
-msgid "Automatically follow any StatusNet followers/mentioners"
+#: ../../mod/ping.php:218
+msgid "added your channel"
msgstr ""
-#: ../../addon/privacy_image_cache/privacy_image_cache.php:184
-msgid "Lifetime of the cache (in hours)"
+#: ../../mod/ping.php:230 ../../boot.php:1716 ../../boot.php:1796
+msgid "g A l F d"
msgstr ""
-#: ../../addon/privacy_image_cache/privacy_image_cache.php:189
-msgid "Cache Statistics"
+#: ../../mod/ping.php:252 ../../boot.php:1762 ../../boot.php:1837
+msgid "[today]"
msgstr ""
-#: ../../addon/privacy_image_cache/privacy_image_cache.php:192
-msgid "Number of items"
+#: ../../mod/ping.php:262
+msgid "posted an event"
msgstr ""
-#: ../../addon/privacy_image_cache/privacy_image_cache.php:194
-msgid "Size of the cache"
+#: ../../mod/xchan.php:25
+msgid "Not found."
msgstr ""
-#: ../../addon/privacy_image_cache/privacy_image_cache.php:196
-msgid "Delete the whole cache"
+#: ../../mod/filer.php:35
+msgid "- select -"
msgstr ""
-#: ../../addon/widgets/widget_like.php:58
+#: ../../mod/home.php:76
#, php-format
-msgid "%d person likes this"
-msgid_plural "%d people like this"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../addon/widgets/widget_like.php:61
-#, php-format
-msgid "%d person doesn't like this"
-msgid_plural "%d people don't like this"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../addon/widgets/widget_friendheader.php:40
-msgid "Get added to this list!"
-msgstr ""
-
-#: ../../addon/widgets/widgets.php:56
-msgid "Generate new key"
+msgid "Welcome to %s"
msgstr ""
-#: ../../addon/widgets/widgets.php:59
-msgid "Widgets key"
+#: ../../mod/message.php:16
+msgid "Check Mail"
msgstr ""
-#: ../../addon/widgets/widgets.php:61
-msgid "Widgets available"
+#: ../../mod/message.php:52
+msgid "Unable to lookup recipient."
msgstr ""
-#: ../../addon/widgets/widget_friends.php:40
-msgid "Connect on Friendica!"
+#: ../../mod/message.php:60
+msgid "Unable to communicate with requested channel."
msgstr ""
-#: ../../addon/yourls/yourls.php:55
-msgid "YourLS Settings"
+#: ../../mod/message.php:67
+msgid "Cannot verify requested channel."
msgstr ""
-#: ../../addon/yourls/yourls.php:57
-msgid "URL: http://"
+#: ../../mod/message.php:93
+msgid "Selected channel has private message restrictions. Send failed."
msgstr ""
-#: ../../addon/yourls/yourls.php:62
-msgid "Username:"
+#: ../../mod/message.php:213 ../../mod/notifications.php:101
+msgid "Messages"
msgstr ""
-#: ../../addon/yourls/yourls.php:67
-msgid "Password:"
+#: ../../mod/message.php:224
+msgid "Message deleted."
msgstr ""
-#: ../../addon/yourls/yourls.php:72
-msgid "Use SSL "
+#: ../../mod/message.php:231
+msgid "Conversation removed."
msgstr ""
-#: ../../addon/yourls/yourls.php:92
-msgid "yourls Settings saved."
+#: ../../mod/message.php:282
+msgid "Send Private Message"
msgstr ""
-#: ../../addon/ljpost/ljpost.php:39
-msgid "Post to LiveJournal"
+#: ../../mod/message.php:283 ../../mod/message.php:418
+msgid "To:"
msgstr ""
-#: ../../addon/ljpost/ljpost.php:70
-msgid "LiveJournal Post Settings"
+#: ../../mod/message.php:288 ../../mod/message.php:420
+msgid "Subject:"
msgstr ""
-#: ../../addon/ljpost/ljpost.php:72
-msgid "Enable LiveJournal Post Plugin"
+#: ../../mod/message.php:316
+msgid "No messages."
msgstr ""
-#: ../../addon/ljpost/ljpost.php:77
-msgid "LiveJournal username"
+#: ../../mod/message.php:332 ../../mod/message.php:389
+msgid "Delete message"
msgstr ""
-#: ../../addon/ljpost/ljpost.php:82
-msgid "LiveJournal password"
+#: ../../mod/message.php:334
+msgid "D, d M Y - g:i A"
msgstr ""
-#: ../../addon/ljpost/ljpost.php:87
-msgid "Post to LiveJournal by default"
+#: ../../mod/message.php:353
+msgid "Message not found."
msgstr ""
-#: ../../addon/nsfw/nsfw.php:47
-msgid "Not Safe For Work (General Purpose Content Filter) settings"
+#: ../../mod/message.php:411
+msgid "Delete conversation"
msgstr ""
-#: ../../addon/nsfw/nsfw.php:49
+#: ../../mod/message.php:413
msgid ""
-"This plugin looks in posts for the words/text you specify below, and "
-"collapses any content containing those keywords so it is not displayed at "
-"inappropriate times, such as sexual innuendo that may be improper in a work "
-"setting. It is polite and recommended to tag any content containing nudity "
-"with #NSFW. This filter can also match any other word/text you specify, and "
-"can thereby be used as a general purpose content filter."
-msgstr ""
-
-#: ../../addon/nsfw/nsfw.php:50
-msgid "Enable Content filter"
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
msgstr ""
-#: ../../addon/nsfw/nsfw.php:53
-msgid "Comma separated list of keywords to hide"
+#: ../../mod/message.php:417
+msgid "Send Reply"
msgstr ""
-#: ../../addon/nsfw/nsfw.php:58
-msgid "Use /expression/ to provide regular expressions"
+#: ../../mod/hcard.php:10
+msgid "No profile"
msgstr ""
-#: ../../addon/nsfw/nsfw.php:74
-msgid "NSFW Settings saved."
+#: ../../mod/help.php:30
+msgid "Help:"
msgstr ""
-#: ../../addon/nsfw/nsfw.php:121
-#, php-format
-msgid "%s - Click to open/close"
+#: ../../mod/help.php:38 ../../index.php:226
+msgid "Not Found"
msgstr ""
-#: ../../addon/page/page.php:61 ../../addon/page/page.php:91
-msgid "Forums"
+#: ../../mod/help.php:41 ../../index.php:229
+msgid "Page not found."
msgstr ""
-#: ../../addon/page/page.php:129
-msgid "Forums:"
+#: ../../mod/rmagic.php:56
+msgid "Remote Authentication"
msgstr ""
-#: ../../addon/page/page.php:165
-msgid "Page settings updated."
+#: ../../mod/rmagic.php:57
+msgid "Enter your channel address (e.g. channel@example.com)"
msgstr ""
-#: ../../addon/page/page.php:194
-msgid "Page Settings"
+#: ../../mod/rmagic.php:58
+msgid "Authenticate"
msgstr ""
-#: ../../addon/page/page.php:196
-msgid "How many forums to display on sidebar without paging"
+#: ../../mod/item.php:121
+msgid "Unable to locate original post."
msgstr ""
-#: ../../addon/page/page.php:199
-msgid "Randomise Page/Forum list"
+#: ../../mod/item.php:289
+msgid "Empty post discarded."
msgstr ""
-#: ../../addon/page/page.php:202
-msgid "Show pages/forums on profile page"
+#: ../../mod/item.php:751
+msgid "System error. Post not saved."
msgstr ""
-#: ../../addon/planets/planets.php:150
-msgid "Planets Settings"
+#: ../../mod/item.php:1028 ../../mod/wall_upload.php:41
+msgid "Wall Photos"
msgstr ""
-#: ../../addon/planets/planets.php:152
-msgid "Enable Planets Plugin"
+#: ../../mod/network.php:158 ../../mod/search.php:20
+msgid "Remove term"
msgstr ""
-#: ../../addon/communityhome/communityhome.php:28
-#: ../../addon/communityhome/communityhome.php:34
-#: ../../addon/communityhome/twillingham/communityhome.php:28
-#: ../../addon/communityhome/twillingham/communityhome.php:34
-#: ../../include/nav.php:64 ../../boot.php:885
-msgid "Login"
+#: ../../mod/network.php:296
+msgid "Commented Order"
msgstr ""
-#: ../../addon/communityhome/communityhome.php:29
-#: ../../addon/communityhome/twillingham/communityhome.php:29
-msgid "OpenID"
+#: ../../mod/network.php:299
+msgid "Sort by Comment Date"
msgstr ""
-#: ../../addon/communityhome/communityhome.php:38
-#: ../../addon/communityhome/twillingham/communityhome.php:38
-msgid "Latest users"
+#: ../../mod/network.php:302
+msgid "Posted Order"
msgstr ""
-#: ../../addon/communityhome/communityhome.php:81
-#: ../../addon/communityhome/twillingham/communityhome.php:81
-msgid "Most active users"
+#: ../../mod/network.php:305
+msgid "Sort by Post Date"
msgstr ""
-#: ../../addon/communityhome/communityhome.php:98
-msgid "Latest photos"
+#: ../../mod/network.php:309 ../../mod/notifications.php:86
+msgid "Personal"
msgstr ""
-#: ../../addon/communityhome/communityhome.php:133
-msgid "Latest likes"
+#: ../../mod/network.php:312
+msgid "Posts that mention or involve you"
msgstr ""
-#: ../../addon/communityhome/communityhome.php:155
-#: ../../view/theme/diabook/theme.php:562 ../../include/text.php:1319
-#: ../../include/conversation.php:45 ../../include/conversation.php:118
-msgid "event"
+#: ../../mod/network.php:315 ../../mod/connections.php:511
+msgid "New"
msgstr ""
-#: ../../addon/dav/common/wdcal_configuration.php:126
-msgid "U.S. Time Format (mm/dd/YYYY)"
+#: ../../mod/network.php:318
+msgid "Activity Stream - by date"
msgstr ""
-#: ../../addon/dav/common/wdcal_configuration.php:205
-msgid "German Time Format (dd.mm.YYYY)"
+#: ../../mod/network.php:325
+msgid "Starred"
msgstr ""
-#: ../../addon/dav/common/calendar.fnk.php:517
-#: ../../addon/dav/common/calendar.fnk.php:533
-#: ../../addon/dav/layout.fnk.php:200
-msgid "Error"
+#: ../../mod/network.php:328
+msgid "Favourite Posts"
msgstr ""
-#: ../../addon/dav/common/calendar.fnk.php:568
-#: ../../addon/dav/common/calendar.fnk.php:637
-#: ../../addon/dav/common/calendar.fnk.php:664
-#: ../../addon/dav/layout.fnk.php:231
-msgid "No access"
+#: ../../mod/network.php:335
+msgid "Spam"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:119
-msgid "New event"
+#: ../../mod/network.php:338
+msgid "Posts flagged as SPAM"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:123
-msgid "Today"
+#: ../../mod/network.php:378
+msgid "Refresh"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:132
-msgid "Day"
+#: ../../mod/network.php:379 ../../mod/connections.php:364
+msgid "Me"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:139
-msgid "Week"
+#: ../../mod/network.php:380 ../../mod/connections.php:366
+msgid "Best Friends"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:146
-msgid "Month"
+#: ../../mod/network.php:382
+msgid "Co-workers"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:151
-msgid "Reload"
+#: ../../mod/network.php:383 ../../mod/connections.php:368
+msgid "Former Friends"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:162
-msgid "Date"
+#: ../../mod/network.php:384 ../../mod/connections.php:369
+msgid "Acquaintances"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:224
-msgid "Not found"
+#: ../../mod/network.php:385
+msgid "Everybody"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:292 ../../addon/dav/layout.fnk.php:365
-msgid "Go back to the calendar"
+#: ../../mod/network.php:402
+msgid "Search Results For:"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:300
-msgid "Starts"
+#: ../../mod/network.php:447
+msgid "No such group"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:305
-msgid "Ends"
+#: ../../mod/network.php:458
+msgid "Group is empty"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:312
-msgid "Description"
+#: ../../mod/network.php:473
+msgid "Contact: "
msgstr ""
-#: ../../addon/dav/layout.fnk.php:315
-msgid "Notification"
+#: ../../mod/network.php:476
+msgid "Invalid contact."
msgstr ""
-#: ../../addon/dav/layout.fnk.php:324
-msgid "Minutes"
+#: ../../mod/admin.php:48
+msgid "Theme settings updated."
msgstr ""
-#: ../../addon/dav/layout.fnk.php:327
-msgid "Hours"
+#: ../../mod/admin.php:83 ../../mod/admin.php:399
+msgid "Site"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:330
-msgid "Days"
+#: ../../mod/admin.php:84 ../../mod/admin.php:622 ../../mod/admin.php:634
+msgid "Users"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:331
-msgid "before"
+#: ../../mod/admin.php:85 ../../mod/admin.php:716 ../../mod/admin.php:758
+msgid "Plugins"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:367
-msgid "Calendar Settings"
+#: ../../mod/admin.php:86 ../../mod/admin.php:921 ../../mod/admin.php:957
+msgid "Themes"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:373
-msgid "Date format"
+#: ../../mod/admin.php:87
+msgid "DB updates"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:382
-msgid "Time zone"
+#: ../../mod/admin.php:101 ../../mod/admin.php:108 ../../mod/admin.php:1044
+msgid "Logs"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:387
-msgid "Limitations"
+#: ../../mod/admin.php:107
+msgid "Plugin Features"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:391
-msgid "Warning"
+#: ../../mod/admin.php:109
+msgid "User registrations waiting for confirmation"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:395
-msgid "Synchronization (iPhone, Thunderbird Lightning, Android, ...)"
+#: ../../mod/admin.php:180
+msgid "Message queues"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:402
-msgid "Synchronizing this calendar with the iPhone"
+#: ../../mod/admin.php:185 ../../mod/admin.php:398 ../../mod/admin.php:621
+#: ../../mod/admin.php:715 ../../mod/admin.php:757 ../../mod/admin.php:920
+#: ../../mod/admin.php:956 ../../mod/admin.php:1043
+msgid "Administration"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:413
-msgid "Synchronizing your Friendica-Contacts with the iPhone"
+#: ../../mod/admin.php:186
+msgid "Summary"
msgstr ""
-#: ../../addon/dav/dav_carddav_backend_friendica_community.inc.php:37
-msgid "Friendica-Contacts"
+#: ../../mod/admin.php:188
+msgid "Registered users"
msgstr ""
-#: ../../addon/dav/dav_carddav_backend_friendica_community.inc.php:38
-msgid "Your Friendica-Contacts"
+#: ../../mod/admin.php:190
+msgid "Pending registrations"
msgstr ""
-#: ../../addon/dav/main.php:244
-msgid "Calendar"
+#: ../../mod/admin.php:191
+msgid "Version"
msgstr ""
-#: ../../addon/dav/main.php:247
-msgid "Extended calendar with CalDAV-support"
+#: ../../mod/admin.php:193
+msgid "Active plugins"
msgstr ""
-#: ../../addon/dav/main.php:263
-msgid "The database tables have been installed."
+#: ../../mod/admin.php:330
+msgid "Site settings updated."
msgstr ""
-#: ../../addon/dav/main.php:264
-msgid "An error occurred during the installation."
+#: ../../mod/admin.php:361
+msgid "No special theme for accessibility"
msgstr ""
-#: ../../addon/dav/main.php:280
-msgid "No system-wide settings yet."
+#: ../../mod/admin.php:386
+msgid "Closed"
msgstr ""
-#: ../../addon/dav/main.php:283
-msgid "Database status"
+#: ../../mod/admin.php:387
+msgid "Requires approval"
msgstr ""
-#: ../../addon/dav/main.php:286
-msgid "Installed"
+#: ../../mod/admin.php:388
+msgid "Open"
msgstr ""
-#: ../../addon/dav/main.php:289
-msgid "Upgrade needed"
+#: ../../mod/admin.php:392
+msgid "No SSL policy, links will track page SSL state"
msgstr ""
-#: ../../addon/dav/main.php:289
-msgid "Upgrade"
+#: ../../mod/admin.php:393
+msgid "Force all links to use SSL"
msgstr ""
-#: ../../addon/dav/main.php:292
-msgid "Not installed"
+#: ../../mod/admin.php:401 ../../mod/register.php:166
+msgid "Registration"
msgstr ""
-#: ../../addon/dav/main.php:292
-msgid "Install"
+#: ../../mod/admin.php:402
+msgid "File upload"
msgstr ""
-#: ../../addon/dav/main.php:297
-msgid "Troubleshooting"
+#: ../../mod/admin.php:403
+msgid "Policies"
msgstr ""
-#: ../../addon/dav/main.php:298
-msgid "Manual creation of the database tables:"
+#: ../../mod/admin.php:404
+msgid "Advanced"
msgstr ""
-#: ../../addon/dav/main.php:299
-msgid "Show SQL-statements"
+#: ../../mod/admin.php:408
+msgid "Site name"
msgstr ""
-#: ../../addon/dav/calendar.friendica.fnk.php:151
-msgid "Private Calendar"
+#: ../../mod/admin.php:409
+msgid "Banner/Logo"
msgstr ""
-#: ../../addon/dav/calendar.friendica.fnk.php:158
-msgid "Friendica Events: Mine"
+#: ../../mod/admin.php:410
+msgid "System language"
msgstr ""
-#: ../../addon/dav/calendar.friendica.fnk.php:161
-msgid "Friendica Events: Contacts"
+#: ../../mod/admin.php:411
+msgid "System theme"
msgstr ""
-#: ../../addon/uhremotestorage/uhremotestorage.php:84
-#, php-format
+#: ../../mod/admin.php:411
msgid ""
-"Allow to use your friendica id (%s) to connecto to external unhosted-enabled "
-"storage (like ownCloud). See <a href=\"http://www.w3.org/community/unhosted/"
-"wiki/RemoteStorage#WebFinger\">RemoteStorage WebFinger</a>"
-msgstr ""
-
-#: ../../addon/uhremotestorage/uhremotestorage.php:85
-msgid "Template URL (with {category})"
+"Default system theme - may be over-ridden by user profiles - <a href='#' "
+"id='cnftheme'>change theme settings</a>"
msgstr ""
-#: ../../addon/uhremotestorage/uhremotestorage.php:86
-msgid "OAuth end-point"
+#: ../../mod/admin.php:412
+msgid "Mobile system theme"
msgstr ""
-#: ../../addon/uhremotestorage/uhremotestorage.php:87
-msgid "Api"
+#: ../../mod/admin.php:412
+msgid "Theme for mobile devices"
msgstr ""
-#: ../../addon/membersince/membersince.php:18
-msgid "Member since:"
+#: ../../mod/admin.php:413
+msgid "Accessibility system theme"
msgstr ""
-#: ../../addon/tictac/tictac.php:20
-msgid "Three Dimensional Tic-Tac-Toe"
+#: ../../mod/admin.php:413
+msgid "Accessibility theme"
msgstr ""
-#: ../../addon/tictac/tictac.php:53
-msgid "3D Tic-Tac-Toe"
+#: ../../mod/admin.php:414
+msgid "Channel to use for this website's static pages"
msgstr ""
-#: ../../addon/tictac/tictac.php:58
-msgid "New game"
+#: ../../mod/admin.php:414
+msgid "Site Channel"
msgstr ""
-#: ../../addon/tictac/tictac.php:59
-msgid "New game with handicap"
+#: ../../mod/admin.php:415
+msgid "SSL link policy"
msgstr ""
-#: ../../addon/tictac/tictac.php:60
-msgid ""
-"Three dimensional tic-tac-toe is just like the traditional game except that "
-"it is played on multiple levels simultaneously. "
+#: ../../mod/admin.php:415
+msgid "Determines whether generated links should be forced to use SSL"
msgstr ""
-#: ../../addon/tictac/tictac.php:61
-msgid ""
-"In this case there are three levels. You win by getting three in a row on "
-"any level, as well as up, down, and diagonally across the different levels."
+#: ../../mod/admin.php:416
+msgid "Maximum image size"
msgstr ""
-#: ../../addon/tictac/tictac.php:63
+#: ../../mod/admin.php:416
msgid ""
-"The handicap game disables the center position on the middle level because "
-"the player claiming this square often has an unfair advantage."
-msgstr ""
-
-#: ../../addon/tictac/tictac.php:182
-msgid "You go first..."
-msgstr ""
-
-#: ../../addon/tictac/tictac.php:187
-msgid "I'm going first this time..."
-msgstr ""
-
-#: ../../addon/tictac/tictac.php:193
-msgid "You won!"
-msgstr ""
-
-#: ../../addon/tictac/tictac.php:199 ../../addon/tictac/tictac.php:224
-msgid "\"Cat\" game!"
-msgstr ""
-
-#: ../../addon/tictac/tictac.php:222
-msgid "I won!"
-msgstr ""
-
-#: ../../addon/randplace/randplace.php:169
-msgid "Randplace Settings"
-msgstr ""
-
-#: ../../addon/randplace/randplace.php:171
-msgid "Enable Randplace Plugin"
-msgstr ""
-
-#: ../../addon/dwpost/dwpost.php:39
-msgid "Post to Dreamwidth"
-msgstr ""
-
-#: ../../addon/dwpost/dwpost.php:70
-msgid "Dreamwidth Post Settings"
-msgstr ""
-
-#: ../../addon/dwpost/dwpost.php:72
-msgid "Enable dreamwidth Post Plugin"
-msgstr ""
-
-#: ../../addon/dwpost/dwpost.php:77
-msgid "dreamwidth username"
-msgstr ""
-
-#: ../../addon/dwpost/dwpost.php:82
-msgid "dreamwidth password"
-msgstr ""
-
-#: ../../addon/dwpost/dwpost.php:87
-msgid "Post to dreamwidth by default"
-msgstr ""
-
-#: ../../addon/drpost/drpost.php:35
-msgid "Post to Drupal"
-msgstr ""
-
-#: ../../addon/drpost/drpost.php:72
-msgid "Drupal Post Settings"
-msgstr ""
-
-#: ../../addon/drpost/drpost.php:74
-msgid "Enable Drupal Post Plugin"
-msgstr ""
-
-#: ../../addon/drpost/drpost.php:79
-msgid "Drupal username"
-msgstr ""
-
-#: ../../addon/drpost/drpost.php:84
-msgid "Drupal password"
-msgstr ""
-
-#: ../../addon/drpost/drpost.php:89
-msgid "Post Type - article,page,or blog"
-msgstr ""
-
-#: ../../addon/drpost/drpost.php:94
-msgid "Drupal site URL"
-msgstr ""
-
-#: ../../addon/drpost/drpost.php:99
-msgid "Drupal site uses clean URLS"
-msgstr ""
-
-#: ../../addon/drpost/drpost.php:104
-msgid "Post to Drupal by default"
-msgstr ""
-
-#: ../../addon/drpost/drpost.php:184 ../../addon/wppost/wppost.php:201
-#: ../../addon/blogger/blogger.php:172 ../../addon/posterous/posterous.php:189
-msgid "Post from Friendica"
-msgstr ""
-
-#: ../../addon/startpage/startpage.php:83
-msgid "Startpage Settings"
-msgstr ""
-
-#: ../../addon/startpage/startpage.php:85
-msgid "Home page to load after login - leave blank for profile wall"
-msgstr ""
-
-#: ../../addon/startpage/startpage.php:88
-msgid "Examples: &quot;network&quot; or &quot;notifications/system&quot;"
-msgstr ""
-
-#: ../../addon/geonames/geonames.php:143
-msgid "Geonames settings updated."
+"Maximum size in bytes of uploaded images. Default is 0, which means no "
+"limits."
msgstr ""
-#: ../../addon/geonames/geonames.php:179
-msgid "Geonames Settings"
+#: ../../mod/admin.php:417
+msgid "Register policy"
msgstr ""
-#: ../../addon/geonames/geonames.php:181
-msgid "Enable Geonames Plugin"
+#: ../../mod/admin.php:418
+msgid "Register text"
msgstr ""
-#: ../../addon/public_server/public_server.php:126
-#: ../../addon/testdrive/testdrive.php:94
-#, php-format
-msgid "Your account on %s will expire in a few days."
+#: ../../mod/admin.php:418
+msgid "Will be displayed prominently on the registration page."
msgstr ""
-#: ../../addon/public_server/public_server.php:127
-msgid "Your Friendica account is about to expire."
+#: ../../mod/admin.php:419
+msgid "Accounts abandoned after x days"
msgstr ""
-#: ../../addon/public_server/public_server.php:128
-#, php-format
+#: ../../mod/admin.php:419
msgid ""
-"Hi %1$s,\n"
-"\n"
-"Your account on %2$s will expire in less than five days. You may keep your "
-"account by logging in at least once every 30 days"
-msgstr ""
-
-#: ../../addon/js_upload/js_upload.php:43
-msgid "Upload a file"
+"Will not waste system resources polling external sites for abandonded "
+"accounts. Enter 0 for no time limit."
msgstr ""
-#: ../../addon/js_upload/js_upload.php:44
-msgid "Drop files here to upload"
+#: ../../mod/admin.php:420
+msgid "Allowed friend domains"
msgstr ""
-#: ../../addon/js_upload/js_upload.php:46
-msgid "Failed"
+#: ../../mod/admin.php:420
+msgid ""
+"Comma separated list of domains which are allowed to establish friendships "
+"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr ""
-#: ../../addon/js_upload/js_upload.php:297
-msgid "No files were uploaded."
+#: ../../mod/admin.php:421
+msgid "Allowed email domains"
msgstr ""
-#: ../../addon/js_upload/js_upload.php:303
-msgid "Uploaded file is empty"
+#: ../../mod/admin.php:421
+msgid ""
+"Comma separated list of domains which are allowed in email addresses for "
+"registrations to this site. Wildcards are accepted. Empty to allow any "
+"domains"
msgstr ""
-#: ../../addon/js_upload/js_upload.php:326
-msgid "File has an invalid extension, it should be one of "
+#: ../../mod/admin.php:422
+msgid "Block public"
msgstr ""
-#: ../../addon/js_upload/js_upload.php:337
-msgid "Upload was cancelled, or server error encountered"
+#: ../../mod/admin.php:422
+msgid ""
+"Check to block public access to all otherwise public personal pages on this "
+"site unless you are currently logged in."
msgstr ""
-#: ../../addon/oembed.old/oembed.php:30
-msgid "OEmbed settings updated"
+#: ../../mod/admin.php:423
+msgid "Force publish"
msgstr ""
-#: ../../addon/oembed.old/oembed.php:43
-msgid "Use OEmbed for YouTube videos"
+#: ../../mod/admin.php:423
+msgid ""
+"Check to force all profiles on this site to be listed in the site directory."
msgstr ""
-#: ../../addon/oembed.old/oembed.php:71
-msgid "URL to embed:"
+#: ../../mod/admin.php:425
+msgid "Proxy user"
msgstr ""
-#: ../../addon/impressum/impressum.php:36
-msgid "Impressum"
+#: ../../mod/admin.php:426
+msgid "Proxy URL"
msgstr ""
-#: ../../addon/impressum/impressum.php:49
-#: ../../addon/impressum/impressum.php:51
-#: ../../addon/impressum/impressum.php:83
-msgid "Site Owner"
+#: ../../mod/admin.php:427
+msgid "Network timeout"
msgstr ""
-#: ../../addon/impressum/impressum.php:49
-#: ../../addon/impressum/impressum.php:87
-msgid "Email Address"
+#: ../../mod/admin.php:427
+msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr ""
-#: ../../addon/impressum/impressum.php:54
-#: ../../addon/impressum/impressum.php:85
-msgid "Postal Address"
+#: ../../mod/admin.php:428
+msgid "Delivery interval"
msgstr ""
-#: ../../addon/impressum/impressum.php:60
+#: ../../mod/admin.php:428
msgid ""
-"The impressum addon needs to be configured!<br />Please add at least the "
-"<tt>owner</tt> variable to your config file. For other variables please "
-"refer to the README file of the addon."
-msgstr ""
-
-#: ../../addon/impressum/impressum.php:83
-msgid "The page operators name."
-msgstr ""
-
-#: ../../addon/impressum/impressum.php:84
-msgid "Site Owners Profile"
+"Delay background delivery processes by this many seconds to reduce system "
+"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
+"for large dedicated servers."
msgstr ""
-#: ../../addon/impressum/impressum.php:84
-msgid "Profile address of the operator."
+#: ../../mod/admin.php:429
+msgid "Poll interval"
msgstr ""
-#: ../../addon/impressum/impressum.php:85
-msgid "How to contact the operator via snail mail. You can use BBCode here."
+#: ../../mod/admin.php:429
+msgid ""
+"Delay background polling processes by this many seconds to reduce system "
+"load. If 0, use delivery interval."
msgstr ""
-#: ../../addon/impressum/impressum.php:86
-msgid "Notes"
+#: ../../mod/admin.php:430
+msgid "Maximum Load Average"
msgstr ""
-#: ../../addon/impressum/impressum.php:86
+#: ../../mod/admin.php:430
msgid ""
-"Additional notes that are displayed beneath the contact information. You can "
-"use BBCode here."
-msgstr ""
-
-#: ../../addon/impressum/impressum.php:87
-msgid "How to contact the operator via email. (will be displayed obfuscated)"
+"Maximum system load before delivery and poll processes are deferred - "
+"default 50."
msgstr ""
-#: ../../addon/impressum/impressum.php:88
-msgid "Footer note"
+#: ../../mod/admin.php:446
+msgid "Update has been marked successful"
msgstr ""
-#: ../../addon/impressum/impressum.php:88
-msgid "Text for the footer. You can use BBCode here."
+#: ../../mod/admin.php:456
+#, php-format
+msgid "Executing %s failed. Check system logs."
msgstr ""
-#: ../../addon/buglink/buglink.php:15
-msgid "Report Bug"
+#: ../../mod/admin.php:459
+#, php-format
+msgid "Update %s was successfully applied."
msgstr ""
-#: ../../addon/notimeline/notimeline.php:32
-msgid "No Timeline settings updated."
+#: ../../mod/admin.php:463
+#, php-format
+msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr ""
-#: ../../addon/notimeline/notimeline.php:56
-msgid "No Timeline Settings"
+#: ../../mod/admin.php:466
+#, php-format
+msgid "Update function %s could not be found."
msgstr ""
-#: ../../addon/notimeline/notimeline.php:58
-msgid "Disable Archive selector on profile wall"
+#: ../../mod/admin.php:481
+msgid "No failed updates."
msgstr ""
-#: ../../addon/blockem/blockem.php:51
-msgid "\"Blockem\" Settings"
+#: ../../mod/admin.php:485
+msgid "Failed Updates"
msgstr ""
-#: ../../addon/blockem/blockem.php:53
-msgid "Comma separated profile URLS to block"
+#: ../../mod/admin.php:487
+msgid "Mark success (if update was manually applied)"
msgstr ""
-#: ../../addon/blockem/blockem.php:70
-msgid "BLOCKEM Settings saved."
+#: ../../mod/admin.php:488
+msgid "Attempt to execute this update step automatically"
msgstr ""
-#: ../../addon/blockem/blockem.php:105
+#: ../../mod/admin.php:514
#, php-format
-msgid "Blocked %s - Click to open/close"
-msgstr ""
+msgid "%s user blocked/unblocked"
+msgid_plural "%s users blocked/unblocked"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../addon/blockem/blockem.php:160
-msgid "Unblock Author"
-msgstr ""
+#: ../../mod/admin.php:521
+#, php-format
+msgid "%s user deleted"
+msgid_plural "%s users deleted"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../addon/blockem/blockem.php:162
-msgid "Block Author"
+#: ../../mod/admin.php:552
+msgid "Account not found"
msgstr ""
-#: ../../addon/blockem/blockem.php:194
-msgid "blockem settings updated"
+#: ../../mod/admin.php:563
+#, php-format
+msgid "User '%s' deleted"
msgstr ""
-#: ../../addon/qcomment/qcomment.php:51
-msgid ":-)"
+#: ../../mod/admin.php:572
+#, php-format
+msgid "User '%s' unblocked"
msgstr ""
-#: ../../addon/qcomment/qcomment.php:51
-msgid ":-("
+#: ../../mod/admin.php:572
+#, php-format
+msgid "User '%s' blocked"
msgstr ""
-#: ../../addon/qcomment/qcomment.php:51
-msgid "lol"
+#: ../../mod/admin.php:603
+msgid "Normal Account"
msgstr ""
-#: ../../addon/qcomment/qcomment.php:54
-msgid "Quick Comment Settings"
+#: ../../mod/admin.php:604
+msgid "Soapbox Account"
msgstr ""
-#: ../../addon/qcomment/qcomment.php:56
-msgid ""
-"Quick comments are found near comment boxes, sometimes hidden. Click them to "
-"provide simple replies."
+#: ../../mod/admin.php:605
+msgid "Community/Celebrity Account"
msgstr ""
-#: ../../addon/qcomment/qcomment.php:57
-msgid "Enter quick comments, one per line"
+#: ../../mod/admin.php:606
+msgid "Automatic Friend Account"
msgstr ""
-#: ../../addon/qcomment/qcomment.php:75
-msgid "Quick Comment settings saved."
+#: ../../mod/admin.php:624
+msgid "select all"
msgstr ""
-#: ../../addon/openstreetmap/openstreetmap.php:71
-msgid "Tile Server URL"
+#: ../../mod/admin.php:625
+msgid "User registrations waiting for confirm"
msgstr ""
-#: ../../addon/openstreetmap/openstreetmap.php:71
-msgid ""
-"A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank"
-"\">public tile servers</a>"
+#: ../../mod/admin.php:626
+msgid "Request date"
msgstr ""
-#: ../../addon/openstreetmap/openstreetmap.php:72
-msgid "Default zoom"
+#: ../../mod/admin.php:627
+msgid "No registrations."
msgstr ""
-#: ../../addon/openstreetmap/openstreetmap.php:72
-msgid "The default zoom level. (1:world, 18:highest)"
+#: ../../mod/admin.php:628 ../../mod/intro.php:11 ../../mod/intro.php:98
+#: ../../mod/notifications.php:159 ../../mod/notifications.php:206
+msgid "Approve"
msgstr ""
-#: ../../addon/libertree/libertree.php:36
-msgid "Post to libertree"
+#: ../../mod/admin.php:629
+msgid "Deny"
msgstr ""
-#: ../../addon/libertree/libertree.php:67
-msgid "libertree Post Settings"
+#: ../../mod/admin.php:631 ../../mod/intro.php:14 ../../mod/intro.php:99
+#: ../../mod/connections.php:308 ../../mod/connections.php:449
+msgid "Block"
msgstr ""
-#: ../../addon/libertree/libertree.php:69
-msgid "Enable Libertree Post Plugin"
+#: ../../mod/admin.php:632 ../../mod/connections.php:308
+#: ../../mod/connections.php:449
+msgid "Unblock"
msgstr ""
-#: ../../addon/libertree/libertree.php:74
-msgid "Libertree API token"
+#: ../../mod/admin.php:635
+msgid "Register date"
msgstr ""
-#: ../../addon/libertree/libertree.php:79
-msgid "Libertree site URL"
+#: ../../mod/admin.php:635
+msgid "Last login"
msgstr ""
-#: ../../addon/libertree/libertree.php:84
-msgid "Post to Libertree by default"
+#: ../../mod/admin.php:635
+msgid "Service Class"
msgstr ""
-#: ../../addon/mathjax/mathjax.php:37
+#: ../../mod/admin.php:637
msgid ""
-"The MathJax addon renders mathematical formulae written using the LaTeX "
-"syntax surrounded by the usual $$ or an eqnarray block in the postings of "
-"your wall,network tab and private mail."
-msgstr ""
-
-#: ../../addon/mathjax/mathjax.php:38
-msgid "Use the MathJax renderer"
-msgstr ""
-
-#: ../../addon/mathjax/mathjax.php:74
-msgid "MathJax Base URL"
+"Selected users will be deleted!\\n\\nEverything these users had posted on "
+"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../addon/mathjax/mathjax.php:74
+#: ../../mod/admin.php:638
msgid ""
-"The URL for the javascript file that should be included to use MathJax. Can "
-"be either the MathJax CDN or another installation of MathJax."
-msgstr ""
-
-#: ../../addon/editplain/editplain.php:46
-msgid "Editplain settings updated."
-msgstr ""
-
-#: ../../addon/editplain/editplain.php:76
-msgid "Editplain Settings"
-msgstr ""
-
-#: ../../addon/editplain/editplain.php:78
-msgid "Disable richtext status editor"
-msgstr ""
-
-#: ../../addon/gravatar/gravatar.php:71
-msgid "generic profile image"
-msgstr ""
-
-#: ../../addon/gravatar/gravatar.php:72
-msgid "random geometric pattern"
-msgstr ""
-
-#: ../../addon/gravatar/gravatar.php:73
-msgid "monster face"
-msgstr ""
-
-#: ../../addon/gravatar/gravatar.php:74
-msgid "computer generated face"
-msgstr ""
-
-#: ../../addon/gravatar/gravatar.php:75
-msgid "retro arcade style face"
-msgstr ""
-
-#: ../../addon/gravatar/gravatar.php:87
-msgid "Default avatar image"
-msgstr ""
-
-#: ../../addon/gravatar/gravatar.php:87
-msgid "Select default avatar image if none was found at Gravatar. See README"
-msgstr ""
-
-#: ../../addon/gravatar/gravatar.php:88
-msgid "Rating of images"
-msgstr ""
-
-#: ../../addon/gravatar/gravatar.php:88
-msgid "Select the appropriate avatar rating for your site. See README"
-msgstr ""
-
-#: ../../addon/gravatar/gravatar.php:102
-msgid "Gravatar settings updated."
-msgstr ""
-
-#: ../../addon/testdrive/testdrive.php:95
-msgid "Your Friendica test account is about to expire."
+"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
+"site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../addon/testdrive/testdrive.php:96
+#: ../../mod/admin.php:679
#, php-format
-msgid ""
-"Hi %1$s,\n"
-"\n"
-"Your test account on %2$s will expire in less than five days. We hope you "
-"enjoyed this test drive and use this opportunity to find a permanent "
-"Friendica website for your integrated social communications. A list of "
-"public sites is available at http://dir.friendica.com/siteinfo - and for "
-"more information on setting up your own Friendica server please see the "
-"Friendica project website at http://friendica.com."
-msgstr ""
-
-#: ../../addon/pageheader/pageheader.php:50
-msgid "\"pageheader\" Settings"
-msgstr ""
-
-#: ../../addon/pageheader/pageheader.php:68
-msgid "pageheader Settings saved."
-msgstr ""
-
-#: ../../addon/ijpost/ijpost.php:39
-msgid "Post to Insanejournal"
+msgid "Plugin %s disabled."
msgstr ""
-#: ../../addon/ijpost/ijpost.php:70
-msgid "InsaneJournal Post Settings"
+#: ../../mod/admin.php:683
+#, php-format
+msgid "Plugin %s enabled."
msgstr ""
-#: ../../addon/ijpost/ijpost.php:72
-msgid "Enable InsaneJournal Post Plugin"
+#: ../../mod/admin.php:693 ../../mod/admin.php:891
+msgid "Disable"
msgstr ""
-#: ../../addon/ijpost/ijpost.php:77
-msgid "InsaneJournal username"
+#: ../../mod/admin.php:695 ../../mod/admin.php:893
+msgid "Enable"
msgstr ""
-#: ../../addon/ijpost/ijpost.php:82
-msgid "InsaneJournal password"
+#: ../../mod/admin.php:717 ../../mod/admin.php:922
+msgid "Toggle"
msgstr ""
-#: ../../addon/ijpost/ijpost.php:87
-msgid "Post to InsaneJournal by default"
+#: ../../mod/admin.php:725 ../../mod/admin.php:932
+msgid "Author: "
msgstr ""
-#: ../../addon/viewsrc/viewsrc.php:37
-msgid "View Source"
+#: ../../mod/admin.php:726 ../../mod/admin.php:933
+msgid "Maintainer: "
msgstr ""
-#: ../../addon/statusnet/statusnet.php:134
-msgid "Post to StatusNet"
+#: ../../mod/admin.php:855
+msgid "No themes found."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:176
-msgid ""
-"Please contact your site administrator.<br />The provided API URL is not "
-"valid."
+#: ../../mod/admin.php:914
+msgid "Screenshot"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:204
-msgid "We could not contact the StatusNet API with the Path you entered."
+#: ../../mod/admin.php:962
+msgid "[Experimental]"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:232
-msgid "StatusNet settings updated."
+#: ../../mod/admin.php:963
+msgid "[Unsupported]"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:257
-msgid "StatusNet Posting Settings"
+#: ../../mod/admin.php:990
+msgid "Log settings updated."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:271
-msgid "Globally Available StatusNet OAuthKeys"
+#: ../../mod/admin.php:1046
+msgid "Clear"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:272
-msgid ""
-"There are preconfigured OAuth key pairs for some StatusNet servers "
-"available. If you are useing one of them, please use these credentials. If "
-"not feel free to connect to any other StatusNet instance (see below)."
+#: ../../mod/admin.php:1052
+msgid "Debugging"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:280
-msgid "Provide your own OAuth Credentials"
+#: ../../mod/admin.php:1053
+msgid "Log file"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:281
+#: ../../mod/admin.php:1053
msgid ""
-"No consumer key pair for StatusNet found. Register your Friendica Account as "
-"an desktop client on your StatusNet account, copy the consumer key pair here "
-"and enter the API base root.<br />Before you register your own OAuth key "
-"pair ask the administrator if there is already a key pair for this Friendica "
-"installation at your favorited StatusNet installation."
-msgstr ""
-
-#: ../../addon/statusnet/statusnet.php:283
-msgid "OAuth Consumer Key"
+"Must be writable by web server. Relative to your Red top-level directory."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:286
-msgid "OAuth Consumer Secret"
+#: ../../mod/admin.php:1054
+msgid "Log level"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:289
-msgid "Base API Path (remember the trailing /)"
+#: ../../mod/intro.php:17 ../../mod/intro.php:100
+#: ../../mod/connections.php:315 ../../mod/connections.php:450
+#: ../../mod/notifications.php:51 ../../mod/notifications.php:162
+#: ../../mod/notifications.php:208
+msgid "Ignore"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:310
-msgid ""
-"To connect to your StatusNet account click the button below to get a "
-"security code from StatusNet which you have to copy into the input box below "
-"and submit the form. Only your <strong>public</strong> posts will be posted "
-"to StatusNet."
+#: ../../mod/intro.php:29 ../../mod/connections.php:117
+msgid "Connection updated."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:311
-msgid "Log in with StatusNet"
+#: ../../mod/intro.php:31
+msgid "Connection update failed."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:313
-msgid "Copy the security code from StatusNet here"
+#: ../../mod/intro.php:56
+msgid "Introductions and Connection Requests"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:319
-msgid "Cancel Connection Process"
+#: ../../mod/intro.php:67
+msgid "No pending introductions."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:321
-msgid "Current StatusNet API is"
+#: ../../mod/intro.php:72
+msgid "System error. Please try again later."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:322
-msgid "Cancel StatusNet Connection"
+#: ../../mod/intro.php:95 ../../mod/connections.php:455
+#: ../../mod/notifications.php:155 ../../mod/notifications.php:202
+msgid "Hide this contact from others"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:333 ../../addon/twitter/twitter.php:189
-msgid "Currently connected to: "
+#: ../../mod/intro.php:96 ../../mod/notifications.php:156
+#: ../../mod/notifications.php:203
+msgid "Post a new friend activity"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:334
-msgid ""
-"If enabled all your <strong>public</strong> postings can be posted to the "
-"associated StatusNet account. You can choose to do so by default (here) or "
-"for every posting separately in the posting options when writing the entry."
+#: ../../mod/intro.php:96 ../../mod/notifications.php:156
+#: ../../mod/notifications.php:203
+msgid "if applicable"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:336
-msgid ""
-"<strong>Note</strong>: Due your privacy settings (<em>Hide your profile "
-"details from unknown viewers?</em>) the link potentially included in public "
-"postings relayed to StatusNet will lead the visitor to a blank page "
-"informing the visitor that the access to your profile has been restricted."
+#: ../../mod/intro.php:101 ../../mod/notifications.php:35
+#: ../../mod/notifications.php:163 ../../mod/notifications.php:209
+msgid "Discard"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:339
-msgid "Allow posting to StatusNet"
+#: ../../mod/connections.php:64
+msgid "Could not access contact record."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:342
-msgid "Send public postings to StatusNet by default"
+#: ../../mod/connections.php:78
+msgid "Could not locate selected profile."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:345
-msgid "Send linked #-tags and @-names to StatusNet"
+#: ../../mod/connections.php:119
+msgid "Failed to update connection record."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:350 ../../addon/twitter/twitter.php:206
-msgid "Clear OAuth configuration"
+#: ../../mod/connections.php:186
+msgid "Could not access address book record."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:559
-msgid "API URL"
+#: ../../mod/connections.php:200
+msgid "Refresh failed - channel is currently unavailable."
msgstr ""
-#: ../../addon/infiniteimprobabilitydrive/infiniteimprobabilitydrive.php:19
-msgid "Infinite Improbability Drive"
+#: ../../mod/connections.php:207
+msgid "Channel has been unblocked"
msgstr ""
-#: ../../addon/tumblr/tumblr.php:36
-msgid "Post to Tumblr"
+#: ../../mod/connections.php:208
+msgid "Channel has been blocked"
msgstr ""
-#: ../../addon/tumblr/tumblr.php:67
-msgid "Tumblr Post Settings"
+#: ../../mod/connections.php:212 ../../mod/connections.php:224
+#: ../../mod/connections.php:236 ../../mod/connections.php:248
+#: ../../mod/connections.php:263
+msgid "Unable to set address book parameters."
msgstr ""
-#: ../../addon/tumblr/tumblr.php:69
-msgid "Enable Tumblr Post Plugin"
+#: ../../mod/connections.php:219
+msgid "Channel has been unignored"
msgstr ""
-#: ../../addon/tumblr/tumblr.php:74
-msgid "Tumblr login"
+#: ../../mod/connections.php:220
+msgid "Channel has been ignored"
msgstr ""
-#: ../../addon/tumblr/tumblr.php:79
-msgid "Tumblr password"
+#: ../../mod/connections.php:231
+msgid "Channel has been unarchived"
msgstr ""
-#: ../../addon/tumblr/tumblr.php:84
-msgid "Post to Tumblr by default"
+#: ../../mod/connections.php:232
+msgid "Channel has been archived"
msgstr ""
-#: ../../addon/numfriends/numfriends.php:46
-msgid "Numfriends settings updated."
+#: ../../mod/connections.php:243
+msgid "Channel has been unhidden"
msgstr ""
-#: ../../addon/numfriends/numfriends.php:77
-msgid "Numfriends Settings"
+#: ../../mod/connections.php:244
+msgid "Channel has been hidden"
msgstr ""
-#: ../../addon/numfriends/numfriends.php:79
-msgid "How many contacts to display on profile sidebar"
+#: ../../mod/connections.php:258
+msgid "Channel has been approved"
msgstr ""
-#: ../../addon/gnot/gnot.php:48
-msgid "Gnot settings updated."
+#: ../../mod/connections.php:259
+msgid "Channel has been unapproved"
msgstr ""
-#: ../../addon/gnot/gnot.php:79
-msgid "Gnot Settings"
+#: ../../mod/connections.php:277
+msgid "Contact has been removed."
msgstr ""
-#: ../../addon/gnot/gnot.php:81
-msgid ""
-"Allows threading of email comment notifications on Gmail and anonymising the "
-"subject line."
+#: ../../mod/connections.php:297
+#, php-format
+msgid "View %s's profile"
msgstr ""
-#: ../../addon/gnot/gnot.php:82
-msgid "Enable this plugin/addon?"
+#: ../../mod/connections.php:301
+msgid "Refresh Permissions"
msgstr ""
-#: ../../addon/gnot/gnot.php:97
-#, php-format
-msgid "[Friendica:Notify] Comment to conversation #%d"
+#: ../../mod/connections.php:304
+msgid "Fetch updated permissions"
msgstr ""
-#: ../../addon/wppost/wppost.php:42
-msgid "Post to Wordpress"
+#: ../../mod/connections.php:311
+msgid "Block or Unblock this connection"
msgstr ""
-#: ../../addon/wppost/wppost.php:76
-msgid "WordPress Post Settings"
+#: ../../mod/connections.php:315 ../../mod/connections.php:450
+msgid "Unignore"
msgstr ""
-#: ../../addon/wppost/wppost.php:78
-msgid "Enable WordPress Post Plugin"
+#: ../../mod/connections.php:318
+msgid "Ignore or Unignore this connection"
msgstr ""
-#: ../../addon/wppost/wppost.php:83
-msgid "WordPress username"
+#: ../../mod/connections.php:321
+msgid "Unarchive"
msgstr ""
-#: ../../addon/wppost/wppost.php:88
-msgid "WordPress password"
+#: ../../mod/connections.php:321
+msgid "Archive"
msgstr ""
-#: ../../addon/wppost/wppost.php:93
-msgid "WordPress API URL"
+#: ../../mod/connections.php:324
+msgid "Archive or Unarchive this connection"
msgstr ""
-#: ../../addon/wppost/wppost.php:98
-msgid "Post to WordPress by default"
+#: ../../mod/connections.php:327
+msgid "Unhide"
msgstr ""
-#: ../../addon/wppost/wppost.php:103
-msgid "Provide a backlink to the Friendica post"
+#: ../../mod/connections.php:327
+msgid "Hide"
msgstr ""
-#: ../../addon/wppost/wppost.php:207
-msgid "Read the original post and comment stream on Friendica"
+#: ../../mod/connections.php:330
+msgid "Hide or Unhide this connection"
msgstr ""
-#: ../../addon/showmore/showmore.php:38
-msgid "\"Show more\" Settings"
+#: ../../mod/connections.php:337
+msgid "Delete this connection"
msgstr ""
-#: ../../addon/showmore/showmore.php:41
-msgid "Enable Show More"
+#: ../../mod/connections.php:370
+msgid "Unknown"
msgstr ""
-#: ../../addon/showmore/showmore.php:44
-msgid "Cutting posts after how much characters"
+#: ../../mod/connections.php:380 ../../mod/connections.php:408
+msgid "Approve this connection"
msgstr ""
-#: ../../addon/showmore/showmore.php:65
-msgid "Show More Settings saved."
+#: ../../mod/connections.php:380
+msgid "Accept connection to allow communication"
msgstr ""
-#: ../../addon/piwik/piwik.php:79
-msgid ""
-"This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> "
-"analytics tool."
+#: ../../mod/connections.php:396
+msgid "Automatic Permissions Settings"
msgstr ""
-#: ../../addon/piwik/piwik.php:82
+#: ../../mod/connections.php:396
#, php-format
-msgid ""
-"If you do not want that your visits are logged this way you <a href='%s'>can "
-"set a cookie to prevent Piwik from tracking further visits of the site</a> "
-"(opt-out)."
+msgid "Connections: settings for %s"
msgstr ""
-#: ../../addon/piwik/piwik.php:90
-msgid "Piwik Base URL"
-msgstr ""
-
-#: ../../addon/piwik/piwik.php:90
+#: ../../mod/connections.php:400
msgid ""
-"Absolute path to your Piwik installation. (without protocol (http/s), with "
-"trailing slash)"
-msgstr ""
-
-#: ../../addon/piwik/piwik.php:91
-msgid "Site ID"
-msgstr ""
-
-#: ../../addon/piwik/piwik.php:92
-msgid "Show opt-out cookie link?"
-msgstr ""
-
-#: ../../addon/piwik/piwik.php:93
-msgid "Asynchronous tracking"
-msgstr ""
-
-#: ../../addon/twitter/twitter.php:73
-msgid "Post to Twitter"
-msgstr ""
-
-#: ../../addon/twitter/twitter.php:122
-msgid "Twitter settings updated."
+"When receiving a channel introduction, any permissions provided here will be "
+"applied to the new connection automatically and the introduction approved. "
+"Leave this page if you do not wish to use this feature."
msgstr ""
-#: ../../addon/twitter/twitter.php:146
-msgid "Twitter Posting Settings"
+#: ../../mod/connections.php:402
+msgid "Slide to adjust your degree of friendship"
msgstr ""
-#: ../../addon/twitter/twitter.php:153
-msgid ""
-"No consumer key pair for Twitter found. Please contact your site "
-"administrator."
+#: ../../mod/connections.php:409
+msgid "Connection has no individual permissions!"
msgstr ""
-#: ../../addon/twitter/twitter.php:172
+#: ../../mod/connections.php:410
msgid ""
-"At this Friendica instance the Twitter plugin was enabled but you have not "
-"yet connected your account to your Twitter account. To do so click the "
-"button below to get a PIN from Twitter which you have to copy into the input "
-"box below and submit the form. Only your <strong>public</strong> posts will "
-"be posted to Twitter."
+"This may be appropriate based on your <a href=\"settings\">privacy settings</"
+"a>, though you may wish to review the \"Advanced Permissions\""
msgstr ""
-#: ../../addon/twitter/twitter.php:173
-msgid "Log in with Twitter"
-msgstr ""
-
-#: ../../addon/twitter/twitter.php:175
-msgid "Copy the PIN from Twitter here"
-msgstr ""
-
-#: ../../addon/twitter/twitter.php:190
-msgid ""
-"If enabled all your <strong>public</strong> postings can be posted to the "
-"associated Twitter account. You can choose to do so by default (here) or for "
-"every posting separately in the posting options when writing the entry."
+#: ../../mod/connections.php:412
+msgid "Profile Visibility"
msgstr ""
-#: ../../addon/twitter/twitter.php:192
+#: ../../mod/connections.php:413
+#, php-format
msgid ""
-"<strong>Note</strong>: Due your privacy settings (<em>Hide your profile "
-"details from unknown viewers?</em>) the link potentially included in public "
-"postings relayed to Twitter will lead the visitor to a blank page informing "
-"the visitor that the access to your profile has been restricted."
-msgstr ""
-
-#: ../../addon/twitter/twitter.php:195
-msgid "Allow posting to Twitter"
-msgstr ""
-
-#: ../../addon/twitter/twitter.php:198
-msgid "Send public postings to Twitter by default"
-msgstr ""
-
-#: ../../addon/twitter/twitter.php:201
-msgid "Send linked #-tags and @-names to Twitter"
-msgstr ""
-
-#: ../../addon/twitter/twitter.php:389
-msgid "Consumer key"
-msgstr ""
-
-#: ../../addon/twitter/twitter.php:390
-msgid "Consumer secret"
-msgstr ""
-
-#: ../../addon/irc/irc.php:44
-msgid "IRC Settings"
-msgstr ""
-
-#: ../../addon/irc/irc.php:46
-msgid "Channel(s) to auto connect (comma separated)"
-msgstr ""
-
-#: ../../addon/irc/irc.php:51
-msgid "Popular Channels (comma separated)"
-msgstr ""
-
-#: ../../addon/irc/irc.php:69
-msgid "IRC settings saved."
-msgstr ""
-
-#: ../../addon/irc/irc.php:74
-msgid "IRC Chatroom"
-msgstr ""
-
-#: ../../addon/irc/irc.php:96
-msgid "Popular Channels"
-msgstr ""
-
-#: ../../addon/blogger/blogger.php:42
-msgid "Post to blogger"
-msgstr ""
-
-#: ../../addon/blogger/blogger.php:74
-msgid "Blogger Post Settings"
-msgstr ""
-
-#: ../../addon/blogger/blogger.php:76
-msgid "Enable Blogger Post Plugin"
-msgstr ""
-
-#: ../../addon/blogger/blogger.php:81
-msgid "Blogger username"
-msgstr ""
-
-#: ../../addon/blogger/blogger.php:86
-msgid "Blogger password"
-msgstr ""
-
-#: ../../addon/blogger/blogger.php:91
-msgid "Blogger API URL"
-msgstr ""
-
-#: ../../addon/blogger/blogger.php:96
-msgid "Post to Blogger by default"
-msgstr ""
-
-#: ../../addon/posterous/posterous.php:37
-msgid "Post to Posterous"
-msgstr ""
-
-#: ../../addon/posterous/posterous.php:70
-msgid "Posterous Post Settings"
-msgstr ""
-
-#: ../../addon/posterous/posterous.php:72
-msgid "Enable Posterous Post Plugin"
-msgstr ""
-
-#: ../../addon/posterous/posterous.php:77
-msgid "Posterous login"
-msgstr ""
-
-#: ../../addon/posterous/posterous.php:82
-msgid "Posterous password"
-msgstr ""
-
-#: ../../addon/posterous/posterous.php:87
-msgid "Posterous site ID"
-msgstr ""
-
-#: ../../addon/posterous/posterous.php:92
-msgid "Posterous API token"
-msgstr ""
-
-#: ../../addon/posterous/posterous.php:97
-msgid "Post to Posterous by default"
-msgstr ""
-
-#: ../../view/theme/cleanzero/config.php:82
-#: ../../view/theme/diabook/config.php:192
-#: ../../view/theme/quattro/config.php:54 ../../view/theme/dispy/config.php:72
-msgid "Theme settings"
-msgstr ""
-
-#: ../../view/theme/cleanzero/config.php:83
-msgid "Set resize level for images in posts and comments (width and height)"
+"Please choose the profile you would like to display to %s when viewing your "
+"profile securely."
msgstr ""
-#: ../../view/theme/cleanzero/config.php:84
-#: ../../view/theme/diabook/config.php:193
-#: ../../view/theme/dispy/config.php:73
-msgid "Set font-size for posts and comments"
+#: ../../mod/connections.php:414
+msgid "Contact Information / Notes"
msgstr ""
-#: ../../view/theme/cleanzero/config.php:85
-msgid "Set theme width"
+#: ../../mod/connections.php:415
+msgid "Edit contact notes"
msgstr ""
-#: ../../view/theme/cleanzero/config.php:86
-#: ../../view/theme/quattro/config.php:56
-msgid "Color scheme"
+#: ../../mod/connections.php:417
+msgid "Their Settings"
msgstr ""
-#: ../../view/theme/diabook/theme.php:127 ../../include/nav.php:49
-#: ../../include/nav.php:115
-msgid "Your posts and conversations"
+#: ../../mod/connections.php:418
+msgid "My Settings"
msgstr ""
-#: ../../view/theme/diabook/theme.php:128 ../../include/nav.php:50
-msgid "Your profile page"
+#: ../../mod/connections.php:420
+msgid "Forum Members"
msgstr ""
-#: ../../view/theme/diabook/theme.php:129
-msgid "Your contacts"
+#: ../../mod/connections.php:421
+msgid "Soapbox"
msgstr ""
-#: ../../view/theme/diabook/theme.php:130 ../../include/nav.php:51
-msgid "Your photos"
+#: ../../mod/connections.php:422
+msgid "Full Sharing"
msgstr ""
-#: ../../view/theme/diabook/theme.php:131 ../../include/nav.php:52
-msgid "Your events"
+#: ../../mod/connections.php:423
+msgid "Cautious Sharing"
msgstr ""
-#: ../../view/theme/diabook/theme.php:132 ../../include/nav.php:53
-msgid "Personal notes"
+#: ../../mod/connections.php:424
+msgid "Follow Only"
msgstr ""
-#: ../../view/theme/diabook/theme.php:132 ../../include/nav.php:53
-msgid "Your personal photos"
+#: ../../mod/connections.php:425
+msgid "Individual Permissions"
msgstr ""
-#: ../../view/theme/diabook/theme.php:134
-#: ../../view/theme/diabook/theme.php:643
-#: ../../view/theme/diabook/theme.php:747
-#: ../../view/theme/diabook/config.php:201
-msgid "Community Pages"
+#: ../../mod/connections.php:426
+msgid ""
+"Individual permissions are only enabled for <a href=\"settings\">privacy "
+"settings</a> which are set to \"Only those you specifically allow\". "
+"Otherwise they are controlled by your privacy settings."
msgstr ""
-#: ../../view/theme/diabook/theme.php:490
-#: ../../view/theme/diabook/theme.php:749
-#: ../../view/theme/diabook/config.php:203
-msgid "Community Profiles"
+#: ../../mod/connections.php:427
+msgid "Advanced Permissions"
msgstr ""
-#: ../../view/theme/diabook/theme.php:511
-#: ../../view/theme/diabook/theme.php:754
-#: ../../view/theme/diabook/config.php:208
-msgid "Last users"
+#: ../../mod/connections.php:428
+msgid "Quick Links"
msgstr ""
-#: ../../view/theme/diabook/theme.php:540
-#: ../../view/theme/diabook/theme.php:756
-#: ../../view/theme/diabook/config.php:210
-msgid "Last likes"
+#: ../../mod/connections.php:432
+#, php-format
+msgid "Visit %s's profile - %s"
msgstr ""
-#: ../../view/theme/diabook/theme.php:585
-#: ../../view/theme/diabook/theme.php:755
-#: ../../view/theme/diabook/config.php:209
-msgid "Last photos"
+#: ../../mod/connections.php:433
+msgid "Block/Unblock contact"
msgstr ""
-#: ../../view/theme/diabook/theme.php:622
-#: ../../view/theme/diabook/theme.php:752
-#: ../../view/theme/diabook/config.php:206
-msgid "Find Friends"
+#: ../../mod/connections.php:434
+msgid "Ignore contact"
msgstr ""
-#: ../../view/theme/diabook/theme.php:623
-msgid "Local Directory"
+#: ../../mod/connections.php:435
+msgid "Repair URL settings"
msgstr ""
-#: ../../view/theme/diabook/theme.php:625 ../../include/contact_widgets.php:35
-msgid "Similar Interests"
+#: ../../mod/connections.php:436
+msgid "View conversations"
msgstr ""
-#: ../../view/theme/diabook/theme.php:627 ../../include/contact_widgets.php:37
-msgid "Invite Friends"
+#: ../../mod/connections.php:438
+msgid "Delete contact"
msgstr ""
-#: ../../view/theme/diabook/theme.php:678
-#: ../../view/theme/diabook/theme.php:748
-#: ../../view/theme/diabook/config.php:202
-msgid "Earth Layers"
+#: ../../mod/connections.php:441
+msgid "Last update:"
msgstr ""
-#: ../../view/theme/diabook/theme.php:683
-msgid "Set zoomfactor for Earth Layers"
+#: ../../mod/connections.php:443
+msgid "Update public posts"
msgstr ""
-#: ../../view/theme/diabook/theme.php:684
-#: ../../view/theme/diabook/config.php:199
-msgid "Set longitude (X) for Earth Layers"
+#: ../../mod/connections.php:445
+msgid "Update now"
msgstr ""
-#: ../../view/theme/diabook/theme.php:685
-#: ../../view/theme/diabook/config.php:200
-msgid "Set latitude (Y) for Earth Layers"
+#: ../../mod/connections.php:451
+msgid "Currently blocked"
msgstr ""
-#: ../../view/theme/diabook/theme.php:698
-#: ../../view/theme/diabook/theme.php:750
-#: ../../view/theme/diabook/config.php:204
-msgid "Help or @NewHere ?"
+#: ../../mod/connections.php:452
+msgid "Currently ignored"
msgstr ""
-#: ../../view/theme/diabook/theme.php:705
-#: ../../view/theme/diabook/theme.php:751
-#: ../../view/theme/diabook/config.php:205
-msgid "Connect Services"
+#: ../../mod/connections.php:453
+msgid "Currently archived"
msgstr ""
-#: ../../view/theme/diabook/theme.php:712
-#: ../../view/theme/diabook/theme.php:753
-msgid "Last Tweets"
+#: ../../mod/connections.php:454
+msgid "Currently pending"
msgstr ""
-#: ../../view/theme/diabook/theme.php:715
-#: ../../view/theme/diabook/config.php:197
-msgid "Set twitter search term"
+#: ../../mod/connections.php:455
+msgid ""
+"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr ""
-#: ../../view/theme/diabook/theme.php:735
-#: ../../view/theme/diabook/theme.php:736
-#: ../../view/theme/diabook/theme.php:737
-#: ../../view/theme/diabook/theme.php:738
-#: ../../view/theme/diabook/theme.php:739
-#: ../../view/theme/diabook/theme.php:740
-#: ../../view/theme/diabook/theme.php:741
-#: ../../view/theme/diabook/theme.php:742
-#: ../../view/theme/diabook/theme.php:743
-#: ../../view/theme/diabook/theme.php:744 ../../include/acl_selectors.php:288
-msgid "don't show"
+#: ../../mod/connections.php:491 ../../mod/connections.php:563
+msgid "Blocked"
msgstr ""
-#: ../../view/theme/diabook/theme.php:735
-#: ../../view/theme/diabook/theme.php:736
-#: ../../view/theme/diabook/theme.php:737
-#: ../../view/theme/diabook/theme.php:738
-#: ../../view/theme/diabook/theme.php:739
-#: ../../view/theme/diabook/theme.php:740
-#: ../../view/theme/diabook/theme.php:741
-#: ../../view/theme/diabook/theme.php:742
-#: ../../view/theme/diabook/theme.php:743
-#: ../../view/theme/diabook/theme.php:744 ../../include/acl_selectors.php:287
-msgid "show"
+#: ../../mod/connections.php:496 ../../mod/connections.php:570
+msgid "Ignored"
msgstr ""
-#: ../../view/theme/diabook/theme.php:745
-msgid "Show/hide boxes at right-hand column:"
+#: ../../mod/connections.php:501 ../../mod/connections.php:584
+msgid "Hidden"
msgstr ""
-#: ../../view/theme/diabook/config.php:194
-#: ../../view/theme/dispy/config.php:74
-msgid "Set line-height for posts and comments"
+#: ../../mod/connections.php:506 ../../mod/connections.php:577
+msgid "Archived"
msgstr ""
-#: ../../view/theme/diabook/config.php:195
-msgid "Set resolution for middle column"
+#: ../../mod/connections.php:517
+msgid "All"
msgstr ""
-#: ../../view/theme/diabook/config.php:196
-msgid "Set color scheme"
+#: ../../mod/connections.php:538
+msgid "Suggestions"
msgstr ""
-#: ../../view/theme/diabook/config.php:198
-msgid "Set zoomfactor for Earth Layer"
+#: ../../mod/connections.php:541
+msgid "Suggest new connections"
msgstr ""
-#: ../../view/theme/diabook/config.php:207
-msgid "Last tweets"
+#: ../../mod/connections.php:547
+msgid "Show pending (new) connections"
msgstr ""
-#: ../../view/theme/quattro/config.php:55
-msgid "Alignment"
+#: ../../mod/connections.php:550
+msgid "All Connections"
msgstr ""
-#: ../../view/theme/quattro/config.php:55
-msgid "Left"
+#: ../../mod/connections.php:553
+msgid "Show all connections"
msgstr ""
-#: ../../view/theme/quattro/config.php:55
-msgid "Center"
+#: ../../mod/connections.php:556
+msgid "Unblocked"
msgstr ""
-#: ../../view/theme/dispy/config.php:75
-msgid "Set colour scheme"
+#: ../../mod/connections.php:559
+msgid "Only show unblocked connections"
msgstr ""
-#: ../../include/profile_advanced.php:22
-msgid "j F, Y"
+#: ../../mod/connections.php:566
+msgid "Only show blocked connections"
msgstr ""
-#: ../../include/profile_advanced.php:23
-msgid "j F"
+#: ../../mod/connections.php:573
+msgid "Only show ignored connections"
msgstr ""
-#: ../../include/profile_advanced.php:30
-msgid "Birthday:"
+#: ../../mod/connections.php:580
+msgid "Only show archived connections"
msgstr ""
-#: ../../include/profile_advanced.php:34
-msgid "Age:"
+#: ../../mod/connections.php:587
+msgid "Only show hidden connections"
msgstr ""
-#: ../../include/profile_advanced.php:43
+#: ../../mod/connections.php:629
#, php-format
-msgid "for %1$d %2$s"
-msgstr ""
-
-#: ../../include/profile_advanced.php:52
-msgid "Tags:"
-msgstr ""
-
-#: ../../include/profile_advanced.php:56
-msgid "Religion:"
-msgstr ""
-
-#: ../../include/profile_advanced.php:60
-msgid "Hobbies/Interests:"
+msgid "%1$s [%2$s]"
msgstr ""
-#: ../../include/profile_advanced.php:67
-msgid "Contact information and Social Networks:"
-msgstr ""
-
-#: ../../include/profile_advanced.php:69
-msgid "Musical interests:"
-msgstr ""
-
-#: ../../include/profile_advanced.php:71
-msgid "Books, literature:"
+#: ../../mod/connections.php:630 ../../mod/nogroup.php:41
+msgid "Edit contact"
msgstr ""
-#: ../../include/profile_advanced.php:73
-msgid "Television:"
+#: ../../mod/connections.php:656
+msgid "Search your connections"
msgstr ""
-#: ../../include/profile_advanced.php:75
-msgid "Film/dance/culture/entertainment:"
+#: ../../mod/connections.php:657
+msgid "Finding: "
msgstr ""
-#: ../../include/profile_advanced.php:77
-msgid "Love/Romance:"
+#: ../../mod/dirsearch.php:21
+msgid "This site is not a directory server"
msgstr ""
-#: ../../include/profile_advanced.php:79
-msgid "Work/employment:"
-msgstr ""
-
-#: ../../include/profile_advanced.php:81
-msgid "School/education:"
+#: ../../mod/lockview.php:34
+msgid "Remote privacy information not available."
msgstr ""
-#: ../../include/contact_selectors.php:32
-msgid "Unknown | Not categorised"
+#: ../../mod/lockview.php:43
+msgid "Visible to:"
msgstr ""
-#: ../../include/contact_selectors.php:33
-msgid "Block immediately"
+#: ../../mod/post.php:114
+msgid ""
+"Remote authentication blocked. You are logged into this site locally. Please "
+"logout and retry."
msgstr ""
-#: ../../include/contact_selectors.php:34
-msgid "Shady, spammer, self-marketer"
+#: ../../mod/post.php:127
+#, php-format
+msgid "Welcome %s. Remote authentication successful."
msgstr ""
-#: ../../include/contact_selectors.php:35
-msgid "Known to me, but no opinion"
+#: ../../mod/profiles.php:18 ../../mod/profiles.php:138
+#: ../../mod/profiles.php:179 ../../mod/profiles.php:486
+msgid "Profile not found."
msgstr ""
-#: ../../include/contact_selectors.php:36
-msgid "OK, probably harmless"
+#: ../../mod/profiles.php:38
+msgid "Profile deleted."
msgstr ""
-#: ../../include/contact_selectors.php:37
-msgid "Reputable, has my trust"
+#: ../../mod/profiles.php:56 ../../mod/profiles.php:92
+msgid "Profile-"
msgstr ""
-#: ../../include/contact_selectors.php:56
-msgid "Frequently"
+#: ../../mod/profiles.php:77 ../../mod/profiles.php:120
+msgid "New profile created."
msgstr ""
-#: ../../include/contact_selectors.php:57
-msgid "Hourly"
+#: ../../mod/profiles.php:98
+msgid "Profile unavailable to clone."
msgstr ""
-#: ../../include/contact_selectors.php:58
-msgid "Twice daily"
+#: ../../mod/profiles.php:189
+msgid "Profile Name is required."
msgstr ""
-#: ../../include/contact_selectors.php:59
-msgid "Daily"
+#: ../../mod/profiles.php:317
+msgid "Marital Status"
msgstr ""
-#: ../../include/contact_selectors.php:60
-msgid "Weekly"
+#: ../../mod/profiles.php:321
+msgid "Romantic Partner"
msgstr ""
-#: ../../include/contact_selectors.php:61
-msgid "Monthly"
+#: ../../mod/profiles.php:325
+msgid "Likes"
msgstr ""
-#: ../../include/contact_selectors.php:77
-msgid "OStatus"
+#: ../../mod/profiles.php:329
+msgid "Dislikes"
msgstr ""
-#: ../../include/contact_selectors.php:78
-msgid "RSS/Atom"
+#: ../../mod/profiles.php:333
+msgid "Work/Employment"
msgstr ""
-#: ../../include/contact_selectors.php:82
-msgid "Zot!"
+#: ../../mod/profiles.php:336
+msgid "Religion"
msgstr ""
-#: ../../include/contact_selectors.php:83
-msgid "LinkedIn"
+#: ../../mod/profiles.php:340
+msgid "Political Views"
msgstr ""
-#: ../../include/contact_selectors.php:84
-msgid "XMPP/IM"
+#: ../../mod/profiles.php:344
+msgid "Gender"
msgstr ""
-#: ../../include/contact_selectors.php:85
-msgid "MySpace"
+#: ../../mod/profiles.php:348
+msgid "Sexual Preference"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Male"
+#: ../../mod/profiles.php:352
+msgid "Homepage"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Female"
+#: ../../mod/profiles.php:356
+msgid "Interests"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Currently Male"
+#: ../../mod/profiles.php:360
+msgid "Address"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Currently Female"
+#: ../../mod/profiles.php:367
+msgid "Location"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Mostly Male"
+#: ../../mod/profiles.php:450
+msgid "Profile updated."
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Mostly Female"
+#: ../../mod/profiles.php:505
+msgid "Hide your contact/friend list from viewers of this profile?"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Transgender"
+#: ../../mod/profiles.php:528
+msgid "Edit Profile Details"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Intersex"
+#: ../../mod/profiles.php:530
+msgid "View this profile"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Transsexual"
+#: ../../mod/profiles.php:531
+msgid "Change Profile Photo"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Hermaphrodite"
+#: ../../mod/profiles.php:532
+msgid "Create a new profile using these settings"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Neuter"
+#: ../../mod/profiles.php:533
+msgid "Clone this profile"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Non-specific"
+#: ../../mod/profiles.php:534
+msgid "Delete this profile"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Other"
+#: ../../mod/profiles.php:535
+msgid "Profile Name:"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Undecided"
+#: ../../mod/profiles.php:536
+msgid "Your Full Name:"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Males"
+#: ../../mod/profiles.php:537
+msgid "Title/Description:"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Females"
+#: ../../mod/profiles.php:538
+msgid "Your Gender:"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Gay"
+#: ../../mod/profiles.php:539
+#, php-format
+msgid "Birthday (%s):"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Lesbian"
+#: ../../mod/profiles.php:540
+msgid "Street Address:"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "No Preference"
+#: ../../mod/profiles.php:541
+msgid "Locality/City:"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Bisexual"
+#: ../../mod/profiles.php:542
+msgid "Postal/Zip Code:"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Autosexual"
+#: ../../mod/profiles.php:543
+msgid "Country:"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Abstinent"
+#: ../../mod/profiles.php:544
+msgid "Region/State:"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Virgin"
+#: ../../mod/profiles.php:545
+msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Deviant"
+#: ../../mod/profiles.php:546
+msgid "Who: (if applicable)"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Fetish"
+#: ../../mod/profiles.php:547
+msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Oodles"
+#: ../../mod/profiles.php:548
+msgid "Since [date]:"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Nonsexual"
+#: ../../mod/profiles.php:550
+msgid "Homepage URL:"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Single"
+#: ../../mod/profiles.php:553
+msgid "Religious Views:"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Lonely"
+#: ../../mod/profiles.php:554
+msgid "Keywords:"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Available"
+#: ../../mod/profiles.php:557
+msgid "Example: fishing photography software"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Unavailable"
+#: ../../mod/profiles.php:558
+msgid "Used in directory listings"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Has crush"
+#: ../../mod/profiles.php:559
+msgid "Tell us about yourself..."
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Infatuated"
+#: ../../mod/profiles.php:560
+msgid "Hobbies/Interests"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Dating"
+#: ../../mod/profiles.php:561
+msgid "Contact information and Social Networks"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Unfaithful"
+#: ../../mod/profiles.php:562
+msgid "My other channels"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Sex Addict"
+#: ../../mod/profiles.php:563
+msgid "Musical interests"
msgstr ""
-#: ../../include/profile_selectors.php:42 ../../include/user.php:278
-#: ../../include/user.php:283
-msgid "Friends"
+#: ../../mod/profiles.php:564
+msgid "Books, literature"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Friends/Benefits"
+#: ../../mod/profiles.php:565
+msgid "Television"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Casual"
+#: ../../mod/profiles.php:566
+msgid "Film/dance/culture/entertainment"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Engaged"
+#: ../../mod/profiles.php:567
+msgid "Love/romance"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Married"
+#: ../../mod/profiles.php:568
+msgid "Work/employment"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Imaginarily married"
+#: ../../mod/profiles.php:569
+msgid "School/education"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Partners"
+#: ../../mod/profiles.php:574
+msgid ""
+"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
+"be visible to anybody using the internet."
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Cohabiting"
+#: ../../mod/profiles.php:623
+msgid "Edit/Manage Profiles"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Common law"
+#: ../../mod/profiles.php:624 ../../boot.php:1629
+msgid "Change profile photo"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Happy"
+#: ../../mod/profiles.php:625 ../../boot.php:1636
+msgid "Create New Profile"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Not looking"
+#: ../../mod/profiles.php:636 ../../boot.php:1650
+msgid "Profile Image"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Swinger"
+#: ../../mod/profiles.php:639 ../../boot.php:1653
+msgid "visible to everybody"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Betrayed"
+#: ../../mod/profiles.php:640 ../../boot.php:1654
+msgid "Edit visibility"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Separated"
+#: ../../mod/new_channel.php:107
+msgid "Add a Channel"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Unstable"
+#: ../../mod/new_channel.php:108
+msgid ""
+"A channel is your own collection of related web pages. A channel can be used "
+"to hold social network profiles, blogs, conversation groups and forums, "
+"celebrity pages, and much more. You may create as many channels as your "
+"service provider allows."
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Divorced"
+#: ../../mod/new_channel.php:110
+msgid "Channel Name"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Imaginarily divorced"
+#: ../../mod/new_channel.php:111
+msgid ""
+"Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation "
+"Group\" "
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Widowed"
+#: ../../mod/new_channel.php:112
+msgid "Choose a short nickname"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Uncertain"
+#: ../../mod/new_channel.php:113
+msgid ""
+"Your nickname will be used to create an easily remembered channel address "
+"(like an email address) which you can share with others."
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "It's complicated"
+#: ../../mod/new_channel.php:114
+msgid ""
+"Or <a href=\"import\">import an existing channel</a> from another location"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Don't care"
+#: ../../mod/new_channel.php:117
+msgid "Create"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Ask me"
+#: ../../mod/lostpass.php:15
+msgid "No valid account found."
msgstr ""
-#: ../../include/event.php:20 ../../include/bb2diaspora.php:393
-msgid "Starts:"
+#: ../../mod/lostpass.php:29
+msgid "Password reset request issued. Check your email."
msgstr ""
-#: ../../include/event.php:30 ../../include/bb2diaspora.php:401
-msgid "Finishes:"
+#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
+#, php-format
+msgid "Site Member (%s)"
msgstr ""
-#: ../../include/delivery.php:456 ../../include/notifier.php:678
-msgid "(no subject)"
+#: ../../mod/lostpass.php:40
+#, php-format
+msgid "Password reset requested at %s"
msgstr ""
-#: ../../include/delivery.php:463 ../../include/enotify.php:26
-#: ../../include/notifier.php:685
-msgid "noreply"
+#: ../../mod/lostpass.php:63
+msgid ""
+"Request could not be verified. (You may have previously submitted it.) "
+"Password reset failed."
msgstr ""
-#: ../../include/Scrape.php:572
-msgid " on Last.fm"
+#: ../../mod/lostpass.php:85 ../../boot.php:1361
+msgid "Password Reset"
msgstr ""
-#: ../../include/text.php:243
-msgid "prev"
+#: ../../mod/lostpass.php:86
+msgid "Your password has been reset as requested."
msgstr ""
-#: ../../include/text.php:245
-msgid "first"
+#: ../../mod/lostpass.php:87
+msgid "Your new password is"
msgstr ""
-#: ../../include/text.php:274
-msgid "last"
+#: ../../mod/lostpass.php:88
+msgid "Save or copy your new password - and then"
msgstr ""
-#: ../../include/text.php:277
-msgid "next"
+#: ../../mod/lostpass.php:89
+msgid "click here to login"
msgstr ""
-#: ../../include/text.php:568
-msgid "No contacts"
+#: ../../mod/lostpass.php:90
+msgid ""
+"Your password may be changed from the <em>Settings</em> page after "
+"successful login."
msgstr ""
-#: ../../include/text.php:577
+#: ../../mod/lostpass.php:107
#, php-format
-msgid "%d Contact"
-msgid_plural "%d Contacts"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/text.php:839
-msgid "Monday"
+msgid "Your password has changed at %s"
msgstr ""
-#: ../../include/text.php:839
-msgid "Tuesday"
+#: ../../mod/lostpass.php:122
+msgid "Forgot your Password?"
msgstr ""
-#: ../../include/text.php:839
-msgid "Wednesday"
+#: ../../mod/lostpass.php:123
+msgid ""
+"Enter your email address and submit to have your password reset. Then check "
+"your email for further instructions."
msgstr ""
-#: ../../include/text.php:839
-msgid "Thursday"
+#: ../../mod/lostpass.php:124
+msgid "Email Address"
msgstr ""
-#: ../../include/text.php:839
-msgid "Friday"
+#: ../../mod/lostpass.php:125
+msgid "Reset"
msgstr ""
-#: ../../include/text.php:839
-msgid "Saturday"
+#: ../../mod/import.php:36
+msgid "Nothing to import."
msgstr ""
-#: ../../include/text.php:839
-msgid "Sunday"
+#: ../../mod/import.php:58
+msgid "Unable to download data from old server"
msgstr ""
-#: ../../include/text.php:843
-msgid "January"
+#: ../../mod/import.php:64
+msgid "Imported file is empty."
msgstr ""
-#: ../../include/text.php:843
-msgid "February"
+#: ../../mod/import.php:88
+msgid ""
+"Cannot create a duplicate channel identifier on this system. Import failed."
msgstr ""
-#: ../../include/text.php:843
-msgid "March"
+#: ../../mod/import.php:106
+msgid "Channel clone failed. Import failed."
msgstr ""
-#: ../../include/text.php:843
-msgid "April"
+#: ../../mod/import.php:116
+msgid "Cloned channel not found. Import failed."
msgstr ""
-#: ../../include/text.php:843
-msgid "May"
+#: ../../mod/import.php:327
+msgid "Import completed."
msgstr ""
-#: ../../include/text.php:843
-msgid "June"
+#: ../../mod/import.php:340
+msgid "You must be logged in to use this feature."
msgstr ""
-#: ../../include/text.php:843
-msgid "July"
+#: ../../mod/import.php:345
+msgid "Import Channel"
msgstr ""
-#: ../../include/text.php:843
-msgid "August"
+#: ../../mod/import.php:346
+msgid ""
+"Use this form to import an existing channel from a different server/hub. You "
+"may retrieve the channel identity from the old server/hub via the network or "
+"provide an export file. Only identity and connections/relationships will be "
+"imported. Importation of content is not yet available."
msgstr ""
-#: ../../include/text.php:843
-msgid "September"
+#: ../../mod/import.php:347
+msgid "File to Upload"
msgstr ""
-#: ../../include/text.php:843
-msgid "October"
+#: ../../mod/import.php:348
+msgid "Or provide the old server/hub details"
msgstr ""
-#: ../../include/text.php:843
-msgid "November"
+#: ../../mod/import.php:349
+msgid "Your old identity address (xyz@example.com)"
msgstr ""
-#: ../../include/text.php:843
-msgid "December"
+#: ../../mod/import.php:350
+msgid "Your old login email address"
msgstr ""
-#: ../../include/text.php:929
-msgid "bytes"
+#: ../../mod/import.php:351
+msgid "Your old login password"
msgstr ""
-#: ../../include/text.php:949 ../../include/text.php:964
-msgid "remove"
+#: ../../mod/import.php:352
+msgid ""
+"For either option, please choose whether to make this hub your new primary "
+"address, or whether your old location should continue this role. You will be "
+"able to post from either location, but only one can be marked as the primary "
+"location for files, photos, and media."
msgstr ""
-#: ../../include/text.php:949 ../../include/text.php:964
-msgid "[remove]"
+#: ../../mod/import.php:353
+msgid "Make this hub my primary location"
msgstr ""
-#: ../../include/text.php:952
-msgid "Categories:"
+#: ../../mod/manage.php:59
+msgid "Create a new channel"
msgstr ""
-#: ../../include/text.php:967
-msgid "Filed under:"
+#: ../../mod/manage.php:64
+msgid "Channel Manager"
msgstr ""
-#: ../../include/text.php:983 ../../include/text.php:995
-msgid "Click to open/close"
+#: ../../mod/manage.php:65
+msgid "Current Channel"
msgstr ""
-#: ../../include/text.php:1101 ../../include/user.php:236
-msgid "default"
+#: ../../mod/manage.php:67
+msgid "Attach to one of your channels by selecting it."
msgstr ""
-#: ../../include/text.php:1113
-msgid "Select an alternate language"
+#: ../../mod/manage.php:68
+msgid "Default Channel"
msgstr ""
-#: ../../include/text.php:1323
-msgid "activity"
+#: ../../mod/manage.php:69
+msgid "Make Default"
msgstr ""
-#: ../../include/text.php:1325
-msgid "comment"
-msgstr ""
-
-#: ../../include/text.php:1326
-msgid "post"
+#: ../../mod/match.php:12
+msgid "Profile Match"
msgstr ""
-#: ../../include/text.php:1481
-msgid "Item filed"
+#: ../../mod/match.php:20
+msgid "No keywords to match. Please add keywords to your default profile."
msgstr ""
-#: ../../include/diaspora.php:660
-msgid "Sharing notification from Diaspora network"
+#: ../../mod/match.php:57
+msgid "is interested in:"
msgstr ""
-#: ../../include/diaspora.php:2152
-msgid "Attachments:"
+#: ../../mod/crepair.php:102
+msgid "Contact settings applied."
msgstr ""
-#: ../../include/network.php:842
-msgid "view full size"
+#: ../../mod/crepair.php:104
+msgid "Contact update failed."
msgstr ""
-#: ../../include/oembed.php:135
-msgid "Embedded content"
+#: ../../mod/crepair.php:129 ../../mod/fsuggest.php:20
+#: ../../mod/fsuggest.php:92
+msgid "Contact not found."
msgstr ""
-#: ../../include/oembed.php:144
-msgid "Embedding disabled"
+#: ../../mod/crepair.php:135
+msgid "Repair Contact Settings"
msgstr ""
-#: ../../include/group.php:25
+#: ../../mod/crepair.php:137
msgid ""
-"A deleted group with this name was revived. Existing item permissions "
-"<strong>may</strong> apply to this group and any future members. If this is "
-"not what you intended, please create another group with a different name."
-msgstr ""
-
-#: ../../include/group.php:176
-msgid "Default privacy group for new contacts"
-msgstr ""
-
-#: ../../include/group.php:195
-msgid "Everybody"
-msgstr ""
-
-#: ../../include/group.php:218
-msgid "edit"
-msgstr ""
-
-#: ../../include/group.php:240
-msgid "Edit group"
-msgstr ""
-
-#: ../../include/group.php:241
-msgid "Create a new group"
-msgstr ""
-
-#: ../../include/group.php:242
-msgid "Contacts not in any group"
+"<strong>WARNING: This is highly advanced</strong> and if you enter incorrect "
+"information your communications with this contact may stop working."
msgstr ""
-#: ../../include/nav.php:46 ../../boot.php:884
-msgid "Logout"
+#: ../../mod/crepair.php:138
+msgid ""
+"Please use your browser 'Back' button <strong>now</strong> if you are "
+"uncertain what to do on this page."
msgstr ""
-#: ../../include/nav.php:46
-msgid "End this session"
+#: ../../mod/crepair.php:144
+msgid "Return to contact editor"
msgstr ""
-#: ../../include/nav.php:49 ../../boot.php:1574
-msgid "Status"
+#: ../../mod/crepair.php:149
+msgid "Account Nickname"
msgstr ""
-#: ../../include/nav.php:64
-msgid "Sign in"
+#: ../../mod/crepair.php:150
+msgid "@Tagname - overrides Name/Nickname"
msgstr ""
-#: ../../include/nav.php:77
-msgid "Home Page"
+#: ../../mod/crepair.php:151
+msgid "Account URL"
msgstr ""
-#: ../../include/nav.php:81
-msgid "Create an account"
+#: ../../mod/crepair.php:152
+msgid "Friend Request URL"
msgstr ""
-#: ../../include/nav.php:86
-msgid "Help and documentation"
+#: ../../mod/crepair.php:153
+msgid "Friend Confirm URL"
msgstr ""
-#: ../../include/nav.php:89
-msgid "Apps"
+#: ../../mod/crepair.php:154
+msgid "Notification Endpoint URL"
msgstr ""
-#: ../../include/nav.php:89
-msgid "Addon applications, utilities, games"
+#: ../../mod/crepair.php:155
+msgid "Poll/Feed URL"
msgstr ""
-#: ../../include/nav.php:91
-msgid "Search site content"
+#: ../../mod/crepair.php:156
+msgid "New photo from this URL"
msgstr ""
-#: ../../include/nav.php:101
-msgid "Conversations on this site"
+#: ../../mod/zfinger.php:23
+msgid "invalid target signature"
msgstr ""
-#: ../../include/nav.php:103
-msgid "Directory"
+#: ../../mod/follow.php:24
+msgid "Channel added."
msgstr ""
-#: ../../include/nav.php:103
-msgid "People directory"
+#: ../../mod/nogroup.php:58
+msgid "Contacts who are not members of a group"
msgstr ""
-#: ../../include/nav.php:113
-msgid "Conversations from your friends"
+#: ../../mod/profile_photo.php:54
+msgid "Image uploaded but image cropping failed."
msgstr ""
-#: ../../include/nav.php:121
-msgid "Friend Requests"
+#: ../../mod/profile_photo.php:102
+msgid "Image resize failed."
msgstr ""
-#: ../../include/nav.php:123
-msgid "See all notifications"
+#: ../../mod/profile_photo.php:139
+msgid ""
+"Shift-reload the page or clear browser cache if the new photo does not "
+"display immediately."
msgstr ""
-#: ../../include/nav.php:124
-msgid "Mark all system notifications seen"
+#: ../../mod/profile_photo.php:161
+#, php-format
+msgid "Image exceeds size limit of %d"
msgstr ""
-#: ../../include/nav.php:128
-msgid "Private mail"
+#: ../../mod/profile_photo.php:170
+msgid "Unable to process image."
msgstr ""
-#: ../../include/nav.php:129
-msgid "Inbox"
+#: ../../mod/profile_photo.php:212 ../../mod/profile_photo.php:250
+msgid "Photo not available."
msgstr ""
-#: ../../include/nav.php:130
-msgid "Outbox"
+#: ../../mod/profile_photo.php:269
+msgid "Upload File:"
msgstr ""
-#: ../../include/nav.php:134
-msgid "Manage"
+#: ../../mod/profile_photo.php:270
+msgid "Select a profile:"
msgstr ""
-#: ../../include/nav.php:134
-msgid "Manage other pages"
+#: ../../mod/profile_photo.php:271
+msgid "Upload Profile Photo"
msgstr ""
-#: ../../include/nav.php:138 ../../boot.php:1132
-msgid "Profiles"
+#: ../../mod/profile_photo.php:272
+msgid "Upload"
msgstr ""
-#: ../../include/nav.php:138 ../../boot.php:1132
-msgid "Manage/edit profiles"
+#: ../../mod/profile_photo.php:276
+msgid "skip this step"
msgstr ""
-#: ../../include/nav.php:139
-msgid "Manage/edit friends and contacts"
+#: ../../mod/profile_photo.php:276
+msgid "select a photo from your photo albums"
msgstr ""
-#: ../../include/nav.php:146
-msgid "Site setup and configuration"
+#: ../../mod/profile_photo.php:290
+msgid "Crop Image"
msgstr ""
-#: ../../include/nav.php:170
-msgid "Nothing new here"
+#: ../../mod/profile_photo.php:291
+msgid "Please adjust the image cropping for optimum viewing."
msgstr ""
-#: ../../include/contact_widgets.php:6
-msgid "Add New Contact"
+#: ../../mod/profile_photo.php:293
+msgid "Done Editing"
msgstr ""
-#: ../../include/contact_widgets.php:7
-msgid "Enter address or web location"
+#: ../../mod/profile_photo.php:326
+msgid "Image uploaded successfully."
msgstr ""
-#: ../../include/contact_widgets.php:8
-msgid "Example: bob@example.com, http://example.com/barbara"
+#: ../../mod/profile_photo.php:328
+msgid "Image upload failed."
msgstr ""
-#: ../../include/contact_widgets.php:23
+#: ../../mod/profile_photo.php:335
#, php-format
-msgid "%d invitation available"
-msgid_plural "%d invitations available"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/contact_widgets.php:29
-msgid "Find People"
-msgstr ""
-
-#: ../../include/contact_widgets.php:30
-msgid "Enter name or interest"
-msgstr ""
-
-#: ../../include/contact_widgets.php:31
-msgid "Connect/Follow"
-msgstr ""
-
-#: ../../include/contact_widgets.php:32
-msgid "Examples: Robert Morgenstein, Fishing"
-msgstr ""
-
-#: ../../include/contact_widgets.php:36
-msgid "Random Profile"
-msgstr ""
-
-#: ../../include/contact_widgets.php:68
-msgid "Networks"
-msgstr ""
-
-#: ../../include/contact_widgets.php:71
-msgid "All Networks"
+msgid "Image size reduction [%s] failed."
msgstr ""
-#: ../../include/contact_widgets.php:98
-msgid "Saved Folders"
+#: ../../mod/editwebpage.php:30 ../../mod/editpost.php:18
+msgid "Item not found"
msgstr ""
-#: ../../include/contact_widgets.php:101 ../../include/contact_widgets.php:129
-msgid "Everything"
+#: ../../mod/editwebpage.php:63 ../../mod/editpost.php:38
+msgid "Edit post"
msgstr ""
-#: ../../include/contact_widgets.php:126
-msgid "Categories"
+#: ../../mod/editwebpage.php:101 ../../mod/editpost.php:80
+msgid "Insert YouTube video"
msgstr ""
-#: ../../include/auth.php:36
-msgid "Logged out."
+#: ../../mod/editwebpage.php:102 ../../mod/editpost.php:81
+msgid "Insert Vorbis [.ogg] video"
msgstr ""
-#: ../../include/auth.php:115
-msgid ""
-"We encountered a problem while logging in with the OpenID you provided. "
-"Please check the correct spelling of the ID."
+#: ../../mod/editwebpage.php:103 ../../mod/editpost.php:82
+msgid "Insert Vorbis [.ogg] audio"
msgstr ""
-#: ../../include/auth.php:115
-msgid "The error message was:"
+#: ../../mod/notifications.php:26
+msgid "Invalid request identifier."
msgstr ""
-#: ../../include/datetime.php:43 ../../include/datetime.php:45
-msgid "Miscellaneous"
+#: ../../mod/notifications.php:76
+msgid "System"
msgstr ""
-#: ../../include/datetime.php:131 ../../include/datetime.php:263
-msgid "year"
+#: ../../mod/notifications.php:96
+msgid "Introductions"
msgstr ""
-#: ../../include/datetime.php:136 ../../include/datetime.php:264
-msgid "month"
+#: ../../mod/notifications.php:121
+msgid "Show Ignored Requests"
msgstr ""
-#: ../../include/datetime.php:141 ../../include/datetime.php:266
-msgid "day"
+#: ../../mod/notifications.php:121
+msgid "Hide Ignored Requests"
msgstr ""
-#: ../../include/datetime.php:254
-msgid "never"
+#: ../../mod/notifications.php:147 ../../mod/notifications.php:193
+msgid "Notification type: "
msgstr ""
-#: ../../include/datetime.php:260
-msgid "less than a second ago"
+#: ../../mod/notifications.php:148
+msgid "Friend Suggestion"
msgstr ""
-#: ../../include/datetime.php:263
-msgid "years"
+#: ../../mod/notifications.php:150
+#, php-format
+msgid "suggested by %s"
msgstr ""
-#: ../../include/datetime.php:264
-msgid "months"
+#: ../../mod/notifications.php:179
+msgid "Claims to be known to you: "
msgstr ""
-#: ../../include/datetime.php:265
-msgid "week"
+#: ../../mod/notifications.php:179
+msgid "yes"
msgstr ""
-#: ../../include/datetime.php:265
-msgid "weeks"
+#: ../../mod/notifications.php:179
+msgid "no"
msgstr ""
-#: ../../include/datetime.php:266
-msgid "days"
+#: ../../mod/notifications.php:186
+msgid "Approve as: "
msgstr ""
-#: ../../include/datetime.php:267
-msgid "hour"
+#: ../../mod/notifications.php:187
+msgid "Friend"
msgstr ""
-#: ../../include/datetime.php:267
-msgid "hours"
+#: ../../mod/notifications.php:188
+msgid "Sharer"
msgstr ""
-#: ../../include/datetime.php:268
-msgid "minute"
+#: ../../mod/notifications.php:188
+msgid "Fan/Admirer"
msgstr ""
-#: ../../include/datetime.php:268
-msgid "minutes"
+#: ../../mod/notifications.php:194
+msgid "Friend/Connect Request"
msgstr ""
-#: ../../include/datetime.php:269
-msgid "second"
+#: ../../mod/notifications.php:194
+msgid "New Follower"
msgstr ""
-#: ../../include/datetime.php:269
-msgid "seconds"
+#: ../../mod/notifications.php:215
+msgid "No introductions."
msgstr ""
-#: ../../include/datetime.php:278
+#: ../../mod/notifications.php:257 ../../mod/notifications.php:382
+#: ../../mod/notifications.php:465
#, php-format
-msgid "%1$d %2$s ago"
+msgid "%s liked %s's post"
msgstr ""
-#: ../../include/datetime.php:450 ../../include/items.php:1460
+#: ../../mod/notifications.php:266 ../../mod/notifications.php:391
+#: ../../mod/notifications.php:474
#, php-format
-msgid "%s's birthday"
+msgid "%s disliked %s's post"
msgstr ""
-#: ../../include/datetime.php:451 ../../include/items.php:1461
+#: ../../mod/notifications.php:280 ../../mod/notifications.php:405
+#: ../../mod/notifications.php:488
#, php-format
-msgid "Happy Birthday %s"
-msgstr ""
-
-#: ../../include/onepoll.php:399
-msgid "From: "
-msgstr ""
-
-#: ../../include/bbcode.php:225 ../../include/bbcode.php:245
-msgid "$1 wrote:"
-msgstr ""
-
-#: ../../include/bbcode.php:260 ../../include/bbcode.php:337
-msgid "Image/photo"
+msgid "%s is now friends with %s"
msgstr ""
-#: ../../include/dba.php:41
+#: ../../mod/notifications.php:287 ../../mod/notifications.php:412
#, php-format
-msgid "Cannot locate DNS info for database server '%s'"
-msgstr ""
-
-#: ../../include/message.php:15 ../../include/message.php:171
-msgid "[no subject]"
-msgstr ""
-
-#: ../../include/acl_selectors.php:286
-msgid "Visible to everybody"
-msgstr ""
-
-#: ../../include/enotify.php:14
-msgid "Friendica Notification"
-msgstr ""
-
-#: ../../include/enotify.php:17
-msgid "Thank You,"
+msgid "%s created a new post"
msgstr ""
-#: ../../include/enotify.php:19
+#: ../../mod/notifications.php:288 ../../mod/notifications.php:413
+#: ../../mod/notifications.php:497
#, php-format
-msgid "%s Administrator"
+msgid "%s commented on %s's post"
msgstr ""
-#: ../../include/enotify.php:38
-#, php-format
-msgid "%s <!item_type!>"
+#: ../../mod/notifications.php:302
+msgid "No more network notifications."
msgstr ""
-#: ../../include/enotify.php:42
-#, php-format
-msgid "[Friendica:Notify] New mail received at %s"
+#: ../../mod/notifications.php:306
+msgid "Network Notifications"
msgstr ""
-#: ../../include/enotify.php:44
-#, php-format
-msgid "%1$s sent you a new private message at %2$s."
+#: ../../mod/notifications.php:332 ../../mod/notify.php:54
+msgid "No more system notifications."
msgstr ""
-#: ../../include/enotify.php:45
-#, php-format
-msgid "%1$s sent you %2$s."
+#: ../../mod/notifications.php:336 ../../mod/notify.php:58
+msgid "System Notifications"
msgstr ""
-#: ../../include/enotify.php:45
-msgid "a private message"
+#: ../../mod/notifications.php:427
+msgid "No more personal notifications."
msgstr ""
-#: ../../include/enotify.php:46
-#, php-format
-msgid "Please visit %s to view and/or reply to your private messages."
+#: ../../mod/notifications.php:431
+msgid "Personal Notifications"
msgstr ""
-#: ../../include/enotify.php:87
-#, php-format
-msgid "%1$s commented on [url=%2$s]a %3$s[/url]"
+#: ../../mod/notifications.php:504
+msgid "No more home notifications."
msgstr ""
-#: ../../include/enotify.php:94
-#, php-format
-msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]"
+#: ../../mod/notifications.php:508
+msgid "Home Notifications"
msgstr ""
-#: ../../include/enotify.php:102
-#, php-format
-msgid "%1$s commented on [url=%2$s]your %3$s[/url]"
+#: ../../mod/oexchange.php:22
+msgid "Post successful."
msgstr ""
-#: ../../include/enotify.php:112
-#, php-format
-msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s"
+#: ../../mod/editpost.php:29
+msgid "Item is not editable"
msgstr ""
-#: ../../include/enotify.php:113
-#, php-format
-msgid "%s commented on an item/conversation you have been following."
+#: ../../mod/profile.php:111
+msgid "Access to this profile has been restricted."
msgstr ""
-#: ../../include/enotify.php:116 ../../include/enotify.php:131
-#: ../../include/enotify.php:144 ../../include/enotify.php:157
-#, php-format
-msgid "Please visit %s to view and/or reply to the conversation."
+#: ../../mod/poke.php:159
+msgid "Poke/Prod"
msgstr ""
-#: ../../include/enotify.php:123
-#, php-format
-msgid "[Friendica:Notify] %s posted to your profile wall"
+#: ../../mod/poke.php:160
+msgid "poke, prod or do other things to somebody"
msgstr ""
-#: ../../include/enotify.php:125
-#, php-format
-msgid "%1$s posted to your profile wall at %2$s"
+#: ../../mod/poke.php:161
+msgid "Recipient"
msgstr ""
-#: ../../include/enotify.php:127
-#, php-format
-msgid "%1$s posted to [url=%2s]your wall[/url]"
+#: ../../mod/poke.php:162
+msgid "Choose what you wish to do to recipient"
msgstr ""
-#: ../../include/enotify.php:138
-#, php-format
-msgid "[Friendica:Notify] %s tagged you"
+#: ../../mod/poke.php:165
+msgid "Make this post private"
msgstr ""
-#: ../../include/enotify.php:139
-#, php-format
-msgid "%1$s tagged you at %2$s"
+#: ../../mod/community.php:23
+msgid "Not available."
msgstr ""
-#: ../../include/enotify.php:140
-#, php-format
-msgid "%1$s [url=%2$s]tagged you[/url]."
+#: ../../mod/community.php:32
+msgid "Community"
msgstr ""
-#: ../../include/enotify.php:151
-#, php-format
-msgid "[Friendica:Notify] %s tagged your post"
+#: ../../mod/community.php:63 ../../mod/community.php:88
+msgid "No results."
msgstr ""
-#: ../../include/enotify.php:152
-#, php-format
-msgid "%1$s tagged your post at %2$s"
+#: ../../mod/fbrowser.php:113
+msgid "Files"
msgstr ""
-#: ../../include/enotify.php:153
-#, php-format
-msgid "%1$s tagged [url=%2$s]your post[/url]"
+#: ../../mod/fsuggest.php:63
+msgid "Friend suggestion sent."
msgstr ""
-#: ../../include/enotify.php:164
-msgid "[Friendica:Notify] Introduction received"
+#: ../../mod/fsuggest.php:97
+msgid "Suggest Friends"
msgstr ""
-#: ../../include/enotify.php:165
+#: ../../mod/fsuggest.php:99
#, php-format
-msgid "You've received an introduction from '%1$s' at %2$s"
+msgid "Suggest a friend for %s"
msgstr ""
-#: ../../include/enotify.php:166
-#, php-format
-msgid "You've received [url=%1$s]an introduction[/url] from %2$s."
+#: ../../mod/profperm.php:34 ../../mod/profperm.php:64
+msgid "Invalid profile identifier."
msgstr ""
-#: ../../include/enotify.php:169 ../../include/enotify.php:187
-#, php-format
-msgid "You may visit their profile at %s"
+#: ../../mod/profperm.php:110
+msgid "Profile Visibility Editor"
msgstr ""
-#: ../../include/enotify.php:171
-#, php-format
-msgid "Please visit %s to approve or reject the introduction."
+#: ../../mod/profperm.php:114
+msgid "Click on a contact to add or remove."
msgstr ""
-#: ../../include/enotify.php:178
-msgid "[Friendica:Notify] Friend suggestion received"
+#: ../../mod/profperm.php:123
+msgid "Visible To"
msgstr ""
-#: ../../include/enotify.php:179
-#, php-format
-msgid "You've received a friend suggestion from '%1$s' at %2$s"
+#: ../../mod/profperm.php:139
+msgid "All Contacts (with secure profile access)"
msgstr ""
-#: ../../include/enotify.php:180
+#: ../../mod/siteinfo.php:51
#, php-format
-msgid "You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s."
-msgstr ""
-
-#: ../../include/enotify.php:185
-msgid "Name:"
+msgid "Version %s"
msgstr ""
-#: ../../include/enotify.php:186
-msgid "Photo:"
+#: ../../mod/siteinfo.php:65
+msgid "Installed plugins/addons/apps:"
msgstr ""
-#: ../../include/enotify.php:189
-#, php-format
-msgid "Please visit %s to approve or reject the suggestion."
+#: ../../mod/siteinfo.php:78
+msgid "No installed plugins/addons/apps"
msgstr ""
-#: ../../include/follow.php:32
-msgid "Connect URL missing."
+#: ../../mod/siteinfo.php:81
+msgid "Red"
msgstr ""
-#: ../../include/follow.php:59
+#: ../../mod/siteinfo.php:82
msgid ""
-"This site is not configured to allow communications with other networks."
-msgstr ""
-
-#: ../../include/follow.php:60 ../../include/follow.php:80
-msgid "No compatible communication protocols or feeds were discovered."
+"This is Red - another decentralized, distributed communications project by "
+"the folks at Friendica."
msgstr ""
-#: ../../include/follow.php:78
-msgid "The profile address specified does not provide adequate information."
+#: ../../mod/siteinfo.php:84
+msgid "Running at web location"
msgstr ""
-#: ../../include/follow.php:82
-msgid "An author or name was not found."
-msgstr ""
-
-#: ../../include/follow.php:84
-msgid "No browser URL could be matched to this address."
-msgstr ""
-
-#: ../../include/follow.php:86
+#: ../../mod/siteinfo.php:85
msgid ""
-"Unable to match @-style Identity Address with a known protocol or email "
-"contact."
+"Please visit <a href=\"http://friendica.com\">Friendica.com</a> to learn "
+"more about the Friendica and/or Red project."
msgstr ""
-#: ../../include/follow.php:87
-msgid "Use mailto: in front of address to force email check."
+#: ../../mod/siteinfo.php:86
+msgid "Bug reports and issues: please visit"
msgstr ""
-#: ../../include/follow.php:93
+#: ../../mod/siteinfo.php:89
msgid ""
-"The profile address specified belongs to a network which has been disabled "
-"on this site."
+"Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - "
+"dot com"
msgstr ""
-#: ../../include/follow.php:103
+#: ../../mod/suggest.php:41
msgid ""
-"Limited profile. This person will be unable to receive direct/personal "
-"notifications from you."
-msgstr ""
-
-#: ../../include/follow.php:205
-msgid "Unable to retrieve contact information."
-msgstr ""
-
-#: ../../include/follow.php:259
-msgid "following"
-msgstr ""
-
-#: ../../include/items.php:2890
-msgid "A new person is sharing with you at "
-msgstr ""
-
-#: ../../include/items.php:2890
-msgid "You have a new follower at "
-msgstr ""
-
-#: ../../include/items.php:3522
-msgid "Archives"
-msgstr ""
-
-#: ../../include/bb2diaspora.php:226 ../../include/bb2diaspora.php:236
-#: ../../include/bb2diaspora.php:237
-msgid "image/photo"
-msgstr ""
-
-#: ../../include/user.php:38
-msgid "An invitation is required."
-msgstr ""
-
-#: ../../include/user.php:43
-msgid "Invitation could not be verified."
-msgstr ""
-
-#: ../../include/user.php:51
-msgid "Invalid OpenID url"
-msgstr ""
-
-#: ../../include/user.php:66
-msgid "Please enter the required information."
-msgstr ""
-
-#: ../../include/user.php:80
-msgid "Please use a shorter name."
-msgstr ""
-
-#: ../../include/user.php:82
-msgid "Name too short."
-msgstr ""
-
-#: ../../include/user.php:97
-msgid "That doesn't appear to be your full (First Last) name."
-msgstr ""
-
-#: ../../include/user.php:102
-msgid "Your email domain is not among those allowed on this site."
+"No suggestions available. If this is a new site, please try again in 24 "
+"hours."
msgstr ""
-#: ../../include/user.php:105
-msgid "Not a valid email address."
+#: ../../mod/suggest.php:58
+msgid "Ignore/Hide"
msgstr ""
-#: ../../include/user.php:115
-msgid "Cannot use that email."
+#: ../../mod/register.php:35
+msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
msgstr ""
-#: ../../include/user.php:121
+#: ../../mod/register.php:41
msgid ""
-"Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and "
-"must also begin with a letter."
+"Please indicate acceptance of the Terms of Service. Registration failed."
msgstr ""
-#: ../../include/user.php:127 ../../include/user.php:225
-msgid "Nickname is already registered. Please choose another."
-msgstr ""
-
-#: ../../include/user.php:137
+#: ../../mod/register.php:91
msgid ""
-"Nickname was once registered here and may not be re-used. Please choose "
-"another."
-msgstr ""
-
-#: ../../include/user.php:153
-msgid "SERIOUS ERROR: Generation of security keys failed."
+"Registration successful. Please check your email for validation instructions."
msgstr ""
-#: ../../include/user.php:211
-msgid "An error occurred during registration. Please try again."
-msgstr ""
-
-#: ../../include/user.php:246
-msgid "An error occurred creating your default profile. Please try again."
-msgstr ""
-
-#: ../../include/security.php:21
-msgid "Welcome "
-msgstr ""
-
-#: ../../include/security.php:22
-msgid "Please upload a profile photo."
+#: ../../mod/register.php:97
+msgid "Your registration is pending approval by the site owner."
msgstr ""
-#: ../../include/security.php:25
-msgid "Welcome back "
+#: ../../mod/register.php:100
+msgid "Your registration can not be processed."
msgstr ""
-#: ../../include/security.php:329
+#: ../../mod/register.php:135
msgid ""
-"The form security token was not correct. This probably happened because the "
-"form has been opened for too long (>3 hours) before submitting it."
-msgstr ""
-
-#: ../../include/Contact.php:111
-msgid "stopped following"
-msgstr ""
-
-#: ../../include/Contact.php:218 ../../include/conversation.php:842
-msgid "View Status"
-msgstr ""
-
-#: ../../include/Contact.php:219 ../../include/conversation.php:843
-msgid "View Profile"
-msgstr ""
-
-#: ../../include/Contact.php:220 ../../include/conversation.php:844
-msgid "View Photos"
-msgstr ""
-
-#: ../../include/Contact.php:221 ../../include/Contact.php:234
-#: ../../include/conversation.php:845
-msgid "Network Posts"
-msgstr ""
-
-#: ../../include/Contact.php:222 ../../include/Contact.php:234
-#: ../../include/conversation.php:846
-msgid "Edit Contact"
-msgstr ""
-
-#: ../../include/Contact.php:223 ../../include/Contact.php:234
-#: ../../include/conversation.php:847
-msgid "Send PM"
-msgstr ""
-
-#: ../../include/conversation.php:163
-msgid "post/item"
-msgstr ""
-
-#: ../../include/conversation.php:164
-#, php-format
-msgid "%1$s marked %2$s's %3$s as favorite"
-msgstr ""
-
-#: ../../include/conversation.php:750
-msgid "Delete Selected Items"
-msgstr ""
-
-#: ../../include/conversation.php:905
-#, php-format
-msgid "%s likes this."
+"This site has exceeded the number of allowed daily account registrations. "
+"Please try again tomorrow."
msgstr ""
-#: ../../include/conversation.php:905
-#, php-format
-msgid "%s doesn't like this."
+#: ../../mod/register.php:146
+msgid "Terms of Service"
msgstr ""
-#: ../../include/conversation.php:909
+#: ../../mod/register.php:152
#, php-format
-msgid "<span %1$s>%2$d people</span> like this."
+msgid "I accept the %s for this website"
msgstr ""
-#: ../../include/conversation.php:911
+#: ../../mod/register.php:154
#, php-format
-msgid "<span %1$s>%2$d people</span> don't like this."
+msgid "I am over 13 years of age and accept the %s for this website"
msgstr ""
-#: ../../include/conversation.php:917
-msgid "and"
+#: ../../mod/register.php:169
+msgid "Membership on this site is by invitation only."
msgstr ""
-#: ../../include/conversation.php:920
-#, php-format
-msgid ", and %d other people"
+#: ../../mod/register.php:170
+msgid "Please enter your invitation code"
msgstr ""
-#: ../../include/conversation.php:921
-#, php-format
-msgid "%s like this."
+#: ../../mod/register.php:173
+msgid "Your email address"
msgstr ""
-#: ../../include/conversation.php:921
-#, php-format
-msgid "%s don't like this."
+#: ../../mod/register.php:174
+msgid "Choose a password"
msgstr ""
-#: ../../include/conversation.php:946
-msgid "Visible to <strong>everybody</strong>"
+#: ../../mod/register.php:175
+msgid "Please re-enter your password"
msgstr ""
-#: ../../include/conversation.php:948
-msgid "Please enter a video link/URL:"
-msgstr ""
-
-#: ../../include/conversation.php:949
-msgid "Please enter an audio link/URL:"
+#: ../../mod/regmod.php:12
+msgid "Please login."
msgstr ""
-#: ../../include/conversation.php:950
-msgid "Tag term:"
+#: ../../mod/removeme.php:45 ../../mod/removeme.php:48
+msgid "Remove My Account"
msgstr ""
-#: ../../include/conversation.php:952
-msgid "Where are you right now?"
+#: ../../mod/removeme.php:46
+msgid ""
+"This will completely remove your account. Once this has been done it is not "
+"recoverable."
msgstr ""
-#: ../../include/conversation.php:995
-msgid "upload photo"
+#: ../../mod/removeme.php:47
+msgid "Please enter your password for verification:"
msgstr ""
-#: ../../include/conversation.php:997
-msgid "attach file"
+#: ../../mod/mood.php:131
+msgid "Mood"
msgstr ""
-#: ../../include/conversation.php:999
-msgid "web link"
+#: ../../mod/mood.php:132
+msgid "Set your current mood and tell your friends"
msgstr ""
-#: ../../include/conversation.php:1000
-msgid "Insert video link"
+#: ../../view/theme/redbasic/php/config.php:138
+#: ../../view/theme/redbasic/php/config.php:156
+#: ../../view/theme/redstrap/php/config.php:133
+msgid "Theme settings"
msgstr ""
-#: ../../include/conversation.php:1001
-msgid "video link"
+#: ../../view/theme/redbasic/php/config.php:139
+#: ../../view/theme/redbasic/php/config.php:157
+#: ../../view/theme/redstrap/php/config.php:134
+msgid "Set font-size for posts and comments"
msgstr ""
-#: ../../include/conversation.php:1002
-msgid "Insert audio link"
+#: ../../view/theme/redbasic/php/config.php:140
+#: ../../view/theme/redbasic/php/config.php:158
+#: ../../view/theme/redstrap/php/config.php:135
+msgid "Set line-height for posts and comments"
msgstr ""
-#: ../../include/conversation.php:1003
-msgid "audio link"
+#: ../../view/theme/redbasic/php/config.php:141
+#: ../../view/theme/redbasic/php/config.php:159
+#: ../../view/theme/redstrap/php/config.php:136
+msgid "Set colour scheme"
msgstr ""
-#: ../../include/conversation.php:1005
-msgid "set location"
+#: ../../view/theme/redbasic/php/config.php:142
+#: ../../view/theme/redstrap/php/config.php:137
+msgid "Draw shadows"
msgstr ""
-#: ../../include/conversation.php:1007
-msgid "clear location"
+#: ../../view/theme/redbasic/php/config.php:143
+#: ../../view/theme/redstrap/php/config.php:138
+msgid "Navigation bar colour"
msgstr ""
-#: ../../include/conversation.php:1014
-msgid "permissions"
+#: ../../view/theme/redbasic/php/config.php:144
+#: ../../view/theme/redstrap/php/config.php:139
+msgid "Display style"
msgstr ""
-#: ../../include/plugin.php:388 ../../include/plugin.php:390
-msgid "Click here to upgrade."
+#: ../../view/theme/redbasic/php/config.php:145
+#: ../../view/theme/redstrap/php/config.php:140
+msgid "Display colour of links - hex value, do not include the #"
msgstr ""
-#: ../../include/plugin.php:396
-msgid "This action exceeds the limits set by your subscription plan."
+#: ../../view/theme/redbasic/php/config.php:146
+#: ../../view/theme/redstrap/php/config.php:141
+msgid "Icons"
msgstr ""
-#: ../../include/plugin.php:401
-msgid "This action is not available under your subscription plan."
+#: ../../view/theme/redbasic/php/config.php:147
+#: ../../view/theme/redstrap/php/config.php:142
+msgid "Shiny style"
msgstr ""
-#: ../../boot.php:563
-msgid "Delete this item?"
+#: ../../view/theme/redbasic/php/config.php:148
+msgid "Corner radius"
msgstr ""
-#: ../../boot.php:566
-msgid "show fewer"
+#: ../../view/theme/redbasic/php/config.php:148
+msgid "0-99 default: 5"
msgstr ""
-#: ../../boot.php:761
+#: ../../boot.php:1185
#, php-format
msgid "Update %s failed. See error logs."
msgstr ""
-#: ../../boot.php:763
+#: ../../boot.php:1188
#, php-format
msgid "Update Error at %s"
msgstr ""
-#: ../../boot.php:863
+#: ../../boot.php:1325
msgid "Create a New Account"
msgstr ""
-#: ../../boot.php:887
-msgid "Nickname or Email address: "
+#: ../../boot.php:1354
+msgid "Password"
msgstr ""
-#: ../../boot.php:888
-msgid "Password: "
+#: ../../boot.php:1355
+msgid "Remember me"
msgstr ""
-#: ../../boot.php:891
-msgid "Or login using OpenID: "
+#: ../../boot.php:1360
+msgid "Forgot your password?"
msgstr ""
-#: ../../boot.php:897
-msgid "Forgot your password?"
+#: ../../boot.php:1479
+msgid "Requested channel is not available."
msgstr ""
-#: ../../boot.php:1064
-msgid "Edit profile"
+#: ../../boot.php:1491
+msgid " Sorry, you don't have the permission to view this profile. "
msgstr ""
-#: ../../boot.php:1124
-msgid "Message"
+#: ../../boot.php:1635
+msgid "Profiles"
msgstr ""
-#: ../../boot.php:1240 ../../boot.php:1319
-msgid "g A l F d"
+#: ../../boot.php:1635
+msgid "Manage/edit profiles"
msgstr ""
-#: ../../boot.php:1241 ../../boot.php:1320
-msgid "F d"
+#: ../../boot.php:1639
+msgid "Edit Profile"
msgstr ""
-#: ../../boot.php:1286 ../../boot.php:1360
-msgid "[today]"
+#: ../../boot.php:1717 ../../boot.php:1797
+msgid "F d"
msgstr ""
-#: ../../boot.php:1298
+#: ../../boot.php:1774
msgid "Birthday Reminders"
msgstr ""
-#: ../../boot.php:1299
+#: ../../boot.php:1775
msgid "Birthdays this week:"
msgstr ""
-#: ../../boot.php:1353
+#: ../../boot.php:1830
msgid "[No description]"
msgstr ""
-#: ../../boot.php:1371
+#: ../../boot.php:1848
msgid "Event Reminders"
msgstr ""
-#: ../../boot.php:1372
+#: ../../boot.php:1849
msgid "Events this week:"
msgstr ""
-#: ../../boot.php:1577
+#: ../../boot.php:2072
+msgid "Channel"
+msgstr ""
+
+#: ../../boot.php:2075
msgid "Status Messages and Posts"
msgstr ""
-#: ../../boot.php:1583
+#: ../../boot.php:2079
+msgid "About"
+msgstr ""
+
+#: ../../boot.php:2082
msgid "Profile Details"
msgstr ""
-#: ../../boot.php:1598
+#: ../../boot.php:2100
msgid "Events and Calendar"
msgstr ""
-#: ../../boot.php:1604
-msgid "Only You Can See This"
+#: ../../boot.php:2105
+msgid "Webpages"
+msgstr ""
+
+#: ../../boot.php:2108
+msgid "Manage Webpages"
+msgstr ""
+
+#: ../../boot.php:2335
+msgid "toggle mobile"
msgstr ""
diff --git a/util/precompile_smarty3.php b/util/precompile_smarty3.php
new file mode 100755
index 000000000..65cb760ef
--- /dev/null
+++ b/util/precompile_smarty3.php
@@ -0,0 +1,27 @@
+<?php
+
+
+/**
+* @package util
+*/
+
+#require_once('boot.php');
+#require_once('include/cli_startup.php');
+require_once "library/Smarty/libs/Smarty.class.php";
+
+#cli_startup();
+
+$folders = array_merge(array('view/tpl/'),glob('view/theme/*/tpl/*',GLOB_ONLYDIR));
+
+$s = new Smarty();
+
+$s->setTemplateDir($folders);
+
+$s->setCompileDir('view/tpl/smarty3/compiled/');
+$s->setConfigDir('view/tpl/smarty3/config/');
+$s->setCacheDir('view/tpl/smarty3/cache/');
+
+$s->left_delimiter = "{{";
+$s->right_delimiter = "}}";
+
+$s->compileAllTemplates('.tpl',true); \ No newline at end of file
diff --git a/util/run_xgettext.sh b/util/run_xgettext.sh
index 6ea603c83..997446818 100755
--- a/util/run_xgettext.sh
+++ b/util/run_xgettext.sh
@@ -1,37 +1,81 @@
#!/bin/bash
FULLPATH=$(dirname $(readlink -f "$0"))
-cd "$FULLPATH/../view/en/"
-F9KVERSION=$(sed -n "s/.*'FRIENDICA_VERSION'.*'\([0-9.]*\)'.*/\1/p" ../../boot.php);
+ADDONMODE=
+ADDONNAME=
+if [ "$1" == "--addon" -o "$1" == "-a" ]
+then
+ ADDONMODE=1
+ if [ -z $2 ]; then echo -e "ERROR: missing addon name\n\nrun_xgettext.sh -a <addonname>"; exit 1; fi
+ ADDONNAME=$2
+ if [ ! -d "$FULLPATH/../addon/$ADDONNAME" ]; then echo "ERROR: addon '$ADDONNAME' not found"; exit 2; fi
+fi
+
+if [ $ADDONMODE ]
+then
+ cd "$FULLPATH/../addon/$ADDONNAME"
+ mkdir -p "$FULLPATH/../addon/$ADDONNAME/lang/C"
+ OUTFILE="$FULLPATH/../addon/$ADDONNAME/lang/C/messages.po"
+ FINDSTARTDIR="."
+ FINDOPTS=
+else
+ cd "$FULLPATH/../view/en/"
+ OUTFILE="$FULLPATH/messages.po"
+ FINDSTARTDIR="../../"
+ # skip addon folder
+ FINDOPTS="-wholename */addon -prune -o"
+fi
+
+
+F9KVERSION=$(sed -n "s/.*'RED_VERSION'.*'\([0-9.]*\)'.*/\1/p" ../../boot.php);
echo "Friendica version $F9KVERSION"
OPTS=
-OUTFILE="$FULLPATH/messages.po"
-if [ "" != "$1" ]
-then
- OUTFILE="$(readlink -f ${FULLPATH}/$1)"
- if [ -e "$OUTFILE" ]
- then
- echo "join extracted strings"
- OPTS="-j"
- fi
-fi
+
+#if [ "" != "$1" ]
+#then
+# OUTFILE="$(readlink -f ${FULLPATH}/$1)"
+# if [ -e "$OUTFILE" ]
+# then
+# echo "join extracted strings"
+# OPTS="-j"
+# fi
+#fi
KEYWORDS="-k -kt -ktt:1,2"
echo "extract strings to $OUTFILE.."
-find ../../ -name "*.php" | xargs xgettext $KEYWORDS $OPTS -o "$OUTFILE" --from-code=UTF-8
-echo "setup base info.."
-sed -i "s/SOME DESCRIPTIVE TITLE./FRIENDICA Distributed Social Network/g" "$OUTFILE"
-sed -i "s/YEAR THE PACKAGE'S COPYRIGHT HOLDER/2010, 2011 the Friendica Project/g" "$OUTFILE"
-sed -i "s/FIRST AUTHOR <EMAIL@ADDRESS>, YEAR./Mike Macgirvin, 2010/g" "$OUTFILE"
-sed -i "s/PACKAGE VERSION/$F9KVERSION/g" "$OUTFILE"
-sed -i "s/PACKAGE/Friendica/g" "$OUTFILE"
-sed -i "s/CHARSET/UTF-8/g" "$OUTFILE"
-sed -i "s/^\"Plural-Forms/#\"Plural-Forms/g" "$OUTFILE"
+echo "extract strings to $OUTFILE.."
+rm "$OUTFILE"; touch "$OUTFILE"
+for f in $(find "$FINDSTARTDIR" $FINDOPTS -name "*.php" -type f)
+do
+ if [ ! -d "$f" ]
+ then
+ xgettext $KEYWORDS $OPTS -j -o "$OUTFILE" --from-code=UTF-8 "$f" > /dev/null 2>&1
+ fi
+done
+echo "setup base info.."
+if [ $ADDONMODE ]
+then
+ sed -i "s/SOME DESCRIPTIVE TITLE./ADDON $ADDONNAME/g" "$OUTFILE"
+ sed -i "s/YEAR THE PACKAGE'S COPYRIGHT HOLDER//g" "$OUTFILE"
+ sed -i "s/FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.//g" "$OUTFILE"
+ sed -i "s/PACKAGE VERSION//g" "$OUTFILE"
+ sed -i "s/PACKAGE/Friendica $ADDONNAME addon/g" "$OUTFILE"
+ sed -i "s/CHARSET/UTF-8/g" "$OUTFILE"
+ sed -i "s/^\"Plural-Forms/#\"Plural-Forms/g" "$OUTFILE"
+else
+ sed -i "s/SOME DESCRIPTIVE TITLE./Red Communications Project/g" "$OUTFILE"
+ sed -i "s/YEAR THE PACKAGE'S COPYRIGHT HOLDER/2013 the Friendica Project/g" "$OUTFILE"
+ sed -i "s/FIRST AUTHOR <EMAIL@ADDRESS>, YEAR./Mike Macgirvin, 2013/g" "$OUTFILE"
+ sed -i "s/PACKAGE VERSION/$F9KVERSION/g" "$OUTFILE"
+ sed -i "s/PACKAGE/Red/g" "$OUTFILE"
+ sed -i "s/CHARSET/UTF-8/g" "$OUTFILE"
+ sed -i "s/^\"Plural-Forms/#\"Plural-Forms/g" "$OUTFILE"
+fi
echo "done."
diff --git a/util/tpldebug.php b/util/tpldebug.php
new file mode 100644
index 000000000..80da410dc
--- /dev/null
+++ b/util/tpldebug.php
@@ -0,0 +1,43 @@
+<?php
+
+// Tool to assist with figuring out what variables are passed to templates.
+// It will take a source php file and print all the template calls it finds, including the passed args.
+// With no args it will enumerate all templates in boot.php, include/* and mod/*
+// This is a quick hack and far from perfect (there's a template call in boot.php that buggers the regex from the get-go)
+// but is one step towards template documentation.
+
+
+if($argc > 1) {
+ echo "{$argv[1]}: templates\n";
+ print_template($argv[1]);
+}
+else {
+
+
+ echo 'boot.php: templates' . "\n";
+ print_template('boot.php');
+
+ $files = glob('include/*.php');
+ foreach($files as $file) {
+ echo $file . ': templates'. "\n";
+ print_template($file);
+ }
+
+ $files = glob('mod/*.php');
+ foreach($files as $file) {
+ echo $file . ': templates'. "\n";
+ print_template($file);
+ }
+}
+
+function print_template($s) {
+ $x = file_get_contents($s);
+
+ $cnt = preg_match_all('/replace_macros(.*?)\)\;/ism',$x,$matches);
+
+ if($cnt) {
+ print_r($matches[0]);
+
+ }
+
+} \ No newline at end of file
diff --git a/util/typo.php b/util/typo.php
index c4d038ce8..6c846696d 100644
--- a/util/typo.php
+++ b/util/typo.php
@@ -19,6 +19,20 @@
include_once($file);
}
+ echo "Directory: include/dba\n";
+ $files = glob('include/dba/*.php');
+ foreach($files as $file) {
+ echo $file . "\n";
+ include_once($file);
+ }
+
+ echo "Directory: include/photo\n";
+ $files = glob('include/photo/*.php');
+ foreach($files as $file) {
+ echo $file . "\n";
+ include_once($file);
+ }
+
echo "Directory: mod\n";
$files = glob('mod/*.php');
foreach($files as $file) {
@@ -38,8 +52,8 @@
}
}
- if(x($a->config,'php_path'))
- $phpath = $a->config['php_path'];
+ if(x($a->config,'system') && x($a->config['system'],'php_path'))
+ $phpath = $a->config['system']['php_path'];
else
$phpath = 'php';
diff --git a/version.inc b/version.inc
index c07f843b6..33795d3f2 100644
--- a/version.inc
+++ b/version.inc
@@ -1 +1 @@
-2013-02-19.229
+2013-08-06.397
diff --git a/view/cs/follow_notify_eml.tpl b/view/cs/follow_notify_eml.tpl
index 440ba9ca4..ba07b19da 100644
--- a/view/cs/follow_notify_eml.tpl
+++ b/view/cs/follow_notify_eml.tpl
@@ -1,14 +1,14 @@
-Milý/Milá $username,
+Dear {{$myname}},
-Máte nového následovatele na $sitename - '$requestor'.
+You have a new follower at {{$sitename}} - '{{$requestor}}'.
-Můžete si prohlédnout jeho/její profil na $url.
+You may visit their profile at {{$url}}.
-Přihlaste se na váš server k odsouhlasení nebo ignorování/zrušení žádosti.
+Please login to your site to approve or ignore/cancel the request.
-$siteurl
+{{$siteurl}}
-S pozdravem,
+Regards,
- $sitename administrátor
+ {{$sitename}} administrator
diff --git a/view/cs/friend_complete_eml.tpl b/view/cs/friend_complete_eml.tpl
index 50bb7e105..1c647b994 100644
--- a/view/cs/friend_complete_eml.tpl
+++ b/view/cs/friend_complete_eml.tpl
@@ -1,17 +1,22 @@
-Milý/Milá $username,
+Dear {{$username}},
- Skvělé zprávy... '$fn' na '$dfrn_url' odsouhlasil Váš požadavek na spojení na '$sitename'.
+ Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
-Jste nyní přátelé a můžete si vyměňovat aktualizace statusu, fotek a e-mailů bez omezení.
+You are now mutual friends and may exchange status updates, photos, and email
+without restriction.
-Pokud budete chtít tento vztah jakkoliv upravit, navštivte Vaši stránku "Kontakty" na $sitename.
+Please visit your 'Connnections' page at {{$sitename}} if you wish to make
+any changes to this relationship.
-$siteurl
+{{$siteurl}}
-(Nyní můžete například vytvořit separátní profil s informacemi, které nebudou viditelné veřejně, a nastavit právo pro zobrazení tohoto profilu pro '$fn').
+[For instance, you may create a separate profile with information that is not
+available to the general public - and assign viewing rights to '{{$fn}}'].
-S pozdravem,
+Sincerely,
- $sitename administrátor
+ {{$sitename}} Administrator
+
diff --git a/view/cs/htconfig.tpl b/view/cs/htconfig.tpl
new file mode 100644
index 000000000..493cb5d00
--- /dev/null
+++ b/view/cs/htconfig.tpl
@@ -0,0 +1,70 @@
+<?php
+
+// Set the following for your MySQL installation
+// Copy or rename this file to .htconfig.php
+
+$db_host = '{{$dbhost}}';
+$db_port = '{{$dbport}}';
+$db_user = '{{$dbuser}}';
+$db_pass = '{{$dbpass}}';
+$db_data = '{{$dbdata}}';
+
+/*
+ * Notice: Many of the following settings will be available in the admin panel
+ * after a successful site install. Once they are set in the admin panel, they
+ * are stored in the DB - and the DB setting will over-ride any corresponding
+ * setting in this file
+ *
+ * The command-line tool util/config is able to query and set the DB items
+ * directly if for some reason the admin panel is not available and a system
+ * setting requires modification.
+ *
+ */
+
+
+// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
+// It can be changed later and only applies to timestamps for anonymous viewers.
+
+$default_timezone = '{{$timezone}}';
+
+// What is your site name?
+
+$a->config['system']['baseurl'] = '{{$siteurl}}';
+$a->config['system']['sitename'] = "Red Matrix";
+$a->config['system']['location_hash'] = '{{$site_id}}';
+
+// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
+// Be certain to create your own personal account before setting
+// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
+// the registration page. REGISTER_APPROVE requires you set 'admin_email'
+// to the email address of an already registered person who can authorise
+// and/or approve/deny the request.
+
+$a->config['system']['register_policy'] = REGISTER_OPEN;
+$a->config['system']['register_text'] = '';
+$a->config['system']['admin_email'] = '{{$adminmail}}';
+
+// Maximum size of an imported message, 0 is unlimited
+
+$a->config['system']['max_import_size'] = 200000;
+
+// maximum size of uploaded photos
+
+$a->config['system']['maximagesize'] = 800000;
+
+// Location of PHP command line processor
+
+$a->config['system']['php_path'] = '{{$phpath}}';
+
+// Configure how we communicate with directory servers.
+// DIRECTORY_MODE_NORMAL = directory client, we will find a directory
+// DIRECTORY_MODE_SECONDARY = caching directory or mirror
+// DIRECTORY_MODE_PRIMARY = main directory server
+// DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services
+
+$a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;
+
+// default system theme
+
+$a->config['system']['theme'] = 'redbasic';
+
diff --git a/view/cs/intro_complete_eml.tpl b/view/cs/intro_complete_eml.tpl
index 91753f35d..2c2428d68 100644
--- a/view/cs/intro_complete_eml.tpl
+++ b/view/cs/intro_complete_eml.tpl
@@ -1,17 +1,22 @@
-Milý/Milá $username,
+Dear {{$username}},
+ '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
- '$fn' na '$dfrn_url' odsouhlasil Váš požadavek na spojení na '$sitename'.
+ '{{$fn}}' has chosen to accept you a "fan", which restricts
+some forms of communication - such as private messaging and some profile
+interactions. If this is a celebrity or community page, these settings were
+applied automatically.
- '$fn' Vás oznaÄil za svého "fanouÅ¡ka", což jistým způsobem omezuje komunikaci (například v oblasti soukromých zpráv a nÄ›kterých profilových interakcí. Pokud je toto celebritní nebo komunitní stránka, bylo toto nastavení byla pÅ™ijato automaticky.
+ '{{$fn}}' may choose to extend this into a two-way or more permissive
+relationship in the future.
- '$fn' může v budoucnu rozšířit toto spojení na oboustranné nebo jinak méně restriktivní.
+ You will start receiving public status updates from '{{$fn}}',
+which will appear on your 'Matrix' page at
- Nyní zaÄnete dostávat veÅ™ejné aktualizace statusu od '$fn', které se objeví ve Vaší stránce "Síť" na webu
+{{$siteurl}}
-$siteurl
+Sincerely,
-S pozdravem,
-
- $sitename administrátor
+ {{$sitename}} Administrator
diff --git a/view/cs/lostpass_eml.tpl b/view/cs/lostpass_eml.tpl
index 05042ddce..3b79d2791 100644
--- a/view/cs/lostpass_eml.tpl
+++ b/view/cs/lostpass_eml.tpl
@@ -1,23 +1,32 @@
-Milý/Milá $username,
- Na webu $sitename byl zaregistrován požadavek na znovunastavení hesla k VaÅ¡emu úÄtu. Pro potvrzení této žádosti prosím kliknÄ›te na potvrzovací odkaz níže, nebo si tento odkaz zkopírujte do adresního řádku prohlížeÄe.
-Pokud jste o znovunastavení hesla NEŽÃDALI, prosím NEKLIKEJTE na tento odkaz a ignorujte tento e-mail nebo ho rovnou smažte.
+Dear {{$username}},
+ A request was recently received at {{$sitename}} to reset your account
+password. In order to confirm this request, please select the verification link
+below or paste it into your web browser address bar.
-Vaše heslo nebude změněno, dokud nebudeme mít potvrzení, že jste o tento požadavek zažádali právě Vy.
+If you did NOT request this change, please DO NOT follow the link
+provided and ignore and/or delete this email.
-Klikněte na tento odkaz pro prověření Vaší identity:
+Your password will not be changed unless we can verify that you
+issued this request.
-$reset_link
+Follow this link to verify your identity:
-Poté obdržíte další zprávu obsahující nové heslo.
+{{$reset_link}}
-NáslednÄ› si toto heslo můžete zmÄ›nit z vaÅ¡eho úÄtu na stránce Nastavení.
+You will then receive a follow-up message containing the new password.
-Přihlašovací údaje jsou tato:
+You may change that password from your account settings page after logging in.
-Adresa webu: $siteurl
-Přihlašovací jméno: $email
+The login details are as follows:
-S pozdravem,
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
- $sitename administrátor
+
+
+
+Sincerely,
+ {{$sitename}} Administrator
+
+
diff --git a/view/cs/passchanged_eml.tpl b/view/cs/passchanged_eml.tpl
index 5447d2e80..0d94be3c2 100644
--- a/view/cs/passchanged_eml.tpl
+++ b/view/cs/passchanged_eml.tpl
@@ -1,14 +1,20 @@
-Milý/Milá $username,
- Vaše heslo bylo na Vaši žádost změněno. Prosím zaznamenejte si tuto informaci (nebo si Vaše heslo změňte na nějaké, které si budete pamatovat).
-
-Vaše přihlašovací údaje jsou tato:
+Dear {{$username}},
+ Your password has been changed as requested. Please retain this
+information for your records (or change your password immediately to
+something that you will remember).
+
+
+Your login details are as follows:
-Adresa webu: $siteurl
-Přihlašovací jméno: $email
-Heslo: $new_password
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+Password: {{$new_password}}
-Toto heslo si můžete zmÄ›nit z vaÅ¡eho úÄtu na stránce Nastavení poté, co se pÅ™ihlásíte.
+You may change that password from your account settings page after logging in.
-S pozdravem,
- $sitename administrátor
+
+Sincerely,
+ {{$sitename}} Administrator
+
+
diff --git a/view/cs/register_open_eml.tpl b/view/cs/register_open_eml.tpl
index f8e42678b..4b397201c 100644
--- a/view/cs/register_open_eml.tpl
+++ b/view/cs/register_open_eml.tpl
@@ -1,23 +1,19 @@
-Milý/milá $username,
- Díky za registraci na $sitename. Váš úÄet byl vytvoÅ™en.
-Vaše přihlašovací údaje jsou tato:
-Adresa webu: $siteurl
-Přihlašovací jméno: $email
-Heslo: $password
+An account has been created at {{$sitename}} for this email address.
+The login details are as follows:
-Toto heslo si můžete zmÄ›nit z vaÅ¡eho úÄtu na stránce "Nastavení" poté, co se pÅ™ihlásíte.
+Site Location: {{$siteurl}}
+Login: {{$email}}
+Password: (the password which was provided during registration)
-VÄ›nujte prosím chvíli revizi dalších nastavení VaÅ¡eho úÄtu na této stránce.
+If this account was created without your knowledge and is not desired, you may
+visit this site and reset the password. This will allow you to remove the
+account from the links on the Settings page, and we
+apologise for any inconvenience.
-Můžete také pÅ™idat nÄ›které základní informace do VaÅ¡eho defaultního profilu (na stránce "Profily"), Äímž umožníte jiným lidem Vás snadnÄ›ji nalézt.
+Thank you and welcome to {{$sitename}}.
-DoporuÄujeme nastavit celé jméno, pÅ™idat profilové foto, pÅ™idat nÄ›jaká profilová "klíÄová slova" (což je velmi užiteÄné pro hledání nových přátel) a zemi, ve které žijete. Nemusíte zadávat víc informací.
+Sincerely,
+ {{$sitename}} Administrator
-Plně respektujeme Vaše právo na soukromí a žádná z výše uvedených položek není povinná.
-Pokud jste nový a neznáte na tomto webu nikoho jiného, zadáním těchto položek můžete získat nové a zajímavé přátele.
-
-Díky a vítejte na $sitename.
-
-S pozdravem,
- $sitename administrátor
+
diff --git a/view/cs/register_verify_eml.tpl b/view/cs/register_verify_eml.tpl
index 4b34c6b6d..85d9a12d3 100644
--- a/view/cs/register_verify_eml.tpl
+++ b/view/cs/register_verify_eml.tpl
@@ -1,22 +1,25 @@
-Na webu $sitename byla vytvořena nová uživatelská registrace, která vyžaduje Vaše schválení.
+A new user registration request was received at {{$sitename}} which requires
+your approval.
-Přihlašovací údaje jsou tato:
-Celé jméno: $username
-Adresa webu: $siteurl
-Přihlašovací jméno: $email
+The login details are as follows:
-Pro odsouhlasení tohoto požadavku prosím klikněte na následující odkaz:
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+IP Address: {{$details}}
+To approve this request please visit the following link:
-$siteurl/regmod/allow/$hash
+{{$siteurl}}/regmod/allow/{{$hash}}
-Pro zamítnutí žádosti a odstranÄ›ní úÄtu prosím kliknÄ›te na tento odkaz:
+To deny the request and remove the account, please visit:
-$siteurl/regmod/deny/$hash
+{{$siteurl}}/regmod/deny/{{$hash}}
+
+
+Thank you.
-Díky.
diff --git a/view/cs/request_notify_eml.tpl b/view/cs/request_notify_eml.tpl
index 74010c79c..d01b8ff27 100644
--- a/view/cs/request_notify_eml.tpl
+++ b/view/cs/request_notify_eml.tpl
@@ -1,15 +1,17 @@
-Milý/Milá $username,
+Dear {{$myname}},
-Právě jste obdržel/obdržela požadavek na spojení na webu $sitename
+You have just received a connection request at {{$sitename}}
-od '$requestor'.
+from '{{$requestor}}'.
-Můžete navštívit jeho/její profil na následujícím odkazu $url.
+You may visit their profile at {{$url}}.
-Přihlaste se na Váš web k zobrazení kompletní žádosti a odsouhlaste nebo ignorujte/zrušte tuto žádost.
+Please login to your site to view the complete introduction
+and approve or ignore/cancel the request.
-$siteurl
+{{$siteurl}}
-S pozdravem,
- $sitename administrátor
+Regards,
+
+ {{$sitename}} administrator
diff --git a/view/cs/update_fail_eml.tpl b/view/cs/update_fail_eml.tpl
new file mode 100644
index 000000000..a7df8fc2f
--- /dev/null
+++ b/view/cs/update_fail_eml.tpl
@@ -0,0 +1,13 @@
+Hey,
+I'm the web server at {{$sitename}};
+
+The Red Matrix developers released update {{$update}} recently,
+but when I tried to install it, something went terribly wrong.
+This needs to be fixed soon and it requires human intervention.
+Please contact a Red developer if you can not figure out how to
+fix it on your own. My database might be invalid.
+
+The error message is '{{$error}}'.
+
+Apologies for the inconvenience,
+ your web server at {{$siteurl}} \ No newline at end of file
diff --git a/view/css/mod_manage.css b/view/css/mod_manage.css
index 51f5062ae..58f9d3159 100644
--- a/view/css/mod_manage.css
+++ b/view/css/mod_manage.css
@@ -1,8 +1,8 @@
#channels-selected {
color: #666666;
font-size: 1.2em;
- margin-top: 20px;
- margin-bottom: 10px;
+ width: 120px;
+ margin: 20px auto 10px auto;
}
#channels-desc {
@@ -12,12 +12,23 @@
margin-bottom: 20px;
}
+#selected-channel {
+ width: 200px;
+ margin: 0px auto 0px auto;
+}
+
+#selected-channel .channel-selection {
+ clear: both;
+ width: 120px;
+ margin: 0px auto 0px auto;
+}
+
.channel-selection-default {
font-size: 0.8em;
margin-bottom: 10px;
}
-.channel-selection {
+#all-channels .channel-selection {
width: 120px;
float: left;
}
diff --git a/view/css/mod_thing.css b/view/css/mod_thing.css
new file mode 100644
index 000000000..2a2ba7c92
--- /dev/null
+++ b/view/css/mod_thing.css
@@ -0,0 +1,27 @@
+
+
+.thing-profile #contact-profile-selector {
+ margin-left: 0;
+}
+
+.thing-verb-label {
+ margin-top: 15px;
+}
+
+.thing-verb {
+ margin-bottom: 15px;
+}
+
+.thing-label {
+ float: left;
+ width: 250px;
+}
+
+.thing-input {
+ float: left;
+ margin-bottom: 15px;
+}
+
+.thing-field-end {
+ clear: both;
+} \ No newline at end of file
diff --git a/view/de/follow_notify_eml.tpl b/view/de/follow_notify_eml.tpl
index a866a08a2..ba07b19da 100644
--- a/view/de/follow_notify_eml.tpl
+++ b/view/de/follow_notify_eml.tpl
@@ -1,14 +1,14 @@
-Hallo $[myname],
+Dear {{$myname}},
-Du hast einen neuen Anhänger auf $[sitename] - '$[requestor]'.
+You have a new follower at {{$sitename}} - '{{$requestor}}'.
-Du kannst das Profil unter $[url] besuchen.
+You may visit their profile at {{$url}}.
-Bitte melde dich an um die Anfrage zu bestätigen oder sie zu ignorieren bzw. abzulehnen.
+Please login to your site to approve or ignore/cancel the request.
-$[siteurl]
+{{$siteurl}}
-beste Grüße,
+Regards,
- $[sitename] Administrator \ No newline at end of file
+ {{$sitename}} administrator
diff --git a/view/de/friend_complete_eml.tpl b/view/de/friend_complete_eml.tpl
index 39f2725ea..1c647b994 100644
--- a/view/de/friend_complete_eml.tpl
+++ b/view/de/friend_complete_eml.tpl
@@ -1,22 +1,22 @@
-Hallo $[username],
+Dear {{$username}},
- Großartige Neuigkeiten... '$[fn]' auf '$[dfrn_url]' hat
-deine Kontaktanfrage auf '$[sitename]' bestätigt.
+ Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
-Ihr seid nun beidseitige Freunde und könnt Statusmitteilungen, Bilder und Emails
-ohne Einschränkungen austauschen.
+You are now mutual friends and may exchange status updates, photos, and email
+without restriction.
-Rufe deine 'Kontakte' Seite auf $[sitename] auf, wenn du
-Änderungen an diesem Kontakt vornehmen willst.
+Please visit your 'Connnections' page at {{$sitename}} if you wish to make
+any changes to this relationship.
-$[siteurl]
+{{$siteurl}}
-[Du könntest z.B. ein spezielles Profil anlegen, das Informationen enthält,
-die nicht für die breite Öffentlichkeit sichtbar sein sollen und es für '$[fn]' zum Betrachten freigeben].
+[For instance, you may create a separate profile with information that is not
+available to the general public - and assign viewing rights to '{{$fn}}'].
-Beste Grüße,
+Sincerely,
- $[sitename] Administrator
+ {{$sitename}} Administrator
- \ No newline at end of file
+
diff --git a/view/de/htconfig.tpl b/view/de/htconfig.tpl
new file mode 100644
index 000000000..493cb5d00
--- /dev/null
+++ b/view/de/htconfig.tpl
@@ -0,0 +1,70 @@
+<?php
+
+// Set the following for your MySQL installation
+// Copy or rename this file to .htconfig.php
+
+$db_host = '{{$dbhost}}';
+$db_port = '{{$dbport}}';
+$db_user = '{{$dbuser}}';
+$db_pass = '{{$dbpass}}';
+$db_data = '{{$dbdata}}';
+
+/*
+ * Notice: Many of the following settings will be available in the admin panel
+ * after a successful site install. Once they are set in the admin panel, they
+ * are stored in the DB - and the DB setting will over-ride any corresponding
+ * setting in this file
+ *
+ * The command-line tool util/config is able to query and set the DB items
+ * directly if for some reason the admin panel is not available and a system
+ * setting requires modification.
+ *
+ */
+
+
+// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
+// It can be changed later and only applies to timestamps for anonymous viewers.
+
+$default_timezone = '{{$timezone}}';
+
+// What is your site name?
+
+$a->config['system']['baseurl'] = '{{$siteurl}}';
+$a->config['system']['sitename'] = "Red Matrix";
+$a->config['system']['location_hash'] = '{{$site_id}}';
+
+// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
+// Be certain to create your own personal account before setting
+// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
+// the registration page. REGISTER_APPROVE requires you set 'admin_email'
+// to the email address of an already registered person who can authorise
+// and/or approve/deny the request.
+
+$a->config['system']['register_policy'] = REGISTER_OPEN;
+$a->config['system']['register_text'] = '';
+$a->config['system']['admin_email'] = '{{$adminmail}}';
+
+// Maximum size of an imported message, 0 is unlimited
+
+$a->config['system']['max_import_size'] = 200000;
+
+// maximum size of uploaded photos
+
+$a->config['system']['maximagesize'] = 800000;
+
+// Location of PHP command line processor
+
+$a->config['system']['php_path'] = '{{$phpath}}';
+
+// Configure how we communicate with directory servers.
+// DIRECTORY_MODE_NORMAL = directory client, we will find a directory
+// DIRECTORY_MODE_SECONDARY = caching directory or mirror
+// DIRECTORY_MODE_PRIMARY = main directory server
+// DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services
+
+$a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;
+
+// default system theme
+
+$a->config['system']['theme'] = 'redbasic';
+
diff --git a/view/de/intro_complete_eml.tpl b/view/de/intro_complete_eml.tpl
index 9d47a6fb1..2c2428d68 100644
--- a/view/de/intro_complete_eml.tpl
+++ b/view/de/intro_complete_eml.tpl
@@ -1,22 +1,22 @@
-Hallo $[username],
+Dear {{$username}},
- '$[fn]' auf '$[dfrn_url]' hat deine Verbindungsanfrage
-auf '$[sitename]' akzeptiert.
+ '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
- '$[fn]' hat entschieden Dich als "Fan" zu akzeptieren, was zu einigen
-Einschränkungen bei der Kommunikation führt - wie zB das Schreiben von privaten Nachrichten und einige Profil
-Interaktionen. Sollte dies ein Promi-Konto oder eine Forum-Seite sein, werden die Einstellungen
-automatisch angewandt.
+ '{{$fn}}' has chosen to accept you a "fan", which restricts
+some forms of communication - such as private messaging and some profile
+interactions. If this is a celebrity or community page, these settings were
+applied automatically.
- '$[fn]' kann wählen, ob die Freundschaft in eine beidseitige oder alles erlaubende
-Beziehung in der Zukunft erweitert wird.
+ '{{$fn}}' may choose to extend this into a two-way or more permissive
+relationship in the future.
- Du empfängst ab sofort die öffentlichen Beiträge von '$[fn]',
-auf deiner "Netzwerk" Seite.
+ You will start receiving public status updates from '{{$fn}}',
+which will appear on your 'Matrix' page at
-$[siteurl]
+{{$siteurl}}
-Beste Grüße,
+Sincerely,
- $[sitename] Administrator \ No newline at end of file
+ {{$sitename}} Administrator
diff --git a/view/de/lostpass_eml.tpl b/view/de/lostpass_eml.tpl
index 9f71bbfb1..3b79d2791 100644
--- a/view/de/lostpass_eml.tpl
+++ b/view/de/lostpass_eml.tpl
@@ -1,32 +1,32 @@
-Hallo $[username],
- Auf $[sitename] wurde eine Anfrage zum Zurücksetzen deines
-Passworts empfangen. Um diese zu bestätigen folge bitte dem Link
-weiter unten oder kopiere ihn in die Adressleiste deines Browsers.
+Dear {{$username}},
+ A request was recently received at {{$sitename}} to reset your account
+password. In order to confirm this request, please select the verification link
+below or paste it into your web browser address bar.
-Wenn du die Anfrage NICHT gesendet haben solltest, dann IGNORIERE
-bitte diese Mail und den Link.
+If you did NOT request this change, please DO NOT follow the link
+provided and ignore and/or delete this email.
-Dein Passwort wird nicht geändert werden solange wir nicht überprüfen
-konnten, dass du die Anfrage gestellt hast.
+Your password will not be changed unless we can verify that you
+issued this request.
-Folge diesem Link um deine Identität zu verifizieren:
+Follow this link to verify your identity:
-$[reset_link]
+{{$reset_link}}
-Du wirst eine weitere Email erhalten mit dem neuen Passwort.
+You will then receive a follow-up message containing the new password.
-Das Passwort kannst du anschließend wie gewohnt in deinen Account Einstellungen ändern.
+You may change that password from your account settings page after logging in.
-Die Login-Details sind die folgenden:
+The login details are as follows:
-Adresse der Seite: $[siteurl]
-Login Name: $[email]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
-Grüße,
- $[sitename] Administrator
+Sincerely,
+ {{$sitename}} Administrator
- \ No newline at end of file
+
diff --git a/view/de/passchanged_eml.tpl b/view/de/passchanged_eml.tpl
index dcabbbe49..0d94be3c2 100644
--- a/view/de/passchanged_eml.tpl
+++ b/view/de/passchanged_eml.tpl
@@ -1,20 +1,20 @@
-Hallo $[username],
- Dein Passwort wurde wie gewünscht geändert. Bitte bewahre diese
-Informationen in deinen Unterlagen auf (oder ändere dein Passwort sofort
-in etwas, was du dir merken kannst).
+Dear {{$username}},
+ Your password has been changed as requested. Please retain this
+information for your records (or change your password immediately to
+something that you will remember).
-Deine Login Daten wurden wie folgt geändert:
+Your login details are as follows:
-Adresse der Seite: $[siteurl]
-Login Name: $[email]
-Passwort: $[new_password]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+Password: {{$new_password}}
-Du kannst dein Passwort unter deinen Account-Einstellungen ändern, wenn du angemeldet bist.
+You may change that password from your account settings page after logging in.
-Beste Grüße,
- $[sitename] Administrator
+Sincerely,
+ {{$sitename}} Administrator
- \ No newline at end of file
+
diff --git a/view/de/register_open_eml.tpl b/view/de/register_open_eml.tpl
index 4392e8da2..4b397201c 100644
--- a/view/de/register_open_eml.tpl
+++ b/view/de/register_open_eml.tpl
@@ -1,34 +1,19 @@
-Hallo $[username],
- Danke für deine Anmeldung auf $[sitename]. Dein Account wurde angelegt.
-Hier die Login Details:
+An account has been created at {{$sitename}} for this email address.
+The login details are as follows:
+Site Location: {{$siteurl}}
+Login: {{$email}}
+Password: (the password which was provided during registration)
-Adresse der Seite: $[siteurl]
-Login Name: $[email]
-Passwort: $[password]
+If this account was created without your knowledge and is not desired, you may
+visit this site and reset the password. This will allow you to remove the
+account from the links on the Settings page, and we
+apologise for any inconvenience.
-Du kannst und solltest das Passwort in den "Einstellungen" zu deinem Account ändern,
-nachdem du dich erstmalig eingeloggt hast.
+Thank you and welcome to {{$sitename}}.
-Bitte nimm dir einige Augenblicke Zeit, um die anderen Einstellungen auf der Seite kennenzulernen und zu überprüfen.
+Sincerely,
+ {{$sitename}} Administrator
-Eventuell möchtest du außerdem einige grundlegende Informationen in deinem Standardprofil (auf der "Profile" Seite) eintragen,
-damit andere Leute dich einfacher finden können.
-
-Wir empfehlen den kompletten Namen anzugeben, ein eigenes Profilbild hochzuladen,
-sowie ein paar "Profil-Schlüsselwörter" einzutragen (um leichter Menschen mit gleichen Interessen zu finden) - und
-vielleicht auch in welchen Land du lebst; falls du nicht konkreter
-werden möchtest.
-
-Wir respektieren dein Recht auf Privatsphäre und keine dieser Angaben ist notwendig.
-Wenn du ganz neu bei Friendica bist und niemanden kennst, werden sie dir aber helfen
-ein paar neue und interessante Freunde zu finden.
-
-
-Danke und willkommen auf $[sitename].
-
-Beste Grüße,
- $[sitename] Administrator
-
- \ No newline at end of file
+
diff --git a/view/de/register_verify_eml.tpl b/view/de/register_verify_eml.tpl
index 8f25f5c36..85d9a12d3 100644
--- a/view/de/register_verify_eml.tpl
+++ b/view/de/register_verify_eml.tpl
@@ -1,25 +1,25 @@
-Eine Neuanmeldung auf $[sitename] benötigt
-deine Aufmerksamkeit.
+A new user registration request was received at {{$sitename}} which requires
+your approval.
-Die Login-Einzelheiten sind die folgenden:
+The login details are as follows:
-Kompletter Name: $[username]
-Adresse der Seite: $[siteurl]
-Login Name: $[email]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+IP Address: {{$details}}
+To approve this request please visit the following link:
-Um die Anfrage zu bestätigen besuche bitte:
+{{$siteurl}}/regmod/allow/{{$hash}}
-$[siteurl]/regmod/allow/$[hash]
+To deny the request and remove the account, please visit:
-Um die Anfrage abzulehnen und den Account zu löschen besuche bitte:
+{{$siteurl}}/regmod/deny/{{$hash}}
-$[siteurl]/regmod/deny/$[hash]
+Thank you.
-Danke!
diff --git a/view/de/request_notify_eml.tpl b/view/de/request_notify_eml.tpl
index 057044e8c..d01b8ff27 100644
--- a/view/de/request_notify_eml.tpl
+++ b/view/de/request_notify_eml.tpl
@@ -1,17 +1,17 @@
-Hallo $[myname],
+Dear {{$myname}},
-du hast eine Kontaktanfrage von '$[requestor]' auf $[sitename]
+You have just received a connection request at {{$sitename}}
-erhalten.
+from '{{$requestor}}'.
-Du kannst sein/ihr Profil unter $[url] finden.
+You may visit their profile at {{$url}}.
-Bitte melde dich an um die komplette Vorstellung einzusehen
-und die Anfrage zu bestätigen oder zu ignorieren oder abzulehnen.
+Please login to your site to view the complete introduction
+and approve or ignore/cancel the request.
-$[siteurl]
+{{$siteurl}}
-Beste Grüße,
+Regards,
- $[sitename] Administrator \ No newline at end of file
+ {{$sitename}} administrator
diff --git a/view/de/update_fail_eml.tpl b/view/de/update_fail_eml.tpl
index cfb55e240..a7df8fc2f 100644
--- a/view/de/update_fail_eml.tpl
+++ b/view/de/update_fail_eml.tpl
@@ -1,11 +1,13 @@
-Hi,
-ich bin $sitename.
-Die friendica Entwickler haben jüngst Update $update veröffentlicht,
-aber als ich versucht habe es zu installieren ist etwas schrecklich schief gegangen.
-Das sollte schnellst möglichst behoben werden und ich kann das nicht alleine machen.
-Bitte wende dich an einen friendica Entwickler, falls du mir nicht alleine helfen kannst. Meine Datenbank könnte unbrauchbar sein.
+Hey,
+I'm the web server at {{$sitename}};
+
+The Red Matrix developers released update {{$update}} recently,
+but when I tried to install it, something went terribly wrong.
+This needs to be fixed soon and it requires human intervention.
+Please contact a Red developer if you can not figure out how to
+fix it on your own. My database might be invalid.
-Die Fehlermeldung lautet '$error'.
+The error message is '{{$error}}'.
-Tut mir Leid!
-Deine friendica Instanz auf $siteurl \ No newline at end of file
+Apologies for the inconvenience,
+ your web server at {{$siteurl}} \ No newline at end of file
diff --git a/view/en/follow_notify_eml.tpl b/view/en/follow_notify_eml.tpl
index 917024b84..ba07b19da 100644
--- a/view/en/follow_notify_eml.tpl
+++ b/view/en/follow_notify_eml.tpl
@@ -1,14 +1,14 @@
-Dear $[myname],
+Dear {{$myname}},
-You have a new follower at $[sitename] - '$[requestor]'.
+You have a new follower at {{$sitename}} - '{{$requestor}}'.
-You may visit their profile at $[url].
+You may visit their profile at {{$url}}.
Please login to your site to approve or ignore/cancel the request.
-$[siteurl]
+{{$siteurl}}
Regards,
- $[sitename] administrator
+ {{$sitename}} administrator
diff --git a/view/en/friend_complete_eml.tpl b/view/en/friend_complete_eml.tpl
index 89f578388..1c647b994 100644
--- a/view/en/friend_complete_eml.tpl
+++ b/view/en/friend_complete_eml.tpl
@@ -1,22 +1,22 @@
-Dear $[username],
+Dear {{$username}},
- Great news... '$[fn]' at '$[dfrn_url]' has accepted
-your connection request at '$[sitename]'.
+ Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
You are now mutual friends and may exchange status updates, photos, and email
without restriction.
-Please visit your 'Contacts' page at $[sitename] if you wish to make
+Please visit your 'Connnections' page at {{$sitename}} if you wish to make
any changes to this relationship.
-$[siteurl]
+{{$siteurl}}
[For instance, you may create a separate profile with information that is not
-available to the general public - and assign viewing rights to '$[fn]'].
+available to the general public - and assign viewing rights to '{{$fn}}'].
Sincerely,
- $[sitename] Administrator
+ {{$sitename}} Administrator
diff --git a/view/en/htconfig.tpl b/view/en/htconfig.tpl
index 6f22f8476..493cb5d00 100644
--- a/view/en/htconfig.tpl
+++ b/view/en/htconfig.tpl
@@ -3,10 +3,11 @@
// Set the following for your MySQL installation
// Copy or rename this file to .htconfig.php
-$db_host = '$dbhost';
-$db_user = '$dbuser';
-$db_pass = '$dbpass';
-$db_data = '$dbdata';
+$db_host = '{{$dbhost}}';
+$db_port = '{{$dbport}}';
+$db_user = '{{$dbuser}}';
+$db_pass = '{{$dbpass}}';
+$db_data = '{{$dbdata}}';
/*
* Notice: Many of the following settings will be available in the admin panel
@@ -24,13 +25,13 @@ $db_data = '$dbdata';
// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
// It can be changed later and only applies to timestamps for anonymous viewers.
-$default_timezone = '$timezone';
+$default_timezone = '{{$timezone}}';
// What is your site name?
-$a->config['system']['baseurl'] = '$siteurl';
+$a->config['system']['baseurl'] = '{{$siteurl}}';
$a->config['system']['sitename'] = "Red Matrix";
-$a->config['system']['location_hash'] = '$site_id';
+$a->config['system']['location_hash'] = '{{$site_id}}';
// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
// Be certain to create your own personal account before setting
@@ -41,7 +42,7 @@ $a->config['system']['location_hash'] = '$site_id';
$a->config['system']['register_policy'] = REGISTER_OPEN;
$a->config['system']['register_text'] = '';
-$a->config['system']['admin_email'] = '$adminmail';
+$a->config['system']['admin_email'] = '{{$adminmail}}';
// Maximum size of an imported message, 0 is unlimited
@@ -53,7 +54,7 @@ $a->config['system']['maximagesize'] = 800000;
// Location of PHP command line processor
-$a->config['system']['php_path'] = '$phpath';
+$a->config['system']['php_path'] = '{{$phpath}}';
// Configure how we communicate with directory servers.
// DIRECTORY_MODE_NORMAL = directory client, we will find a directory
diff --git a/view/en/intro_complete_eml.tpl b/view/en/intro_complete_eml.tpl
index cd78b2a15..2c2428d68 100644
--- a/view/en/intro_complete_eml.tpl
+++ b/view/en/intro_complete_eml.tpl
@@ -1,22 +1,22 @@
-Dear $[username],
+Dear {{$username}},
- '$[fn]' at '$[dfrn_url]' has accepted
-your connection request at '$[sitename]'.
+ '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
- '$[fn]' has chosen to accept you a "fan", which restricts
+ '{{$fn}}' has chosen to accept you a "fan", which restricts
some forms of communication - such as private messaging and some profile
interactions. If this is a celebrity or community page, these settings were
applied automatically.
- '$[fn]' may choose to extend this into a two-way or more permissive
+ '{{$fn}}' may choose to extend this into a two-way or more permissive
relationship in the future.
- You will start receiving public status updates from '$[fn]',
-which will appear on your 'Network' page at
+ You will start receiving public status updates from '{{$fn}}',
+which will appear on your 'Matrix' page at
-$[siteurl]
+{{$siteurl}}
Sincerely,
- $[sitename] Administrator
+ {{$sitename}} Administrator
diff --git a/view/en/lostpass_eml.tpl b/view/en/lostpass_eml.tpl
index 1330caa12..3b79d2791 100644
--- a/view/en/lostpass_eml.tpl
+++ b/view/en/lostpass_eml.tpl
@@ -1,6 +1,6 @@
-Dear $[username],
- A request was recently received at $[sitename] to reset your account
+Dear {{$username}},
+ A request was recently received at {{$sitename}} to reset your account
password. In order to confirm this request, please select the verification link
below or paste it into your web browser address bar.
@@ -12,7 +12,7 @@ issued this request.
Follow this link to verify your identity:
-$[reset_link]
+{{$reset_link}}
You will then receive a follow-up message containing the new password.
@@ -20,13 +20,13 @@ You may change that password from your account settings page after logging in.
The login details are as follows:
-Site Location: $[siteurl]
-Login Name: $[email]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
Sincerely,
- $[sitename] Administrator
+ {{$sitename}} Administrator
diff --git a/view/en/passchanged_eml.tpl b/view/en/passchanged_eml.tpl
index e7cc0e2dc..0d94be3c2 100644
--- a/view/en/passchanged_eml.tpl
+++ b/view/en/passchanged_eml.tpl
@@ -1,5 +1,5 @@
-Dear $[username],
+Dear {{$username}},
Your password has been changed as requested. Please retain this
information for your records (or change your password immediately to
something that you will remember).
@@ -7,14 +7,14 @@ something that you will remember).
Your login details are as follows:
-Site Location: $[siteurl]
-Login Name: $[email]
-Password: $[new_password]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+Password: {{$new_password}}
You may change that password from your account settings page after logging in.
Sincerely,
- $[sitename] Administrator
+ {{$sitename}} Administrator
diff --git a/view/en/register_open_eml.tpl b/view/en/register_open_eml.tpl
index 4191f803b..4b397201c 100644
--- a/view/en/register_open_eml.tpl
+++ b/view/en/register_open_eml.tpl
@@ -1,9 +1,9 @@
-An account has been created at $[sitename] for this email address.
+An account has been created at {{$sitename}} for this email address.
The login details are as follows:
-Site Location: $[siteurl]
-Login: $[email]
+Site Location: {{$siteurl}}
+Login: {{$email}}
Password: (the password which was provided during registration)
If this account was created without your knowledge and is not desired, you may
@@ -11,9 +11,9 @@ visit this site and reset the password. This will allow you to remove the
account from the links on the Settings page, and we
apologise for any inconvenience.
-Thank you and welcome to $[sitename].
+Thank you and welcome to {{$sitename}}.
Sincerely,
- $[sitename] Administrator
+ {{$sitename}} Administrator
diff --git a/view/en/register_verify_eml.tpl b/view/en/register_verify_eml.tpl
index c23de6a2a..85d9a12d3 100644
--- a/view/en/register_verify_eml.tpl
+++ b/view/en/register_verify_eml.tpl
@@ -1,24 +1,24 @@
-A new user registration request was received at $[sitename] which requires
+A new user registration request was received at {{$sitename}} which requires
your approval.
The login details are as follows:
-Site Location: $[siteurl]
-Login Name: $[email]
-IP Address: $[details]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+IP Address: {{$details}}
To approve this request please visit the following link:
-$[siteurl]/regmod/allow/$[hash]
+{{$siteurl}}/regmod/allow/{{$hash}}
To deny the request and remove the account, please visit:
-$[siteurl]/regmod/deny/$[hash]
+{{$siteurl}}/regmod/deny/{{$hash}}
Thank you.
diff --git a/view/en/request_notify_eml.tpl b/view/en/request_notify_eml.tpl
index ad118a673..d01b8ff27 100644
--- a/view/en/request_notify_eml.tpl
+++ b/view/en/request_notify_eml.tpl
@@ -1,17 +1,17 @@
-Dear $[myname],
+Dear {{$myname}},
-You have just received a connection request at $[sitename]
+You have just received a connection request at {{$sitename}}
-from '$[requestor]'.
+from '{{$requestor}}'.
-You may visit their profile at $[url].
+You may visit their profile at {{$url}}.
Please login to your site to view the complete introduction
and approve or ignore/cancel the request.
-$[siteurl]
+{{$siteurl}}
Regards,
- $[sitename] administrator
+ {{$sitename}} administrator
diff --git a/view/en/update_fail_eml.tpl b/view/en/update_fail_eml.tpl
index 548e1a0df..a7df8fc2f 100644
--- a/view/en/update_fail_eml.tpl
+++ b/view/en/update_fail_eml.tpl
@@ -1,11 +1,13 @@
Hey,
-I'm $sitename;
-The friendica developers released update $update recently,
+I'm the web server at {{$sitename}};
+
+The Red Matrix developers released update {{$update}} recently,
but when I tried to install it, something went terribly wrong.
-This needs to be fixed soon and I can't do it alone. Please contact a
-friendica developer if you can not help me on your own. My database might be invalid.
+This needs to be fixed soon and it requires human intervention.
+Please contact a Red developer if you can not figure out how to
+fix it on your own. My database might be invalid.
-The error message is '$error'.
+The error message is '{{$error}}'.
-I'm sorry,
-your friendica server at $siteurl \ No newline at end of file
+Apologies for the inconvenience,
+ your web server at {{$siteurl}} \ No newline at end of file
diff --git a/view/eo/follow_notify_eml.tpl b/view/eo/follow_notify_eml.tpl
index e76453ac1..ba07b19da 100644
--- a/view/eo/follow_notify_eml.tpl
+++ b/view/eo/follow_notify_eml.tpl
@@ -1,14 +1,14 @@
-Kara $[myname],
+Dear {{$myname}},
-Vi havas novan abonanton ĉe $[sitename] - '$[requestor]'.
+You have a new follower at {{$sitename}} - '{{$requestor}}'.
-Vi povas viziti ilian profilon ĉe $[url].
+You may visit their profile at {{$url}}.
-Bonvolu ensaluti en vian retejon por aprobi au malaprobi/nuligi la peton.
+Please login to your site to approve or ignore/cancel the request.
-$[siteurl]
+{{$siteurl}}
-Salutoj,
+Regards,
- [$sitename] administranto \ No newline at end of file
+ {{$sitename}} administrator
diff --git a/view/eo/friend_complete_eml.tpl b/view/eo/friend_complete_eml.tpl
index f429ca450..1c647b994 100644
--- a/view/eo/friend_complete_eml.tpl
+++ b/view/eo/friend_complete_eml.tpl
@@ -1,22 +1,22 @@
-Kara $[username],
+Dear {{$username}},
- Boegaj novaĵoj.... '$[fn]' ĉe '$[dfrn_url]' aprobis
-vian kontaktpeton ĉe '$[sitename]'.
+ Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
-Vi nun estas reciprokaj amikoj kaj povas interÅanÄi afiÅojn, bildojn kaj mesaÄojn
-senkatene.
+You are now mutual friends and may exchange status updates, photos, and email
+without restriction.
-Bonvolu viziti vian 'Kontaktoj' paÄon ĉe $[sitename] se vi volas
-Åangi la rilaton.
+Please visit your 'Connnections' page at {{$sitename}} if you wish to make
+any changes to this relationship.
-$[siteurl]
+{{$siteurl}}
-[Ekzempe, vi eble volas krei disiÄintan profilon kun informoj kiu ne
-haveblas al la komuna publiko - kaj rajtigi '$[fn]' al Äi]'
+[For instance, you may create a separate profile with information that is not
+available to the general public - and assign viewing rights to '{{$fn}}'].
-Salutoj,
+Sincerely,
- $[sitename] administranto
+ {{$sitename}} Administrator
- \ No newline at end of file
+
diff --git a/view/eo/htconfig.tpl b/view/eo/htconfig.tpl
new file mode 100644
index 000000000..493cb5d00
--- /dev/null
+++ b/view/eo/htconfig.tpl
@@ -0,0 +1,70 @@
+<?php
+
+// Set the following for your MySQL installation
+// Copy or rename this file to .htconfig.php
+
+$db_host = '{{$dbhost}}';
+$db_port = '{{$dbport}}';
+$db_user = '{{$dbuser}}';
+$db_pass = '{{$dbpass}}';
+$db_data = '{{$dbdata}}';
+
+/*
+ * Notice: Many of the following settings will be available in the admin panel
+ * after a successful site install. Once they are set in the admin panel, they
+ * are stored in the DB - and the DB setting will over-ride any corresponding
+ * setting in this file
+ *
+ * The command-line tool util/config is able to query and set the DB items
+ * directly if for some reason the admin panel is not available and a system
+ * setting requires modification.
+ *
+ */
+
+
+// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
+// It can be changed later and only applies to timestamps for anonymous viewers.
+
+$default_timezone = '{{$timezone}}';
+
+// What is your site name?
+
+$a->config['system']['baseurl'] = '{{$siteurl}}';
+$a->config['system']['sitename'] = "Red Matrix";
+$a->config['system']['location_hash'] = '{{$site_id}}';
+
+// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
+// Be certain to create your own personal account before setting
+// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
+// the registration page. REGISTER_APPROVE requires you set 'admin_email'
+// to the email address of an already registered person who can authorise
+// and/or approve/deny the request.
+
+$a->config['system']['register_policy'] = REGISTER_OPEN;
+$a->config['system']['register_text'] = '';
+$a->config['system']['admin_email'] = '{{$adminmail}}';
+
+// Maximum size of an imported message, 0 is unlimited
+
+$a->config['system']['max_import_size'] = 200000;
+
+// maximum size of uploaded photos
+
+$a->config['system']['maximagesize'] = 800000;
+
+// Location of PHP command line processor
+
+$a->config['system']['php_path'] = '{{$phpath}}';
+
+// Configure how we communicate with directory servers.
+// DIRECTORY_MODE_NORMAL = directory client, we will find a directory
+// DIRECTORY_MODE_SECONDARY = caching directory or mirror
+// DIRECTORY_MODE_PRIMARY = main directory server
+// DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services
+
+$a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;
+
+// default system theme
+
+$a->config['system']['theme'] = 'redbasic';
+
diff --git a/view/eo/intro_complete_eml.tpl b/view/eo/intro_complete_eml.tpl
index 56a4fd880..2c2428d68 100644
--- a/view/eo/intro_complete_eml.tpl
+++ b/view/eo/intro_complete_eml.tpl
@@ -1,22 +1,22 @@
-Kara $[username],
+Dear {{$username}},
- '$[fn]' ĉe '$[dfrn_url]' akceptis
-vian kontaktpeton ĉe '$[sitename]'.
+ '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
- '$[fn]' elektis vin kiel "admiranto", kio malpermesas
-kelkajn komunikilojn - ekzemple privataj mesaÄoj kaj kelkaj profilrilataj
-agoj. Se tio estas konto de komunumo aÅ­ de eminentulo, tiaj agordoj
-aÅ­tomate aktiviÄis.
+ '{{$fn}}' has chosen to accept you a "fan", which restricts
+some forms of communication - such as private messaging and some profile
+interactions. If this is a celebrity or community page, these settings were
+applied automatically.
- '$[fn]' eblas konverti la rilaton al ambaÅ­direkta rilato
-aÅ­ apliki pli da permesoj.
+ '{{$fn}}' may choose to extend this into a two-way or more permissive
+relationship in the future.
- Vi ekricevos publikajn afiÅojn de '$[fn]',
-kiuj aperos sur via 'Reto' paÄo ĉe
+ You will start receiving public status updates from '{{$fn}}',
+which will appear on your 'Matrix' page at
-$[siteurl]
+{{$siteurl}}
-Salutoj,
+Sincerely,
- $[sitename] administranto \ No newline at end of file
+ {{$sitename}} Administrator
diff --git a/view/eo/lostpass_eml.tpl b/view/eo/lostpass_eml.tpl
index 26d1a3c23..3b79d2791 100644
--- a/view/eo/lostpass_eml.tpl
+++ b/view/eo/lostpass_eml.tpl
@@ -1,32 +1,32 @@
-Kara $[username],
- $[sitename] ricevis peton por rekomencigi vian pasvorton.
-Por konfirmi la peton, bonvolu klaki la sekvantan konfirmligilon
-aÅ­ alglui Äin en la adreskampo de via retumilo.
+Dear {{$username}},
+ A request was recently received at {{$sitename}} to reset your account
+password. In order to confirm this request, please select the verification link
+below or paste it into your web browser address bar.
-Se vi NE petis tiun ÅanÄon, bonvolu NE KLAKU la
-sekvantan ligilon kaj ignoru aÅ­ forvisu ĉi-mesaÄon.
+If you did NOT request this change, please DO NOT follow the link
+provided and ignore and/or delete this email.
-Ni ne ÅanÄu vian pasvorton se ni ne povas kontroli ĉu estas vi
-kiu petis la ÅanÄon.
+Your password will not be changed unless we can verify that you
+issued this request.
-Sekvu ĉi tion ligilon por konfirmi vian identecon:
+Follow this link to verify your identity:
-$[reset_link]
+{{$reset_link}}
-Poste, vi ricevos mesaÄon enhavonte la novan pasvorton.
+You will then receive a follow-up message containing the new password.
-Vi eblas Åangi la pasvorton ĉe viaj kontdoagordoj paÄo post ensaluti.
+You may change that password from your account settings page after logging in.
-La akreditaĵoj estas:
+The login details are as follows:
-Retejo:»$[siteurl]
-Salutnomo:»$[email]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
-Salutoj,
- $[sitename] administranto
+Sincerely,
+ {{$sitename}} Administrator
- \ No newline at end of file
+
diff --git a/view/eo/passchanged_eml.tpl b/view/eo/passchanged_eml.tpl
index ee775d5dd..0d94be3c2 100644
--- a/view/eo/passchanged_eml.tpl
+++ b/view/eo/passchanged_eml.tpl
@@ -1,20 +1,20 @@
-Kara $[username],
- Via pasvorto estas ÅanÄita laÅ­ via peto. Bonvolu konservi ĉi tiun
-informon (aÅ­ tuj ÅanÄu vian pasvorton al
-iu kiun vi povas memori).
+Dear {{$username}},
+ Your password has been changed as requested. Please retain this
+information for your records (or change your password immediately to
+something that you will remember).
-Jen viaj legitimaĵoj:
+Your login details are as follows:
-Retejo:»$[siteurl]
-Salutnomo:»$[email]
-Pasvorto:»$[new_password]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+Password: {{$new_password}}
-Vi eblas ÅanÄi la pasvorton ĉe la paÄo Agordoj -> Konto kiam vi estas ensalutita.
+You may change that password from your account settings page after logging in.
-Salutoj,
- $[sitename] administranto
+Sincerely,
+ {{$sitename}} Administrator
- \ No newline at end of file
+
diff --git a/view/eo/register_open_eml.tpl b/view/eo/register_open_eml.tpl
index 735ea9a4b..4b397201c 100644
--- a/view/eo/register_open_eml.tpl
+++ b/view/eo/register_open_eml.tpl
@@ -1,34 +1,19 @@
-Kara $[username],
- Dankon pro via registrado ĉe $[sitename]. Vian konton estas kreita.
-Jen viaj legitimaĵoj:
+An account has been created at {{$sitename}} for this email address.
+The login details are as follows:
+Site Location: {{$siteurl}}
+Login: {{$email}}
+Password: (the password which was provided during registration)
-Retejo:»$[siteurl]
-Salutnomo:»$[email]
-Pasvorto:»$[password]
+If this account was created without your knowledge and is not desired, you may
+visit this site and reset the password. This will allow you to remove the
+account from the links on the Settings page, and we
+apologise for any inconvenience.
-Vi eblas ÅanÄi la pasvorton ĉe la paÄo Agordoj -> Konto kiam vi estas
-ensalutita.
+Thank you and welcome to {{$sitename}}.
-Bonvolu preni kelkajn momentoj por kontroli la aliajn kontaktagordojn.
+Sincerely,
+ {{$sitename}} Administrator
-Eble vi volas aldoni kelkajn bazajn informojn al via profilo
-(ĉe la paÄo "Profiloj"), tial vi troveblas al aliaj uzantoj.
-
-Ni rekomendas agordi vian plenan noman, aldoni profilbildon,
-kaj aldojo kelkajn Ålosilvortojn (tre utila por trovi novajn amikojn) - kaj
-eble en kiu lando vi loÄas, se vi ne volas pli specifa
-ol tio.
-
-Ni tute respektas vian privatecon, kaj neniu de tiuj agordoj necesas.
-Se vi novas kaj ne konas iun ĉi tie, ili eble helpas
-vin trovi novajn kaj interesajn amikojn.
-
-
-Dankon kaj bonvenon ĉe $[sitename].
-
-Salutoj,
- $[sitename] administranto
-
- \ No newline at end of file
+
diff --git a/view/eo/register_verify_eml.tpl b/view/eo/register_verify_eml.tpl
index cc99ab4b6..85d9a12d3 100644
--- a/view/eo/register_verify_eml.tpl
+++ b/view/eo/register_verify_eml.tpl
@@ -1,25 +1,25 @@
-Nova peto por registrado atendas ĉe $[sitename]
-kaj bezonas vian aprobon.
+A new user registration request was received at {{$sitename}} which requires
+your approval.
-Jen la detaloj de la peto:
+The login details are as follows:
-Plena Nomo:»$[username]
-Retejo:»$[siteurl]
-Salutnomo:»$[email]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+IP Address: {{$details}}
+To approve this request please visit the following link:
-Aprobonte la peton, bonvolu klaki tiun ligilon:
+{{$siteurl}}/regmod/allow/{{$hash}}
-$[siteurl]/regmod/allow/$[hash]
+To deny the request and remove the account, please visit:
-Malaprobonte kaj forviÅonte la konton, bonvolu klaki:
+{{$siteurl}}/regmod/deny/{{$hash}}
-$[siteurl]/regmod/deny/$[hash]
+Thank you.
-Dankon!
diff --git a/view/eo/request_notify_eml.tpl b/view/eo/request_notify_eml.tpl
index eb91414b9..d01b8ff27 100644
--- a/view/eo/request_notify_eml.tpl
+++ b/view/eo/request_notify_eml.tpl
@@ -1,17 +1,17 @@
-Kara $[myname],
+Dear {{$myname}},
-Vi ĵus ricevis kontaktpeton ĉe $[sitename]
+You have just received a connection request at {{$sitename}}
-de '$[requestor]'.
+from '{{$requestor}}'.
-Vi eblas viziti la profilon de la petanto ĉe $[url].
+You may visit their profile at {{$url}}.
-Bonvolu ensaluti en la retejo por vidi la plenan prezenton
-kaj aprobi aÅ­ ignori/nuligi la peton.
+Please login to your site to view the complete introduction
+and approve or ignore/cancel the request.
-$[siteurl]
+{{$siteurl}}
-Salutoj,
+Regards,
- $[sitename] administranto \ No newline at end of file
+ {{$sitename}} administrator
diff --git a/view/eo/update_fail_eml.tpl b/view/eo/update_fail_eml.tpl
index f7e0d8bce..a7df8fc2f 100644
--- a/view/eo/update_fail_eml.tpl
+++ b/view/eo/update_fail_eml.tpl
@@ -1,11 +1,13 @@
-Saluton!
-Mi estas $sitename.
-La programistoj de Frienda eldonis Äisdatigon $update antaÅ­ ne longe,
-sed kiam mi provis instali Äin, io terure malsukcesis.
-Tio tuj bezonas riparon kaj mi ne povas fari Äin sole. Bonvolu kontakti
-Friendica programistion se vi ne povas helpi vin mem. Mia datumbazo eble ne plu validas.
+Hey,
+I'm the web server at {{$sitename}};
+
+The Red Matrix developers released update {{$update}} recently,
+but when I tried to install it, something went terribly wrong.
+This needs to be fixed soon and it requires human intervention.
+Please contact a Red developer if you can not figure out how to
+fix it on your own. My database might be invalid.
-La erarmesaÄo estas '$error'.
+The error message is '{{$error}}'.
-Mi bedaÅ­ras,
-via Friendica servilo ĉe $siteurl \ No newline at end of file
+Apologies for the inconvenience,
+ your web server at {{$siteurl}} \ No newline at end of file
diff --git a/view/es/follow_notify_eml.tpl b/view/es/follow_notify_eml.tpl
index 17bd2c01c..ba07b19da 100644
--- a/view/es/follow_notify_eml.tpl
+++ b/view/es/follow_notify_eml.tpl
@@ -1,13 +1,14 @@
-Estimado/a $myname,
+Dear {{$myname}},
-Tienes un nuevo seguidor en $sitename - '$requestor'.
+You have a new follower at {{$sitename}} - '{{$requestor}}'.
-Puedes visitar su perfil en $url.
+You may visit their profile at {{$url}}.
-Inicie sesión en su sitio para aprobar o rechazar/cancelar la solicitud.
+Please login to your site to approve or ignore/cancel the request.
-$siteurl
+{{$siteurl}}
+Regards,
- $sitename
+ {{$sitename}} administrator
diff --git a/view/es/friend_complete_eml.tpl b/view/es/friend_complete_eml.tpl
index 0dc867efd..1c647b994 100644
--- a/view/es/friend_complete_eml.tpl
+++ b/view/es/friend_complete_eml.tpl
@@ -1,19 +1,22 @@
-Estimado/a $username,
+Dear {{$username}},
- Grandes noticias... '$fn' a '$dfrn_url' ha aceptado tu solicitud de conexión en '$sitename'.
+ Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
-Ahora sois amigos mutuos y podreis intercambiar actualizaciones de estado, fotos, y correo electrónico
-sin restricción alguna.
+You are now mutual friends and may exchange status updates, photos, and email
+without restriction.
-Visita tu página de 'Contactos' en $sitename si desear realizar cualquier cambio en esta relación.
+Please visit your 'Connnections' page at {{$sitename}} if you wish to make
+any changes to this relationship.
-$siteurl
+{{$siteurl}}
-[Por ejemplo, puedes crear un perfil independiente con información que no está disponible al público en general
-- y asignar derechos de visualización a '$fn'].
+[For instance, you may create a separate profile with information that is not
+available to the general public - and assign viewing rights to '{{$fn}}'].
+Sincerely,
- $sitename
+ {{$sitename}} Administrator
diff --git a/view/es/htconfig.tpl b/view/es/htconfig.tpl
new file mode 100644
index 000000000..493cb5d00
--- /dev/null
+++ b/view/es/htconfig.tpl
@@ -0,0 +1,70 @@
+<?php
+
+// Set the following for your MySQL installation
+// Copy or rename this file to .htconfig.php
+
+$db_host = '{{$dbhost}}';
+$db_port = '{{$dbport}}';
+$db_user = '{{$dbuser}}';
+$db_pass = '{{$dbpass}}';
+$db_data = '{{$dbdata}}';
+
+/*
+ * Notice: Many of the following settings will be available in the admin panel
+ * after a successful site install. Once they are set in the admin panel, they
+ * are stored in the DB - and the DB setting will over-ride any corresponding
+ * setting in this file
+ *
+ * The command-line tool util/config is able to query and set the DB items
+ * directly if for some reason the admin panel is not available and a system
+ * setting requires modification.
+ *
+ */
+
+
+// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
+// It can be changed later and only applies to timestamps for anonymous viewers.
+
+$default_timezone = '{{$timezone}}';
+
+// What is your site name?
+
+$a->config['system']['baseurl'] = '{{$siteurl}}';
+$a->config['system']['sitename'] = "Red Matrix";
+$a->config['system']['location_hash'] = '{{$site_id}}';
+
+// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
+// Be certain to create your own personal account before setting
+// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
+// the registration page. REGISTER_APPROVE requires you set 'admin_email'
+// to the email address of an already registered person who can authorise
+// and/or approve/deny the request.
+
+$a->config['system']['register_policy'] = REGISTER_OPEN;
+$a->config['system']['register_text'] = '';
+$a->config['system']['admin_email'] = '{{$adminmail}}';
+
+// Maximum size of an imported message, 0 is unlimited
+
+$a->config['system']['max_import_size'] = 200000;
+
+// maximum size of uploaded photos
+
+$a->config['system']['maximagesize'] = 800000;
+
+// Location of PHP command line processor
+
+$a->config['system']['php_path'] = '{{$phpath}}';
+
+// Configure how we communicate with directory servers.
+// DIRECTORY_MODE_NORMAL = directory client, we will find a directory
+// DIRECTORY_MODE_SECONDARY = caching directory or mirror
+// DIRECTORY_MODE_PRIMARY = main directory server
+// DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services
+
+$a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;
+
+// default system theme
+
+$a->config['system']['theme'] = 'redbasic';
+
diff --git a/view/es/intro_complete_eml.tpl b/view/es/intro_complete_eml.tpl
index a2964808c..2c2428d68 100644
--- a/view/es/intro_complete_eml.tpl
+++ b/view/es/intro_complete_eml.tpl
@@ -1,21 +1,22 @@
-Estimado/a $username,
+Dear {{$username}},
- '$fn' en '$dfrn_url' ha aceptado tu petición
-conexión a '$sitename'.
+ '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
- '$fn' ha optado por aceptarte come "fan", que restringe ciertas
-formas de comunicación, como mensajes privados y algunas interacciones
-con el perfil. Si eres una "celebridad" o una página de comunidad,
-estos ajustes se aplican automáticamente
+ '{{$fn}}' has chosen to accept you a "fan", which restricts
+some forms of communication - such as private messaging and some profile
+interactions. If this is a celebrity or community page, these settings were
+applied automatically.
- '$fn' puede optar por extender esto en una relación más permisiva
-en el futuro.
+ '{{$fn}}' may choose to extend this into a two-way or more permissive
+relationship in the future.
- Empezarás a recibir las actualizaciones públicas de estado de '$fn',
-que aparecerán en tu página "Red" en
+ You will start receiving public status updates from '{{$fn}}',
+which will appear on your 'Matrix' page at
-$siteurl
+{{$siteurl}}
+Sincerely,
- $sitename
+ {{$sitename}} Administrator
diff --git a/view/es/lostpass_eml.tpl b/view/es/lostpass_eml.tpl
index 607744bfe..3b79d2791 100644
--- a/view/es/lostpass_eml.tpl
+++ b/view/es/lostpass_eml.tpl
@@ -1,34 +1,32 @@
-Estimado/a $username,
-
- Se ha recibido una solicitud en $sitename recientemente para restablecer
-tu contraseña. Para confirmar esta solicitud, por favor seleccione el enlace de
-verificación debajo o cópialo y pégalo en la barra de direcciones de tu navegador.
+Dear {{$username}},
+ A request was recently received at {{$sitename}} to reset your account
+password. In order to confirm this request, please select the verification link
+below or paste it into your web browser address bar.
-Se NO has solicitado este cambio, por favor NO sigas el enlace indicado e ignora
-y/o elimina este mensaje.
+If you did NOT request this change, please DO NOT follow the link
+provided and ignore and/or delete this email.
-Tu contraseña no se cambiará a menos que podamos verificar que eres tu quien
-emitió esta solicitud.
+Your password will not be changed unless we can verify that you
+issued this request.
-Sigue este enlace para verificar tu identidad:
+Follow this link to verify your identity:
-$reset_link
+{{$reset_link}}
-A continuación recibirás un mensaje con la nueva contraseña.
+You will then receive a follow-up message containing the new password.
-Despues de accceder, podrás cambiar la contraseña de tu cuenta en la página de
-configuración.
+You may change that password from your account settings page after logging in.
-Los datos de acceso son los siguientes:
+The login details are as follows:
-Sitio: $siteurl
-Nombre: $email
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
-Saludos,
- La administración de $sitename
+Sincerely,
+ {{$sitename}} Administrator
diff --git a/view/es/passchanged_eml.tpl b/view/es/passchanged_eml.tpl
index 7959846b7..0d94be3c2 100644
--- a/view/es/passchanged_eml.tpl
+++ b/view/es/passchanged_eml.tpl
@@ -1,19 +1,20 @@
-Estimado/a $username,
+Dear {{$username}},
+ Your password has been changed as requested. Please retain this
+information for your records (or change your password immediately to
+something that you will remember).
- Tu contraseña ha sido modificada como has solicitado. Anota esta información
-(o cambia inmediatamente la contraseña con algo que recuerdes).
+Your login details are as follows:
-Tus datos de acceso son los siguientes:
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+Password: {{$new_password}}
-Sitio: $siteurl
-Nombre: $email
-Contraseña: $new_password
+You may change that password from your account settings page after logging in.
-Después de acceder puedes cambiar la contraseña desde la página de configuración de tu perfil.
-
- $sitename
+Sincerely,
+ {{$sitename}} Administrator
diff --git a/view/es/register_open_eml.tpl b/view/es/register_open_eml.tpl
index 7c7a90b40..4b397201c 100644
--- a/view/es/register_open_eml.tpl
+++ b/view/es/register_open_eml.tpl
@@ -1,21 +1,19 @@
-Estimado/a $username,
+An account has been created at {{$sitename}} for this email address.
+The login details are as follows:
- Gracias por registrarte en $sitename. Tu cuenta ha sido creada.
+Site Location: {{$siteurl}}
+Login: {{$email}}
+Password: (the password which was provided during registration)
+If this account was created without your knowledge and is not desired, you may
+visit this site and reset the password. This will allow you to remove the
+account from the links on the Settings page, and we
+apologise for any inconvenience.
-Los datos de acceso son los siguientes:
+Thank you and welcome to {{$sitename}}.
-Sitio: $siteurl
-Nombre: $email
-Contraseña: $password
-
-
-Después de acceder puedes cambiar tu contraseña en la página de "Configuración".
-
-Toma un momento para revisar las otras configuraciones de la cuenta en esa página.
-
-
-Gracias y bienvenido/a $sitename.
+Sincerely,
+ {{$sitename}} Administrator
diff --git a/view/es/register_verify_eml.tpl b/view/es/register_verify_eml.tpl
index 9f2cc4d9b..85d9a12d3 100644
--- a/view/es/register_verify_eml.tpl
+++ b/view/es/register_verify_eml.tpl
@@ -1,22 +1,25 @@
-Se ha recibido la solicitud de registro de un nuevo usuario en
-$sitename que requiere tu aprobación.
+A new user registration request was received at {{$sitename}} which requires
+your approval.
-Los datos de acceso son los siguientes:
-Nombre Completo: $username
-Sitio: $siteurl
-Nombre: $email
+The login details are as follows:
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+IP Address: {{$details}}
-Para aprobar esta solicitud, visita el siguiente enlace:
+To approve this request please visit the following link:
-$siteurl/regmod/allow/$hash
-Para denegar la solicitud y eliminar la cuenta, por favor visita:
+{{$siteurl}}/regmod/allow/{{$hash}}
-$siteurl/regmod/deny/$hash
+To deny the request and remove the account, please visit:
-Gracias.
+
+{{$siteurl}}/regmod/deny/{{$hash}}
+
+
+Thank you.
diff --git a/view/es/request_notify_eml.tpl b/view/es/request_notify_eml.tpl
index 6161c45c1..d01b8ff27 100644
--- a/view/es/request_notify_eml.tpl
+++ b/view/es/request_notify_eml.tpl
@@ -1,13 +1,17 @@
-Estimado/a $myname,
+Dear {{$myname}},
-Acabas de recibir una solicitud de conexión de '$requestor' en $sitename.
+You have just received a connection request at {{$sitename}}
-Puedes visitar su perfil en $url.
+from '{{$requestor}}'.
-Accede a tu sitio para ver la presentación completa y aceptar o ignorar/cancelar la solicitud.
+You may visit their profile at {{$url}}.
-$siteurl
+Please login to your site to view the complete introduction
+and approve or ignore/cancel the request.
+{{$siteurl}}
- $sitename
+Regards,
+
+ {{$sitename}} administrator
diff --git a/view/es/update_fail_eml.tpl b/view/es/update_fail_eml.tpl
new file mode 100644
index 000000000..a7df8fc2f
--- /dev/null
+++ b/view/es/update_fail_eml.tpl
@@ -0,0 +1,13 @@
+Hey,
+I'm the web server at {{$sitename}};
+
+The Red Matrix developers released update {{$update}} recently,
+but when I tried to install it, something went terribly wrong.
+This needs to be fixed soon and it requires human intervention.
+Please contact a Red developer if you can not figure out how to
+fix it on your own. My database might be invalid.
+
+The error message is '{{$error}}'.
+
+Apologies for the inconvenience,
+ your web server at {{$siteurl}} \ No newline at end of file
diff --git a/view/fr/follow_notify_eml.tpl b/view/fr/follow_notify_eml.tpl
index 10d0b343b..ba07b19da 100644
--- a/view/fr/follow_notify_eml.tpl
+++ b/view/fr/follow_notify_eml.tpl
@@ -1,14 +1,14 @@
-Cher(e) $myname,
+Dear {{$myname}},
-Une nouvelle personne - $requestor - vous suit désormais sur $sitename.
+You have a new follower at {{$sitename}} - '{{$requestor}}'.
-Vous pouvez consulter son profil sur $url.
+You may visit their profile at {{$url}}.
-Merci de vous connecter à votre site pour approuver ou ignorer/annuler cette demande.
+Please login to your site to approve or ignore/cancel the request.
-$siteurl
+{{$siteurl}}
-Cordialement,
+Regards,
- l'administrateur de $sitename
+ {{$sitename}} administrator
diff --git a/view/fr/friend_complete_eml.tpl b/view/fr/friend_complete_eml.tpl
index 1f2553b5e..1c647b994 100644
--- a/view/fr/friend_complete_eml.tpl
+++ b/view/fr/friend_complete_eml.tpl
@@ -1,23 +1,22 @@
-Cher(e) $username,
+Dear {{$username}},
- Grande nouvelle… « $fn » (de « $dfrn_url ») a accepté votre
-demande de connexion à « $sitename ».
+ Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
-Vous êtes désormais dans une relation réciproque et pouvez échanger des
-photos, des humeurs et des messages sans restriction.
+You are now mutual friends and may exchange status updates, photos, and email
+without restriction.
-Merci de visiter votre page « Contacts » sur $sitename pour toute
-modification que vous souhaiteriez apporter à cette relation.
+Please visit your 'Connnections' page at {{$sitename}} if you wish to make
+any changes to this relationship.
-$siteurl
+{{$siteurl}}
-[Par exemple, vous pouvez créer un profil spécifique avec des informations
-cachées au grand public - et ainsi assigner des droits privilégiés à
-« $fn »]/
+[For instance, you may create a separate profile with information that is not
+available to the general public - and assign viewing rights to '{{$fn}}'].
-Sincèremment,
+Sincerely,
- l'administrateur de $sitename
+ {{$sitename}} Administrator
diff --git a/view/fr/htconfig.tpl b/view/fr/htconfig.tpl
new file mode 100644
index 000000000..493cb5d00
--- /dev/null
+++ b/view/fr/htconfig.tpl
@@ -0,0 +1,70 @@
+<?php
+
+// Set the following for your MySQL installation
+// Copy or rename this file to .htconfig.php
+
+$db_host = '{{$dbhost}}';
+$db_port = '{{$dbport}}';
+$db_user = '{{$dbuser}}';
+$db_pass = '{{$dbpass}}';
+$db_data = '{{$dbdata}}';
+
+/*
+ * Notice: Many of the following settings will be available in the admin panel
+ * after a successful site install. Once they are set in the admin panel, they
+ * are stored in the DB - and the DB setting will over-ride any corresponding
+ * setting in this file
+ *
+ * The command-line tool util/config is able to query and set the DB items
+ * directly if for some reason the admin panel is not available and a system
+ * setting requires modification.
+ *
+ */
+
+
+// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
+// It can be changed later and only applies to timestamps for anonymous viewers.
+
+$default_timezone = '{{$timezone}}';
+
+// What is your site name?
+
+$a->config['system']['baseurl'] = '{{$siteurl}}';
+$a->config['system']['sitename'] = "Red Matrix";
+$a->config['system']['location_hash'] = '{{$site_id}}';
+
+// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
+// Be certain to create your own personal account before setting
+// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
+// the registration page. REGISTER_APPROVE requires you set 'admin_email'
+// to the email address of an already registered person who can authorise
+// and/or approve/deny the request.
+
+$a->config['system']['register_policy'] = REGISTER_OPEN;
+$a->config['system']['register_text'] = '';
+$a->config['system']['admin_email'] = '{{$adminmail}}';
+
+// Maximum size of an imported message, 0 is unlimited
+
+$a->config['system']['max_import_size'] = 200000;
+
+// maximum size of uploaded photos
+
+$a->config['system']['maximagesize'] = 800000;
+
+// Location of PHP command line processor
+
+$a->config['system']['php_path'] = '{{$phpath}}';
+
+// Configure how we communicate with directory servers.
+// DIRECTORY_MODE_NORMAL = directory client, we will find a directory
+// DIRECTORY_MODE_SECONDARY = caching directory or mirror
+// DIRECTORY_MODE_PRIMARY = main directory server
+// DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services
+
+$a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;
+
+// default system theme
+
+$a->config['system']['theme'] = 'redbasic';
+
diff --git a/view/fr/intro_complete_eml.tpl b/view/fr/intro_complete_eml.tpl
index f698cfeb7..2c2428d68 100644
--- a/view/fr/intro_complete_eml.tpl
+++ b/view/fr/intro_complete_eml.tpl
@@ -1,22 +1,22 @@
-Cher(e) $username,
+Dear {{$username}},
- « $fn » du site « $dfrn_url » a accepté votre
-demande de mise en relation sur « $sitename ».
+ '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
- « $fn » a décidé de vous accepter comme « fan », ce qui restreint
-certains de vos moyens de communication - tels que les messages privés et
-certaines interactions avec son profil. S'il s'agit de la page d'une
-célébrité et/ou communauté, ces réglages ont été définis automatiquement.
+ '{{$fn}}' has chosen to accept you a "fan", which restricts
+some forms of communication - such as private messaging and some profile
+interactions. If this is a celebrity or community page, these settings were
+applied automatically.
- « $fn » pourra choisir d'étendre votre relation à quelque chose de
-plus permissif dans l'avenir.
+ '{{$fn}}' may choose to extend this into a two-way or more permissive
+relationship in the future.
- Vous allez commencer à recevoir les mises à jour publiques du
-statut de « $fn », lesquelles apparaîtront sur votre page « Réseau » sur
+ You will start receiving public status updates from '{{$fn}}',
+which will appear on your 'Matrix' page at
-$siteurl
+{{$siteurl}}
-Sincèrement votre,
+Sincerely,
- l'administrateur de $sitename
+ {{$sitename}} Administrator
diff --git a/view/fr/lostpass_eml.tpl b/view/fr/lostpass_eml.tpl
index 96c11d723..3b79d2791 100644
--- a/view/fr/lostpass_eml.tpl
+++ b/view/fr/lostpass_eml.tpl
@@ -1,34 +1,32 @@
-Cher(e) $username,
+Dear {{$username}},
+ A request was recently received at {{$sitename}} to reset your account
+password. In order to confirm this request, please select the verification link
+below or paste it into your web browser address bar.
- Nous avons récemment reçu, chez $sitename, une demande de remise
-à zéro du mot de passe protégeant votre compte. Pour confirmer cette
-demande, merci de cliquer sur le lien de vérification suivant, ou de le
-coller dans la barre d'adresse de votre navigateur web.
+If you did NOT request this change, please DO NOT follow the link
+provided and ignore and/or delete this email.
-Si vous n'êtes PAS à l'origine de cette demande, merci de NE PAS suivre
-le lien en question, et d'ignorer/supprimer ce courriel.
+Your password will not be changed unless we can verify that you
+issued this request.
-Votre mot de passe ne sera réinitialisé qu'une fois que nous aurons pu
-nous assurer que vous êtes bien à l'origine de cette demande.
+Follow this link to verify your identity:
-Merci de suivre le lien suivant pour confirmer votre identité :
+{{$reset_link}}
-$reset_link
+You will then receive a follow-up message containing the new password.
-Vous recevrez en retour un message avec votre nouveau mot de passe.
+You may change that password from your account settings page after logging in.
-Vous pourrez ensuite changer ce mot de passe, après connexion, dans la
-page des réglages du compte.
+The login details are as follows:
-Les informations du compte concerné sont :
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
-Site : $siteurl
-Pseudo/Courriel : $email
-Sincèrement votre,
- l'administrateur de $sitename
+Sincerely,
+ {{$sitename}} Administrator
diff --git a/view/fr/passchanged_eml.tpl b/view/fr/passchanged_eml.tpl
index 4ea8899fc..0d94be3c2 100644
--- a/view/fr/passchanged_eml.tpl
+++ b/view/fr/passchanged_eml.tpl
@@ -1,20 +1,20 @@
-Cher(e) $username,
+Dear {{$username}},
+ Your password has been changed as requested. Please retain this
+information for your records (or change your password immediately to
+something that you will remember).
- Votre mot de passe a été modifié comme demandé. Merci de conserver
-cette information pour un usage ultérieur (ou bien de changer votre mot de
-passe immédiatement en quelque chose dont vous vous souviendrez).
-Vos informations de connexion sont désormais :
+Your login details are as follows:
-Site : $siteurl
-Pseudo/Courriel : $email
-Mot de passe : $new_password
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+Password: {{$new_password}}
-Vous pouvez changer ce mot de passe depuis la page des « réglages » de votre compte,
-après connexion
+You may change that password from your account settings page after logging in.
-Sincèrement votre,
- l'administrateur de $sitename
+
+Sincerely,
+ {{$sitename}} Administrator
diff --git a/view/fr/register_open_eml.tpl b/view/fr/register_open_eml.tpl
index 5d9e737c3..4b397201c 100644
--- a/view/fr/register_open_eml.tpl
+++ b/view/fr/register_open_eml.tpl
@@ -1,22 +1,19 @@
-Cher(e) $username,
+An account has been created at {{$sitename}} for this email address.
+The login details are as follows:
- Merci de votre inscription à $sitename. Votre compte a été créé.
-Les informations de connexion sont les suivantes :
+Site Location: {{$siteurl}}
+Login: {{$email}}
+Password: (the password which was provided during registration)
-Site : $siteurl
-Pseudo/Courriel : $email
-Mot de passe : $password
+If this account was created without your knowledge and is not desired, you may
+visit this site and reset the password. This will allow you to remove the
+account from the links on the Settings page, and we
+apologise for any inconvenience.
-Vous pouvez changer de mot de passe dans la page des « Réglages » de votre compte,
-après connexion.
+Thank you and welcome to {{$sitename}}.
-Merci de prendre quelques minutes pour découvrir les autres réglages disponibles
-sur cette page.
-
-Merci, et bienvenue sur $sitename.
-
-Sincèrement votre,
- l'administrateur de $sitename
+Sincerely,
+ {{$sitename}} Administrator
diff --git a/view/fr/register_verify_eml.tpl b/view/fr/register_verify_eml.tpl
index 9cb31a6a8..85d9a12d3 100644
--- a/view/fr/register_verify_eml.tpl
+++ b/view/fr/register_verify_eml.tpl
@@ -1,27 +1,25 @@
-Une nouvelle demande d'inscription a été reçue sur $sitename, et elle
-nécessite votre approbation.
+A new user registration request was received at {{$sitename}} which requires
+your approval.
-Les informations de connexion sont les suivantes :
+The login details are as follows:
-Nom complet : $username
-Site : $siteurl
-Pseudo/Courriel : $email
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+IP Address: {{$details}}
+To approve this request please visit the following link:
-Pour approuver cette demande, merci de suivre le lien :
+{{$siteurl}}/regmod/allow/{{$hash}}
-$siteurl/regmod/allow/$hash
+To deny the request and remove the account, please visit:
-Pour rejeter cette demande et supprimer le compte associé,
-merci de suivre le lien :
+{{$siteurl}}/regmod/deny/{{$hash}}
-$siteurl/regmod/deny/$hash
-
-En vous remerçiant.
+Thank you.
diff --git a/view/fr/request_notify_eml.tpl b/view/fr/request_notify_eml.tpl
index 9234ceaaa..d01b8ff27 100644
--- a/view/fr/request_notify_eml.tpl
+++ b/view/fr/request_notify_eml.tpl
@@ -1,17 +1,17 @@
-Cher(e) $myname,
+Dear {{$myname}},
-Vous venez de recevoir une demande de mise en relation sur $sitename
+You have just received a connection request at {{$sitename}}
-venant de « $requestor ».
+from '{{$requestor}}'.
-Vous pouvez visiter son profil sur $url.
+You may visit their profile at {{$url}}.
-Vous pouvez vous connecter à votre site pour voir la demande
-complète et l'approuver ou l'ignorer/annuler.
+Please login to your site to view the complete introduction
+and approve or ignore/cancel the request.
-$siteurl
+{{$siteurl}}
-Cordialement,
+Regards,
- l'administrateur de $sitename
+ {{$sitename}} administrator
diff --git a/view/fr/update_fail_eml.tpl b/view/fr/update_fail_eml.tpl
new file mode 100644
index 000000000..a7df8fc2f
--- /dev/null
+++ b/view/fr/update_fail_eml.tpl
@@ -0,0 +1,13 @@
+Hey,
+I'm the web server at {{$sitename}};
+
+The Red Matrix developers released update {{$update}} recently,
+but when I tried to install it, something went terribly wrong.
+This needs to be fixed soon and it requires human intervention.
+Please contact a Red developer if you can not figure out how to
+fix it on your own. My database might be invalid.
+
+The error message is '{{$error}}'.
+
+Apologies for the inconvenience,
+ your web server at {{$siteurl}} \ No newline at end of file
diff --git a/view/it/follow_notify_eml.tpl b/view/it/follow_notify_eml.tpl
index c85a0cdc9..ba07b19da 100644
--- a/view/it/follow_notify_eml.tpl
+++ b/view/it/follow_notify_eml.tpl
@@ -1,14 +1,14 @@
-Ciao $[myname],
+Dear {{$myname}},
-Un nuovo utente ha iniziato a seguirti su $[sitename] - '$[requestor]'.
+You have a new follower at {{$sitename}} - '{{$requestor}}'.
-Puoi vedere il suo profilo su $[url].
+You may visit their profile at {{$url}}.
-Accedi sul tuo sito per approvare o ignorare la richiesta.
+Please login to your site to approve or ignore/cancel the request.
-$[siteurl]
+{{$siteurl}}
-Saluti,
+Regards,
- L'amministratore di $[sitename] \ No newline at end of file
+ {{$sitename}} administrator
diff --git a/view/it/friend_complete_eml.tpl b/view/it/friend_complete_eml.tpl
index 890b0148c..1c647b994 100644
--- a/view/it/friend_complete_eml.tpl
+++ b/view/it/friend_complete_eml.tpl
@@ -1,22 +1,22 @@
-Ciao $[username],
+Dear {{$username}},
- Ottime notizie... '$[fn]' di '$[dfrn_url]' ha accettato
-la tua richiesta di connessione su '$[sitename]'.
+ Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
-Adesso siete amici reciproci e potete scambiarvi aggiornamenti di stato, foto ed email
-senza restrizioni.
+You are now mutual friends and may exchange status updates, photos, and email
+without restriction.
-Vai nella pagina 'Contatti' di $[sitename] se vuoi effettuare
-qualche modifica riguardo questa relazione
+Please visit your 'Connnections' page at {{$sitename}} if you wish to make
+any changes to this relationship.
-$[siteurl]
+{{$siteurl}}
-[Ad esempio, potresti creare un profilo separato con le informazioni che non
-sono disponibili pubblicamente - ed permettere di vederlo a '$[fn]'].
+[For instance, you may create a separate profile with information that is not
+available to the general public - and assign viewing rights to '{{$fn}}'].
-Saluti,
+Sincerely,
- l'amministratore di $[sitename]
+ {{$sitename}} Administrator
- \ No newline at end of file
+
diff --git a/view/it/htconfig.tpl b/view/it/htconfig.tpl
new file mode 100644
index 000000000..493cb5d00
--- /dev/null
+++ b/view/it/htconfig.tpl
@@ -0,0 +1,70 @@
+<?php
+
+// Set the following for your MySQL installation
+// Copy or rename this file to .htconfig.php
+
+$db_host = '{{$dbhost}}';
+$db_port = '{{$dbport}}';
+$db_user = '{{$dbuser}}';
+$db_pass = '{{$dbpass}}';
+$db_data = '{{$dbdata}}';
+
+/*
+ * Notice: Many of the following settings will be available in the admin panel
+ * after a successful site install. Once they are set in the admin panel, they
+ * are stored in the DB - and the DB setting will over-ride any corresponding
+ * setting in this file
+ *
+ * The command-line tool util/config is able to query and set the DB items
+ * directly if for some reason the admin panel is not available and a system
+ * setting requires modification.
+ *
+ */
+
+
+// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
+// It can be changed later and only applies to timestamps for anonymous viewers.
+
+$default_timezone = '{{$timezone}}';
+
+// What is your site name?
+
+$a->config['system']['baseurl'] = '{{$siteurl}}';
+$a->config['system']['sitename'] = "Red Matrix";
+$a->config['system']['location_hash'] = '{{$site_id}}';
+
+// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
+// Be certain to create your own personal account before setting
+// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
+// the registration page. REGISTER_APPROVE requires you set 'admin_email'
+// to the email address of an already registered person who can authorise
+// and/or approve/deny the request.
+
+$a->config['system']['register_policy'] = REGISTER_OPEN;
+$a->config['system']['register_text'] = '';
+$a->config['system']['admin_email'] = '{{$adminmail}}';
+
+// Maximum size of an imported message, 0 is unlimited
+
+$a->config['system']['max_import_size'] = 200000;
+
+// maximum size of uploaded photos
+
+$a->config['system']['maximagesize'] = 800000;
+
+// Location of PHP command line processor
+
+$a->config['system']['php_path'] = '{{$phpath}}';
+
+// Configure how we communicate with directory servers.
+// DIRECTORY_MODE_NORMAL = directory client, we will find a directory
+// DIRECTORY_MODE_SECONDARY = caching directory or mirror
+// DIRECTORY_MODE_PRIMARY = main directory server
+// DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services
+
+$a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;
+
+// default system theme
+
+$a->config['system']['theme'] = 'redbasic';
+
diff --git a/view/it/intro_complete_eml.tpl b/view/it/intro_complete_eml.tpl
index 46fe7018b..2c2428d68 100644
--- a/view/it/intro_complete_eml.tpl
+++ b/view/it/intro_complete_eml.tpl
@@ -1,22 +1,22 @@
-Ciao $[username],
+Dear {{$username}},
- '$[fn]' di '$[dfrn_url]' ha accettato
-la tua richiesta di connessione a '$[sitename]'.
+ '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
- '$[fn]' ha deciso di accettarti come "fan", il che restringe
-alcune forme di comunicazione - come i messaggi privati e alcune
-interazioni. Se è la pagina di una persona famosa o di una comunità, queste impostazioni saranno
-applicate automaticamente.
+ '{{$fn}}' has chosen to accept you a "fan", which restricts
+some forms of communication - such as private messaging and some profile
+interactions. If this is a celebrity or community page, these settings were
+applied automatically.
- '$[fn]' potrebbe decidere di estendere questa relazione in una comunicazione bidirezionale o ancora più permissiva
-.
+ '{{$fn}}' may choose to extend this into a two-way or more permissive
+relationship in the future.
- Inizierai a ricevere gli aggiornamenti di stato pubblici da '$[fn]',
-che apparirà nella tua pagina 'Rete'
+ You will start receiving public status updates from '{{$fn}}',
+which will appear on your 'Matrix' page at
-$[siteurl]
+{{$siteurl}}
-Saluti,
+Sincerely,
- l'amministratore di $[sitename] \ No newline at end of file
+ {{$sitename}} Administrator
diff --git a/view/it/lostpass_eml.tpl b/view/it/lostpass_eml.tpl
index 26d3d6817..3b79d2791 100644
--- a/view/it/lostpass_eml.tpl
+++ b/view/it/lostpass_eml.tpl
@@ -1,32 +1,32 @@
-Ciao $[username],
- Su $[sitename] è stata ricevuta una richiesta di azzeramento di password per un account.
-Per confermare la richiesta, clicca sul link di verifica
-qui in fondo oppure copialo nella barra degli indirizzi del tuo browser.
+Dear {{$username}},
+ A request was recently received at {{$sitename}} to reset your account
+password. In order to confirm this request, please select the verification link
+below or paste it into your web browser address bar.
-Se NON hai richiesto l'azzeramento, NON seguire il link
-e ignora e/o cancella questa email.
+If you did NOT request this change, please DO NOT follow the link
+provided and ignore and/or delete this email.
-La tua password non sarà modificata finché non avremo verificato che
-hai fatto questa richiesta.
+Your password will not be changed unless we can verify that you
+issued this request.
-Per verificare la tua identità clicca su:
+Follow this link to verify your identity:
-$[reset_link]
+{{$reset_link}}
-Dopo la verifica riceverai un messaggio di risposta con la nuova password.
+You will then receive a follow-up message containing the new password.
-Potrai cambiare la password dalla pagina delle impostazioni dopo aver effettuato l'accesso.
+You may change that password from your account settings page after logging in.
-I dati di accesso sono i seguenti:
+The login details are as follows:
-Sito:»$[siteurl]
-Nome utente:»$[email]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
-Saluti,
- l'amministratore di $[sitename]
+Sincerely,
+ {{$sitename}} Administrator
- \ No newline at end of file
+
diff --git a/view/it/passchanged_eml.tpl b/view/it/passchanged_eml.tpl
index ab3f1aede..0d94be3c2 100644
--- a/view/it/passchanged_eml.tpl
+++ b/view/it/passchanged_eml.tpl
@@ -1,20 +1,20 @@
-Ciao $[username],
- La tua password è cambiata come hai richiesto. Conserva queste
-informazioni (oppure cambia immediatamente la password con
-qualcosa che ti è più facile ricordare).
+Dear {{$username}},
+ Your password has been changed as requested. Please retain this
+information for your records (or change your password immediately to
+something that you will remember).
-I tuoi dati di access sono i seguenti:
+Your login details are as follows:
-Sito:»$[siteurl]
-Nome utente:»$[email]
-Password:»$[new_password]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+Password: {{$new_password}}
-Puoi cambiare la tua password dalla pagina delle impostazioni dopo aver effettuato l'accesso.
+You may change that password from your account settings page after logging in.
-Saluti,
- l'amministratore di $[sitename]
+Sincerely,
+ {{$sitename}} Administrator
- \ No newline at end of file
+
diff --git a/view/it/register_open_eml.tpl b/view/it/register_open_eml.tpl
index 11a7752bc..4b397201c 100644
--- a/view/it/register_open_eml.tpl
+++ b/view/it/register_open_eml.tpl
@@ -1,34 +1,19 @@
-Ciao $[username],
- Grazie per aver effettuato la registrazione a $[sitename]. Il tuo account è stato creato.
-I dettagli di accesso sono i seguenti
+An account has been created at {{$sitename}} for this email address.
+The login details are as follows:
+Site Location: {{$siteurl}}
+Login: {{$email}}
+Password: (the password which was provided during registration)
-Sito:»$[siteurl]
-Nome utente:»$[email]
-Password:»$[password]
+If this account was created without your knowledge and is not desired, you may
+visit this site and reset the password. This will allow you to remove the
+account from the links on the Settings page, and we
+apologise for any inconvenience.
-Puoi cambiare la tua password dalla pagina "Impostazioni" del tuo profilo dopo aver effettuato l'accesso
-.
+Thank you and welcome to {{$sitename}}.
-Prenditi un momento per dare un'occhiata alle altre impostazioni del tuo profilo nella stessa pagina.
+Sincerely,
+ {{$sitename}} Administrator
-Potrest voler aggiungere alcune informazioni di base a quelle predefinite del profilo
-(nella pagina "Profilo") per rendere agli altri più facile trovarti.
-
-Noi raccomandiamo di impostare il tuo nome completo, di aggiungere una foto,
-di aggiungere alcune "parole chiavi" (molto utili per farsi nuovi amici) - e
-magari il paese dove vivi; se non vuoi essere più dettagliato
-di così.
-
-Noi rispettiamo il tuo diritto alla privacy e nessuna di queste informazioni è indispensabile.
-Se ancora non conosci nessuno qui, potrebbe esserti di aiuto
-per farti nuovi e interessanti amici.
-
-
-Grazie. Siamo contenti di darti il benvenuto su $[sitename]
-
-Saluti,
- l'amministratore di $[sitename]
-
- \ No newline at end of file
+
diff --git a/view/it/register_verify_eml.tpl b/view/it/register_verify_eml.tpl
index baac57976..85d9a12d3 100644
--- a/view/it/register_verify_eml.tpl
+++ b/view/it/register_verify_eml.tpl
@@ -1,25 +1,25 @@
-Su $[sitename] è stata ricevuta una nuova richiesta di registrazione da parte di un utente che richiede
-la tua approvazione.
+A new user registration request was received at {{$sitename}} which requires
+your approval.
-I tuoi dati di accesso sono i seguenti:
+The login details are as follows:
-Nome completo:»$[username]
-Sito:»$[siteurl]
-Nome utente:»$[email]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+IP Address: {{$details}}
+To approve this request please visit the following link:
-Per approvare questa richiesta clicca su:
+{{$siteurl}}/regmod/allow/{{$hash}}
-$[siteurl]/regmod/allow/$[hash]
+To deny the request and remove the account, please visit:
-Per negare la richiesta e rimuove il profilo, clicca su:
+{{$siteurl}}/regmod/deny/{{$hash}}
-$[siteurl]/regmod/deny/$[hash]
+Thank you.
-Grazie.
diff --git a/view/it/request_notify_eml.tpl b/view/it/request_notify_eml.tpl
index 1360be90c..d01b8ff27 100644
--- a/view/it/request_notify_eml.tpl
+++ b/view/it/request_notify_eml.tpl
@@ -1,17 +1,17 @@
-Ciao $[myname],
+Dear {{$myname}},
-Hai appena ricevuto una richiesta di connessione da $[sitename]
+You have just received a connection request at {{$sitename}}
-da '$[requestor]'.
+from '{{$requestor}}'.
-Puoi visitare il suo profilo su $[url].
+You may visit their profile at {{$url}}.
-Accedi al tuo sito per vedere la richiesta completa
-e approva o ignora/annulla la richiesta.
+Please login to your site to view the complete introduction
+and approve or ignore/cancel the request.
-$[siteurl]
+{{$siteurl}}
-Saluti,
+Regards,
- l'amministratore di $[sitename] \ No newline at end of file
+ {{$sitename}} administrator
diff --git a/view/it/update_fail_eml.tpl b/view/it/update_fail_eml.tpl
new file mode 100644
index 000000000..a7df8fc2f
--- /dev/null
+++ b/view/it/update_fail_eml.tpl
@@ -0,0 +1,13 @@
+Hey,
+I'm the web server at {{$sitename}};
+
+The Red Matrix developers released update {{$update}} recently,
+but when I tried to install it, something went terribly wrong.
+This needs to be fixed soon and it requires human intervention.
+Please contact a Red developer if you can not figure out how to
+fix it on your own. My database might be invalid.
+
+The error message is '{{$error}}'.
+
+Apologies for the inconvenience,
+ your web server at {{$siteurl}} \ No newline at end of file
diff --git a/view/js/mod_connections.js b/view/js/mod_connections.js
index 9d4a03340..6bfa039a8 100644
--- a/view/js/mod_connections.js
+++ b/view/js/mod_connections.js
@@ -22,6 +22,10 @@ $(".autocomplete-w1 .selected").keyup(function(event){
function connectFullShare() {
+ $('.abook-edit-me').each(function() {
+ if(! $(this).is(':disabled'))
+ $(this).removeAttr('checked');
+ });
$('#me_id_perms_view_stream').attr('checked','checked');
$('#me_id_perms_view_profile').attr('checked','checked');
$('#me_id_perms_view_photos').attr('checked','checked');
@@ -37,6 +41,11 @@ function connectFullShare() {
}
function connectCautiousShare() {
+ $('.abook-edit-me').each(function() {
+ if(! $(this).is(':disabled'))
+ $(this).removeAttr('checked');
+ });
+
$('#me_id_perms_view_stream').attr('checked','checked');
$('#me_id_perms_view_profile').attr('checked','checked');
$('#me_id_perms_view_photos').attr('checked','checked');
@@ -48,6 +57,11 @@ function connectCautiousShare() {
}
function connectForum() {
+ $('.abook-edit-me').each(function() {
+ if(! $(this).is(':disabled'))
+ $(this).removeAttr('checked');
+ });
+
$('#me_id_perms_view_stream').attr('checked','checked');
$('#me_id_perms_view_profile').attr('checked','checked');
$('#me_id_perms_view_photos').attr('checked','checked');
@@ -62,6 +76,11 @@ function connectForum() {
}
function connectSoapBox() {
+ $('.abook-edit-me').each(function() {
+ if(! $(this).is(':disabled'))
+ $(this).removeAttr('checked');
+ });
+
$('#me_id_perms_view_stream').attr('checked','checked');
$('#me_id_perms_view_profile').attr('checked','checked');
$('#me_id_perms_view_photos').attr('checked','checked');
@@ -72,6 +91,11 @@ function connectSoapBox() {
function connectFollowOnly() {
+ $('.abook-edit-me').each(function() {
+ if(! $(this).is(':disabled'))
+ $(this).removeAttr('checked');
+ });
+
$('#me_id_perms_send_stream').attr('checked','checked');
}
diff --git a/view/js/mod_poke.js b/view/js/mod_poke.js
new file mode 100644
index 000000000..fa00ac2d5
--- /dev/null
+++ b/view/js/mod_poke.js
@@ -0,0 +1,13 @@
+$(document).ready(function() {
+ var a;
+ a = $("#poke-recip").autocomplete({
+ serviceUrl: baseurl + '/acl',
+ minChars: 2,
+ width: 350,
+ onSelect: function(value,data) {
+ $("#poke-recip-complete").val(data);
+ }
+ });
+ a.setOptions({ params: { type: 'a' }});
+
+});
diff --git a/view/js/mod_settings.js b/view/js/mod_settings.js
index bcfa9b574..1695372eb 100644
--- a/view/js/mod_settings.js
+++ b/view/js/mod_settings.js
@@ -19,3 +19,93 @@ $(document).ready(function() {
});
+function channel_privacy_macro(n) {
+ if(n == 0) {
+ $('#id_view_stream option').eq(0).attr('selected','selected');
+ $('#id_view_profile option').eq(0).attr('selected','selected');
+ $('#id_view_photos option').eq(0).attr('selected','selected');
+ $('#id_view_contacts option').eq(0).attr('selected','selected');
+ $('#id_view_storage option').eq(0).attr('selected','selected');
+ $('#id_view_pages option').eq(0).attr('selected','selected');
+ $('#id_send_stream option').eq(0).attr('selected','selected');
+ $('#id_post_wall option').eq(0).attr('selected','selected');
+ $('#id_post_comments option').eq(0).attr('selected','selected');
+ $('#id_post_mail option').eq(0).attr('selected','selected');
+ $('#id_post_photos option').eq(0).attr('selected','selected');
+ $('#id_tag_deliver option').eq(0).attr('selected','selected');
+ $('#id_chat option').eq(0).attr('selected','selected');
+ $('#id_write_storage option').eq(0).attr('selected','selected');
+ $('#id_write_pages option').eq(0).attr('selected','selected');
+ $('#id_delegate option').eq(0).attr('selected','selected');
+ $('#id_profile_in_directory_onoff .off').removeClass('hidden');
+ $('#id_profile_in_directory_onoff .on').addClass('hidden');
+ $('#id_profile_in_directory').val(0);
+ }
+ if(n == 1) {
+ $('#id_view_stream option').eq(1).attr('selected','selected');
+ $('#id_view_profile option').eq(1).attr('selected','selected');
+ $('#id_view_photos option').eq(1).attr('selected','selected');
+ $('#id_view_contacts option').eq(1).attr('selected','selected');
+ $('#id_view_storage option').eq(1).attr('selected','selected');
+ $('#id_view_pages option').eq(1).attr('selected','selected');
+ $('#id_send_stream option').eq(1).attr('selected','selected');
+ $('#id_post_wall option').eq(1).attr('selected','selected');
+ $('#id_post_comments option').eq(1).attr('selected','selected');
+ $('#id_post_mail option').eq(1).attr('selected','selected');
+ $('#id_post_photos option').eq(1).attr('selected','selected');
+ $('#id_tag_deliver option').eq(1).attr('selected','selected');
+ $('#id_chat option').eq(1).attr('selected','selected');
+ $('#id_write_storage option').eq(1).attr('selected','selected');
+ $('#id_write_pages option').eq(1).attr('selected','selected');
+ $('#id_delegate option').eq(0).attr('selected','selected');
+ $('#id_profile_in_directory_onoff .off').removeClass('hidden');
+ $('#id_profile_in_directory_onoff .on').addClass('hidden');
+ $('#id_profile_in_directory').val(0);
+ }
+ if(n == 2) {
+ $('#id_view_stream option').eq(5).attr('selected','selected');
+ $('#id_view_profile option').eq(5).attr('selected','selected');
+ $('#id_view_photos option').eq(5).attr('selected','selected');
+ $('#id_view_contacts option').eq(5).attr('selected','selected');
+ $('#id_view_storage option').eq(5).attr('selected','selected');
+ $('#id_view_pages option').eq(5).attr('selected','selected');
+ $('#id_send_stream option').eq(1).attr('selected','selected');
+ $('#id_post_wall option').eq(1).attr('selected','selected');
+ $('#id_post_comments option').eq(1).attr('selected','selected');
+ $('#id_post_mail option').eq(1).attr('selected','selected');
+ $('#id_post_photos option').eq(0).attr('selected','selected');
+ $('#id_tag_deliver option').eq(1).attr('selected','selected');
+ $('#id_chat option').eq(1).attr('selected','selected');
+ $('#id_write_storage option').eq(0).attr('selected','selected');
+ $('#id_write_pages option').eq(0).attr('selected','selected');
+ $('#id_delegate option').eq(0).attr('selected','selected');
+ $('#id_profile_in_directory_onoff .on').removeClass('hidden');
+ $('#id_profile_in_directory_onoff .off').addClass('hidden');
+ $('#id_profile_in_directory').val(1);
+ }
+ if(n == 3) {
+ $('#id_view_stream option').eq(5).attr('selected','selected');
+ $('#id_view_profile option').eq(5).attr('selected','selected');
+ $('#id_view_photos option').eq(5).attr('selected','selected');
+ $('#id_view_contacts option').eq(5).attr('selected','selected');
+ $('#id_view_storage option').eq(5).attr('selected','selected');
+ $('#id_view_pages option').eq(5).attr('selected','selected');
+ $('#id_send_stream option').eq(4).attr('selected','selected');
+ $('#id_post_wall option').eq(4).attr('selected','selected');
+ $('#id_post_comments option').eq(4).attr('selected','selected');
+ $('#id_post_mail option').eq(4).attr('selected','selected');
+ $('#id_post_photos option').eq(2).attr('selected','selected');
+ $('#id_tag_deliver option').eq(1).attr('selected','selected');
+ $('#id_chat option').eq(4).attr('selected','selected');
+ $('#id_write_storage option').eq(2).attr('selected','selected');
+ $('#id_write_pages option').eq(2).attr('selected','selected');
+ $('#id_delegate option').eq(0).attr('selected','selected');
+ $('#id_profile_in_directory_onoff .on').removeClass('hidden');
+ $('#id_profile_in_directory_onoff .off').addClass('hidden');
+ $('#id_profile_in_directory').val(1);
+
+ }
+
+
+
+} \ No newline at end of file
diff --git a/view/nb-no/follow_notify_eml.tpl b/view/nb-no/follow_notify_eml.tpl
index 73a347027..ba07b19da 100644
--- a/view/nb-no/follow_notify_eml.tpl
+++ b/view/nb-no/follow_notify_eml.tpl
@@ -1,14 +1,14 @@
-Kjære $[myname],
+Dear {{$myname}},
-Du har en ny følgesvenn på $[sitename] - '$[requestor]'.
+You have a new follower at {{$sitename}} - '{{$requestor}}'.
-Du kan besøke profilen deres på $[url].
+You may visit their profile at {{$url}}.
-Vennligst logg inn på ditt sted for å godkjenne eller ignorere/avbryte forespørselen.
+Please login to your site to approve or ignore/cancel the request.
-$[siteurl]
+{{$siteurl}}
-Med vennlig hilsen,
+Regards,
- $[sitename] administrator \ No newline at end of file
+ {{$sitename}} administrator
diff --git a/view/nb-no/friend_complete_eml.tpl b/view/nb-no/friend_complete_eml.tpl
index 4526c94d0..1c647b994 100644
--- a/view/nb-no/friend_complete_eml.tpl
+++ b/view/nb-no/friend_complete_eml.tpl
@@ -1,22 +1,22 @@
-Kjære $[username],
+Dear {{$username}},
- Gode nyheter... '$[fn]' ved '$[dfrn_url]' har godtatt
-din forespørsel om kobling hos '$[sitename]'.
+ Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
-Dere er nå gjensidige venner og kan utveksle statusoppdateringer, bilder og e-post
-uten hindringer.
+You are now mutual friends and may exchange status updates, photos, and email
+without restriction.
-Vennligst besøk din side "Kontakter" ved $[sitename] hvis du ønsker å gjøre
-noen endringer på denne forbindelsen.
+Please visit your 'Connnections' page at {{$sitename}} if you wish to make
+any changes to this relationship.
-$[siteurl]
+{{$siteurl}}
-[For eksempel, så kan du lage en egen profil med informasjon som ikke er
-tilgjengelig for alle - og angi visningsrettigheter til '$[fn]'].
+[For instance, you may create a separate profile with information that is not
+available to the general public - and assign viewing rights to '{{$fn}}'].
-Med vennlig hilsen,
+Sincerely,
- $[sitename] administrator
+ {{$sitename}} Administrator
- \ No newline at end of file
+
diff --git a/view/nb-no/htconfig.tpl b/view/nb-no/htconfig.tpl
new file mode 100644
index 000000000..493cb5d00
--- /dev/null
+++ b/view/nb-no/htconfig.tpl
@@ -0,0 +1,70 @@
+<?php
+
+// Set the following for your MySQL installation
+// Copy or rename this file to .htconfig.php
+
+$db_host = '{{$dbhost}}';
+$db_port = '{{$dbport}}';
+$db_user = '{{$dbuser}}';
+$db_pass = '{{$dbpass}}';
+$db_data = '{{$dbdata}}';
+
+/*
+ * Notice: Many of the following settings will be available in the admin panel
+ * after a successful site install. Once they are set in the admin panel, they
+ * are stored in the DB - and the DB setting will over-ride any corresponding
+ * setting in this file
+ *
+ * The command-line tool util/config is able to query and set the DB items
+ * directly if for some reason the admin panel is not available and a system
+ * setting requires modification.
+ *
+ */
+
+
+// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
+// It can be changed later and only applies to timestamps for anonymous viewers.
+
+$default_timezone = '{{$timezone}}';
+
+// What is your site name?
+
+$a->config['system']['baseurl'] = '{{$siteurl}}';
+$a->config['system']['sitename'] = "Red Matrix";
+$a->config['system']['location_hash'] = '{{$site_id}}';
+
+// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
+// Be certain to create your own personal account before setting
+// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
+// the registration page. REGISTER_APPROVE requires you set 'admin_email'
+// to the email address of an already registered person who can authorise
+// and/or approve/deny the request.
+
+$a->config['system']['register_policy'] = REGISTER_OPEN;
+$a->config['system']['register_text'] = '';
+$a->config['system']['admin_email'] = '{{$adminmail}}';
+
+// Maximum size of an imported message, 0 is unlimited
+
+$a->config['system']['max_import_size'] = 200000;
+
+// maximum size of uploaded photos
+
+$a->config['system']['maximagesize'] = 800000;
+
+// Location of PHP command line processor
+
+$a->config['system']['php_path'] = '{{$phpath}}';
+
+// Configure how we communicate with directory servers.
+// DIRECTORY_MODE_NORMAL = directory client, we will find a directory
+// DIRECTORY_MODE_SECONDARY = caching directory or mirror
+// DIRECTORY_MODE_PRIMARY = main directory server
+// DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services
+
+$a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;
+
+// default system theme
+
+$a->config['system']['theme'] = 'redbasic';
+
diff --git a/view/nb-no/intro_complete_eml.tpl b/view/nb-no/intro_complete_eml.tpl
index 17b0be5a8..2c2428d68 100644
--- a/view/nb-no/intro_complete_eml.tpl
+++ b/view/nb-no/intro_complete_eml.tpl
@@ -1,22 +1,22 @@
-Kjære $[username],
+Dear {{$username}},
- '$[fn]' ved '$[dfrn_url]' har godtatt
-din forespørsel om kobling ved $[sitename]'.
+ '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
- '$[fn]' har valgt å godta deg som "fan", som begrenser
-noen typer kommunikasjon - slik som private meldinger og noen profilhandlinger.
-Hvis dette er en kjendis- eller forumside, så ble disse innstillingene
-angitt automatisk.
+ '{{$fn}}' has chosen to accept you a "fan", which restricts
+some forms of communication - such as private messaging and some profile
+interactions. If this is a celebrity or community page, these settings were
+applied automatically.
- '$[fn]' kan velge å utvide dette til en to-veis eller mer åpen
-forbindelse i fremtiden.
+ '{{$fn}}' may choose to extend this into a two-way or more permissive
+relationship in the future.
- Du vil nå motta offentlige statusoppdateringer fra '$[fn]',
-som vil vises på din "Nettverk"-side ved
+ You will start receiving public status updates from '{{$fn}}',
+which will appear on your 'Matrix' page at
-$[siteurl]
+{{$siteurl}}
-Med vennlig hilsen,
+Sincerely,
- $[sitename] administrator \ No newline at end of file
+ {{$sitename}} Administrator
diff --git a/view/nb-no/lostpass_eml.tpl b/view/nb-no/lostpass_eml.tpl
index 762c8c2e9..3b79d2791 100644
--- a/view/nb-no/lostpass_eml.tpl
+++ b/view/nb-no/lostpass_eml.tpl
@@ -1,32 +1,32 @@
-Kjære $[username],
- En forespørsel ble nylig mottatt hos $[sitename] om å tilbakestille din kontos
-passord. For å godkjenne denne forespørselen, vennligst velg bekreftelseslenken
-nedenfor eller lim den inn på adresselinjen i nettleseren din.
+Dear {{$username}},
+ A request was recently received at {{$sitename}} to reset your account
+password. In order to confirm this request, please select the verification link
+below or paste it into your web browser address bar.
-Hvis du IKKE har spurt om denne endringen, vennligst IKKE følg lenken
-som er oppgitt og ignorer og/eller slett denne e-posten.
+If you did NOT request this change, please DO NOT follow the link
+provided and ignore and/or delete this email.
-Passordet ditt vil ikke bli endret med mindre vi kan forsikre oss om at du
-sendte denne forespørselen.
+Your password will not be changed unless we can verify that you
+issued this request.
-Følg denne lenken for å bekrefte din identitet:
+Follow this link to verify your identity:
-$[reset_link]
+{{$reset_link}}
-Du vil da motta en oppfølgings melding med det nye passordet.
+You will then receive a follow-up message containing the new password.
-Du kan endre passordet på siden for dine kontoinnstillinger etter innlogging.
+You may change that password from your account settings page after logging in.
-Innloggingsdetaljene er som følger:
+The login details are as follows:
-Nettstedsadresse:»$[siteurl]
-Brukernavn:»$[email]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
-Beste hilsen,
- $[sitename] administrator
+Sincerely,
+ {{$sitename}} Administrator
- \ No newline at end of file
+
diff --git a/view/nb-no/passchanged_eml.tpl b/view/nb-no/passchanged_eml.tpl
index 6f153d38c..0d94be3c2 100644
--- a/view/nb-no/passchanged_eml.tpl
+++ b/view/nb-no/passchanged_eml.tpl
@@ -1,20 +1,20 @@
-Kjære $[username],
- Ditt passord har blitt endret som forespurt. Vennligst ta vare på denne
-meldingen for sikkerhets skyld (eller bytt passordet ditt umiddelbart til
-noe du husker).
+Dear {{$username}},
+ Your password has been changed as requested. Please retain this
+information for your records (or change your password immediately to
+something that you will remember).
-Dine logg inn-detaljer er som følger:
+Your login details are as follows:
-Nettsted:»$[siteurl]
-Brukernavn:»$[email]
-Passord:»$[new_password]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+Password: {{$new_password}}
-Du kan endre dette passordet på din side for kontoinnstillinger etter innlogging.
+You may change that password from your account settings page after logging in.
-Med vennlig hilsen,
- $[sitename] administrator
+Sincerely,
+ {{$sitename}} Administrator
- \ No newline at end of file
+
diff --git a/view/nb-no/register_open_eml.tpl b/view/nb-no/register_open_eml.tpl
index 345ca0b65..4b397201c 100644
--- a/view/nb-no/register_open_eml.tpl
+++ b/view/nb-no/register_open_eml.tpl
@@ -1,34 +1,19 @@
-Kjære $[username],
- Takk for at du registrerte deg hos $[sitename]. Kontoen din er opprettet.
-Innloggingsdetaljene er som følger:
+An account has been created at {{$sitename}} for this email address.
+The login details are as follows:
+Site Location: {{$siteurl}}
+Login: {{$email}}
+Password: (the password which was provided during registration)
-Nettstedsadresse:»$[siteurl]
-Brukernavn:»$[email]
-Passord:»$[password]
+If this account was created without your knowledge and is not desired, you may
+visit this site and reset the password. This will allow you to remove the
+account from the links on the Settings page, and we
+apologise for any inconvenience.
-Du kan endre passordet ditt på siden "Innstillinger" etter at du har logget
-inn.
+Thank you and welcome to {{$sitename}}.
-Vennligst bruk litt tid til å se over de andre kontoinnstillingene på den siden.
+Sincerely,
+ {{$sitename}} Administrator
-Du vil antakelig ønske å legge til litt grunnleggende informasjon til standardprofilen din
-(på siden "Profiler") slik at folk lettere kan finne deg.
-
-Vi anbefaler å oppgi fullt navn, legge til et profilbilde,
-legge til noen "nøkkelord" for profilen (svært nyttig for å få nye venner) - og
-kanskje hvilket land du bor i, hvis du ikke ønsker å være mer spesifikk
-enn det.
-
-Vi respekterer ditt privatliv fullt ut, og ingen av disse elementene er nødvendige.
-Hvis du er ny og ikke kjenner noen her, så kan de hjelpe
-deg å få noen nye og interessante venner.
-
-
-Takk og velkommen til $[sitename].
-
-Beste hilsen,
- $[sitename] administrator
-
- \ No newline at end of file
+
diff --git a/view/nb-no/register_verify_eml.tpl b/view/nb-no/register_verify_eml.tpl
index 4c2176d7d..85d9a12d3 100644
--- a/view/nb-no/register_verify_eml.tpl
+++ b/view/nb-no/register_verify_eml.tpl
@@ -1,25 +1,25 @@
-En ny forespørsel om brukerregistering ble mottatt hos $[sitename] og krever
-din godkjenning.
+A new user registration request was received at {{$sitename}} which requires
+your approval.
-Innloggingsdetaljene er som følger:
+The login details are as follows:
-Fullt navn:»$[username]
-Nettstedsadresse:»$[siteurl]
-Brukernavn:»$[email]
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+IP Address: {{$details}}
+To approve this request please visit the following link:
-For å godkjenne denne forespørselen, vennligst besøk følgende lenke:
+{{$siteurl}}/regmod/allow/{{$hash}}
-$[siteurl]/regmod/allow/$[hash]
+To deny the request and remove the account, please visit:
-For å avslå denne forespørselen og fjerne kontoen, vennligst besøk:
+{{$siteurl}}/regmod/deny/{{$hash}}
-$[siteurl]/regmod/deny/$[hash]
+Thank you.
-Mange takk.
diff --git a/view/nb-no/request_notify_eml.tpl b/view/nb-no/request_notify_eml.tpl
index e6a62c51f..d01b8ff27 100644
--- a/view/nb-no/request_notify_eml.tpl
+++ b/view/nb-no/request_notify_eml.tpl
@@ -1,17 +1,17 @@
-Kjære $[myname],
+Dear {{$myname}},
-Du har akkurat mottatt en kontaktforespørsel hos $[sitename]
+You have just received a connection request at {{$sitename}}
-fra '$[requestor]'.
+from '{{$requestor}}'.
-Du kan besøke profilen på $[url].
+You may visit their profile at {{$url}}.
-Vennligst logg inn på ditt nettsted for å se hele introduksjonen
-og godkjenne eller ignorere/avbryte forespørselen.
+Please login to your site to view the complete introduction
+and approve or ignore/cancel the request.
-$[siteurl]
+{{$siteurl}}
-Beste hilsen,
+Regards,
- $[siteurl] administrator \ No newline at end of file
+ {{$sitename}} administrator
diff --git a/view/nb-no/update_fail_eml.tpl b/view/nb-no/update_fail_eml.tpl
index a4a3cf950..a7df8fc2f 100644
--- a/view/nb-no/update_fail_eml.tpl
+++ b/view/nb-no/update_fail_eml.tpl
@@ -1,11 +1,13 @@
-Hei,
-jeg er $sitename.
-Friendica-utviklerne slapp nylig oppdateringen $update,
-men da jeg prøvde å installere den, gikk noe forferdelig galt.
-Dette trenger å bli fikset raskt og jeg kan ikke gjøre det alene. Vennligst kontakt en
-Friendica-utvikler hvis du ikke kan hjelpe meg på egenhånd. Databasen min er kanskje ugyldig.
+Hey,
+I'm the web server at {{$sitename}};
+
+The Red Matrix developers released update {{$update}} recently,
+but when I tried to install it, something went terribly wrong.
+This needs to be fixed soon and it requires human intervention.
+Please contact a Red developer if you can not figure out how to
+fix it on your own. My database might be invalid.
-Feilmeldingen er '$error'.
+The error message is '{{$error}}'.
-Jeg beklager,
-din Friendica-tjener hos $siteurl \ No newline at end of file
+Apologies for the inconvenience,
+ your web server at {{$siteurl}} \ No newline at end of file
diff --git a/view/php/default.php b/view/php/default.php
index 80c8070b2..ae4da50b4 100644
--- a/view/php/default.php
+++ b/view/php/default.php
@@ -10,8 +10,8 @@
<aside><?php if(x($page,'aside')) echo $page['aside']; ?></aside>
<section><?php if(x($page,'content')) echo $page['content']; ?>
<div id="page-footer"></div>
- <div id="pause"></div>
- </section>
+ <div id="pause"></div>
+ </section>
<right_aside><?php if(x($page,'right_aside')) echo $page['right_aside']; ?></right_aside>
<footer><?php if(x($page,'footer')) echo $page['footer']; ?></footer>
</body>
diff --git a/view/php/theme_init.php b/view/php/theme_init.php
index 68d6e4cd1..e4a56acc3 100644
--- a/view/php/theme_init.php
+++ b/view/php/theme_init.php
@@ -7,12 +7,17 @@ require_once('include/plugin.php');
head_add_css('library/fancybox/jquery.fancybox-1.3.4.css');
head_add_css('library/tiptip/tipTip.css');
head_add_css('library/jgrowl/jquery.jgrowl.css');
-head_add_css('library/jslider/bin/jquery.slider.min.css');
+head_add_css('library/jslider/css/jslider.css');
+head_add_css('library/prettyphoto/css/prettyPhoto.css');
+head_add_css('library/colorbox/colorbox.css');
head_add_js('js/jquery.js');
+head_add_js('js/jquery-migrate-1.1.1.js');
+head_add_js('js/spin.js');
+head_add_js('js/jquery.spin.js');
head_add_js('js/jquery.textinputs.js');
head_add_js('js/fk.autocomplete.js');
-head_add_js('library/fancybox/jquery.fancybox-1.3.4.pack.js');
+head_add_js('library/fancybox/jquery.fancybox-1.3.4.js');
head_add_js('library/jquery.timeago.js');
head_add_js('library/jquery.divgrow/jquery.divgrow-1.3.1.js');
head_add_js('library/jquery_ac/friendica.complete.js');
@@ -24,3 +29,5 @@ head_add_js('js/webtoolkit.base64.js');
head_add_js('js/main.js');
head_add_js('library/jslider/bin/jquery.slider.min.js');
head_add_js('docready.js');
+head_add_js('library/prettyphoto/js/jquery.prettyPhoto.js');
+head_add_js('library/colorbox/jquery.colorbox-min.js');
diff --git a/view/pt-br/follow_notify_eml.tpl b/view/pt-br/follow_notify_eml.tpl
new file mode 100644
index 000000000..ba07b19da
--- /dev/null
+++ b/view/pt-br/follow_notify_eml.tpl
@@ -0,0 +1,14 @@
+
+Dear {{$myname}},
+
+You have a new follower at {{$sitename}} - '{{$requestor}}'.
+
+You may visit their profile at {{$url}}.
+
+Please login to your site to approve or ignore/cancel the request.
+
+{{$siteurl}}
+
+Regards,
+
+ {{$sitename}} administrator
diff --git a/view/pt-br/friend_complete_eml.tpl b/view/pt-br/friend_complete_eml.tpl
new file mode 100644
index 000000000..1c647b994
--- /dev/null
+++ b/view/pt-br/friend_complete_eml.tpl
@@ -0,0 +1,22 @@
+
+Dear {{$username}},
+
+ Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
+
+You are now mutual friends and may exchange status updates, photos, and email
+without restriction.
+
+Please visit your 'Connnections' page at {{$sitename}} if you wish to make
+any changes to this relationship.
+
+{{$siteurl}}
+
+[For instance, you may create a separate profile with information that is not
+available to the general public - and assign viewing rights to '{{$fn}}'].
+
+Sincerely,
+
+ {{$sitename}} Administrator
+
+
diff --git a/view/pt-br/htconfig.tpl b/view/pt-br/htconfig.tpl
new file mode 100644
index 000000000..493cb5d00
--- /dev/null
+++ b/view/pt-br/htconfig.tpl
@@ -0,0 +1,70 @@
+<?php
+
+// Set the following for your MySQL installation
+// Copy or rename this file to .htconfig.php
+
+$db_host = '{{$dbhost}}';
+$db_port = '{{$dbport}}';
+$db_user = '{{$dbuser}}';
+$db_pass = '{{$dbpass}}';
+$db_data = '{{$dbdata}}';
+
+/*
+ * Notice: Many of the following settings will be available in the admin panel
+ * after a successful site install. Once they are set in the admin panel, they
+ * are stored in the DB - and the DB setting will over-ride any corresponding
+ * setting in this file
+ *
+ * The command-line tool util/config is able to query and set the DB items
+ * directly if for some reason the admin panel is not available and a system
+ * setting requires modification.
+ *
+ */
+
+
+// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
+// It can be changed later and only applies to timestamps for anonymous viewers.
+
+$default_timezone = '{{$timezone}}';
+
+// What is your site name?
+
+$a->config['system']['baseurl'] = '{{$siteurl}}';
+$a->config['system']['sitename'] = "Red Matrix";
+$a->config['system']['location_hash'] = '{{$site_id}}';
+
+// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
+// Be certain to create your own personal account before setting
+// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
+// the registration page. REGISTER_APPROVE requires you set 'admin_email'
+// to the email address of an already registered person who can authorise
+// and/or approve/deny the request.
+
+$a->config['system']['register_policy'] = REGISTER_OPEN;
+$a->config['system']['register_text'] = '';
+$a->config['system']['admin_email'] = '{{$adminmail}}';
+
+// Maximum size of an imported message, 0 is unlimited
+
+$a->config['system']['max_import_size'] = 200000;
+
+// maximum size of uploaded photos
+
+$a->config['system']['maximagesize'] = 800000;
+
+// Location of PHP command line processor
+
+$a->config['system']['php_path'] = '{{$phpath}}';
+
+// Configure how we communicate with directory servers.
+// DIRECTORY_MODE_NORMAL = directory client, we will find a directory
+// DIRECTORY_MODE_SECONDARY = caching directory or mirror
+// DIRECTORY_MODE_PRIMARY = main directory server
+// DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services
+
+$a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;
+
+// default system theme
+
+$a->config['system']['theme'] = 'redbasic';
+
diff --git a/view/pt-br/intro_complete_eml.tpl b/view/pt-br/intro_complete_eml.tpl
new file mode 100644
index 000000000..2c2428d68
--- /dev/null
+++ b/view/pt-br/intro_complete_eml.tpl
@@ -0,0 +1,22 @@
+
+Dear {{$username}},
+
+ '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
+
+ '{{$fn}}' has chosen to accept you a "fan", which restricts
+some forms of communication - such as private messaging and some profile
+interactions. If this is a celebrity or community page, these settings were
+applied automatically.
+
+ '{{$fn}}' may choose to extend this into a two-way or more permissive
+relationship in the future.
+
+ You will start receiving public status updates from '{{$fn}}',
+which will appear on your 'Matrix' page at
+
+{{$siteurl}}
+
+Sincerely,
+
+ {{$sitename}} Administrator
diff --git a/view/pt-br/lostpass_eml.tpl b/view/pt-br/lostpass_eml.tpl
new file mode 100644
index 000000000..3b79d2791
--- /dev/null
+++ b/view/pt-br/lostpass_eml.tpl
@@ -0,0 +1,32 @@
+
+Dear {{$username}},
+ A request was recently received at {{$sitename}} to reset your account
+password. In order to confirm this request, please select the verification link
+below or paste it into your web browser address bar.
+
+If you did NOT request this change, please DO NOT follow the link
+provided and ignore and/or delete this email.
+
+Your password will not be changed unless we can verify that you
+issued this request.
+
+Follow this link to verify your identity:
+
+{{$reset_link}}
+
+You will then receive a follow-up message containing the new password.
+
+You may change that password from your account settings page after logging in.
+
+The login details are as follows:
+
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+
+
+
+
+Sincerely,
+ {{$sitename}} Administrator
+
+
diff --git a/view/pt-br/passchanged_eml.tpl b/view/pt-br/passchanged_eml.tpl
new file mode 100644
index 000000000..0d94be3c2
--- /dev/null
+++ b/view/pt-br/passchanged_eml.tpl
@@ -0,0 +1,20 @@
+
+Dear {{$username}},
+ Your password has been changed as requested. Please retain this
+information for your records (or change your password immediately to
+something that you will remember).
+
+
+Your login details are as follows:
+
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+Password: {{$new_password}}
+
+You may change that password from your account settings page after logging in.
+
+
+Sincerely,
+ {{$sitename}} Administrator
+
+
diff --git a/view/pt-br/register_open_eml.tpl b/view/pt-br/register_open_eml.tpl
new file mode 100644
index 000000000..4b397201c
--- /dev/null
+++ b/view/pt-br/register_open_eml.tpl
@@ -0,0 +1,19 @@
+
+An account has been created at {{$sitename}} for this email address.
+The login details are as follows:
+
+Site Location: {{$siteurl}}
+Login: {{$email}}
+Password: (the password which was provided during registration)
+
+If this account was created without your knowledge and is not desired, you may
+visit this site and reset the password. This will allow you to remove the
+account from the links on the Settings page, and we
+apologise for any inconvenience.
+
+Thank you and welcome to {{$sitename}}.
+
+Sincerely,
+ {{$sitename}} Administrator
+
+
diff --git a/view/pt-br/register_verify_eml.tpl b/view/pt-br/register_verify_eml.tpl
new file mode 100644
index 000000000..85d9a12d3
--- /dev/null
+++ b/view/pt-br/register_verify_eml.tpl
@@ -0,0 +1,25 @@
+
+A new user registration request was received at {{$sitename}} which requires
+your approval.
+
+
+The login details are as follows:
+
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+IP Address: {{$details}}
+
+To approve this request please visit the following link:
+
+
+{{$siteurl}}/regmod/allow/{{$hash}}
+
+
+To deny the request and remove the account, please visit:
+
+
+{{$siteurl}}/regmod/deny/{{$hash}}
+
+
+Thank you.
+
diff --git a/view/pt-br/request_notify_eml.tpl b/view/pt-br/request_notify_eml.tpl
new file mode 100644
index 000000000..d01b8ff27
--- /dev/null
+++ b/view/pt-br/request_notify_eml.tpl
@@ -0,0 +1,17 @@
+
+Dear {{$myname}},
+
+You have just received a connection request at {{$sitename}}
+
+from '{{$requestor}}'.
+
+You may visit their profile at {{$url}}.
+
+Please login to your site to view the complete introduction
+and approve or ignore/cancel the request.
+
+{{$siteurl}}
+
+Regards,
+
+ {{$sitename}} administrator
diff --git a/view/pt-br/update_fail_eml.tpl b/view/pt-br/update_fail_eml.tpl
new file mode 100644
index 000000000..a7df8fc2f
--- /dev/null
+++ b/view/pt-br/update_fail_eml.tpl
@@ -0,0 +1,13 @@
+Hey,
+I'm the web server at {{$sitename}};
+
+The Red Matrix developers released update {{$update}} recently,
+but when I tried to install it, something went terribly wrong.
+This needs to be fixed soon and it requires human intervention.
+Please contact a Red developer if you can not figure out how to
+fix it on your own. My database might be invalid.
+
+The error message is '{{$error}}'.
+
+Apologies for the inconvenience,
+ your web server at {{$siteurl}} \ No newline at end of file
diff --git a/view/ru/follow_notify_eml.tpl b/view/ru/follow_notify_eml.tpl
new file mode 100644
index 000000000..ba07b19da
--- /dev/null
+++ b/view/ru/follow_notify_eml.tpl
@@ -0,0 +1,14 @@
+
+Dear {{$myname}},
+
+You have a new follower at {{$sitename}} - '{{$requestor}}'.
+
+You may visit their profile at {{$url}}.
+
+Please login to your site to approve or ignore/cancel the request.
+
+{{$siteurl}}
+
+Regards,
+
+ {{$sitename}} administrator
diff --git a/view/ru/friend_complete_eml.tpl b/view/ru/friend_complete_eml.tpl
new file mode 100644
index 000000000..1c647b994
--- /dev/null
+++ b/view/ru/friend_complete_eml.tpl
@@ -0,0 +1,22 @@
+
+Dear {{$username}},
+
+ Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
+
+You are now mutual friends and may exchange status updates, photos, and email
+without restriction.
+
+Please visit your 'Connnections' page at {{$sitename}} if you wish to make
+any changes to this relationship.
+
+{{$siteurl}}
+
+[For instance, you may create a separate profile with information that is not
+available to the general public - and assign viewing rights to '{{$fn}}'].
+
+Sincerely,
+
+ {{$sitename}} Administrator
+
+
diff --git a/view/ru/htconfig.tpl b/view/ru/htconfig.tpl
new file mode 100644
index 000000000..493cb5d00
--- /dev/null
+++ b/view/ru/htconfig.tpl
@@ -0,0 +1,70 @@
+<?php
+
+// Set the following for your MySQL installation
+// Copy or rename this file to .htconfig.php
+
+$db_host = '{{$dbhost}}';
+$db_port = '{{$dbport}}';
+$db_user = '{{$dbuser}}';
+$db_pass = '{{$dbpass}}';
+$db_data = '{{$dbdata}}';
+
+/*
+ * Notice: Many of the following settings will be available in the admin panel
+ * after a successful site install. Once they are set in the admin panel, they
+ * are stored in the DB - and the DB setting will over-ride any corresponding
+ * setting in this file
+ *
+ * The command-line tool util/config is able to query and set the DB items
+ * directly if for some reason the admin panel is not available and a system
+ * setting requires modification.
+ *
+ */
+
+
+// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
+// It can be changed later and only applies to timestamps for anonymous viewers.
+
+$default_timezone = '{{$timezone}}';
+
+// What is your site name?
+
+$a->config['system']['baseurl'] = '{{$siteurl}}';
+$a->config['system']['sitename'] = "Red Matrix";
+$a->config['system']['location_hash'] = '{{$site_id}}';
+
+// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
+// Be certain to create your own personal account before setting
+// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
+// the registration page. REGISTER_APPROVE requires you set 'admin_email'
+// to the email address of an already registered person who can authorise
+// and/or approve/deny the request.
+
+$a->config['system']['register_policy'] = REGISTER_OPEN;
+$a->config['system']['register_text'] = '';
+$a->config['system']['admin_email'] = '{{$adminmail}}';
+
+// Maximum size of an imported message, 0 is unlimited
+
+$a->config['system']['max_import_size'] = 200000;
+
+// maximum size of uploaded photos
+
+$a->config['system']['maximagesize'] = 800000;
+
+// Location of PHP command line processor
+
+$a->config['system']['php_path'] = '{{$phpath}}';
+
+// Configure how we communicate with directory servers.
+// DIRECTORY_MODE_NORMAL = directory client, we will find a directory
+// DIRECTORY_MODE_SECONDARY = caching directory or mirror
+// DIRECTORY_MODE_PRIMARY = main directory server
+// DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services
+
+$a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;
+
+// default system theme
+
+$a->config['system']['theme'] = 'redbasic';
+
diff --git a/view/ru/intro_complete_eml.tpl b/view/ru/intro_complete_eml.tpl
new file mode 100644
index 000000000..2c2428d68
--- /dev/null
+++ b/view/ru/intro_complete_eml.tpl
@@ -0,0 +1,22 @@
+
+Dear {{$username}},
+
+ '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
+
+ '{{$fn}}' has chosen to accept you a "fan", which restricts
+some forms of communication - such as private messaging and some profile
+interactions. If this is a celebrity or community page, these settings were
+applied automatically.
+
+ '{{$fn}}' may choose to extend this into a two-way or more permissive
+relationship in the future.
+
+ You will start receiving public status updates from '{{$fn}}',
+which will appear on your 'Matrix' page at
+
+{{$siteurl}}
+
+Sincerely,
+
+ {{$sitename}} Administrator
diff --git a/view/ru/lostpass_eml.tpl b/view/ru/lostpass_eml.tpl
new file mode 100644
index 000000000..3b79d2791
--- /dev/null
+++ b/view/ru/lostpass_eml.tpl
@@ -0,0 +1,32 @@
+
+Dear {{$username}},
+ A request was recently received at {{$sitename}} to reset your account
+password. In order to confirm this request, please select the verification link
+below or paste it into your web browser address bar.
+
+If you did NOT request this change, please DO NOT follow the link
+provided and ignore and/or delete this email.
+
+Your password will not be changed unless we can verify that you
+issued this request.
+
+Follow this link to verify your identity:
+
+{{$reset_link}}
+
+You will then receive a follow-up message containing the new password.
+
+You may change that password from your account settings page after logging in.
+
+The login details are as follows:
+
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+
+
+
+
+Sincerely,
+ {{$sitename}} Administrator
+
+
diff --git a/view/ru/passchanged_eml.tpl b/view/ru/passchanged_eml.tpl
new file mode 100644
index 000000000..0d94be3c2
--- /dev/null
+++ b/view/ru/passchanged_eml.tpl
@@ -0,0 +1,20 @@
+
+Dear {{$username}},
+ Your password has been changed as requested. Please retain this
+information for your records (or change your password immediately to
+something that you will remember).
+
+
+Your login details are as follows:
+
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+Password: {{$new_password}}
+
+You may change that password from your account settings page after logging in.
+
+
+Sincerely,
+ {{$sitename}} Administrator
+
+
diff --git a/view/ru/register_open_eml.tpl b/view/ru/register_open_eml.tpl
new file mode 100644
index 000000000..4b397201c
--- /dev/null
+++ b/view/ru/register_open_eml.tpl
@@ -0,0 +1,19 @@
+
+An account has been created at {{$sitename}} for this email address.
+The login details are as follows:
+
+Site Location: {{$siteurl}}
+Login: {{$email}}
+Password: (the password which was provided during registration)
+
+If this account was created without your knowledge and is not desired, you may
+visit this site and reset the password. This will allow you to remove the
+account from the links on the Settings page, and we
+apologise for any inconvenience.
+
+Thank you and welcome to {{$sitename}}.
+
+Sincerely,
+ {{$sitename}} Administrator
+
+
diff --git a/view/ru/register_verify_eml.tpl b/view/ru/register_verify_eml.tpl
new file mode 100644
index 000000000..85d9a12d3
--- /dev/null
+++ b/view/ru/register_verify_eml.tpl
@@ -0,0 +1,25 @@
+
+A new user registration request was received at {{$sitename}} which requires
+your approval.
+
+
+The login details are as follows:
+
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+IP Address: {{$details}}
+
+To approve this request please visit the following link:
+
+
+{{$siteurl}}/regmod/allow/{{$hash}}
+
+
+To deny the request and remove the account, please visit:
+
+
+{{$siteurl}}/regmod/deny/{{$hash}}
+
+
+Thank you.
+
diff --git a/view/ru/request_notify_eml.tpl b/view/ru/request_notify_eml.tpl
new file mode 100644
index 000000000..d01b8ff27
--- /dev/null
+++ b/view/ru/request_notify_eml.tpl
@@ -0,0 +1,17 @@
+
+Dear {{$myname}},
+
+You have just received a connection request at {{$sitename}}
+
+from '{{$requestor}}'.
+
+You may visit their profile at {{$url}}.
+
+Please login to your site to view the complete introduction
+and approve or ignore/cancel the request.
+
+{{$siteurl}}
+
+Regards,
+
+ {{$sitename}} administrator
diff --git a/view/ru/update_fail_eml.tpl b/view/ru/update_fail_eml.tpl
new file mode 100644
index 000000000..a7df8fc2f
--- /dev/null
+++ b/view/ru/update_fail_eml.tpl
@@ -0,0 +1,13 @@
+Hey,
+I'm the web server at {{$sitename}};
+
+The Red Matrix developers released update {{$update}} recently,
+but when I tried to install it, something went terribly wrong.
+This needs to be fixed soon and it requires human intervention.
+Please contact a Red developer if you can not figure out how to
+fix it on your own. My database might be invalid.
+
+The error message is '{{$error}}'.
+
+Apologies for the inconvenience,
+ your web server at {{$siteurl}} \ No newline at end of file
diff --git a/view/sv/follow_notify_eml.tpl b/view/sv/follow_notify_eml.tpl
index fee08bdca..ba07b19da 100644
--- a/view/sv/follow_notify_eml.tpl
+++ b/view/sv/follow_notify_eml.tpl
@@ -1,12 +1,14 @@
-$myname,
-'$requestor' på $sitename vill följa dina uppdateringar här på Friendika.
+Dear {{$myname}},
-Besök dennes profil på $url.
+You have a new follower at {{$sitename}} - '{{$requestor}}'.
-Logga in för att godkänna eller avslå förfrågan.
+You may visit their profile at {{$url}}.
-$siteurl
+Please login to your site to approve or ignore/cancel the request.
-Hälsningar,
-$sitename admin
+{{$siteurl}}
+
+Regards,
+
+ {{$sitename}} administrator
diff --git a/view/sv/friend_complete_eml.tpl b/view/sv/friend_complete_eml.tpl
index 2b8b0238e..1c647b994 100644
--- a/view/sv/friend_complete_eml.tpl
+++ b/view/sv/friend_complete_eml.tpl
@@ -1,17 +1,22 @@
-$username,
-Goda nyheter... '$fn' på '$dfrn_url' har accepterat din kontaktförfrågan på '$sitename'.
+Dear {{$username}},
-Ni är nu ömsesidiga vänner och kan se varandras statusuppdateringar samt skicka foton och meddelanden
-utan begränsningar.
+ Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
-Gå in på din sida 'Kontakter' på $sitename om du vill göra några
-ändringar när det gäller denna kontakt.
+You are now mutual friends and may exchange status updates, photos, and email
+without restriction.
-$siteurl
+Please visit your 'Connnections' page at {{$sitename}} if you wish to make
+any changes to this relationship.
-[Du kan exempelvis skapa en separat profil med information som inte
-är tillgänglig för vem som helst, och ge visningsrättigheter till '$fn'].
+{{$siteurl}}
-Hälsningar,
-$sitename admin
+[For instance, you may create a separate profile with information that is not
+available to the general public - and assign viewing rights to '{{$fn}}'].
+
+Sincerely,
+
+ {{$sitename}} Administrator
+
+
diff --git a/view/sv/htconfig.tpl b/view/sv/htconfig.tpl
new file mode 100644
index 000000000..493cb5d00
--- /dev/null
+++ b/view/sv/htconfig.tpl
@@ -0,0 +1,70 @@
+<?php
+
+// Set the following for your MySQL installation
+// Copy or rename this file to .htconfig.php
+
+$db_host = '{{$dbhost}}';
+$db_port = '{{$dbport}}';
+$db_user = '{{$dbuser}}';
+$db_pass = '{{$dbpass}}';
+$db_data = '{{$dbdata}}';
+
+/*
+ * Notice: Many of the following settings will be available in the admin panel
+ * after a successful site install. Once they are set in the admin panel, they
+ * are stored in the DB - and the DB setting will over-ride any corresponding
+ * setting in this file
+ *
+ * The command-line tool util/config is able to query and set the DB items
+ * directly if for some reason the admin panel is not available and a system
+ * setting requires modification.
+ *
+ */
+
+
+// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
+// It can be changed later and only applies to timestamps for anonymous viewers.
+
+$default_timezone = '{{$timezone}}';
+
+// What is your site name?
+
+$a->config['system']['baseurl'] = '{{$siteurl}}';
+$a->config['system']['sitename'] = "Red Matrix";
+$a->config['system']['location_hash'] = '{{$site_id}}';
+
+// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
+// Be certain to create your own personal account before setting
+// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
+// the registration page. REGISTER_APPROVE requires you set 'admin_email'
+// to the email address of an already registered person who can authorise
+// and/or approve/deny the request.
+
+$a->config['system']['register_policy'] = REGISTER_OPEN;
+$a->config['system']['register_text'] = '';
+$a->config['system']['admin_email'] = '{{$adminmail}}';
+
+// Maximum size of an imported message, 0 is unlimited
+
+$a->config['system']['max_import_size'] = 200000;
+
+// maximum size of uploaded photos
+
+$a->config['system']['maximagesize'] = 800000;
+
+// Location of PHP command line processor
+
+$a->config['system']['php_path'] = '{{$phpath}}';
+
+// Configure how we communicate with directory servers.
+// DIRECTORY_MODE_NORMAL = directory client, we will find a directory
+// DIRECTORY_MODE_SECONDARY = caching directory or mirror
+// DIRECTORY_MODE_PRIMARY = main directory server
+// DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services
+
+$a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;
+
+// default system theme
+
+$a->config['system']['theme'] = 'redbasic';
+
diff --git a/view/sv/intro_complete_eml.tpl b/view/sv/intro_complete_eml.tpl
index 1f24af25f..2c2428d68 100644
--- a/view/sv/intro_complete_eml.tpl
+++ b/view/sv/intro_complete_eml.tpl
@@ -1,19 +1,22 @@
-$username,
-'$fn' på '$dfrn_url' har accepterat din kontaktförfrågan på '$sitename'.
+Dear {{$username}},
-'$fn' har valt att acceptera dig som ett "fan" vilket innebär vissa begränsningar
-i kommunikationen mellan er - som till exempel personliga meddelanden och viss interaktion
-mellan profiler. Om detta är en kändis eller en gemenskap så har dessa inställningar gjorts
-per automatik.
+ '{{$fn}}' at '{{$dfrn_url}}' has accepted
+your connection request at '{{$sitename}}'.
-'$fn' kan välja att utöka detta till vanlig tvåvägskommunikation eller någon annan mer
-tillåtande kommunikationsform i framtiden.
+ '{{$fn}}' has chosen to accept you a "fan", which restricts
+some forms of communication - such as private messaging and some profile
+interactions. If this is a celebrity or community page, these settings were
+applied automatically.
-Du kommer hädanefter att få statusuppdateringar från '$fn',
-vilka kommer att synas på din Nätverk-sida på
+ '{{$fn}}' may choose to extend this into a two-way or more permissive
+relationship in the future.
-$siteurl
+ You will start receiving public status updates from '{{$fn}}',
+which will appear on your 'Matrix' page at
-Hälsningar,
-$sitename admin
+{{$siteurl}}
+
+Sincerely,
+
+ {{$sitename}} Administrator
diff --git a/view/sv/lostpass_eml.tpl b/view/sv/lostpass_eml.tpl
index df338fa69..3b79d2791 100644
--- a/view/sv/lostpass_eml.tpl
+++ b/view/sv/lostpass_eml.tpl
@@ -1,29 +1,32 @@
-$username,
-En begäran om återställning av lösenord på $sitename har mottagits.
-Gå till adressen nedan för att bekräfta denna begäran. Du kan också
-klistra in länken i adressfältet i din webbläsare.
+Dear {{$username}},
+ A request was recently received at {{$sitename}} to reset your account
+password. In order to confirm this request, please select the verification link
+below or paste it into your web browser address bar.
-Gå INTE till länken nedan om du INTE har begärt lösenordsåterställning.
-Då kan du ignorera det här meddelandet.
+If you did NOT request this change, please DO NOT follow the link
+provided and ignore and/or delete this email.
-Ditt lösenord kommer inte att återställas om vi inte kan säkerställa att du
-initierat detta.
+Your password will not be changed unless we can verify that you
+issued this request.
-Med den här länken kan du bekräfta din identitet:
+Follow this link to verify your identity:
-$reset_link
+{{$reset_link}}
-Sedan kommer du att få ett meddelande med ett nytt lösenord.
+You will then receive a follow-up message containing the new password.
-Lösenordet kan sedan ändras i dina inställningar efter att du loggat in.
+You may change that password from your account settings page after logging in.
-Detaljerna ser ut så här:
+The login details are as follows:
-Webbplats: $siteurl
-Inloggningsnamn: $email
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
-Hälsningar,
-$sitename admin
- \ No newline at end of file
+
+
+Sincerely,
+ {{$sitename}} Administrator
+
+
diff --git a/view/sv/passchanged_eml.tpl b/view/sv/passchanged_eml.tpl
index 590462468..0d94be3c2 100644
--- a/view/sv/passchanged_eml.tpl
+++ b/view/sv/passchanged_eml.tpl
@@ -1,18 +1,20 @@
-$username,
+Dear {{$username}},
+ Your password has been changed as requested. Please retain this
+information for your records (or change your password immediately to
+something that you will remember).
-Lösenordet har ändrats enligt din begäran. Behåll den här
-informationen om den skulle behövas i framtiden. (eller ändra lösenord
-på en gång till något som du kommer ihåg).
+Your login details are as follows:
-Här är dina inloggningsuppgifter:
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+Password: {{$new_password}}
-Webbplats: $siteurl
-Användarnamn: $email
-Lösenord: $new_password
+You may change that password from your account settings page after logging in.
-När du loggat in kan du byta lösenord bland inställningarna.
-Hälsningar,
-$sitename admin
+Sincerely,
+ {{$sitename}} Administrator
+
+
diff --git a/view/sv/register_open_eml.tpl b/view/sv/register_open_eml.tpl
index 1471c9b98..4b397201c 100644
--- a/view/sv/register_open_eml.tpl
+++ b/view/sv/register_open_eml.tpl
@@ -1,17 +1,19 @@
-$username,
-Tack för att du registrerat dig på $sitename. Kontot har skapats.
-Här är dina inloggningsuppgifter:
-Webbplats: $siteurl
-Användarnamn: $email
-Lösenord: $password
+An account has been created at {{$sitename}} for this email address.
+The login details are as follows:
-Lösenordet kan ändras på sidan Inställningar efter att du loggat in.
+Site Location: {{$siteurl}}
+Login: {{$email}}
+Password: (the password which was provided during registration)
-Ägna en liten stund åt att gå igenom alla kontoinställningar där.
+If this account was created without your knowledge and is not desired, you may
+visit this site and reset the password. This will allow you to remove the
+account from the links on the Settings page, and we
+apologise for any inconvenience.
-Välkommen till $sitename.
+Thank you and welcome to {{$sitename}}.
-Hälsningar,
-$sitename admin
+Sincerely,
+ {{$sitename}} Administrator
+
diff --git a/view/sv/register_verify_eml.tpl b/view/sv/register_verify_eml.tpl
index aa72bc9aa..85d9a12d3 100644
--- a/view/sv/register_verify_eml.tpl
+++ b/view/sv/register_verify_eml.tpl
@@ -1,17 +1,25 @@
-En registreringsförfrågan som kräver svar har mottagits
-på $sitename
+A new user registration request was received at {{$sitename}} which requires
+your approval.
-Här är inloggningsuppgifterna:
-Fullständigt namn: $username
-Webbplats: $siteurl
-Användarnamn: $email
+The login details are as follows:
+Site Location: {{$siteurl}}
+Login Name: {{$email}}
+IP Address: {{$details}}
-Gå till denna adress om du vill godkänna:
-$siteurl/regmod/allow/$hash
+To approve this request please visit the following link:
-Gå till denna adress om du vill avslå förfrågan och ta bort kontot:
-$siteurl/regmod/deny/$hash
+
+{{$siteurl}}/regmod/allow/{{$hash}}
+
+
+To deny the request and remove the account, please visit:
+
+
+{{$siteurl}}/regmod/deny/{{$hash}}
+
+
+Thank you.
diff --git a/view/sv/request_notify_eml.tpl b/view/sv/request_notify_eml.tpl
index 893bce17c..d01b8ff27 100644
--- a/view/sv/request_notify_eml.tpl
+++ b/view/sv/request_notify_eml.tpl
@@ -1,13 +1,17 @@
-$myname,
-Du har just fått en kontaktförfrågan på $sitename från '$requestor'
+Dear {{$myname}},
-Profilen finns på $url.
+You have just received a connection request at {{$sitename}}
-Logga in för att se hela förfrågan och godkänna eller
-avslå den.
+from '{{$requestor}}'.
-$siteurl
+You may visit their profile at {{$url}}.
-Hälsningar,
-$sitename admin
+Please login to your site to view the complete introduction
+and approve or ignore/cancel the request.
+
+{{$siteurl}}
+
+Regards,
+
+ {{$sitename}} administrator
diff --git a/view/sv/update_fail_eml.tpl b/view/sv/update_fail_eml.tpl
new file mode 100644
index 000000000..a7df8fc2f
--- /dev/null
+++ b/view/sv/update_fail_eml.tpl
@@ -0,0 +1,13 @@
+Hey,
+I'm the web server at {{$sitename}};
+
+The Red Matrix developers released update {{$update}} recently,
+but when I tried to install it, something went terribly wrong.
+This needs to be fixed soon and it requires human intervention.
+Please contact a Red developer if you can not figure out how to
+fix it on your own. My database might be invalid.
+
+The error message is '{{$error}}'.
+
+Apologies for the inconvenience,
+ your web server at {{$siteurl}} \ No newline at end of file
diff --git a/view/theme/fancyred/css/style.css b/view/theme/fancyred/css/style.css
deleted file mode 100644
index 8cc2d12e6..000000000
--- a/view/theme/fancyred/css/style.css
+++ /dev/null
@@ -1,3934 +0,0 @@
-/**
- * duepuntozero Frindika style
- * Fabio Comuni <fabrix.xm@gmail.com>
- */
-
-
-/* generals */
-body {
- font-family: helvetica,arial,freesans,clean,sans-serif;
- font-size: 12px;
- background-color: #ffffff;
- background-repeat: repeat;
- color: #000000;
- margin: 0px;
-}
-
-abbr {
- border-bottom: none;
-}
-
-aside {
-border: none;
-border-radius: 0px 0px 20px 0px;
-width: 160px;
-color: #d00;
-background: #fff;
-}
-
-
-/* icons */
-.icon {
- background-color: transparent ;
- background-repeat: no-repeat;
- display: block;
- overflow: hidden;
- text-indent: -9999px;
-/* min-width: 22px;
- height: 22px; */
-}
-.icon.text {
- text-indent: 0px;
-}
-.icon.notify {
- background-image: url("../img/notify_on.png");
- min-width: 22px;
- height: 22px;
- margin-top: -4px;
- background-position: left center;
- padding: 1px;
-}
-.icon.gear {
- background-image: url("../img/settings.png");
- min-width: 22px;
- height: 22px;
- background-position: left center;
- padding: 1px;
-}
-
-.icon.home {
- background-image: url("../img/home.png");
- min-width: 22px;
- height: 22px;
- background-position: left center;
- padding: 1px;
-}
-
-.icon.network {
- background-image: url("../img/network.png");
- min-width: 22px;
- height: 22px;
- background-position: left center;
- padding: 1px;
-}
-
-.icon.introductions {
- background-image: url("../img/introductions.png");
- min-width: 22px;
- height: 22px;
- background-position: left center;
- padding: 1px;
-}
-
-.icon.mail {
- background-image: url("../img/message.png");
- min-width: 22px;
- height: 22px;
- background-position: left center;
- padding: 1px;
-}
-
-.icon.events {
- background-image: url("../img/events.png");
- min-width: 22px;
- height: 22px;
- background-position: left center;
- padding: 1px;
-}
-
-a, a:visited, a:link { color: #dd0000; text-decoration: none; }
-a:hover { color: #dd0000; text-decoration: underline; }
-
-input {
- border: 1px solid #666666;
- -moz-border-radius: 5px;
- border-radius: 5px;
- padding: 3px;
-}
-
-img { border :0px; }
-
-
-
-
-code {
- font-family: Courier, monospace;
- display: block;
- overflow: auto;
- border: 1px solid #444;
- background: #EEE;
- color: #444;
- padding: 10px;
- margin-top: 20px;
- max-width: 80%;
- box-shadow: 5px 5px 5px #111;
- border-radius: 5px;
-}
-
-blockquote {
- background-color: #f4f8f9;
- border-left: 4px solid #dae4ee;
- padding: 0.4em;
-}
-
-.icollapse-wrapper, .ccollapse-wrapper {
- border: 1px solid #CCC;
- padding: 5px;
-}
-
-.hide-comments {
- margin-left: 5px;
-}
-
-#panel {
- background-color: ivory;
- position: absolute;
- z-index: 2;
- width: 30%;
- padding: 25px;
- border: 1px solid #444;
-}
-
-.heart {
- color: #FF0000;
- font-size: 100%;
- margin-right: 5px;
-}
-
-
-
-/* nav */
-nav {
- display: block;
-/* margin: 0px 10%; */
- border-bottom: 1px solid #d00;
-}
-nav #site-location {
- color: #888a85;
- font-size: 0.8em;
- position: absolute;
- border-radius: 1px solid #d00;
-}
-
-.error-message {
- color: #FF0000;
- font-size: 1.1em;
- border: 1px solid #FF8888;
- background-color: #FFEEEE;
- padding: 10px;
-}
-
-.info-message {
- color: #fff;
- font-size: 1.1em;
- background-color: #f00;
- padding: 10px;
-}
-
-
-nav #banner #logo-text a {
- font-size: 40px;
- font-weight: bold;
- margin-left: 3px;
- color: #000000;
-
-}
-nav #banner #logo-text a:hover { text-decoration: none; }
-
-header #site-location {
- display: none;
-}
-header #banner {
- overflow: hidden;
- text-align: center;
- width: 100%;
- font-size: 2.2em;
- font-family: tahoma, "Lucida Sans", sans;
- color: #eec;
- font-weight: bold;
-
-}
-header #banner a,
-header #banner a:active,
-header #banner a:visited,
-header #banner a:link,
-header #banner a:hover {
- color: #eec;
- text-decoration: none;
- outline: none;
- vertical-align: bottom;
-}
-header #banner #logo-img {
- height: 22px;
- margin-top: 5px;
-}
-header #banner #logo-text {
- font-size: 22px;
-}
-
-
-
-
-.nav-commlink, .nav-login-link {
- display: block;
- height: 15px;
- margin-top: 67px;
- margin-right: 2px;
- //padding: 6px 10px;
- padding: 6px 3px;
- float: left;
- bottom: 140px;
- border: 1px solid #babdb6;
- border-bottom: 0px;
- background-color: #aec0d3;
- color: #565854;
- -moz-border-radius: 5px 5px 0px 0px;
- border-radius: 5px 5px 0px 0px;
-}
-nav .nav-link {
- float: right;
- margin: 0.2em 0em;
- padding: 0em 0.5em;
- background-color: transparent !important;
-}
-
-.nav-commlink.selected {
- background-color: #ffffff;
- border-bottom: 1px solid #ffffff;
- color: #000000 !important;
- margin-top: 64px;
- padding-top: 6px;
- padding-bottom: 8px;
-}
-.nav-ajax-left {
- font-size: 0.8em;
- float: left;
- margin-top: 62px;
-}
-
-
-nav #nav-link-wrapper .nav-link {
- border-right: 1px solid #babdb6;
-}
-
-
-
-#dfrn-request-link {
- display: block;
- color: #FFFFFF;
- -webkit-border-radius: 5px ;
- -moz-border-radius: 5px;
- border-radius: 5px;
- padding: 5px;
- font-weight: bold;
- background: #3465a4 url('../img/friendika-16.png') no-repeat 95% center;
-}
-#wallmessage-link {
- display: block;
- color: #FFFFFF;
- -webkit-border-radius: 5px ;
- -moz-border-radius: 5px;
- border-radius: 5px;
- padding: 5px;
- font-weight: bold;
- background-color: #3465a4;
-}
-.tabs {
- list-style: none;
- margin: 15px 0px;
- padding: 0;
- }
-.tabs li {
- display: inline;
- font-weight: bold;
-}
-.tab {
- height: auto;
- background-color: #f00;
- color: #fff !important;
- font-weight: bold;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 20px;
- margin: 0;
- width: auto;
- box-shadow: 5px 5px 5px #444;
- margin-left: 8px;
- padding: 4px;
- text-align: center;
-}
-.tab:hover, .tab.active:hover {
- background: #d00;
- color: #fff;
- ;
-}
-.tab:active {
- background: #fff;
- color: #f00;
-}
-.tab.active {
- background: #f00;
- color: #fff;
- box-shadow: 3px 3px 3px #333 inset;
- padding: 5px; /* another strageness of the human mind - has to be larger than inactive tabs, or it looks smaller than them */
-}
-
-.tab a, .settings-widget a {
- border: 0;
- text-decoration: none;
- color: #fff;
-}
-
-/* footer */
-footer {
- text-align: right;
- padding-bottom: 1em;
- padding-right: 3em;
-}
-
-#powered-by {
- position: fixed;
- bottom: 1px;
- left: 15px;
- opacity: 0.3;
- filter:alpha(opacity=30);
-
-}
-
-.birthday-today, .event-today {
- font-weight: bold;
-}
-
-div.wall-item-content-wrapper.shiny {
- opacity: 1;
-}
-
-.preview {
- background: #FFFFC8;
-}
-
-#theme-preview {
- margin: 15px 0 15px 150px;
-}
-
-/* from default */
-#jot-perms-icon,
-#profile-location,
-#profile-nolocation,
-#profile-youtube,
-#profile-video,
-#profile-audio,
-#profile-link,
-#profile-title,
-#wall-image-upload,
-#wall-file-upload,
-#profile-upload-wrapper,
-#wall-image-upload-div,
-#wall-file-upload-div,
-.hover, .focus {
- cursor: pointer;
-}
-
-#jot-perms-icon {
- float: left;
-}
-
-#jot-title, #jot-category {
- border: 0px;
- margin: 0px;
- padding: 8px;
- height: 20px;
- width: 530px;
- margin-bottom: 5px;
- font-weight: bold;
- border: solid 1px #ccc;
- box-shadow: 5px 5px 5px #666 inset;
-}
-
-#jot-title::-webkit-input-placeholder{font-weight: normal;}
-#jot-category::-webkit-input-placeholder{font-weight: normal;}
-#jot-title:-moz-placeholder{font-weight: normal;}
-#jot-category:-moz-placeholder{font-weight: normal;}
-
-
-#jot-title:hover,
-#jot-title:focus,
-#jot-category:hover,
-#jot-category:focus {
- border: 1px solid #cccccc;
-}
-
-.jothidden { display:none; }
-
-
-.fakelink, .fakelink:visited, .fakelink:link {
- color: #335577;
- text-decoration: none;
- cursor: pointer;
-}
-.fakebutton {
- margin-top: 15px;
- margin-bottom: 15px;
-}
-
-.lockview {
- cursor: pointer;
-}
-
-
-#group-sidebar {
- margin-bottom: 10px;
-}
-
-.group-selected, .nets-selected, .fileas-selected, .categories-selected {
- padding: 3px;
- -moz-border-radius: 5px;
- border-radius: 5px;
- border: 1px solid #CCCCCC;
- background: #F8F8F8;
- font-weight: bold;
-}
-
-.settings-widget .selected {
- padding: 3px;
- -moz-border-radius: 5px;
- border-radius: 5px;
- font-weight: bold;
- color: #FFD700;
-}
-
-.fakelink:hover {
- color: #5588aa;
- text-decoration: underline;
- cursor: pointer;
-}
-.smalltext {
- font-size: 0.7em;
-}
-#sysmsg {
- /*width: 600px;*/
- margin-bottom: 10px;
-}
-
-#register-fill-ext {
- margin-bottom: 25px;
-}
-
-#label-register-name, #label-register-nickname, #label-register-openid {
- float: left;
- width: 350px;
- margin-top: 10px;
-}
-
-#register-name, #register-nickname {
- float: left;
- margin-top: 10px;
- width: 150px;
-}
-
-#register-openid {
- float: left;
- margin-top: 10px;
- width: 130px;
-}
-
-#register-name-end, #register-email-end, #register-nickname-end, #register-submit-end, #register-openid-end {
- clear: both;
-}
-
-#register-nickname-desc {
- margin-top: 30px;
- width: 650px;
-}
-#register-sitename {
- float: left;
- margin-top: 10px;
-}
-
-#register-submit-button {
- margin-top: 10px;
-}
-
-#main-login {
- margin-left: 100px;
- margin-top: 50px;
-}
-
-#main-login #id_username, #main-login #id_password {
- width: 200px;
- padding: 10px;
- float: left;
-}
-
-#main-login .field_end {
- clear: both;
-}
-
-#main-login .field.input label, #main-login .field.password label {
- float: left;
- width: 100px;
-}
-
-#login_standard {
- width: 350px;
- float: left;
-}
-
-
-#login_standard input,
-#login_openid input {
- width: 180px;
-}
-
-#login-extra-links {
- clear: both;
-}
-
-#register-link, #lost-password-link {
- float: left;
- font-size: 90%;
- margin-left: 100px;
-}
-
-#login-standard-end {
- clear: both;
-}
-
-#login-submit-button {
-
- margin-left: 100px;
- margin-top: 10px;
-/* margin-left: 200px; */
-}
-
-
-input#dfrn-url {
- float: left;
- background: url(../img/friendika-16.png) no-repeat;
- background-position: 2px center;
- font-size: 17px;
- padding-left: 21px;
- height: 21px;
- background-color: #FFFFFF;
- color: #000000;
- margin-bottom: 20px;
-}
-
-#dfrn-url-label {
- float: left;
- width: 250px;
-}
-
-#dfrn-request-url-end {
- clear: both;
-}
-
-#knowyouyes, #knowyouno {
- float: left;
-}
-
-#dfrn-request-knowyou-yes-wrapper, #dfrn-request-knowyou-no-wrapper {
-
- float: none;
-}
-#dfrn-request-knowyou-yes-label, #dfrn-request-knowyou-no-label {
- float: left;
- width: 75px;
- margin-left: 50px;
- margin-bottom: 7px;
-}
-#dfrn-request-knowyou-break, #dfrn-request-knowyou-end {
- clear: both;
-
-}
-
-#dfrn-request-message-wrapper {
- margin-bottom: 50px;
-}
-#dfrn-request-submit-wrapper {
- clear: both;
- margin-left: 50px;
-}
-
-#dfrn-request-info-wrapper {
- margin-left: 50px;
-}
-
-
-
-#cropimage-wrapper, #cropimage-preview-wrapper {
- float: left;
- padding: 30px;
-}
-
-#crop-image-form {
- margin-top: 30px;
- clear: both;
-}
-
-.intro-wrapper {
- margin-top: 20px;
-}
-
-.intro-fullname {
- font-size: 1.1em;
- font-weight: bold;
-
-}
-.intro-desc {
- margin-bottom: 20px;
- font-weight: bold;
-}
-
-.intro-note {
- padding: 10px;
-}
-
-.intro-end {
- padding: 30px;
-}
-
-.intro-form {
- float: left;
-}
-.intro-approve-form {
- clear: both;
-}
-.intro-approve-as-friend-end {
- clear: both;
-}
-.intro-submit-approve, .intro-submit-ignore {
- margin-right: 20px;
-}
-.intro-submit-approve {
- margin-top: 15px;
-}
-
-.intro-approve-as-friend-label, .intro-approve-as-fan-label {
- float: left;
- width: 100px;
- margin-left: 20px;
-}
-.intro-approve-as-friend, .intro-approve-as-fan {
- float: left;
-}
-.intro-form-end {
- clear: both;
-}
-.intro-approve-as-friend-desc {
- margin-top: 15px;
-}
-.intro-approve-as-end {
- clear: both;
- margin-bottom: 10px;
-}
-
-.intro-end {
- clear: both;
- margin-bottom: 30px;
-}
-.aprofile dt {
- font-weight: bold;
-}
-#page-profile .title {
- font-weight: bold;
-}
-#profile-vcard-break {
- clear: both;
-}
-#profile-extra-links {
- clear: both;
- margin-top: 10px;
-}
-
-#profile-extra-links ul {
- list-style-type: none;
- padding: 0px;
-}
-
-
-#profile-extra-links li {
- margin-top: 5px;
-}
-
-#profile-edit-links ul {
- list-style-type: none;
-}
-
-#profile-edit-links li {
- margin-top: 10px;
-}
-.profile-edit-side-div {
- float: right;
-}
-.profile-edit-side-link {
- opacity: 0.3;
- filter:alpha(opacity=30);
- float: right;
-}
-.profile-edit-side-link:hover {
- opacity: 1.0;
- filter:alpha(opacity=100);
-}
-
-.view-contact-wrapper {
- margin-top: 20px;
- float: left;
- margin-left: 20px;
- width: 180px;
-}
-
-.contact-wrapper {
- float: left;
- width: 150px;
- height: 150px;
- overflow: auto;
-}
-
-#view-contact-end {
- clear: both;
-}
-
-
-#viewconnections {
- margin-top: 15px;
-}
-#profile-edit-default-desc {
- color: #FF0000;
- border: 1px solid #FF8888;
- background-color: #FFEEEE;
- padding: 7px;
-}
-
-#profile-edit-clone-link-wrapper {
- float: left;
- margin-left: 50px;
- margin-bottom: 20px;
- width: 300px;
-}
-
-
-#profile-edit-links-end {
- clear: both;
- margin-bottom: 15px;
-}
-
-.profile-listing-photo {
- border: none;
-}
-
-.profile-edit-submit-wrapper {
- margin-top: 20px;
- margin-bottom: 20px;
-}
-
-#profile-photo-link-select-wrapper {
- margin-top: 2em;
-}
-
-#profile-photo-submit-wrapper {
- margin-top: 10px;
-}
-
-#profile-photo-wrapper img {
- width:120px;
- height:120px;
- padding: 12px;
-}
-
-#profile-edit-profile-name-label,
-#profile-edit-name-label,
-#profile-edit-pdesc-label,
-#profile-edit-gender-label,
-#profile-edit-dob-label,
-#profile-edit-address-label,
-#profile-edit-locality-label,
-#profile-edit-region-label,
-#profile-edit-postal-code-label,
-#profile-edit-country-name-label,
-#profile-edit-marital-label,
-#profile-edit-sexual-label,
-#profile-edit-politic-label,
-#profile-edit-religion-label,
-#profile-edit-pubkeywords-label,
-#profile-edit-prvkeywords-label,
-#profile-edit-homepage-label,
-#profile-edit-hometown-label {
- float: left;
- width: 175px;
-}
-
-#profile-edit-profile-name,
-#profile-edit-name,
-#profile-edit-pdesc,
-#gender-select,
-#profile-edit-dob,
-#profile-edit-address,
-#profile-edit-locality,
-#profile-edit-region,
-#profile-edit-postal-code,
-#profile-edit-country-name,
-#marital-select,
-#sexual-select,
-#profile-edit-politic,
-#profile-edit-religion,
-#profile-edit-pubkeywords,
-#profile-edit-prvkeywords,
-#profile-in-dir-yes,
-#profile-in-dir-no,
-#profile-in-netdir-yes,
-#profile-in-netdir-no,
-#hide-wall-yes,
-#hide-wall-no,
-#hide-friends-yes,
-#hide-friends-no {
- float: left;
- margin-bottom: 20px;
-}
-#settings-normal,
-#settings-soapbox,
-#settings-freelove,
-#settings-community {
- float: left;
-}
-#settings-notifications label {
- margin-left: 20px;
-}
-#settings-notify-desc, #settings-activity-desc {
- font-weight: bold;
- margin-bottom: 15px;
-}
-#settings-pagetype-desc {
- color: #666666;
- margin-bottom: 15px;
-}
-
-#profile-in-dir-yes-label,
-#profile-in-dir-no-label,
-#profile-in-netdir-yes-label,
-#profile-in-netdir-no-label,
-#hide-wall-yes-label,
-#hide-wall-no-label,
-#hide-friends-yes-label,
-#hide-friends-no-label {
- margin-left: 125px;
- float: left;
- width: 50px;
-}
-
-#profile-edit-with-label {
- width: 175px;
- margin-left: 20px;
-}
-
-#profile-publish-yes-reg,
-#profile-publish-no-reg {
- float: left;
- margin-bottom: 10px;
-}
-
-#profile-publish-yes-label-reg,
-#profile-publish-no-label-reg {
- margin-left: 350px;
- float: left;
- width: 50px;
-}
-
-#profile-publish-break-reg,
-#profile-publish-end-reg {
- clear: both;
-}
-
-
-#profile-edit-pdesc-desc,
-#profile-edit-pubkeywords-desc,
-#profile-edit-prvkeywords-desc {
- float: left;
- margin-left: 20px;
-}
-
-
-#profile-edit-homepage, #profile-edit-hometown {
- float: left;
- margin-bottom: 35px;
-}
-#settings-normal-label,
-#settings-soapbox-label,
-#settings-community-label,
-#settings-freelove-label {
- float: left;
- width: 200px;
-}
-#settings-normal-desc,
-#settings-soapbox-desc,
-#settings-community-desc,
-#settings-freelove-desc {
- /*float: left;
- margin-left: 75px;*/
- clear: left;
- color: #666666;
- display: block;
- margin-bottom: 20px
-}
-
-#profile-edit-profile-name-end,
-#profile-edit-name-end,
-#profile-edit-pdesc-end,
-#profile-edit-gender-end,
-#profile-edit-dob-end,
-#profile-edit-address-end,
-#profile-edit-locality-end,
-#profile-edit-region-end,
-#profile-edit-postal-code-end,
-#profile-edit-country-name-end,
-#profile-edit-marital-end,
-#profile-edit-sexual-end,
-#profile-edit-politic-end,
-#profile-edit-religion-end,
-#profile-edit-pubkeywords-end,
-#profile-edit-prvkeywords-end,
-#profile-edit-homepage-end,
-#profile-edit-hometown-end,
-#profile-in-dir-break,
-#profile-in-dir-end,
-#profile-in-netdir-break,
-#profile-in-netdir-end,
-#hide-wall-break,
-#hide-wall-end,
-#hide-friends-break,
-#hide-friends-end,
-#settings-normal-break,
-#settings-soapbox-break,
-#settings-community-break,
-#settings-freelove-break {
- clear: both;
-}
-
-.settings-widget ul {
- list-style-type: none;
- padding: 0px;
-}
-
-.settings-widget li {
- height: auto;
- background-color: #f00;
- color: #fff !important;
- font-weight: bold;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
- margin-bottom: 12px;
- width: auto;
- box-shadow: 5px 5px 5px #444;
- margin-left: 8px;
- padding: 4px;
-}
-
-
-#gender-select, #marital-select, #sexual-select {
- width: 220px;
-}
-
-#profile-edit-profile-name-wrapper .required {
- color: #FF0000;
- float: left;
-}
-
-#contacts-main {
- margin-top: 20px;
- margin-bottom: 20px;
-}
-
-.contact-entry-wrapper {
- float: left;
- width: 120px;
- height: 120px;
-}
-#contacts-search-end {
- margin-bottom: 10px;
-}
-
-.contact-entry-direction-icon {
- margin-top: 24px;
- margin-right: 2px;
-}
-
-.contact-entry-photo img {
- border: none;
-}
-.contact-entry-photo-end {
- clear: both;
-}
-.contact-entry-name {
- float: left;
- margin-left: 0px;
- margin-right: 10px;
- width: 120px;
- overflow: hidden;
-}
-.contact-entry-edit-links {
- margin-top: 6px;
- margin-left: 10px;
- width: 16px;
-}
-.contact-entry-nav-wrapper {
- float: left;
- margin-left: 10px;
-}
-
-.contact-entry-edit-links img {
- border: none;
- margin-right: 15px;
-}
-.contact-entry-photo {
- float: left;
- position: relative;
-}
-.contact-entry-end {
- clear: both;
-}
-
-#fsuggest-desc, #fsuggest-submit-wrapper {
- margin-top: 15px;
- margin-bottom: 15px;
-}
-
-#network-star-link{
- margin-top: 10px;
-}
-.network-star {
- float: left;
- margin-right: 5px;
-}
-#network-bmark-link {
- margin-top: 10px;
-}
-.thread-wrapper .wall-item-comment-wrapper {
- margin-left: 50px;
-}
-
-/* Give the top level post bigger shadows than the comments. This makes them appear "higher" and the comments "lower", which separates posts from each other reasonably without literally drawing a line under it */
-
-.wall-item-content-wrapper {
- position: relative;
- background: #fff;
- border-radius: 10px;
- box-shadow: 8px 8px 8px #000;
- border: 1px solid #eec;
- opacity: 0.8;
-}
-
-.wall-item-content-wrapper:hover {
- opacity: 1;
-}
-.thread-wrapper .thread-wrapper {
- margin-left: 50px;
-}
-
-.thread-end-wrapper {
- margin-left: 50px;
-}
-
-
-/* This shadow isn't quite right - not sure if it's colour or size */
-
-.wall-item-content-wrapper.comment {
- background: #fff;
- border-left: 1px solid #e0e0e0;
- margin-left: 50px;
- margin-top: 15px;
- box-shadow: 5px 5px 5px #222;
-
-}
-
-.wall-item-like.comment, .wall-item-dislike.comment {
- margin-left: 50px;
-}
-
-.wall-item-info {
- display: block;
- float: left;
- width:110px;
- margin-right:10px;
-}
-.comment .wall-item-info {
- width: 70px;
-}
-
-.wall-item-photo-wrapper {
- margin-top: 10px;
- margin-left: 10px;
- margin-bottom: 10px;
- width: 100px;
-}
-.wall-item-photo-menu-button {
- display: block;
- position: absolute;
- background-image: url("../img/photo-menu.jpg");
- background-position: top left;
- background-repeat: no-repeat;
- margin: 0px; padding: 0px;
- width: 16px;
- height: 16px;
- top: 74px; left:10px;
- overflow: hidden;
- text-indent: 40px;
- display: none;
-
-}
-.wall-item-photo-menu {
- width: auto;
- border: 2px solid #444444;
- background: #FFFFFF;
- position: absolute;
- left: 10px; top: 90px;
- display: none;
- z-index: 10000;
-}
-.wall-item-photo-menu ul { margin:0px; padding: 0px; list-style: none }
-.wall-item-photo-menu li a { display: block; padding: 2px; }
-.wall-item-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; }
-
-
-.comment .wall-item-photo-menu-button { top: 44px;}
-.comment .wall-item-photo-menu { top: 60px; }
-
-.wallwall .wwto {
- left: 50px;
- margin: 0;
- position: absolute;
- top: 70px;
- width: 30px
-}
-.wallwall .wwto img {
- width: 30px !important;
- height: 30px !important;
-}
-
-.wallwall .wall-item-photo-end {
- clear: both;
-}
-
-.wall-item-arrowphoto-wrapper {
- position: absolute;
- left: 75px;
- top: 70px;
- z-index: 100;
-}
-.wall-item-wrapper {
- /*float: left;
- margin-right: 5px;
- width: 250px;*/
- margin-left:10px;
-}
-.wall-item-lock {
- /*height: 20px;*/
- /*margin-top: 10px;*/
- left: 105px;
- position: absolute;
- top: 1px;
-}
-.comment .wall-item-lock {
- left: 65px;
-}
-
-.wall-item-ago {
- color: #888888;
- font-size: 0.8em;
-}
-
-.wall-item-location {
- overflow: hidden;
- /* add ellipsis on text overflow */
- /* this work on safari, opera, ie, chrome. */
- /* firefox users have to wait support or we */
- /* can use a jquery plugin http://bit.ly/zJskg */
- text-overflow: ellipsis;
- -o-text-overflow: ellipsis;
- width: 100%;
-}
-
-
-.item-tool {
- float: left;
- margin-right: 8px;
-}
-
-.like-rotator {
- margin-left: 5px;
-}
-
-.wall-item-delete-wrapper {
- float: right;
-}
-
-.wall-item-delete-end {
- clear: both;
-}
-
-.wall-item-delete-icon {
- border: none;
-}
-
-.wall-item-wrapper-end {
- clear: both;
-}
-.wall-item-name-link {
- font-weight: bold;
- text-decoration: none;
- color: #3172BD;
-}
-.wall-item-photo {
- border: none;
-}
-.comment .wall-item-photo {
- width: 50px !important;
- height: 50px !important;
-}
-.wall-item-content {
- margin-left: 10px;
- overflow: auto;
-}
-
-.wall-item-content img {
- max-height: 95% !important;
- max-width: 95% !important;
- box-shadow: 8px 8px 8px #666;
-}
-
-.wall-item-content img.smiley {
- box-shadow: none;
-}
-
-a.divgrow-showmore {
-bottom: 0pt;
-left: 0pt;
-cursor: pointer;
-/*TODO make this work in not-Firefox */
-background-image: -moz-linear-gradient(center top, #ccc 0%, #000 95%);
-height: 30px;
-text-shadow: 0pt 0pt 7px #000;
-background-color: transparent;
-border-radius: 0pt 0pt 3px 3px;
-border-bottom: 2px solid #ff0;
-color: #ff0;
-font-size: 0.8em;
-line-height: 48px;
-text-align: center;
-right: 0pt;
-position: absolute;
-/*Stop it blocking wall-item-tools*/
-margin-bottom: 24px;
-/*Make it work with non-shiny posts */
-opacity: 0.6;
-
-}
-
-.wall-item-title {
- float: left;
- font-weight: bold;
- /*width: 450px;*/
-}
-
-.wall-item-title-end {
- clear: both;
-}
-
-.thread-wrapper.toplevel_item {
-padding: 30px;
-width: 90%;
-}
-
-.wall-item-body {
-/* float: left; */
- /*width: 450px;*/
- margin: 10px 10px 30px;
-}
-
-.wall-item-tools {
- clear: both;
-/* background-image: url("../img/head.jpg"); */
- background-position: 0 -20px;
- background-repeat: repeat-x;
- background: #eee;
- padding: 2px;
- border-radius: 0px 0px 10px 10px;
- border: 1px #eec solid;
-}
-
-.wall-item-like, .wall-item-dislike {
- font-size: 0.8em;
- color: #878883;
- position: relative;
- bottom: 50px;
- margin-left: 120px;
- float:left;
- opacity: 0.6;
-}
-
-/*
-.wall-item-dislike {
- font-size: 0.8em;
- color: #878883;
- position: relative;
- bottom: 50px;
- margin-left: 120px;
-}
-
-*/
-.wall-item-like:hover, .wall-item-dislike:hover{
-opacity: 1;
-}
-
-.wall-item-author {
- margin-top: 10px;
-}
-
-.comment-edit-wrapper {
- margin-top: 15px;
- background: #ffffff;
- margin-left: 50px;
-}
-
-.comment-wwedit-wrapper {
-
-}
-
-.comment-edit-photo {
- margin-top: 10px;
- margin-left: 10px;
- margin-bottom: 10px;
- width: 100px;
- float: left;
-}
-.comment-wwedit-wrapper.threaded > .comment-edit-form > .comment-edit-photo {
- width: 40px;
-}
-
-.comment-edit-photo img {
- width: 25px;
-}
-.comment-edit-text-empty, .comment-edit-text-full {
- float: left;
- margin-top: 10px;
- padding: 3px 1px 1px 3px;
- border: 1px solid #ccc;
- padding: 8px;
- border-radius: 5px 5px 5px 5px;
- box-shadow: 5px 5px 5px #666 inset;
-}
-
-.comment-edit-text-empty {
-color: gray;
-height: 1.5em;
-width: 80%; /*Too wide? */
-overflow: auto;
-margin-bottom: 10px;
-}
-
-.comment-wwedit-wrapper.threaded > .comment-edit-form > .comment-edit-text-empty {
- height: 1.5em;
-}
-
-.comment-edit-text-full {
- color: black;
- height: 150px;
- width: 80%;
- overflow: auto;
-}
-
-
-.comment-edit-text-end {
- clear: both;
-}
-
-.comment-edit-submit {
- margin: 10px 0px 10px 110px;
-}
-
-.comment-wwedit-wrapper.threaded > .comment-edit-form > .comment-edit-submit-wrapper > .comment-edit-submit {
- margin-left: 50px;
-}
-
-#profile-jot-plugin-wrapper,
-#profile-jot-submit-wrapper {
- margin-top: 15px;
- width:90%;
-}
-
-#profile-jot-submit {
- float: left;
-}
-#profile-upload-wrapper {
- float: left;
- margin-left: 30px;
-}
-#profile-attach-wrapper {
- float: left;
- margin-left: 30px;
-}
-#profile-rotator {
- float: left;
- margin-left: 30px;
-}
-#profile-link-wrapper {
- float: left;
- margin-left: 15px;
-}
-#profile-youtube-wrapper {
- float: left;
- margin-left: 15px;
-}
-#profile-video-wrapper {
- float: left;
- margin-left: 15px;
-}
-#profile-audio-wrapper {
- float: left;
- margin-left: 15px;
-}
-#profile-location-wrapper {
- float: left;
- margin-left: 15px;
-}
-#jot-preview-link {
- float: left;
- margin-left: 45px;
- margin-top: 0px !important;
-}
-
-
-#profile-nolocation-wrapper {
- float: left;
- margin-left: 15px;
-}
-#profile-title-wrapper {
- float: left;
- margin-left: 15px;
-}
-
-#profile-jot-perms {
- float: right;
- margin-left: 100px;
- font-weight: bold;
- font-size: 1.2em;
- height: auto;
- width: auto;
- background-color: #dd0000;
- border-radius: 5px;
- border: 2px outset;
- box-shadow: 5px 5px 5px #666;
- margin-right: 8px;
- padding: 4px;
-}
-
-#profile-jot-perms:active {
- box-shadow: 0 0 0 0;
-}
-
-#profile-jot-perms-end {
- /*clear: left;*/
- height: 30px;
-}
-
-#profile-jot-plugin-end{
- clear: both;
-}
-.profile-jot-net {
- float: left;
- margin-right: 10px;
- margin-top: 5px;
- margin-bottom: 5px;
-}
-
-#profile-jot-networks-end {
- clear: both;
-}
-
-#profile-jot-end {
- /*clear: both;*/
- margin-bottom: 30px;
-}
-#about-jot-submit-wrapper {
- margin-top: 15px;
-}
-#about-jot-end {
- margin-bottom: 30px;
-}
-#contacts-main {
- margin-bottom: 30px;
-}
-
-#profile-listing-desc {
- margin-left: 30px;
-}
-
-#profile-listing-new-link-wrapper {
- margin-left: 30px;
- margin-bottom: 30px;
-}
-.profile-listing-photo-wrapper {
- float: left;
-}
-
-.profile-listing-edit-buttons-wrapper {
- clear: both;
-}
-.profile-listing-photo-edit-link {
- float: left;
- width: 125px;
-}
-.profile-listing-end {
- clear: both;
-}
-.profile-listing-edit-buttons-wrapper img{
- border: none;
- margin-right: 20px;
-}
-.profile-listing {
- margin-top: 25px;
-}
-.profile-listing-name {
- float: left;
- margin-left: 32px;
- margin-top: 10px;
- color: #3172BD;
- font-weight: bold;
- width: 200px;
-
-}
-.fortune {
- margin-top: 50px;
- color: #4444FF;
- font-weight: bold;
- margin-bottom: 20px;
-}
-
-
-.directory-end {
- clear: both;
-}
-.directory-name {
- text-align: center;
-}
-.directory-photo {
- margin-left: 25px;
-}
-.directory-details {
- font-size: 0.7em;
- text-align: center;
- margin-left: 5px;
- margin-right: 5px;
-}
-.directory-item {
- float: left;
- width: 225px;
- height: 260px;
- overflow: auto;
-}
-
-#directory-search-wrapper {
- margin-top: 20px;
- margin-right: 20px;
- margin-bottom: 50px;
-}
-
-#directory-search-end {
-}
-
-.directory-photo-img {
- border: none;
-}
-
-
-.pager {
- padding: 10px;
- text-align: center;
- font-size: 1.0em;
-}
-
-
-.pager_first,
-.pager_last,
-.pager_prev,
-.pager_next,
-.pager_n {
- border: 1px solid black;
- background: #EEE;
- padding: 4px;
-}
-
-.pager_first a,
-.pager_last a,
-.pager_prev a,
-.pager_next a,
-.pager_n a {
- text-decoration: none;
-}
-
-.pager_current {
- border: 1px solid black;
- background: #FFCCCC;
- padding: 4px;
-}
-
-
-#advanced-profile-name-wrapper,
-#advanced-profile-gender-wrapper,
-#advanced-profile-dob-wrapper,
-#advanced-profile-age-wrapper,
-#advanced-profile-marital-wrapper,
-#advanced-profile-sexual-wrapper,
-#advanced-profile-homepage-wrapper,
-#advanced-profile-politic-wrapper,
-#advanced-profile-religion-wrapper,
-#advanced-profile-about-wrapper,
-#advanced-profile-interest-wrapper,
-#advanced-profile-contact-wrapper,
-#advanced-profile-music-wrapper,
-#advanced-profile-book-wrapper,
-#advanced-profile-tv-wrapper,
-#advanced-profile-film-wrapper,
-#advanced-profile-romance-wrapper,
-#advanced-profile-work-wrapper,
-#advanced-profile-education-wrapper {
- margin-top: 20px;
-}
-
-#advanced-profile-name-text,
-#advanced-profile-gender-text,
-#advanced-profile-dob-text,
-#advanced-profile-age-text,
-#advanced-profile-marital-text,
-#advanced-profile-sexual-text,
-#advanced-profile-homepage-text,
-#advanced-profile-politic-text,
-#advanced-profile-religion-text,
-#advanced-profile-about-text,
-#advanced-profile-interest-text,
-#advanced-profile-contact-text,
-#advanced-profile-music-text,
-#advanced-profile-book-text,
-#advanced-profile-tv-text,
-#advanced-profile-film-text,
-#advanced-profile-romance-text,
-#advanced-profile-work-text,
-#advanced-profile-education-text {
- width: 300px;
- float: left;
-}
-
-#advanced-profile-name-end,
-#advanced-profile-gender-end,
-#advanced-profile-dob-end,
-#advanced-profile-age-end,
-#advanced-profile-marital-end,
-#advanced-profile-sexual-end,
-#advanced-profile-homepage-end,
-#advanced-profile-politic-end,
-#advanced-profile-religion-end {
- height: 10px;
-}
-
-#advanced-profile-about-end,
-#advanced-profile-interest-end,
-#advanced-profile-contact-end,
-#advanced-profile-music-end,
-#advanced-profile-book-end,
-#advanced-profile-tv-end,
-#advanced-profile-film-end,
-#advanced-profile-romance-end,
-#advanced-profile-work-end,
-#advanced-profile-education-end {
-
-
-}
-
-#advanced-profile-name,
-#advanced-profile-gender,
-#advanced-profile-dob,
-#advanced-profile-age,
-#advanced-profile-marital,
-#advanced-profile-sexual,
-#advanced-profile-homepage,
-#advanced-profile-politic,
-#advanced-profile-religion {
- float: left;
-
-}
-
-
-#advanced-profile-about,
-#advanced-profile-interest,
-#advanced-profile-contact,
-#advanced-profile-music,
-#advanced-profile-book,
-#advanced-profile-tv,
-#advanced-profile-film,
-#advanced-profile-romance,
-#advanced-profile-work,
-#advanced-profile-education {
- margin-top: 10px;
- margin-left: 50px;
- margin-right: 20px;
- padding: 10px;
- border: 1px solid #CCCCCC;
-}
-
-#advanced-profile-with {
- float: left;
- margin-left: 15px;
-}
-
-#contact-edit-wrapper {
- margin-top: 10px;
-}
-
-#contact-edit-banner-name {
- font-size: 1.4em;
- font-weight: bold;
-}
-
-#contact-edit-poll-wrapper {
- margin-top: 15px;
-}
-
-#contact-edit-poll-text {
- margin-top: 15px;
- margin-bottom: 5px;
-}
-
-#contact-edit-update-now {
- margin-top: 15px;
-}
-
-#contact-edit-links{
- clear: both;
-}
-
-#contact-edit-links ul {
- list-style: none;
- list-style-type: none;
- margin-left: 0px;
- padding-left: 0px;
-}
-
-#contact-edit-links li {
- margin-top: 5px;
-}
-
-#contact-edit-drop-link {
- float: right;
- margin-right: 20px;
-}
-
-#contact-edit-nav-end {
- clear: both;
-}
-
-#contact-edit-wrapper {
- width: 100%;
-}
-
-#contact-edit-end {
- clear: both;
- margin-top: 15px;
-}
-
-#contact-profile-selector {
- width: 175px;
- margin-left: 175px;
-}
-
-.contact-edit-submit {
- margin-top: 20px;
-}
-
-
-.contact-photo-menu-button {
- position: absolute;
- background-image: url("../img/photo-menu.jpg");
- background-position: top left;
- background-repeat: no-repeat;
- margin: 0px; padding: 0px;
- width: 16px;
- height: 16px;
- top: 64px; left:0px;
- overflow: hidden;
- text-indent: 40px;
- display: none;
-
-}
-.contact-photo-menu {
- width: auto;
- border: 2px solid #444444;
- background: #FFFFFF;
- position: absolute;
- left: 0px; top: 90px;
- display: none;
- z-index: 10000;
-}
-.contact-photo-menu ul { margin:0px; padding: 0px; list-style: none }
-.contact-photo-menu li a { display: block; padding: 2px; }
-.contact-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; }
-
-
-#block-message, #ignore-message, #archive-message, #lost-contact-message {
- color: #FF0000;
-}
-
-#profile-edit-insecure {
- margin-top: 20px;
- color: #FF0000;
- font-size: 1.1em;
- border: 1px solid #FF8888;
- background-color: #FFEEEE;
- padding-left: 5px;
- /*: 3px 3px 3px 5px; */
- width: 587px;
-}
-
-/* TinyMCE */
-
-DIV#profile-jot-text_toolbargroup{
-background: #FFF;
-border: 1px #111;
-/*box-shadow: 5px 5px 5px #000 inset;*/
-}
-
-/*
-#profile-jot-text_parent, .mceLayout {
- border-radius: 5px;
- -moz-border-radius: 5px;
- box-shadow: 4px 4px 3px 0 #444444;
-}
-*/
-
-
-iframe#profile-jot-text_ifr {
-width: 100% !important;
-height: 100% !important;
-box-shadow: 5px 5px 5px #000 inset !important;}
-
-tr.mceLast {
-
-}
-
-/* Not MCE */
-
-#profile-jot-text {
- height: 20px;
- color:#000;
- border: 1px solid #cccccc;
- padding: 10px;
- width: 90%;
- border-radius: 20px;
- box-shadow: 4px 4px 3px 0 #666 inset;
-}
-#profile-jot-text:hover {
- color: #000000;
-}
-
-.wall-item-photo, .photo, .contact-block-img, .my-comment-photo {
- border-radius: 5px;
- -moz-border-radius: 5px;
- box-shadow: 4px 4px 3px 0 #444444;
-}
-
-
-#datebrowse-sidebar select {
- margin-left: 25px;
- border-radius: 5px;
- -moz-border-radius: 5px;
- opacity: 0.3;
- filter:alpha(opacity=30);
-}
-
-#datebrowse-sidebar select:hover {
- opacity: 1.0;
- filter:alpha(opacity=100);
-}
-
-#posted-date-selector {
- margin-left: 30px !important;
- margin-top: 5px !important;
- margin-right: 0px !important;
- margin-bottom: 0px !important;
-}
-
-#posted-date-selector:hover {
- box-shadow: 4px 4px 3px 0 #444444;
- margin-left: 25px !important;
- margin-top: 0px !important;
- margin-right: 5px !important;
- margin-bottom: 5px !important;
-
-}
-
-#side-bar-photos-albums {
- margin-top: 15px;
-}
-
-#side-bar-photos-albums ul {
- list-style: none;
-}
-
-.contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo, .group-selected, .nets-selected, .fileas-selected, .categories-selected {
- border-radius: 5px;
- -moz-border-radius: 5px;
- box-shadow: 4px 4px 3px 0 #444444;
-}
-
-#profile-jot-submit {
- height: auto;
- background-color: #dd0000;
- color: #eeeeec;
- font-weight: bold;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
- border: 2px outset #222420 !important;
- margin: 0;
- float: right;
- text-shadow: 1px 1px #111;
- width: auto;
- box-shadow: 5px 5px 5px #444;
-}
-
-#profile-jot-submit:active {
- box-shadow: 0 0 0 0;
-}
-
-#sidebar-page-list .label {
- margin-left: 5px;
-}
-
-
-.photo {
- border: 1px solid #AAAAAA;
-}
-
-.photo-top-photo, .photo-album-photo {
- padding: 10px;
- max-width: 300px;
- border: 1px solid #888888;
-}
-
-.rotleft1 {
--webkit-transform: rotate(-1deg);
--moz-transform: rotate(-1deg);
--ms-transform: rotate(-1deg);
--o-transform: rotate(-1deg);
-}
-
-.rotleft2 {
--webkit-transform: rotate(-2deg);
--moz-transform: rotate(-2deg);
--ms-transform: rotate(-2deg);
--o-transform: rotate(-2deg);
-}
-
-.rotleft3 {
--webkit-transform: rotate(-3deg);
--moz-transform: rotate(-3deg);
--ms-transform: rotate(-3deg);
--o-transform: rotate(-3deg);
-}
-
-.rotleft4 {
--webkit-transform: rotate(-4deg);
--moz-transform: rotate(-4deg);
--ms-transform: rotate(-4deg);
--o-transform: rotate(-4deg);
-}
-
-
-.rotright1 {
--webkit-transform: rotate(1deg);
--moz-transform: rotate(1deg);
--ms-transform: rotate(1deg);
--o-transform: rotate(1deg);
-}
-
-.rotright2 {
--webkit-transform: rotate(2deg);
--moz-transform: rotate(2deg);
--ms-transform: rotate(2deg);
--o-transform: rotate(2deg);
-}
-
-.rotright3 {
--webkit-transform: rotate(3deg);
--moz-transform: rotate(3deg);
--ms-transform: rotate(3deg);
--o-transform: rotate(3deg);
-}
-
-.rotright4 {
--webkit-transform: rotate(4deg);
--moz-transform: rotate(4deg);
--ms-transform: rotate(4deg);
--o-transform: rotate(4deg);
-}
-
-
-
-/** acl **/
-#photo-edit-perms-select,
-#photos-upload-permissions-wrapper,
-#profile-jot-acl-wrapper{
- display:block!important;
-}
-
-#photos-usage-message {
- margin-bottom: 15px;
-}
-
-
-#acl-wrapper {
- width: 690px;
- float:left;
-}
-#acl-search {
- float:right;
- background: #ffffff url("../../../../images/search_18.png") no-repeat right center;
- padding-right:20px;
-}
-#acl-showall {
- float: left;
- display: block;
- width: auto;
- height: 18px;
- background-color: #cccccc;
- background-image: url("../../../../images/show_all_off.png");
- background-position: 7px 7px;
- background-repeat: no-repeat;
- padding: 7px 5px 0px 30px;
- -webkit-border-radius: 5px ;
- -moz-border-radius: 5px;
- border-radius: 5px;
- color: #999999;
-}
-#acl-showall.selected {
- color: #000000;
- background-color: #ff9900;
- background-image: url("../../../../images/show_all_on.png");
-}
-
-#acl-list {
- height: 210px;
- border: 1px solid #cccccc;
- clear: both;
- margin-top: 30px;
- overflow: auto;
-}
-#acl-list-content {
-
-}
-.acl-list-item {
- display: block;
- width: 150px;
- height: 30px;
- border: 1px solid #cccccc;
- margin: 5px;
- float: left;
-}
-.acl-list-item img{
- width:22px;
- height: 22px;
- float: left;
- margin: 4px;
-}
-.acl-list-item p { height: 12px; font-size: 10px; margin: 0px; padding: 2px 0px 1px; overflow: hidden;}
-.acl-list-item a {
- font-size: 8px;
- display: block;
- width: 40px;
- height: 10px;
- float: left;
- color: #999999;
- background-color: #cccccc;
- background-position: 3px 3px;
- background-repeat: no-repeat;
- margin-right: 5px;
- -webkit-border-radius: 5px ;
- -moz-border-radius: 5px;
- border-radius: 5px;
- padding-left: 15px;
-}
-#acl-wrapper a:hover {
- text-decoration: none;
- color:#000000;
-}
-.acl-button-show { background-image: url("../../../../images/show_off.png"); }
-.acl-button-hide { background-image: url("../../../../images/hide_off.png"); }
-
-.acl-button-show.selected {
- color: #000000;
- background-color: #9ade00;
- background-image: url("../../../../images/show_on.png");
-}
-.acl-button-hide.selected {
- color: #000000;
- background-color: #ff4141;
- background-image: url("../../../../images/hide_on.png");
-}
-.acl-list-item.groupshow { border-color: #9ade00; }
-.acl-list-item.grouphide { border-color: #ff4141; }
-/** /acl **/
-
-
-
-#group-new-submit-wrapper {
- margin-top: 30px;
-}
-
-#group-edit-name-label {
- float: left;
- width: 175px;
- margin-top: 20px;
- margin-bottom: 20px;
-}
-
-#group-edit-name {
- float: left;
- width: 225px;
- margin-top: 20px;
- margin-bottom: 20px;
-}
-
-#group-edit-name-wrapper {
-
-
-}
-
-
-#group_members_select_label {
- display: block;
- float: left;
- width: 175px;
-}
-
-.group_members_select {
- float: left;
- width: 230px;
- overflow: auto;
-}
-
-#group_members_select_end {
- clear: both;
-}
-#group-edit-name-end {
- clear: both;
-}
-
-#prvmail-to-label, #prvmail-subject-label, #prvmail-message-label {
- margin-bottom: 10px;
- margin-top: 20px;
-}
-
-#prvmail-submit {
- float: left;
- margin-top: 10px;
- margin-right: 30px;
-}
-#prvmail-upload-wrapper,
-#prvmail-link-wrapper,
-#prvmail-rotator-wrapper {
- float: left;
- margin-top: 10px;
- margin-right: 10px;
- width: 24px;
-}
-
-#prvmail-end {
- clear: both;
-}
-
-.mail-list-sender,
-.mail-list-detail {
- float: left;
-}
-.mail-list-detail {
- margin-left: 20px;
-}
-
-.mail-list-subject {
- font-size: 1.1em;
- margin-top: 10px;
-}
-a.mail-list-link {
- display: block;
- font-size: 1.3em;
- padding: 4px 0;
-}
-
-/*
-*a.mail-list-link:hover {
-* background-color: #15607B;
-* color: #F5F6FB;
-*}
-*/
-
-.mail-list-outside-wrapper-end {
- clear: both;
-}
-
-.mail-list-outside-wrapper {
- margin-top: 30px;
-}
-
-.mail-list-delete-wrapper {
- float: right;
- margin-right: 30px;
- margin-top: 15px;
-}
-
-.mail-list-delete-icon {
- border: none;
-}
-
-.mail-conv-sender,
-.mail-conv-detail {
- float: left;
-}
-.mail-conv-detail {
- margin-left: 20px;
- width: 500px;
-}
-
-.mail-conv-subject {
- font-size: 1.4em;
- margin: 10px 0;
-}
-
-.mail-conv-outside-wrapper-end {
- clear: both;
-}
-
-.mail-conv-outside-wrapper {
- margin-top: 30px;
-}
-
-.mail-conv-delete-wrapper {
- float: right;
- margin-right: 30px;
- margin-top: 15px;
-}
-.mail-conv-break {
- clear: both;
-}
-
-.mail-conv-delete-icon {
- border: none;
-}
-
-.message-links ul {
- list-style-type: none;
- padding: 0px;
-}
-
-.message-links li {
- margin-top: 10px;
- float: left;
-}
-.message-links a {
- padding: 3px 5px;
-}
-
-.message-links-end {
- clear: both;
-}
-
-#sidebar-group-list ul {
- list-style-type: none;
-}
-
-#sidebar-group-list .icon, #sidebar-group-list .iconspacer {
- display: inline-block;
- height: 12px;
- width: 12px;
-}
-
-#sidebar-group-list li {
- margin-top: 10px;
-}
-
-.nets-ul, .fileas-ul, .categories-ul {
- list-style-type: none;
-}
-
-.nets-ul li, .fileas-ul li, .categories-ul li {
- margin-top: 10px;
-}
-
-.nets-link {
- margin-left: 24px;
-}
-.nets-all {
- margin-left: 42px;
-}
-
-.fileas-link, .categories-link {
- margin-left: 24px;
-}
-
-.fileas-all, .categories-all {
- margin-left: 0px;
-}
-
-#search-save {
- margin-left: 5px;
-}
-.groupsideedit {
- margin-right: 10px;
-}
-#saved-search-ul {
- list-style-type: none;
-}
-.savedsearchdrop, .savedsearchterm {
- float: left;
- margin-top: 10px;
-}
-.savedsearchterm {
- margin-left: 10px;
-}
-
-
-#side-follow-wrapper {
- margin-top: 20px;
-}
-#side-follow-url, #side-peoplefind-url {
- margin-top: 5px;
-}
-#side-follow-submit, #side-peoplefind-submit {
- margin-top: 15px;
-}
-
-#side-match-link {
- margin-top: 10px;
-}
-
-aside input[type='text'] {
- width: 174px;
-}
-
-.widget {
- border-bottom: 1px solid #eec;
- padding: 8px;
- margin-top: 5px;
- -moz-border-radius:5px;
- -webkit-border-radius:5px;
- border-radius:5px;
-
-}
-
-
-/*.photos {
- height: auto;
- overflow: auto;
-}*/
-
-.photos-end {
- clear: both;
- margin-bottom: 25px;
-}
-
-.photo-album-image-wrapper {
- float: left;
- margin-top: 15px;
- margin-right: 15px;
- margin-left: 15px;
-/* width: 200px; height: 200px;
- overflow: hidden;
- position: relative; */
-}
-.photo-album-image-wrapper .caption {
- display: none;
- width: 100%;
-/* position: absolute; */
- bottom: 0px;
- padding: 0.5em 0.5em 0px 0.5em;
- background-color: rgba(245, 245, 255, 0.8);
- border-bottom: 2px solid #CCC;
- margin: 0px;
-}
-.photo-album-image-wrapper a:hover .caption {
- display:block;
-}
-
-#photo-album-end {
- clear: both;
- margin-bottom: 25px;
-}
-
-.photo-top-image-wrapper {
-/* position: relative; */
- float: left;
- margin-top: 15px;
- margin-right: 15px;
- margin-left: 15px;
- margin-bottom: 15px;
-/* width: 200px; height: 200px;
- overflow: hidden; */
-}
-.photo-top-album-name {
- width: 100%;
- min-height: 2em;
-/* position: absolute; */
- bottom: 0px;
- padding: 0px 3px;
- padding-top: 0.5em;
- background-color: rgb(255, 255, 255);
-}
-#photo-top-end {
- clear: both;
-}
-
-#photo-top-links {
- margin-bottom: 30px;
- margin-left: 30px;
-}
-
-#photos-upload-newalbum-div {
- float: left;
- width: 175px;
-}
-
-#photos-upload-noshare {
- margin-bottom: 10px;
-}
-#photos-upload-existing-album-text {
- float: left;
- width: 175px;
-}
-#photos-upload-newalbum {
- float: left;
-}
-#photos-upload-album-select {
- float: left;
-}
-
-#photos-upload-spacer {
- margin-top: 25px;
-}
-#photos-upload-new-end, #photos-upload-exist-end {
- clear: both;
-}
-#photos-upload-exist-end {
- margin-bottom: 15px;
-}
-#photos-upload-submit {
- margin-top: 15px;
-}
-
-#photos_upload_applet_wrapper {
- margin-bottom: 15px;
-}
-
-#photos-upload-no-java-message {
- margin-bottom: 15px;
-}
-
-#profile-jot-desc {
- /*float: left;*/
- width: 480px;
- color: #FF0000;
- margin-top: 10px;
- margin-bottom: 10px;
-}
-
-#character-counter {
- float: right;
- font-size: 120%;
-}
-
-#character-counter.grey {
- color: #888888;
-}
-
-#character-counter.orange {
- color: orange;
-}
-#character-counter.red {
- color: red;
-}
-
-#profile-jot-banner-end {
- /* clear: both; */
-}
-
-#photos-upload-select-files-text {
- margin-top: 15px;
- margin-bottom: 15px;
-}
-
-#photos-upload-perms-menu, #photos-upload-perms-menu:visited, #photos-upload-perms-menu:link {
- color: #8888FF;
- text-decoration: none;
- cursor: pointer;
-}
-
-#photos-upload-perms-menu:hover {
- color: #0000FF;
- text-decoration: underline;
- cursor: pointer;
-}
-
-
-#settings-default-perms-menu {
- margin-top: 15px;
- margin-bottom: 15px;
-}
-
-#photo-edit-caption-label, #photo-edit-tags-label, #photo-edit-albumname-label, #photo-edit-rotate-label {
- float: left;
- width: 150px;
-}
-
-#photo-edit-perms-end {
- margin-bottom: 15px;
-}
-
-#photo-edit-caption, #photo-edit-newtag, #photo-edit-albumname, #photo-edit-rotate {
- float: left;
- margin-bottom: 25px;
-}
-#photo-edit-link-wrap {
- margin-bottom: 15px;
-}
-#photo-like-div {
- margin-bottom: 25px;
-}
-
-#photo-edit-caption-end, #photo-edit-tags-end, #photo-edit-albumname-end, #photo-edit-rotate-end {
- clear: both;
-}
-
-#photo-edit-rotate-end {
- margin-bottom: 15px;
-}
-
-#photo-edit-delete-button {
- margin-left: 200px;
-}
-#photo-edit-end {
- margin-bottom: 35px;
-}
-#photo-caption {
- font-size: 110%;
- font-weight: bold;
- margin-top: 15px;
- margin-bottom: 15px;
-}
-
-#in-this-photo-text {
- color: #0000FF;
- margin-left: 30px;
-}
-
-#in-this-photo {
- margin-left: 60px;
- margin-top: 10px;
- margin-bottom: 20px;
-}
-
-#photo-album-edit-submit, #photo-album-edit-drop {
- margin-top: 15px;
- margin-bottom: 15px;
-}
-
-#photo-album-edit-drop {
- margin-left: 200px;
-}
-
-.group-delete-wrapper {
- float: right;
- margin-right: 50px;
-}
-
-#install-dbhost-label,
-#install-dbuser-label,
-#install-dbpass-label,
-#install-dbdata-label,
-#install-tz-desc {
- float: left;
- width: 250px;
- margin-top: 10px;
- margin-bottom: 10px;
-
-}
-
-#install-dbhost,
-#install-dbuser,
-#install-dbpass,
-#install-dbdata {
- float: left;
- width: 200px;
- margin-left: 20px;
-}
-
-#install-dbhost-end,
-#install-dbuser-end,
-#install-dbpass-end,
-#install-dbdata-end,
-#install-tz-end {
- clear: both;
-}
-
-#install-form select#timezone_select {
- float: left;
- margin-top: 18px;
- margin-left: 20px;
-}
-
-#dfrn-request-networks {
- margin-bottom: 30px;
-}
-
-#pause {
- position: fixed;
- bottom: 5px;
- right: 5px;
-}
-
-.sparkle {
- cursor: url('../img/lock.cur'), pointer;
-/* cursor: pointer !important; */
-}
-
-.contact-block-div {
- float: left;
- width: 52px;
- height: 52px;
-}
-.contact-block-textdiv {
- float: left;
- width: 150px;
- height: 34px;
-}
-
-#contact-block-end {
- clear: both;
-}
-.contact-block-link {
- float: left;
-}
-.contact-block-img {
- width:30px;
- height:30px;
-}
-
-#tag-remove {
- margin-bottom: 15px;
-}
-
-#tagrm li {
- margin-bottom: 10px;
-}
-
-#tagrm-submit, #tagrm-cancel {
- margin-top: 25px;
-}
-
-#tagrm-cancel {
- margin-left: 15px;
-}
-
-.wall-item-conv {
- margin-top: 5px;
- margin-bottom: 25px;
-}
-
-#search-submit {
- margin-left: 15px;
-}
-
-#search-box {
- margin-bottom: 25px;
-}
-
-#nav-searchbar {
- float: right;
- margin-top: 4px;
-}
-
-#nav-search-text:hover {
- background-color: #FFF;
- opacity: 1;
-}
-
-#nav-search-text {
- border-radius: 14px;
- background-color: #fff;
- opacity: 0.92;
-}
-
-#nav-user-linkmenu img {
- border-radius: 5px;
-}
-
-.location-label, .gender-label, .marital-label, .homepage-label {
- float: left;
- text-align: right;
- display: block;
- width: 65px;
-}
-
-.adr, .x-gender, .marital-text, .homepage-url {
- float: left;
- display: block;
- margin-left: 8px;
-}
-
-.profile-clear {
- clear: both;
-}
-
-
-.clear {
- clear: both;
-}
-
-.cc-license {
- margin-top: 50px;
- font-size: 70%;
-}
-
-
-#plugin-settings-link, #account-settings-link {
- margin-bottom: 10px;
-}
-
-#uexport-link {
- margin-bottom: 20px;
-}
-
-/* end from default */
-
-
-.fn {
- padding: 0px 0px 5px 0px;
- font-size: 120%;
- font-weight: bold;
- color: #dd0000;
-}
-
-.vcard .title {
- margin-bottom: 5px;
- margin-left: 12px;
-}
-
-.vcard dl {
- clear: both;
-}
-
-#birthday-title {
- float: left;
- font-weight: bold;
-}
-
-#birthday-adjust {
- float: left;
- font-size: 75%;
- margin-left: 10px;
-}
-
-#birthday-title-end {
- clear: both;
-}
-
-.birthday-list {
- margin-left: 15px;
-}
-
-#birthday-wrapper {
- margin-bottom: 20px;
-}
-
-#network-new-link {
- margin-top: 15px;
- margin-bottom: 15px;
-}
-
-
-.tool-wrapper {
- float: left;
- margin-left: 15px;
-}
-
-.tool-link {
- cursor: pointer;
-}
-
-.eventcal {
- float: left;
- font-size: 20px;
-}
-
-#event-summary-text {
- margin-top: 15px;
-}
-
-#event-share-checkbox {
- float: left;
- margin-top: 10px;
-}
-
-#event-share-text {
- float: left;
- margin-top: 10px;
- margin-left: 5px;
-}
-
-#event-share-break {
- clear: both;
- margin-bottom: 10px;
-}
-
-#event-summary {
- width: 400px;
- font-weight: bold;
- font-size:2em;
-}
-
-.vevent {
-border: 1px solid #CCCCCC;
-
-}
-
-.vevent .event-summary {
- margin-left: 10px;
- margin-right: 10px;
- font-weight: bold;
-}
-
-.vevent .event-description, .vevent .event-location {
- margin-left: 10px;
- margin-right: 10px;
-}
-.vevent .event-start {
- margin-left: 10px;
- margin-right: 10px;
-}
-
-#new-event-link {
- margin-bottom: 10px;
-}
-
-.edit-event-link, .plink-event-link {
- float: left;
- margin-top: 4px;
- margin-right: 4px;
- margin-bottom: 15px;
-}
-
-.event-description:before {
- content: url('../../../../images/calendar.png');
- margin-right: 15px;
-}
-
-.event-start, .event-end {
- margin-left: 10px;
- width: 330px;
- clear: both;
-}
-
-.event-start .dtstart, .event-end .dtend {
- float: right;
-}
-
-.event-list-date {
- margin-bottom: 10px;
-}
-
-.prevcal, .nextcal {
- float: left;
- margin-left: 32px;
- margin-right: 32px;
- margin-top: 64px;
-}
-.event-calendar-end {
- clear: both;
-}
-
-
-.calendar {
- font-family: Courier, monospace;
-}
-.today {
- font-weight: bold;
- color: #FF0000;
-}
-
-.settings-block {
- border: 1px solid #AAA;
- margin: 10px;
- padding: 10px;
-}
-
-.app-title {
- margin: 10px;
-}
-
-#identity-manage-desc {
- margin-top:15px;
- margin-bottom: 15px;
-}
-
-#identity-manage-choose {
- margin-bottom: 15px;
-}
-
-#identity-submit {
- margin-top: 20px;
-}
-
-#photo-prev-link, #photo-next-link {
- padding: 10px;
- float: left;
-}
-
-#photo-photo {
- float: left;
-}
-
-#photo-photo-end {
- clear: both;
-}
-
-.profile-match-photo {
- float: left;
- text-align: center;
- width: 120px;
-}
-
-.profile-match-name {
- float: left;
- text-align: center;
- width: 120px;
- overflow: hidden;
-}
-
-.profile-match-break,
-.profile-match-end {
- clear: both;
-}
-
-.profile-match-connect {
- text-align: center;
- font-weight: bold;
-}
-
-.profile-match-wrapper {
- float: left;
- padding: 10px;
- width: 120px;
- height: 120px;
- scroll: auto;
-}
-#profile-match-wrapper-end {
- clear: both;
-}
-.side-link {
- margin-bottom: 15px;
-}
-
-#language-selector {
- position: absolute;
- top: 0px;
- left: 16px;
-}
-
-#group-members {
- margin-top: 20px;
- padding: 10px;
- height: 250px;
- overflow: auto;
- border: 1px solid #ddd;
-}
-
-#group-members-end {
- clear: both;
-}
-
-#group-separator {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-
-#group-all-contacts {
- padding: 10px;
- height: 450px;
- overflow: auto;
- border: 1px solid #ddd;
-}
-
-#group-all-contacts-end {
- clear: both;
- margin-bottom: 10px;
-}
-
-#group-edit-desc {
- margin-top: 15px;
-}
-
-
-#prof-members {
- margin-top: 20px;
- padding: 10px;
- height: 250px;
- overflow: auto;
- border: 1px solid #ddd;
-}
-
-#prof-members-end {
- clear: both;
-}
-
-#prof-separator {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-
-#prof-all-contacts {
- padding: 10px;
- height: 450px;
- overflow: auto;
- border: 1px solid #ddd;
-}
-
-#prof-all-contacts-end {
- clear: both;
- margin-bottom: 10px;
-}
-
-#prof-edit-desc {
- margin-top: 15px;
-}
-
-#crepair-name-label,
-#crepair-nick-label,
-#crepair-attag-label,
-#crepair-url-label,
-#crepair-request-label,
-#crepair-confirm-label,
-#crepair-notify-label,
-#crepair-photo-label,
-#crepair-poll-label {
- float: left;
- width: 200px;
- margin-bottom: 15px;
-}
-
-#crepair-name,
-#crepair-nick,
-#crepair-attag,
-#crepair-url,
-#crepair-request,
-#crepair-confirm,
-#crepair-notify,
-#crepair-photo,
-#crepair-poll {
- float: left;
- width: 300px;
-}
-
-
-#netsearch-box {
- margin-top: 20px;
-}
-
-#netsearch-box #search-submit {
- margin: 5px 0px 0px 0px;
-}
-
-.required {
- color: #FF0000;
-}
-
-#event-start-text, #event-finish-text {
- margin-top: 10px;
- margin-bottom: 5px;
-}
-
-#event-nofinish-checkbox, #event-nofinish-text, #event-adjust-checkbox, #event-adjust-text {
- float: left;
-}
-#event-datetime-break {
- margin-bottom: 10px;
-}
-
-#event-nofinish-break, #event-adjust-break {
- clear: both;
-}
-
-#event-desc-text, #event-location-text {
- margin-top: 10px;
- margin-bottom: 5px;
-}
-#event-submit {
- margin-top: 10px;
-}
-
-.body-tag, .filesavetags, .categorytags {
- opacity: 0.5;
- filter:alpha(opacity=50);
-}
-
-.body-tag:hover, .filesavetags:hover, .categorytags:hover {
- opacity: 1.0 !important;
- filter:alpha(opacity=100) !important;
-}
-
-.item-select {
- opacity: 0.1;
- filter:alpha(opacity=10);
- float: right;
- margin-right: 10px;
-
-}
-.item-select:hover, .checkeditem {
- opacity: 1;
- filter:alpha(opacity=100);
-}
-
-
-#item-delete-selected {
- margin-top: 30px;
-}
-
-#item-delete-selected-end {
- clear: both;
-}
-#item-delete-selected-icon, #item-delete-selected-desc {
- float: left;
- margin-right: 5px;
-}
-#item-delete-selected-desc:hover {
- text-decoration: underline;
-}
-
-#lang-select-icon {
- cursor: pointer;
- position: absolute;
- left: 4px;
-/*because of the shape, if this is lined up properly it looks like it's lined up wrong...
-lining it up too high is the only way to make it look correctly aligned. The human
-brain is weird like that */
- top: 2px;
-}
-
-#lang-select-icon:hover {
- opacity: 1;
- filter:alpha(opacity=100);
-}
-
-.notif-image {
- height: 80px;
- width: 80px;
- margin-right: 15px;
-}
-.notification-listing-end {
- clear: both;
- margin-bottom: 15px;
-}
-
-
-
-/**
- * Plugins settings
- */
-
-.settings-block > h3,
-.settings-heading {
- border-bottom: 1px solid #babdb6;
-}
-
-
-/**
- * Form fields
- */
-.field {
- margin-bottom: 10px;
- padding-bottom: 10px;
- overflow: auto;
- width: 100%
-}
-
-.field label {
- float: left;
- width: 200px;
-}
-
-.field input,
-.field textarea {
- width: 400px;
-}
-.field textarea { height: 100px; }
-.field_help {
- display: block;
- margin-left: 200px;
- color: #666666;
-
-}
-
-.field_abook_help {
- color: #888;
-}
-.abook-them {
- margin-left: 225px;
- margin-bottom: 15px;
-}
-.abook-me {
- margin-left: 36px;
- margin-bottom: 15px;
-}
-.acheckbox {
- margin-bottom: 5px !important;
-}
-
-#contact-slider {
- width: 600px !important;
-}
-
-.abook-edit-them, .abook-edit-me {
- float: left;
- width: 100px !important;
-}
-.field_abook_help {
- float: left;
-}
-
-.field .onoff {
- float: left;
- width: 80px;
- margin-right: 15px;
-}
-.field .onoff a {
- display: block;
- border:1px solid #666666;
- background-image:url("../../../../images/onoff.jpg");
- background-repeat: no-repeat;
- padding: 4px 2px 2px 2px;
- height: 16px;
- text-decoration: none;
-}
-.field .onoff .off {
- border-color:#666666;
- padding-left: 40px;
- background-position: left center;
- background-color: #cccccc;
- color: #666666;
- text-align: right;
-}
-.field .onoff .on {
- border-color:#204A87;
- padding-right: 40px;
- background-position: right center;
- background-color: #D7E3F1;
- color: #204A87;
- text-align: left;
-}
-.hidden { display: none!important; }
-
-.field.radio .field_help { margin-left: 0px; }
-
-/**
- * ADMIN
- */
-#pending-update {
- float:right;
- color: #ffffff;
- font-weight: bold;
- background-color: #FF0000;
- padding: 0em 0.3em;
-
-}
-#adminpage dl {
- clear: left;
- margin-bottom: 2px;
- padding-bottom: 2px;
- border-bottom: 1px solid black;
-}
-#adminpage dt {
- width: 200px;
- float: left;
- font-weight: bold;
-}
-#adminpage dd {
- margin-left: 200px;
-}
-
-#adminpage h3 {
- border-bottom: 1px solid #cccccc;
-}
-#adminpage .field label {
- font-weight: bold;
-}
-#adminpage .submit {
- clear:left;
- text-align: right;
-}
-
-#adminpage #pluginslist {
- margin: 0px; padding: 0px;
-}
-#adminpage .plugin {
- list-style: none;
- display: block;
- border: 1px solid #888888;
- padding: 1em;
- margin-bottom: 5px;
- clear: left;
-}
-#adminpage .plugin .desc { margin-left: 2.5em;}
-#adminpage .toggleplugin {
- float:left;
- margin-right: 1em;
-}
-
-#adminpage table {width:100%; border-bottom: 1px solid #000000; margin: 5px 0px;}
-#adminpage table th { text-align: left;}
-#adminpage td .icon { float: left;}
-#adminpage table#users img { width: 16px; height: 16px; }
-#adminpage table tr:hover { background-color: #bbc7d7; }
-#adminpage .selectall { text-align: right; }
-
-/*
- * UPDATE
- */
-.popup {
- width: 100%; height: 100%;
- top:0px; left:0px;
- position: absolute;
- display: none;
-}
-
-.popup .background {
- background-color: rgba(0,0,0,128);
- opacity: 0.5;
- width: 100%; height: 100%;
- position: absolute;
- top:0px; left:0px;
-}
-.popup .panel {
- top:25%;left:25%;width:50%;height:50%;
- padding: 1em;
- position: absolute;
- border: 4px solid #000000;
- background-color: #FFFFFF;
-}
-.popup .panel .panel_text { display: block; overflow: auto; height: 80%; }
-.popup .panel .panel_in { width: 100%; height: 100%; position: relative; }
-.popup .panel .panel_actions { width: 100%; bottom: 4px; left: 0px; position: absolute; }
-.panel_text .progress { width: 50%; overflow: hidden; height: auto; border: 1px solid #cccccc; margin-bottom: 5px}
-.panel_text .progress span {float: right; display: block; width: 25%; background-color: #eeeeee; text-align: right;}
-
-/**
- * OAuth
- */
-.oauthapp {
- height: auto; overflow: auto;
- border-bottom: 2px solid #cccccc;
- padding-bottom: 1em;
- margin-bottom: 1em;
-}
-.oauthapp img {
- float: left;
- width: 48px; height: 48px;
- margin: 10px;
-}
-.oauthapp img.noicon {
- background-image: url("../../../../images/icons/48/plugin.png");
- background-position: center center;
- background-repeat: no-repeat;
-}
-.oauthapp a {
- float: left;
-}
-
-/**
- * ICONS
- */
-.iconspacer {
- display: block; width: 16px; height: 16px;
-}
-
-.icon {
- display: block; width: 16px; height: 16px;
- background-image: url('../../../../images/icons.png');
-}
-.article { background-position: 0px 0px;}
-.audio { background-position: -16px 0px;}
-.block { background-position: -32px 0px;}
-.drop { background-position: -48px 0px;}
-.drophide { background-position: -64px 0px;}
-.edit { background-position: -80px 0px;}
-.camera { background-position: -96px 0px;}
-.dislike { background-position: -112px 0px;}
-.like { background-position: -128px 0px;}
-.link { background-position: -144px 0px;}
-
-.globe { background-position: 0px -16px;}
-.noglobe { background-position: -16px -16px;}
-.no { background-position: -32px -16px;}
-.pause { background-position: -48px -16px;}
-.play { background-position: -64px -16px;}
-.pencil { background-position: -80px -16px;}
-.small-pencil { background-position: -96px -16px;}
-.recycle { background-position: -112px -16px;}
-.remote-link { background-position: -128px -16px;}
-.share { background-position: -144px -16px;}
-
-.tools { background-position: 0px -32px;}
-.lock { background-position: -16px -32px;}
-.unlock { background: url(../img/jotperms.png) no-repeat;}
-.video { background-position: -48px -32px;}
-.youtube { background-position: -64px -32px;}
-.attach { background-position: -80px -32px; }
-.language { background-position: -96px -32px; }
-.prev { background-position: -112px -32px; }
-.next { background-position: -128px -32px; }
-.on { background-position: -144px -32px; }
-
-.off { background-position: 0px -48px; }
-.starred { background-position: -16px -48px; }
-.unstarred { background-position: -32px -48px; }
-.tagged { background-position: -48px -48px; }
-.yellow { background-position: -64px -48px; }
-
-
-.filer-icon {
- display: block; width: 16px; height: 16px;
- background-image: url('../img/file.gif');
-}
-
-.icon.dim { opacity: 0.3;filter:alpha(opacity=30); }
-[class^="comment-edit-bb"] {
- list-style: none;
- display: none;
- margin: 0px 0 -5px 0px;
- padding: 0px;
- width: 75%;
-}
-[class^="comment-edit-bb"] > li {
- display: inline-block;
- margin: 10px 10px 0 0;
- visibility: none;
-}
-[class^="comment-edit-bb-end"] {
- clear: both;
-}
-.editicon {
- display: inline-block;
- width: 16px;
- height: 16px;
- background-image: url(../img/bbedit.png);
- background-color: #fff;
- text-decoration: none;
-}
-.editicon:hover {
- background-color: #ccc;
-}
-.boldbb {
- background-position: 0px 0px;
-}
-.boldbb:hover {
- background-position: 0px -16px;
-}
-.italicbb {
- background-position: -16px 0px;
-}
-.italicbb:hover {
- background-position: -16px -16px;
-}
-.underlinebb {
- background-position: -32px 0px;
-}
-.underlinebb:hover {
- background-position: -32px -16px;
-}
-.quotebb {
- background-position: -48px 0px;
-}
-.quotebb:hover {
- background-position: -48px -16px;
-}
-.codebb {
- background-position: -64px 0px;
-}
-.codebb:hover {
- background-position: -64px -16px;
-}
-.imagebb {
- background-position: -80px 0px;
-}
-.imagebb:hover {
- background-position: -80px -16px;
-}
-.urlbb {
- background-position: -96px 0px;
-}
-.urlbb:hover {
- background-position: -96px -16px;
-}
-.videobb {
- background-position: -112px 0px;
-}
-.videobb:hover {
- background-position: -112px -16px;
-}
-
-.attachtype {
- display: block; width: 20px; height: 23px;
- float: left;
- background-image: url('../../../../images/content-types.png');
-}
-
-.body-attach {
- margin-top: 10px;
-}
-
-.type-video { background-position: 0px 0px; }
-.type-image { background-position: -20px 0px; }
-.type-audio { background-position: -40px 0px; }
-.type-text { background-position: -60px 0px; }
-.type-unkn { background-position: -80px 0px; }
-
-
-/* autocomplete popup */
-.acpopup {
- max-height:150px;
- background-color:#ffffff;
- overflow:auto;
- z-index:100000;
- border:1px solid #cccccc;
-}
-.acpopupitem {
- background-color:#ffffff; padding: 4px;
- clear:left;
-}
-.acpopupitem img {
- float: left;
- margin-right: 4px;
-}
-
-.acpopupitem.selected {
- color: #FFFFFF; background: #3465A4;
-}
-
-/* popup notifications */
-div.jGrowl div.notice {
- background: #511919 url("../../../../images/icons/48/notice.png") no-repeat 5px center;
- color: #ffffff;
- padding-left: 58px;
-}
-div.jGrowl div.info {
- background: #364e59 url("../../../../images/icons/48/info.png") no-repeat 5px center;
- color: #ffffff;
- padding-left: 58px;
-}
-#jGrowl.top-right {
- top: 15px;
- right: 15px;
-}
-.qcomment {
- border: 1px solid #EEE;
- padding: 3px;
- margin-top: 15px;
- margin-left: 25px;
- width: 125px;
- overflow-y: auto;
-}
-
-
-.qcomment option {
- width: 125px;
- overflow-x: hidden;
-}
-
-.qcomment {
- opacity: 0.3;
- filter:alpha(opacity=30);
-}
-.qcomment:hover {
- opacity: 1.0;
- filter:alpha(opacity=100);
-}
-
-
-#id_term_label {
- width:75px;
-}
-#id_term {
- width:100px;
-}
-
-#recip {
-
-}
-.autocomplete-w1 { background: #ffffff; no-repeat bottom right; position:absolute; top:0px; left:0px; margin:6px 0 0 6px; /* IE6 fix: */ _background:none; _margin:1px 0 0 0; }
-.autocomplete { color:#000; border:1px solid #999; background:#FFF; cursor:default; text-align:left; max-height:350px; overflow:auto; margin:-6px 6px 6px -6px; /* IE6 specific: */ _height:350px; _margin:0; _overflow-x:hidden; }
-.autocomplete .selected { background:#F0F0F0; }
-.autocomplete div { padding:2px 5px; white-space:nowrap; overflow:hidden; }
-
-#datebrowse-sidebar select {
- margin-left: 25px;
-}
-
-
-.jslider .jslider-scale ins {
- color: #333;
- font-size: 12px;
- width: 100px;
- text-align: center;
-}
-
-/*
-Where did this come from? There isn't a ../img/slider.png. I don't remember adding this, but it used to work...
-
-.jslider .jslider-bg,
-.jslider .jslider-pointer {
- background: url("../img/slider.png") !important;
-}
-*/
-
-
-.slider {
- margin-top: 10px;
- margin-bottom: 30px;
-}
-
-
-#main-slider {
- position: relative;
- left: 5%;
- width: 90%;
-}
-
-
-#contact-slider {
- position: relative;
- left: 5%;
- width: 90%;
-}
-
-/* nav */
-nav {
- width: 100%;
- height: 32px;
- position: fixed;
- left: 0px;
- top: 0px;
- padding: 0px;
- background-color: #d00;
- color: #eec;
- z-index: 100;
- -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
- -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
- box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
-
-/* TODO find a better way to do this without different code for every single browser. */
-
- background-image: linear-gradient(bottom, #f00 26%, #b00 82%);
- background-image: -o-linear-gradient(bottom, #f00 26%, #b00 82%);
- background-image: -moz-linear-gradient(bottom, #000 26%, #2e2f2e 82%);
- background-image: -webkit-linear-gradient(bottom, #f00 26%, #b00 82%);
- background-image: -ms-linear-gradient(bottom, #f00 26%, #b00 82%);
-
- background-image: -webkit-gradient(
-linear,
-left bottom,
-left top,
-color-stop(0.26, #f00),
-color-stop(0.82, #b00)
-);
-}
-nav a,
-nav a:active,
-nav a:visited,
-nav a:link,
-nav a:hover {
- color: #ffffff;
- text-decoration: none;
- outline: none;
-}
-nav ul {
- margin: 0px;
- padding: 0px 20px;
-}
-nav ul li {
- list-style: none;
- margin: 0px;
- padding: 0px;
- float: left;
-}
-nav ul li .menu-popup {
- left: 0px;
- right: auto;
- top: 33px;
-}
-nav .nav-menu-icon {
- position: relative;
- height: 22px;
- padding: 5px;
- margin: 0px 10px;
- -moz-border-radius: 5px 5px 0 0;
- -webkit-border-radius: 5px 5px 0 0;
- border-radius: 5px 5px 0 0;
-}
-nav .nav-menu-icon.selected {
- background-color: #FF0000;
-}
-nav .nav-menu-icon img {
- width: 22px;
- height: 22px;
-}
-nav .nav-menu-icon .nav-notify {
- top: 3px;
-}
-nav .nav-menu {
- position: relative;
- height: 16px;
- padding: 5px;
- margin: 0px 15px;
- font-size: 14px;
-}
-nav .nav-menu.selected {
-border-bottom: 3px solid #f00;
-
-}
-nav .nav-notify {
- background-color: #0d0;
- color: #fff;
- -moz-border-radius: 5px 5px 5px 5px;
- -webkit-border-radius: 5px 5px 5px 5px;
- border-radius: 5px 5px 5px 5px;
-}
-nav .nav-notify.show {
- display: block;
-}
-nav #nav-help-link,
-nav #nav-search-link,
-nav #nav-directory-link,
-nav #nav-apps-link,
-nav #nav-user-linkmenu,
-nav #nav-site-linkmenu {
- float: right;
-}
-nav #nav-help-link .menu-popup,
-nav #nav-search-link .menu-popup,
-nav #nav-directory-link .menu-popup,
-nav #nav-apps-link .menu-popup,
-nav #nav-site-linkmenu .menu-popup {
- right: 0px;
- left: auto;
-}
-nav #nav-notifications-linkmenu.on .icon.s22.notify,
-nav #nav-notifications-linkmenu.selected .icon.s22.notify {
- background-image: url("../../../../images/icons/22/notify_on.png");
-}
-nav #nav-apps-link.selected {
- background-color: #364e59;
-}
-ul.menu-popup {
- position: absolute;
- display: none;
- width: 10em;
- background: #dd0000;
- color: #eec;
- padding: 0px;
- list-style: none;
- border-radius: 0px 0px 20px 20px;
- z-index: 100000;
- -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
- -moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
- box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
-}
-ul.menu-popup a {
- display: block;
- color: #eec;
- padding: 5px 10px;
- text-decoration: none;
-}
-ul.menu-popup a:hover {
- background-color: #eec;
- color: #f00;
-}
-ul.menu-popup .menu-sep {
- border-top: 1px solid #9eabb0;
-}
-ul.menu-popup li {
- float: none;
- overflow: auto;
- height: auto;
- display: block;
-}
-ul.menu-popup li img {
- float: left;
- width: 16px;
- height: 16px;
- padding-right: 5px;
-}
-ul.menu-popup .empty {
- padding: 5px;
- text-align: center;
- color: #9eabb0;
-}
-ul.menu-popup .toolbar {
- background-color: #9eabb0;
- height: auto;
- overflow: auto;
-}
-ul.menu-popup .toolbar a {
- float: right;
-}
-ul.menu-popup .toolbar a:hover {
- background-color: #ffffff;
-}
-/* header */
-header {
- position: fixed;
- left: 43%;
- right: 43%;
- top: 0px;
- margin: 0px;
- padding: 0px;
- /*width: 100%; height: 12px; */
-
- z-index: 110;
- color: #ffffff;
-}
-
-
-/* notifications popup menu */
-.nav-notify {
- display: none;
- position: absolute;
- font-size: 10px;
- padding: 1px 3px;
- top: 0px;
- right: -10px;
- min-width: 15px;
- text-align: right;
-}
-.nav-notify.show {
- display: block;
-}
-ul.menu-popup {
- position: absolute;
- display: none;
- width: 10em;
- margin: 0px;
- padding: 0px;
- list-style: none;
- z-index: 100000;
-/* top: 90px; */
-/* left: 400px; */
-}
-#nav-notifications-menu {
- width: 320px;
- max-height: 400px;
- overflow-y: scroll;overflow-style:scrollbar;
- background-color:#FFFFFF;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- border-radius:5px;
- border: 1px solid #888;
-}
-#nav-notifications-menu .contactname { font-weight: bold; font-size: 0.9em; }
-#nav-notifications-menu img { float: left; margin-right: 5px; }
-#nav-notifications-menu .notif-when { font-size: 0.8em; display: block; }
-#nav-notifications-menu li {
- padding: 7px 0px 7px 10px;
- word-wrap:normal;
- border-bottom: 1px solid #000;
-}
-
-#nav-notifications-menu li:hover {
-
-}
-
-#nav-notifications-menu a:hover {
- text-decoration: underline;
-}
-
-.notif-item a {
- color: #000000;
-}
-
-.notif-item a:hover {
- text-decoration: underline;
-}
-
-.notif-image {
- width: 32px;
- height: 32px;
- padding: 7px 7px 0px 0px;
-}
-
-.notify-seen {
- background: #DDDDDD;
-}
-
diff --git a/view/theme/fancyred/img/bbedit.png b/view/theme/fancyred/img/bbedit.png
deleted file mode 100644
index b89f2f7a8..000000000
--- a/view/theme/fancyred/img/bbedit.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/bg.png b/view/theme/fancyred/img/bg.png
deleted file mode 100644
index eae49e037..000000000
--- a/view/theme/fancyred/img/bg.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/border.jpg b/view/theme/fancyred/img/border.jpg
deleted file mode 100644
index 034a1cb63..000000000
--- a/view/theme/fancyred/img/border.jpg
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/editicons.png b/view/theme/fancyred/img/editicons.png
deleted file mode 100644
index 171a40876..000000000
--- a/view/theme/fancyred/img/editicons.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/events.png b/view/theme/fancyred/img/events.png
deleted file mode 100644
index 96dd86899..000000000
--- a/view/theme/fancyred/img/events.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/ff-16.jpg b/view/theme/fancyred/img/ff-16.jpg
deleted file mode 100644
index 3621f5914..000000000
--- a/view/theme/fancyred/img/ff-16.jpg
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/file.gif b/view/theme/fancyred/img/file.gif
deleted file mode 100644
index c532335ed..000000000
--- a/view/theme/fancyred/img/file.gif
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/friendika-16.png b/view/theme/fancyred/img/friendika-16.png
deleted file mode 100644
index 1a742ecdc..000000000
--- a/view/theme/fancyred/img/friendika-16.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/head.jpg b/view/theme/fancyred/img/head.jpg
deleted file mode 100644
index 6210b76be..000000000
--- a/view/theme/fancyred/img/head.jpg
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/home.png b/view/theme/fancyred/img/home.png
deleted file mode 100644
index d1ba7b3f3..000000000
--- a/view/theme/fancyred/img/home.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/introductions.png b/view/theme/fancyred/img/introductions.png
deleted file mode 100644
index 18ba5dc81..000000000
--- a/view/theme/fancyred/img/introductions.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/jotperms.png b/view/theme/fancyred/img/jotperms.png
deleted file mode 100644
index d133a6e01..000000000
--- a/view/theme/fancyred/img/jotperms.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/lock.cur b/view/theme/fancyred/img/lock.cur
deleted file mode 100644
index 892c5e851..000000000
--- a/view/theme/fancyred/img/lock.cur
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/login-bg.gif b/view/theme/fancyred/img/login-bg.gif
deleted file mode 100644
index cde836c89..000000000
--- a/view/theme/fancyred/img/login-bg.gif
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/message.png b/view/theme/fancyred/img/message.png
deleted file mode 100644
index f3fea75ee..000000000
--- a/view/theme/fancyred/img/message.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/network.png b/view/theme/fancyred/img/network.png
deleted file mode 100644
index c213cee04..000000000
--- a/view/theme/fancyred/img/network.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/notify_on.png b/view/theme/fancyred/img/notify_on.png
deleted file mode 100644
index 18002e15c..000000000
--- a/view/theme/fancyred/img/notify_on.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/photo-menu.jpg b/view/theme/fancyred/img/photo-menu.jpg
deleted file mode 100644
index fde5eb535..000000000
--- a/view/theme/fancyred/img/photo-menu.jpg
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/screenshot.jpg b/view/theme/fancyred/img/screenshot.jpg
deleted file mode 100644
index 5f00ec39e..000000000
--- a/view/theme/fancyred/img/screenshot.jpg
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/settings.png b/view/theme/fancyred/img/settings.png
deleted file mode 100644
index a935b225e..000000000
--- a/view/theme/fancyred/img/settings.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/img/shiny.png b/view/theme/fancyred/img/shiny.png
deleted file mode 100644
index 994c0d05d..000000000
--- a/view/theme/fancyred/img/shiny.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/fancyred/js/fancyred.js b/view/theme/fancyred/js/fancyred.js
deleted file mode 100644
index 00b8fa39f..000000000
--- a/view/theme/fancyred/js/fancyred.js
+++ /dev/null
@@ -1,89 +0,0 @@
-
-
-function insertFormatting(comment,BBcode,id) {
-
- var tmpStr = $("#comment-edit-text-" + id).val();
- if(tmpStr == comment) {
- tmpStr = "";
- $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
- $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
- openMenu("comment-edit-submit-wrapper-" + id);
- $("#comment-edit-text-" + id).val(tmpStr);
- }
-
- textarea = document.getElementById("comment-edit-text-" +id);
- if (document.selection) {
- textarea.focus();
- selected = document.selection.createRange();
- if (BBcode == "url"){
- selected.text = "["+BBcode+"]" + "http://" + selected.text + "[/"+BBcode+"]";
- } else
- selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
- } else if (textarea.selectionStart || textarea.selectionStart == "0") {
- var start = textarea.selectionStart;
- var end = textarea.selectionEnd;
- if (BBcode == "url"){
- textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + "http://" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
- } else
- textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
- }
- return true;
-}
-
-function cmtBbOpen(comment, id) {
- if($(comment).hasClass('comment-edit-text-full')) {
- $(".comment-edit-bb-" + id).show();
- return true;
- }
- return false;
-}
-
-function cmtBbClose(comment, id) {
-// if($(comment).hasClass('comment-edit-text-empty')) {
-// $(".comment-edit-bb-" + id).hide();
-// return true;
-// }
- return false;
-}
-
-$(document).ready(function() {
-
-$('.group-edit-icon').hover(
- function() {
- $(this).addClass('icon'); $(this).removeClass('iconspacer');},
- function() {
- $(this).removeClass('icon'); $(this).addClass('iconspacer');}
- );
-
-$('.sidebar-group-element').hover(
- function() {
- id = $(this).attr('id');
- $('#edit-' + id).addClass('icon'); $('#edit-' + id).removeClass('iconspacer');},
-
- function() {
- id = $(this).attr('id');
- $('#edit-' + id).removeClass('icon');$('#edit-' + id).addClass('iconspacer');}
- );
-
-
-$('.savedsearchdrop').hover(
- function() {
- $(this).addClass('drop'); $(this).addClass('icon'); $(this).removeClass('iconspacer');},
- function() {
- $(this).removeClass('drop'); $(this).removeClass('icon'); $(this).addClass('iconspacer');}
- );
-
-$('.savedsearchterm').hover(
- function() {
- id = $(this).attr('id');
- $('#drop-' + id).addClass('icon'); $('#drop-' + id).addClass('drophide'); $('#drop-' + id).removeClass('iconspacer');},
-
- function() {
- id = $(this).attr('id');
- $('#drop-' + id).removeClass('icon');$('#drop-' + id).removeClass('drophide'); $('#drop-' + id).addClass('iconspacer');}
- );
-
-});
-
-
-
diff --git a/view/theme/fancyred/php/config.php b/view/theme/fancyred/php/config.php
deleted file mode 100644
index 833d09050..000000000
--- a/view/theme/fancyred/php/config.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-/**
- * Theme settings
- */
-
-function theme_content(&$a) {
- if(!local_user()) { return; }
-
- $font_size = get_pconfig(local_user(),'fancyred', 'font_size' );
- $line_height = get_pconfig(local_user(), 'fancyred', 'line_height' );
- $colour = get_pconfig(local_user(), 'fancyred', 'colour' );
-
- return fancyred_form($a, $font_size, $line_height, $colour);
-}
-
-function theme_post(&$a) {
- if(!local_user()) { return; }
-
- if (isset($_POST['fancyred-settings-submit'])) {
- set_pconfig(local_user(), 'fancyred', 'font_size', $_POST['fancyred_font_size']);
- set_pconfig(local_user(), 'fancyred', 'line_height', $_POST['fancyred_line_height']);
- set_pconfig(local_user(), 'fancyred', 'colour', $_POST['fancyred_colour']);
- }
-}
-
-function theme_admin(&$a) {
- $font_size = get_config('fancyred', 'font_size' );
- $line_height = get_config('fancyred', 'line_height' );
- $colour = get_config('fancyred', 'colour' );
-
- return fancyred_form($a, $font_size, $line_height, $colour);
-}
-
-function theme_admin_post(&$a) {
- if (isset($_POST['fancyred-settings-submit'])) {
- set_config('fancyred', 'font_size', $_POST['fancyred_font_size']);
- set_config('fancyred', 'line_height', $_POST['fancyred_line_height']);
- set_config('fancyred', 'colour', $_POST['fancyred_colour']);
- }
-}
-
-function fancyred_form(&$a, $font_size, $line_height, $colour) {
- $line_heights = array(
- "1.3" => "1.3",
- "---" => "---",
- "1.6" => "1.6",
- "1.5" => "1.5",
- "1.4" => "1.4",
- "1.2" => "1.2",
- "1.1" => "1.1",
- );
- $font_sizes = array(
- '12' => '12',
- '14' => '14',
- "---" => "---",
- "16" => "16",
- "15" => "15",
- '13.5' => '13.5',
- '13' => '13',
- '12.5' => '12.5',
- '12' => '12',
- );
- $colours = array(
- 'light' => 'light',
- 'dark' => 'dark',
- );
-
- $t = get_markup_template('theme_settings.tpl');
- $o .= replace_macros($t, array(
- '$submit' => t('Submit'),
- '$baseurl' => $a->get_baseurl(),
- '$title' => t("Theme settings"),
- '$font_size' => array('fancyred_font_size', t('Set font-size for posts and comments'), $font_size, '', $font_sizes),
- '$line_height' => array('fancyred_line_height', t('Set line-height for posts and comments'), $line_height, '', $line_heights),
- '$colour' => array('fancyred_colour', t('Set colour scheme'), $colour, '', $colours),
- ));
-
- return $o;
-}
-
diff --git a/view/theme/fancyred/php/style.php b/view/theme/fancyred/php/style.php
deleted file mode 100644
index 15ac47247..000000000
--- a/view/theme/fancyred/php/style.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
- $line_height = false;
- $fancyred_font_size = false;
- $resolution = false;
- $colour = false;
- $site_line_height = get_config("fancyred","line_height");
- $site_fancyred_font_size = get_config("fancyred", "font_size" );
- $site_colour = get_config("fancyred", "colour" );
-
- if (local_user()) {
- $line_height = get_pconfig(local_user(), "fancyred","line_height");
- $fancyred_font_size = get_pconfig(local_user(), "fancyred", "font_size");
- $colour = get_pconfig(local_user(), "fancyred", "colour");
- }
-
- if ($line_height === false) {
- $line_height = $site_line_height;
- }
- if ($line_height === false) {
- $line_height = "1.2";
- }
- if ($fancyred_font_size === false) {
- $fancyred_font_size = $site_fancyred_font_size;
- }
- if ($fancyred_font_size === false) {
- $fancyred_font_size = "12";
- }
- if ($colour === false) {
- $colour = $site_colour;
- }
- $colour = "light";
-
-
- if (file_exists("$THEMEPATH/css/style.css")) {
- echo file_get_contents("$THEMEPATH/css/style.css");
- }
-
-
- if($fancyred_font_size == "16") {
- echo ".wall-item-content {
- font-size: 16px;
- }";
- }
- if($fancyred_font_size == "15") {
- echo ".wall-item-content {
- font-size: 15px;
- }";
- }
- if($fancyred_font_size == "14") {
- echo ".wall-item-content {
- font-size: 14px;
- }";
- }
- if($fancyred_font_size == "13.5") {
- echo ".wall-item-content {
- font-size: 13.5px;
- }";
- }
- if($fancyred_font_size == "13") {
- echo ".wall-item-content {
- font-size: 13px;
- }";
- }
- if($fancyred_font_size == "12.5") {
- echo ".wall-item-content {
- font-size: 12.5px;
- }";
- }
- if($fancyred_font_size == "12") {
- echo ".wall-item-content {
- font-size: 12px;
- }";
- }
- if($line_height == "1.5") {
- echo ".wall-item-content {
- line-height: 1.5;
- }";
- }
- if($line_height == "1.4") {
- echo ".wall-item-content {
- line-height: 1.4;
- }";
- }
- if($line_height == "1.3") {
- echo ".wall-item-content {
- line-height: 1.3;
- }";
- }
- if($line_height == "1.2") {
- echo ".wall-item-content {
- line-height: 1.2;
- }";
- }
- if($line_height == "1.1") {
- echo ".wall-item-content {
- line-height: 1.1;
- }";
- }
-
diff --git a/view/theme/fancyred/php/theme.php b/view/theme/fancyred/php/theme.php
deleted file mode 100644
index 1ac6d4d21..000000000
--- a/view/theme/fancyred/php/theme.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-function fancyred_init(&$a) {
- $a->set_template_engine('smarty3');
-// head_add_js('redbasic.js');
-}
diff --git a/view/theme/fancyred/tpl/smarty3/theme_settings.tpl b/view/theme/fancyred/tpl/smarty3/theme_settings.tpl
deleted file mode 100644
index 3401f318b..000000000
--- a/view/theme/fancyred/tpl/smarty3/theme_settings.tpl
+++ /dev/null
@@ -1,12 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{include file="field_select.tpl" field=$font_size}}
-
-{{include file="field_select.tpl" field=$line_height}}
-
-<div class="settings-submit-wrapper">
- <input type="submit" value="{{$submit}}" class="settings-submit" name="fancyred-settings-submit" />
-</div>
diff --git a/view/theme/fancyred/tpl/theme_settings.tpl b/view/theme/fancyred/tpl/theme_settings.tpl
deleted file mode 100644
index 797b29962..000000000
--- a/view/theme/fancyred/tpl/theme_settings.tpl
+++ /dev/null
@@ -1,7 +0,0 @@
-{{inc field_select.tpl with $field=$font_size}}{{endinc}}
-
-{{inc field_select.tpl with $field=$line_height}}{{endinc}}
-
-<div class="settings-submit-wrapper">
- <input type="submit" value="$submit" class="settings-submit" name="fancyred-settings-submit" />
-</div>
diff --git a/view/theme/redbasic/css/dark.css b/view/theme/redbasic/css/dark.css
new file mode 100644
index 000000000..43912be69
--- /dev/null
+++ b/view/theme/redbasic/css/dark.css
@@ -0,0 +1,182 @@
+body { font-family: sans-serif;
+ font-size: 12px;
+ background-color: #101010;
+ background-image: -moz-linear-gradient(top, #000 16%, #101010 82%);
+ background-image: linear-gradient(bottom, #000 16%, #101010 82%);
+ background-image: -o-linear-gradient(bottom, #000 16%, #101010 82%);
+ background-image: -webkit-linear-gradient(bottom, #000 16%, #101010 82%);
+ background-image: -ms-linear-gradient(bottom, #000 16%, #101010 82%);
+ background-repeat: no-repeat;
+ background-attachment: fixed;
+ color: #eec;
+
+}
+
+aside {
+border: none;
+color: #fff;
+}
+
+.fn {
+ color: #fff;
+}
+
+.acl-list-item,
+.profile-jot-net {
+ color: #000;
+}
+
+
+.tab.active {
+ color: #fff;
+}
+
+blockquote {color: #000;}
+
+.wall-item-content-wrapper {
+ background: #262626;
+ border-radius: 5px;
+ box-shadow: 12px 12px 12px #000;
+ margin-bottom: 20px;
+}
+
+.wall-item-content-wrapper.comment {
+ margin-left: 50px;
+ box-shadow: 5px 5px 5px #000;
+}
+
+.comment-edit-text-empty, .comment-edit-text-full {
+ border-radius: 5px 5px 5px 5px;
+ box-shadow: 5px 5px 5px #000 inset;
+}
+
+
+#profile-jot-text {
+ height: 20px;
+ color:#000;
+ border: 1px solid #cccccc;
+ padding: 8px;
+ margin-right: 0px;
+ width: 90%;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ box-shadow: 4px 4px 3px 0 #666 inset;
+}
+#profile-jot-text:hover {
+ color: #000000;
+}
+
+#profile-jot-submit {
+ height: auto;
+ background-color: #0080FF;
+ color: #eeeeec;
+ font-weight: bold;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ border: 2px outset #222420 !important;
+ margin: 0;
+ float: right;
+ text-shadow: 1px 1px #111;
+ width: auto;
+ box-shadow: 5px 5px 5px #444;
+}
+
+
+.widget {
+ border-bottom: 1px solid #eec;
+ padding: 8px;
+ margin-top: 5px;
+ -moz-border-radius:5px;
+ -webkit-border-radius:5px;
+ border-radius:5px;
+
+}
+
+nav a,
+nav a:active,
+nav a:visited,
+nav a:link {
+ color: #ffffff;
+ text-decoration: none;
+ outline: none;
+}
+
+.nav-menu.selected a {
+ color: #0080ff !important;
+}
+
+nav .nav-menu-icon {
+ position: relative;
+ height: 22px;
+ padding: 5px;
+/* margin: 3px 10px; */
+ -moz-border-radius: 5px 5px 0 0;
+ -webkit-border-radius: 5px 5px 0 0;
+ border-radius: 5px 5px 0 0;
+}
+
+nav .nav-notify {
+ background-color: #0080FF;
+ color: #fff;
+ -moz-border-radius: 5px 5px 5px 5px;
+ -webkit-border-radius: 5px 5px 5px 5px;
+ border-radius: 5px 5px 5px 5px;
+ opacity: 0.6;
+ filter:alpha(opacity=60);
+
+}
+.nav-notify:hover, nav .nav-notify.selected span {
+ color: #ffffff;
+}
+
+ul.menu-popup {
+
+ position: absolute;
+ display: none;
+ width: 10em;
+ background: #000;
+ color: #fff;
+ padding: 0px;
+ list-style: none;
+ border-radius: 0px 0px 20px 20px;
+ z-index: 100000;
+ -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+ -moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+ box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+}
+ul.menu-popup a {
+ display: block;
+ color: #FFFFFF;
+ padding: 5px 10px;
+ text-decoration: none;
+}
+
+
+ul.menu-popup a:hover {
+ background-color: #888888;
+ color: #FFFFFF;
+}
+ul.menu-popup .menu-sep {
+ border-top: 1px solid #9eabb0;
+}
+
+.wall-item-photo,
+.photo,
+.contact-block-img,
+.my-comment-photo {
+ border-radius: 5px;
+ box-shadow: 4px 4px 3px #000;
+}
+
+
+div#pagelist-content-wrapper {
+width: 80%;
+background: #111;
+margin-left: auto;
+margin-right: auto;
+}
+
+div.page-list-item {
+margin: 20px;
+}
diff --git a/view/theme/redbasic/css/fancy.css b/view/theme/redbasic/css/fancy.css
new file mode 100644
index 000000000..2da9d68d1
--- /dev/null
+++ b/view/theme/redbasic/css/fancy.css
@@ -0,0 +1,106 @@
+/* There's probably some stuff in here we don't need, and maybe some missing stuff we do need. We can clean it up incrementaly, just get the heavy lifting done for now */
+
+aside {
+border-radius: $radiuspx;}
+
+
+.tab {
+ height: auto;
+ background-color: #f00;
+ color: #fff !important;
+ font-weight: bold;
+ -webkit-border-radius: $radiuspx;
+ -moz-border-radius: $radiuspx;
+ border-radius: $radiuspx;
+ margin: 0;
+ width: auto;
+ margin-left: 8px;
+ padding: 4px;
+ text-align: center;
+}
+.tab:hover, .tab.active:hover {
+ background: #d00;
+ color: #fff;
+ ;
+}
+.tab:active {
+ background: #fff;
+ color: #f00;
+}
+.tab.active {
+ background: #f00;
+ color: #fff;
+ box-shadow: 3px 3px 3px #333 inset;
+ padding: 5px; /* strageness of the human mind - has to be larger than inactive tabs, or it looks smaller than them */
+}
+
+
+
+.wall-item-content-wrapper {
+ position: relative;
+ border-radius: $radiuspx;
+ box-shadow: 8px 8px 8px #000;
+ border: 1px solid #eec;
+}
+
+.wall-item-content-wrapper.comment {
+ margin-top: 15px;
+}
+
+.wall-item-like:hover, .wall-item-dislike:hover{
+opacity: 1;
+}
+
+.wall-item-author {
+ margin-top: 10px;
+}
+
+.comment-edit-wrapper {
+ margin-top: 15px;
+ background: #ffffff;
+ margin-left: 50px;
+}
+
+#profile-jot-submit {
+ background-color: #dd0000;
+}
+
+ul.menu-popup {
+ background: #dd0000;
+ color: #eec;
+ border-radius: $radiuspx;
+ z-index: 100000;
+ -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+ -moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+ box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+}
+ul.menu-popup a {
+ color: #eec;
+}
+ul.menu-popup a:hover {
+ background-color: #eec;
+ color: #f00;
+}
+
+section {
+left: 0px;
+width: 800px;
+margin-left: auto;
+margin-right: auto;
+}
+body {background-color: #d00 !important;}
+
+.page-content-wrapper {background: #fff;
+ color: #000;
+ border-radius: 20px;
+ box-shadow: 5px 5px 5px #111;
+}
+
+h3.page-title {
+padding-top: 30px;
+ color: #033}
+.page-body {padding: 40px;}
+
+.page-body strong {color: #033;}
+
+.nav-links {margin-top: 5px;}
diff --git a/view/theme/redbasic/css/mod_page.css b/view/theme/redbasic/css/mod_page.css
new file mode 100644
index 000000000..37f597fac
--- /dev/null
+++ b/view/theme/redbasic/css/mod_page.css
@@ -0,0 +1,24 @@
+/*
+section {
+left: 0px;
+width: 800px;
+margin-left: auto;
+margin-right: auto;
+}
+body {background-color: #d00 !important;}
+
+.page-content-wrapper {background: #fff;
+ color: #000;
+ border-radius: 20px;
+ box-shadow: 5px 5px 5px #111;
+}
+
+h3.page-title {
+padding-top: 30px;
+ color: #033}
+.page-body {padding: 40px;}
+
+.page-body strong {color: #033;}
+
+.nav-links {margin-top: 5px;}
+*/ \ No newline at end of file
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index db73e27d5..c60acd467 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -10,7 +10,7 @@
body {
font-family: arial,freesans,clean,sans-serif;
font-size: 12px;
- background-color: #ffffff;
+ background-color: #FFFFFF;
color: #000000;
margin: 0px;
}
@@ -115,8 +115,8 @@ a:hover, .fakelink:hover { color: #44AAFF; text-decoration: underline; }
input {
border: 1px solid #666666;
- -moz-border-radius: 5px;
- border-radius: 5px;
+ -moz-border-radius: $radiuspx;
+ border-radius: $radiuspx;
padding: 3px;
}
@@ -171,7 +171,7 @@ blockquote {
nav {
display: block;
- border-bottom: 1px solid #d00;
+
}
#langselector {
@@ -209,8 +209,8 @@ nav #site-location {
border: 1px solid #444;
background-color: #ccc;
padding: 10px;
- -moz-border-radius: 5px;
- border-radius: 5px;
+ -moz-border-radius: $radiuspx;
+ border-radius: $radiuspx;
}
@@ -229,14 +229,14 @@ header #site-location {
}
header #banner {
+
overflow: hidden;
text-align: center;
- width: 100%;
- font-size: 2.2em;
+ font-size: 1.4em;
font-family: tahoma, "Lucida Sans", sans;
color: #eec;
font-weight: bold;
-
+ margin-top: 1px;
}
header #banner a,
header #banner a:active,
@@ -256,7 +256,7 @@ header #banner #logo-text {
font-size: 22px;
}
-.nav-commlink {
+.nav-commlink, .nav-login-link {
display: block;
height: 15px;
margin-top: 67px;
@@ -268,8 +268,8 @@ header #banner #logo-text {
border-bottom: 0px;
background-color: #aec0d3;
color: #565854;
- -moz-border-radius: 5px 5px 0px 0px;
- border-radius: 5px 5px 0px 0px;
+ -moz-border-radius: $radiuspx;
+ border-radius: $radiuspx;;
}
nav .nav-link {
@@ -300,18 +300,19 @@ nav #nav-link-wrapper .nav-link {
}
.tabs {
- height: 22px;
+ height: 28px;
border-bottom: 1px solid #aaaaaa;
padding:0px;
- margin-right: 10px;
+ width: 90%;
+/* margin-right: 5px; */
}
.tabs li { margin: 0px; list-style: none; }
.tab {
display:block;
float:left;
- padding: 0.4em;
- margin-right: 3px ;
+/* padding: 0.4em; */
+ margin-right: 15px ;
}
.tab.active {
@@ -324,6 +325,7 @@ ul.tabs {
margin-bottom: 0px;
list-style-type: none;
padding: 0px;
+ padding-right: 8px;
}
/* footer */
@@ -347,6 +349,16 @@ footer {
font-weight: bold;
}
+.warning-text {
+ font-size: 1.2em;
+ font-weight: bold;
+ color: #ff0000;
+}
+
+#noperm-msg {
+ margin-top: 15px;
+}
+
.preview {
background: url('../img/gray_and_white_diagonal_stripes_background_seamless.gif');
}
@@ -377,7 +389,7 @@ footer {
float: left;
}
-#jot-title, #jot-category {
+#jot-title, #jot-category, #jot-pagetitle {
border: 0px;
margin: 0px;
padding: 8px;
@@ -385,17 +397,21 @@ footer {
width: 530px;
margin-bottom: 5px;
font-weight: bold;
- border: solid 1px #ccc;
- border-radius: 5px;
+ border: solid 1px #ffffff;
+ border-radius: $radiuspx;
}
#jot-title::-webkit-input-placeholder{font-weight: bold;}
#jot-category::-webkit-input-placeholder{font-weight: bold;}
#jot-title:-moz-placeholder{font-weight: bold;}
#jot-category:-moz-placeholder{font-weight: bold;}
+#jot-pagetitle::-webkit-input-placeholder{font-weight: bold;}
+#jot-pagetitle:-moz-placeholder{font-weight: bold;}
#jot-title:hover,
#jot-title:focus,
+#jot-pagetitle:hover,
+#jot-pagetitle:focus,
#jot-category:hover,
#jot-category:focus {
border: 1px solid #cccccc;
@@ -419,22 +435,8 @@ footer {
margin-bottom: 10px;
}
-.group-selected, .nets-selected, .fileas-selected, .categories-selected {
- padding: 3px;
- -moz-border-radius: 5px;
- border-radius: 5px;
- border: 1px solid #CCCCCC;
- background: #F8F8F8;
- font-weight: bold;
-}
-
-.settings-widget .selected {
- padding: 3px;
- -moz-border-radius: 5px;
- border-radius: 5px;
- border: 1px solid #CCCCCC;
- background: #F8F8F8;
- font-weight: bold;
+.group-selected, .nets-selected, .fileas-selected, .categories-selected, .settings-widget .selected {
+ color: #444444 !important;
}
.smalltext {
@@ -513,62 +515,6 @@ footer {
}
-/* TODO - we don't use DFRN anymore. These probably have different names now. Check and clean up later */
-
-input#dfrn-url {
- float: left;
- background: url(../img/friendika-16.png) no-repeat;
- background-position: 2px center;
- font-size: 17px;
- padding-left: 21px;
- height: 21px;
- background-color: #FFFFFF;
- color: #000000;
- margin-bottom: 20px;
-}
-
-#dfrn-url-label {
- float: left;
- width: 250px;
-}
-
-#dfrn-request-url-end {
- clear: both;
-}
-
-#knowyouyes, #knowyouno {
- float: left;
-}
-
-#dfrn-request-knowyou-yes-wrapper, #dfrn-request-knowyou-no-wrapper {
-
- float: none;
-}
-#dfrn-request-knowyou-yes-label, #dfrn-request-knowyou-no-label {
- float: left;
- width: 75px;
- margin-left: 50px;
- margin-bottom: 7px;
-}
-#dfrn-request-knowyou-break, #dfrn-request-knowyou-end {
- clear: both;
-
-}
-
-#dfrn-request-message-wrapper {
- margin-bottom: 50px;
-}
-#dfrn-request-submit-wrapper {
- clear: both;
- margin-left: 50px;
-}
-
-#dfrn-request-info-wrapper {
- margin-left: 50px;
-}
-
-
-
#cropimage-wrapper, #cropimage-preview-wrapper {
float: left;
padding: 30px;
@@ -579,67 +525,7 @@ input#dfrn-url {
clear: both;
}
-.intro-wrapper {
- margin-top: 20px;
-}
-
-.intro-fullname {
- font-size: 1.1em;
- font-weight: bold;
-
-}
-.intro-desc {
- margin-bottom: 20px;
- font-weight: bold;
-}
-
-.intro-note {
- padding: 10px;
-}
-
-.intro-end {
- padding: 30px;
-}
-
-.intro-form {
- float: left;
-}
-.intro-approve-form {
- clear: both;
-}
-.intro-approve-as-friend-end {
- clear: both;
-}
-.intro-submit-approve, .intro-submit-ignore {
- margin-right: 20px;
-}
-.intro-submit-approve {
- margin-top: 15px;
-}
-
-.intro-approve-as-friend-label, .intro-approve-as-fan-label {
- float: left;
- width: 100px;
- margin-left: 20px;
-}
-.intro-approve-as-friend, .intro-approve-as-fan {
- float: left;
-}
-.intro-form-end {
- clear: both;
-}
-.intro-approve-as-friend-desc {
- margin-top: 15px;
-}
-.intro-approve-as-end {
- clear: both;
- margin-bottom: 10px;
-}
-.intro-end {
- clear: both;
- margin-bottom: 30px;
-}
.aprofile dt {
font-weight: bold;
}
@@ -677,29 +563,6 @@ input#dfrn-url {
clear: both;
}
-#birthday-title {
- float: left;
- font-weight: bold;
-}
-
-#birthday-adjust {
- float: left;
- font-size: 75%;
- margin-left: 10px;
-}
-
-#birthday-title-end {
- clear: both;
-}
-
-.birthday-list {
- margin-left: 15px;
-}
-
-#birthday-wrapper {
- margin-bottom: 20px;
-}
-
#profile-extra-links {
clear: both;
margin-top: 10px;
@@ -1067,15 +930,18 @@ input#dfrn-url {
.wall-item-content-wrapper {
margin-top: 10px;
position: relative;
+ border-radius: $radiuspx;
+ border: 1px solid #eec;
+
/* background: #fff; */
/* border-radius: 5px; */
/* box-shadow: 12px 12px 12px #111; */
- border-left: 1px solid #eec;
+/* border-left: 1px solid #eec; */
}
.wall-item-content-wrapper.comment {
/* background: #fff; */
- border-left: 1px solid #e0e0e0;
+/* border-left: 1px solid #e0e0e0; */
margin-left: 50px;
/* box-shadow: 5px 5px 5px #222; */
}
@@ -1086,9 +952,9 @@ input#dfrn-url {
.wall-item-content-wrapper.comment {
- background: #ffffff;
+/* background: #ffffff;
border-left: 1px solid #e0e0e0;
-
+*/
}
.wall-item-like.comment, .wall-item-dislike.comment {
@@ -1163,7 +1029,7 @@ input#dfrn-url {
position: absolute;
left: 75px;
top: 70px;
- z-index: 100;
+ z-index: 99;
}
.wall-item-wrapper {
/*float: left;
@@ -1205,7 +1071,9 @@ input#dfrn-url {
}
.like-rotator {
- margin-left: 5px;
+ float: left;
+ margin: 8px;
+ color: #777;
}
.wall-item-delete-wrapper {
@@ -1241,8 +1109,7 @@ input#dfrn-url {
}
.wall-item-content img {
- max-height: 95% !important;
- max-width: 95% !important;
+ max-width: 95% !important;
/* box-shadow: 8px 8px 8px #666; can't really have this because of smileys */
}
@@ -1260,7 +1127,8 @@ input#dfrn-url {
}
.thread-wrapper.toplevel_item {
- width: 90%;
+
+ width: 92%;
}
.wall-item-body {
@@ -1269,6 +1137,10 @@ input#dfrn-url {
margin-top: 10px;
}
+.wall-item-body.divmore {
+ padding-bottom: 15px;
+}
+
.wall-item-tools {
clear: both;
padding: 5px 10px;
@@ -1285,12 +1157,11 @@ input#dfrn-url {
.comment-edit-wrapper {
margin-top: 15px;
- background: #ffffff;
margin-left: 50px;
}
.comment-wwedit-wrapper {
- background: #ffffff;
+ margin-top: 2px;
}
.comment-edit-photo {
@@ -1313,14 +1184,14 @@ input#dfrn-url {
padding: 3px 1px 1px 3px;
border: 1px solid #ccc;
padding: 8px;
- border-radius: 5px 5px 5px 5px;
+ border-radius: $radiuspx;
/* box-shadow: 5px 5px 5px #666 inset; */
}
.comment-edit-text-empty {
color: gray;
height: 1.5em;
- width: 80%; /*Too wide? */
+ width: 40%; /*Too wide? */
overflow: auto;
margin-bottom: 10px;
}
@@ -1360,15 +1231,16 @@ input#dfrn-url {
}
#profile-upload-wrapper {
float: left;
- margin-left: 30px;
+ margin-left: 15px;
}
#profile-attach-wrapper {
float: left;
- margin-left: 30px;
+ margin-left: 15px;
}
#profile-rotator {
float: left;
- margin-left: 30px;
+ margin: 8px 0px 0px 20px;
+ color: #777;
}
#profile-link-wrapper {
float: left;
@@ -1396,7 +1268,6 @@ input#dfrn-url {
margin-top: 0px !important;
}
-
#profile-nolocation-wrapper {
float: left;
margin-left: 15px;
@@ -1414,7 +1285,7 @@ input#dfrn-url {
height: auto;
width: auto;
background-color: #0080FF;
- border-radius: 5px;
+ border-radius: $radiuspx;
border: 2px outset;
box-shadow: 5px 5px 5px #666;
margin-right: 8px;
@@ -1496,12 +1367,7 @@ input#dfrn-url {
width: 200px;
}
-.fortune {
- margin-top: 50px;
- color: #4444FF;
- font-weight: bold;
- margin-bottom: 20px;
-}
+
.directory-end {
clear: both;
@@ -1522,7 +1388,8 @@ input#dfrn-url {
float: left;
width: 225px;
height: 260px;
- overflow: auto;
+ overflow: hidden;
+ margin: 2px;
}
#directory-search-wrapper {
@@ -1796,8 +1663,8 @@ border: 1px #111;
/*
#profile-jot-text_parent, .mceLayout {
- border-radius: 5px;
- -moz-border-radius: 5px;
+ border-radius: $radiuspx;
+ -moz-border-radius: $radiuspx;
box-shadow: 4px 4px 3px 0 #444444;
}
*/
@@ -1805,7 +1672,6 @@ border: 1px #111;
iframe#profile-jot-text_ifr {
width: 100% !important;
-height: 100% !important;
box-shadow: 5px 5px 5px #000 inset !important;}
tr.mceLast {
@@ -1819,26 +1685,33 @@ tr.mceLast {
color:#000;
border: 1px solid #cccccc;
padding: 8px;
- width: 90%;
- -moz-border-radius: 5px;
- border-radius: 5px;
+ margin-right: 0px;
+ width: 90%;
+ -moz-border-radius: $radiuspx;
+ border-radius: $radiuspx;
/* box-shadow: 4px 4px 3px 0 #666 inset; */
}
#profile-jot-text:hover {
color: #000000;
}
+#profile-jot-text-loading {
+ float: left;
+ margin: 14px 0px 0px 12px;
+ color: #777;
+}
+
.wall-item-photo, .photo, .contact-block-img, .my-comment-photo {
- border-radius: 5px;
- -moz-border-radius: 5px;
+ border-radius: $radiuspx;
+ -moz-border-radius: $radiuspx;
box-shadow: 4px 4px 3px 0 #444444;
}
#datebrowse-sidebar select {
margin-left: 25px;
- border-radius: 5px;
- -moz-border-radius: 5px;
+ border-radius: $radiuspx;
+ -moz-border-radius: $radiuspx;
opacity: 0.3;
filter:alpha(opacity=30);
}
@@ -1872,9 +1745,9 @@ tr.mceLast {
list-style: none;
}
-.contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo, .group-selected, .nets-selected, .fileas-selected, .categories-selected {
- border-radius: 5px;
- -moz-border-radius: 5px;
+.contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo {
+ border-radius: $radiuspx;
+ -moz-border-radius: $radiuspx;
box-shadow: 4px 4px 3px 0 #444444;
}
@@ -1883,9 +1756,9 @@ tr.mceLast {
background-color: #0080FF;
color: #eeeeec;
font-weight: bold;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
+ -webkit-border-radius: $radiuspx;
+ -moz-border-radius: $radiuspx;
+ border-radius: $radiuspx;
border: 2px outset #222420 !important;
margin: 0;
float: right;
@@ -1899,8 +1772,8 @@ tr.mceLast {
}
.settings-widget .selected {
- border-radius: 5px;
- -moz-border-radius: 5px;
+ border-radius: $radiuspx;
+ -moz-border-radius: $radiuspx;
box-shadow: 4px 4px 3px 0 #444444;
}
@@ -2146,7 +2019,7 @@ tr.mceLast {
}
#in-this-photo-text {
- color: #0000FF;
+ color: #0080FF;
margin-left: 30px;
}
@@ -2407,43 +2280,17 @@ aside input[type='text'] {
border-bottom: 1px solid #eec;
padding: 8px;
margin-top: 5px;
- -moz-border-radius:5px;
- -webkit-border-radius:5px;
- border-radius:5px;
-
-}
-
+ -moz-border-radius: $radiuspx;
+ -webkit-border-radius: $radiuspx;
+ border-radius: $radiuspx;
-#profile-jot-desc {
- /*float: left;*/
- width: 480px;
- color: #FF0000;
- margin-top: 10px;
- margin-bottom: 10px;
}
-#character-counter {
- float: right;
- font-size: 120%;
-}
-
-#character-counter.grey {
- color: #888888;
-}
-
-#character-counter.orange {
- color: orange;
-}
-#character-counter.red {
- color: red;
-}
-
-#profile-jot-banner-end {
- /* clear: both; */
+#profile-jot-wrapper {
+ margin-top: 25px;
}
-
#settings-default-perms-menu {
margin-top: 15px;
margin-bottom: 15px;
@@ -2571,14 +2418,12 @@ aside input[type='text'] {
#nav-searchbar {
float: right;
- margin-top: 4px;
+ margin-top: 3px;
}
#nav-search-spinner {
float: right;
- margin-top: 8px;
- margin-left: 5px;
- margin-right: 5px;
+ margin: 12px 12px 0px 0px;
}
#nav-search-text:hover {
@@ -2587,8 +2432,11 @@ aside input[type='text'] {
}
#nav-search-text {
+ margin-top: -1px;
+ font-size: 0.8em;
border-radius: 14px;
- background-color: #AAAAAA;
+ border: none;
+ background-color: #FFDDDD;
color: #eec;
}
@@ -2600,9 +2448,21 @@ aside input[type='text'] {
}
#nav-user-linkmenu img {
- border-radius: 5px;
+ border-radius: $radiuspx;
+ margin-top: -4px;
}
+.nav-dropdown-indicator {
+ opacity: 0.5;
+ filter:alpha(opacity=50);
+}
+
+.nav-dropdown-indicator:hover {
+ opacity: 1.0;
+ filter:alpha(opacity=100);
+}
+
+
.location-label, .gender-label, .marital-label, .homepage-label {
float: left;
text-align: right;
@@ -2630,6 +2490,9 @@ aside input[type='text'] {
font-size: 70%;
}
+.descriptive-text {
+ color: #888;
+}
#plugin-settings-link, #account-settings-link {
margin-bottom: 10px;
@@ -2803,6 +2666,10 @@ aside input[type='text'] {
overflow: hidden;
}
+.profile-match-note {
+ text-align: center;
+}
+
.profile-match-break,
.profile-match-end {
clear: both;
@@ -2964,16 +2831,20 @@ aside input[type='text'] {
margin-top: 10px;
}
-.body-tag, .filesavetags, .categorytags {
+.posttags a, .body-tag, .filesavetags, .categorytags {
opacity: 0.5;
filter:alpha(opacity=50);
}
-.body-tag:hover, .filesavetags:hover, .categorytags:hover {
+.posttags a:hover, .body-tag:hover, .filesavetags:hover, .categorytags:hover {
opacity: 1.0 !important;
filter:alpha(opacity=100) !important;
}
+.posttags, .body-tag {
+ margin-top: 15px;
+}
+
.item-select {
opacity: 0.1;
filter:alpha(opacity=10);
@@ -3406,6 +3277,9 @@ brain is weird like that */
background-color:#ffffff; padding: 4px;
clear:left;
}
+.acpopupitem.taggable {
+ background-color: #ddddff;
+}
.acpopupitem img {
float: left;
margin-right: 4px;
@@ -3486,14 +3360,15 @@ div.jGrowl div.info {
.slider {
margin-top: 10px;
- margin-bottom: 30px;
+ margin-bottom: 45px;
}
#main-slider {
position: relative;
- left: 5%;
+ left: 5px;
width: 90%;
+
}
@@ -3506,7 +3381,7 @@ div.jGrowl div.info {
/* nav */
nav {
width: 100%;
- height: 32px;
+ height: 24px;
position: fixed;
// opacity: 0.6;
// filter:alpha(opacity=60);
@@ -3517,9 +3392,9 @@ nav {
background-color: #d00;
color: #eec;
z-index: 100;
- -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+/* -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
-moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
- box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+ box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7); */
/* TODO find a better way to do this without different code for every single browser. */
@@ -3538,6 +3413,8 @@ color-stop(0.82, #b00)
);
}
+/*
+
nav:hover {
background-image: linear-gradient(bottom, #f00 26%, #b00 82%);
@@ -3555,16 +3432,22 @@ color-stop(0.82, #b00)
);
}
+*/
+
nav a,
nav a:active,
nav a:visited,
-nav a:link,
-nav a:hover {
+nav a:link {
color: #ffffff;
text-decoration: none;
outline: none;
}
+nav a:hover {
+ color: #0080FF;
+}
+nav .fakelink:hover { text-decoration: none; }
+
#profiles-menu li a {
color: #ffffff;
}
@@ -3588,14 +3471,19 @@ nav ul li .menu-popup {
right: auto;
top: 33px;
}
+
+#nav-user-linkmenu {
+ margin-left: 5px;
+}
+
nav .nav-menu-icon {
position: relative;
height: 22px;
padding: 5px;
- margin: 3px 10px;
- -moz-border-radius: 5px 5px 0 0;
- -webkit-border-radius: 5px 5px 0 0;
- border-radius: 5px 5px 0 0;
+/* margin: 3px 10px; */
+ -moz-border-radius: $radiuspx;
+ -webkit-border-radius: $radiuspx;
+ border-radius: $radiuspx;
}
nav .nav-menu-icon.selected {
background-color: #FF0000;
@@ -3611,26 +3499,33 @@ nav .nav-menu {
position: relative;
height: 16px;
padding: 5px;
- margin: 3px 15px 0px;
- font-size: 14px;
- border-bottom: 3px solid #f88;
+ margin: 0px 5px 0px;
+ font-size: 1.0em;
+/* border-bottom: 3px solid #f88; */
}
nav:hover .nav-menu {
- border-bottom: 3px solid #f00;
+/* border-bottom: 3px solid #f00; */
}
-nav .nav-menu.selected {
- border-bottom: 4px solid #CCCCCC;
+nav .nav-menu.selected a {
+ color: #444444;
}
nav .nav-notify {
background-color: #0080FF;
color: #fff;
- -moz-border-radius: 5px 5px 5px 5px;
- -webkit-border-radius: 5px 5px 5px 5px;
- border-radius: 5px 5px 5px 5px;
+ -moz-border-radius: $radiuspx;
+ -webkit-border-radius: $radiuspx;
+ border-radius: $radiuspx;
+ opacity: 0.6;
+ filter:alpha(opacity=60);
+
+}
+.nav-notify:hover, nav .nav-notify.selected span {
+ color: #ffffff;
}
+
nav .nav-notify.show {
display: block;
}
@@ -3638,9 +3533,7 @@ nav #nav-help-link,
nav #nav-login-link,
nav #nav-search-link,
nav #nav-directory-link,
-nav #nav-apps-link,
-nav #nav-user-linkmenu,
-nav #nav-site-linkmenu {
+nav #nav-apps-link {
float: right;
}
nav #nav-help-link .menu-popup,
@@ -3674,7 +3567,7 @@ ul.menu-popup {
}
ul.menu-popup a {
display: block;
- color: #;
+ color: #FFFFFF;
padding: 5px 10px;
text-decoration: none;
}
@@ -3682,7 +3575,7 @@ ul.menu-popup a {
ul.menu-popup a:hover {
background-color: #888888;
- color: #000000;
+ color: #FFFFFF;
}
ul.menu-popup .menu-sep {
border-top: 1px solid #9eabb0;
@@ -3767,9 +3660,9 @@ ul.menu-popup {
max-height: 400px;
overflow-y: scroll;overflow-style:scrollbar;
background-color:#FFFFFF;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- border-radius:5px;
+ -moz-border-radius: $radiuspx;
+ -webkit-border-radius: $radiuspx;
+ border-radius: $radiuspx;
border: 1px solid #888;
}
#nav-notifications-menu .contactname { font-weight: bold; font-size: 0.9em; }
@@ -3808,20 +3701,19 @@ ul.menu-popup {
}
#page-spinner {
- margin-left: 50%;
+ color: #777;
+ margin: 24px;
}
.tabs-end {
clear: both;
}
-
-
-
#acl-wrapper {
width: 690px;
float:left;
}
+
#acl-search {
float:right;
background: #ffffff url("../../../../images/search_18.png") no-repeat right center;
@@ -3837,9 +3729,9 @@ ul.menu-popup {
background-position: 7px 7px;
background-repeat: no-repeat;
padding: 7px 5px 0px 30px;
- -webkit-border-radius: 5px ;
- -moz-border-radius: 5px;
- border-radius: 5px;
+ -webkit-border-radius: $radiuspx;
+ -moz-border-radius: $radiuspx;
+ border-radius: $radiuspx;
color: #999999;
}
#acl-showall.selected {
@@ -3872,6 +3764,10 @@ ul.menu-popup {
float: left;
margin: 4px;
}
+.acl-list-item.taggable {
+ background-color: #ddddff;
+}
+
.acl-list-item p { height: 12px; font-size: 10px; margin: 0px; padding: 2px 0px 1px; overflow: hidden;}
.acl-list-item a {
font-size: 8px;
@@ -3911,4 +3807,117 @@ ul.menu-popup {
.contact-block-content {
margin-top: 8px;
-} \ No newline at end of file
+}
+
+.profile-match-connect { margin-top: 5px; }
+
+.reshared-content { margin-left: 30px; }
+.shared_header img { margin-right: 10px; }
+
+
+.mail-list-wrapper {
+
+border-bottom: 1px solid #ccc;
+padding: 20px;
+}
+
+span.mail-delete {
+float: left;
+width: 30px;
+}
+
+a.mail-list-sender-url {
+float: left;
+width: 35px;
+}
+
+img.mail-list-sender-photo {
+height: 16px;
+width: 16px;
+}
+
+
+span.mail-from {
+float: left;
+width: 200px;
+}
+
+span.mail-subject.unseen{
+float: left;
+width: 200px;
+}
+
+span.mail-date {
+float:left;
+width: 200px;
+}
+
+
+.tag1 {
+ font-size : 1.0em !important;
+ }
+.tag2 {
+ font-size : 1.2em !important;
+ }
+
+
+.tag3 {
+ font-size : 1.4em !important;
+ }
+
+
+.tag4 {
+ font-size : 1.6em !important;
+ }
+
+
+.tag5 {
+ font-size : 1.8em !important;
+ }
+
+
+.tag6 {
+ font-size : 2.0em !important;
+ }
+
+
+.tag7 {
+ font-size : 2.2em !important;
+ }
+
+
+.tag8 {
+ font-size : 2.4em !important;
+ }
+
+
+.tag9 {
+ font-size : 2.6em !important;
+ }
+
+
+.tag10 {
+ font-size : 2.8em !important;
+ }
+
+.profile-thing-list {
+ list-style-type: none;
+}
+/*
+.profile-thing-list li {
+ float: left;
+ margin-right: 25px;
+}
+*/
+
+
+div#pagelist-content-wrapper {
+width: 80%;
+background: #fff;
+margin-left: auto;
+margin-right: auto;
+}
+
+div.page-list-item {
+margin: 20px;
+}
diff --git a/view/theme/redbasic/img/bg.png b/view/theme/redbasic/img/bg.png
deleted file mode 100644
index eae49e037..000000000
--- a/view/theme/redbasic/img/bg.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/redbasic/img/events.png b/view/theme/redbasic/img/events.png
deleted file mode 100644
index 96dd86899..000000000
--- a/view/theme/redbasic/img/events.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/redbasic/img/head.jpg b/view/theme/redbasic/img/head.jpg
deleted file mode 100644
index 6210b76be..000000000
--- a/view/theme/redbasic/img/head.jpg
+++ /dev/null
Binary files differ
diff --git a/view/theme/redbasic/img/home.png b/view/theme/redbasic/img/home.png
deleted file mode 100644
index d1ba7b3f3..000000000
--- a/view/theme/redbasic/img/home.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/redbasic/img/introductions.png b/view/theme/redbasic/img/introductions.png
deleted file mode 100644
index 9e0498227..000000000
--- a/view/theme/redbasic/img/introductions.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/redbasic/img/lock.cur b/view/theme/redbasic/img/lock.cur
deleted file mode 100644
index 892c5e851..000000000
--- a/view/theme/redbasic/img/lock.cur
+++ /dev/null
Binary files differ
diff --git a/view/theme/redbasic/img/message.png b/view/theme/redbasic/img/message.png
deleted file mode 100644
index f3fea75ee..000000000
--- a/view/theme/redbasic/img/message.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/redbasic/img/network.png b/view/theme/redbasic/img/network.png
deleted file mode 100644
index f3e45c3ec..000000000
--- a/view/theme/redbasic/img/network.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/redbasic/img/settings.png b/view/theme/redbasic/img/settings.png
deleted file mode 100644
index a935b225e..000000000
--- a/view/theme/redbasic/img/settings.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/redbasic/js/redbasic.js b/view/theme/redbasic/js/redbasic.js
index 00b8fa39f..10ca4cfa3 100644
--- a/view/theme/redbasic/js/redbasic.js
+++ b/view/theme/redbasic/js/redbasic.js
@@ -86,4 +86,16 @@ $('.savedsearchterm').hover(
});
-
+$(document).ready(function(){
+ var doctitle = document.title;
+ function checkNotify() {
+ var notifyUpdateElem = document.getElementById('notify-update');
+ if(notifyUpdateElem !== null) {
+ if(notifyUpdateElem.innerHTML != "")
+ document.title = "("+notifyUpdateElem.innerHTML+") " + doctitle;
+ else
+ document.title = doctitle;
+ }
+ };
+ setInterval(function () {checkNotify();}, 10 * 1000);
+}); \ No newline at end of file
diff --git a/view/theme/redbasic/php/config.php b/view/theme/redbasic/php/config.php
index ad5df57ce..4e7363362 100644
--- a/view/theme/redbasic/php/config.php
+++ b/view/theme/redbasic/php/config.php
@@ -4,42 +4,74 @@
*/
function theme_content(&$a) {
+ // Doesn't yet work for anyone other than the channel owner, and stupid mode isn't finished, so return both for now.
if(!local_user()) { return; }
-
$font_size = get_pconfig(local_user(),'redbasic', 'font_size' );
$line_height = get_pconfig(local_user(), 'redbasic', 'line_height' );
$colour = get_pconfig(local_user(), 'redbasic', 'colour' );
-
- return redbasic_form($a, $font_size, $line_height, $colour);
+ $shadow = get_pconfig(local_user(), 'redbasic', 'shadow' );
+ $navcolour = get_pconfig(local_user(), 'redbasic', 'navcolour');
+ $displaystyle = get_pconfig(local_user(), 'redbasic', 'displaystyle');
+ $linkcolour = get_pconfig(local_user(), 'redbasic', 'linkcolour');
+ $iconset = get_pconfig(local_user(), 'redbasic', 'iconset');
+ $shiny = get_pconfig(local_user(), 'redbasic', 'shiny');
+ $colour_scheme = get_pconfig(local_user(), 'redbasic', 'colour_scheme');
+ $radius = get_pconfig(local_user(),'redbasic','radius');
+
+ return redbasic_form($a, $font_size, $line_height, $colour, $shadow, $navcolour, $opaquenav, $displaystyle, $linkcolour, $iconset, $shiny, $colour_scheme,$radius);
}
function theme_post(&$a) {
if(!local_user()) { return; }
-
+
if (isset($_POST['redbasic-settings-submit'])) {
set_pconfig(local_user(), 'redbasic', 'font_size', $_POST['redbasic_font_size']);
set_pconfig(local_user(), 'redbasic', 'line_height', $_POST['redbasic_line_height']);
set_pconfig(local_user(), 'redbasic', 'colour', $_POST['redbasic_colour']);
+ set_pconfig(local_user(), 'redbasic', 'shadow', $_POST['redbasic_shadow']);
+ set_pconfig(local_user(), 'redbasic', 'navcolour', $_POST['redbasic_navcolour']);
+ set_pconfig(local_user(), 'redbasic', 'displaystyle', $_POST['redbasic_displaystyle']);
+ set_pconfig(local_user(), 'redbasic', 'linkcolour', $_POST['redbasic_linkcolour']);
+ set_pconfig(local_user(), 'redbasic', 'iconset', $_POST['redbasic_iconset']);
+ set_pconfig(local_user(), 'redbasic', 'shiny', $_POST['redbasic_shiny']);
+ set_pconfig(local_user(), 'redbasic', 'colour_scheme', $_POST['redbasic_colour_scheme']);
+ set_pconfig(local_user(), 'redbasic', 'radius', $_POST['redbasic_radius']);
}
-}
-function theme_admin(&$a) {
- $font_size = get_config('redbasic', 'font_size' );
- $line_height = get_config('redbasic', 'line_height' );
- $colour = get_config('redbasic', 'colour' );
-
- return redbasic_form($a, $font_size, $line_height, $colour);
}
-function theme_admin_post(&$a) {
- if (isset($_POST['redbasic-settings-submit'])) {
- set_config('redbasic', 'font_size', $_POST['redbasic_font_size']);
- set_config('redbasic', 'line_height', $_POST['redbasic_line_height']);
- set_config('redbasic', 'colour', $_POST['redbasic_colour']);
- }
-}
+// We probably don't want these if we're having global settings, but we'll comment out for now, just in case
+//function theme_admin(&$a) { $font_size = get_config('redbasic', 'font_size' );
+// $line_height = get_config('redbasic', 'line_height' );
+// $colour = get_config('redbasic', 'colour' );
+// $shadow = get_config('redbasic', 'shadow' );
+// $navcolour = get_config('redbasic', 'navcolour' );
+// $opaquenav = get_config('redbasic', 'opaquenav' );
+// $itemstyle = get_config('redbasic', 'itemstyle' );
+// $linkcolour = get_config('redbasic', 'linkcolour' );
+// $iconset = get_config('redbasic', 'iconset' );
+// $shiny = get_config('redbasic', 'shiny' );
+//
+// return redbasic_form($a, $font_size, $line_height, $colour, $shadow, $navcolour, $opaquenav, $itemstyle, $linkcolour, $iconset, $shiny);
+//}
-function redbasic_form(&$a, $font_size, $line_height, $colour) {
+//function theme_admin_post(&$a) {
+// if (isset($_POST['redbasic-settings-submit'])) {
+// set_config('redbasic', 'font_size', $_POST['redbasic_font_size']);
+// set_config('redbasic', 'line_height', $_POST['redbasic_line_height']);
+// set_config('redbasic', 'colour', $_POST['redbasic_colour']);
+// set_config('redbasic', 'shadow', $_POST['redbasic_shadow']);
+// set_config('redbasic', 'navcolour', $_POST['redbasic_navcolour']);
+// set_config('redbasic', 'opaquenav', $_POST['redbasic_opaquenav']);
+// set_config('redbasic', 'itemstyle', $_POST['redbasic_itemstyle']);
+// set_config('redbasic', 'linkcolour', $_POST['redbasic_linkcolour']);
+// set_config('redbasic', 'iconset', $_POST['redbasic_iconset']);
+// set_config('redbasic', 'shiny', $_POST['redbasic_shiny']);
+// }
+//}
+
+// These aren't all used yet, but they're not bloat - we'll use drop down menus in idiot mode.
+function redbasic_form(&$a, $font_size, $line_height, $colour, $shadow, $navcolour, $opaquenav, $displaystyle, $linkcolour, $iconset, $shiny, $colour_scheme,$radius) {
$line_heights = array(
"1.3" => "1.3",
"---" => "---",
@@ -65,16 +97,68 @@ function redbasic_form(&$a, $font_size, $line_height, $colour) {
'dark' => 'dark',
);
- $t = get_markup_template('theme_settings.tpl');
- $o .= replace_macros($t, array(
+ $colour_schemes = array(
+ 'redbasic' => 'redbasic',
+ 'fancyred' => 'fancyred',
+ 'dark' => 'dark',
+ );
+ $shadows = array(
+ 'true' => 'Yes',
+ 'false' => 'No',
+ );
+
+ $navcolours = array (
+ 'red' => 'red',
+ 'black' => 'black',
+ );
+
+ $displaystyles = array (
+ 'fancy' => 'fancy',
+ 'classic' => 'classic',
+ );
+
+ $linkcolours = array (
+ 'blue' => 'blue',
+ 'red' => 'red',
+ );
+
+ $iconsets = array (
+ 'default' => 'default',
+ );
+
+ $shinys = array (
+ 'none' => 'none',
+ 'opaque' => 'opaque',
+ );
+ if(feature_enabled(local_user(),'expert')) {
+ $t = get_markup_template('theme_settings.tpl');
+ $o .= replace_macros($t, array(
'$submit' => t('Submit'),
'$baseurl' => $a->get_baseurl(),
'$title' => t("Theme settings"),
'$font_size' => array('redbasic_font_size', t('Set font-size for posts and comments'), $font_size, '', $font_sizes),
'$line_height' => array('redbasic_line_height', t('Set line-height for posts and comments'), $line_height, '', $line_heights),
'$colour' => array('redbasic_colour', t('Set colour scheme'), $colour, '', $colours),
- ));
-
+ '$shadow' => array('redbasic_shadow', t('Draw shadows'), $shadow, '', $shadows),
+ '$navcolour' => array('redbasic_navcolour', t('Navigation bar colour'), $navcolour, '', $navcolours),
+ '$displaystyle' => array('redbasic_displaystyle', t('Display style'), $displaystyle, '', $displaystyles),
+ '$linkcolour' => array('redbasic_linkcolour', t('Display colour of links - hex value, do not include the #'), $linkcolour, '', $linkcolours),
+ '$iconset' => array('redbasic_iconset', t('Icons'), $iconset, '', $iconsets),
+ '$shiny' => array('redbasic_shiny', t('Shiny style'), $shiny, '', $shinys),
+ '$radius' => array('redbasic_radius', t('Corner radius'), $radius, t('0-99 default: 5')),
+ ));}
+
+ if(! feature_enabled(local_user(),'expert')) {
+ $t = get_markup_template('basic_theme_settings.tpl');
+ $o .= replace_macros($t, array(
+ '$submit' => t('Submit'),
+ '$baseurl' => $a->get_baseurl(),
+ '$title' => t("Theme settings"),
+ '$font_size' => array('redbasic_font_size', t('Set font-size for posts and comments'), $font_size, '', $font_sizes),
+ '$line_height' => array('redbasic_line_height', t('Set line-height for posts and comments'), $line_height, '', $line_heights),
+ '$colour_scheme' => array('redbasic_colour_scheme', t('Set colour scheme'), $colour_scheme, '', $colour_schemes),
+ ));}
+
return $o;
}
diff --git a/view/theme/redbasic/php/style.php b/view/theme/redbasic/php/style.php
index 99ad06c55..8643925d3 100644
--- a/view/theme/redbasic/php/style.php
+++ b/view/theme/redbasic/php/style.php
@@ -1,46 +1,159 @@
<?php
+ // This needs changing now, if we're going for global settings. Admin settings have been removed in preparation, You *should* just be able to remove all
+ // the get_config bits, though this is untested.
+ // We also need to eventually. Use the page owners settings for everybody - get_pconfig(page_owner()) or whatever that would look like.
+
+
+ $uid = get_theme_uid();
+
+ if($uid)
+ load_pconfig($uid,'redbasic');
+
$line_height = false;
$redbasic_font_size = false;
$resolution = false;
$colour = false;
+ $shadows = false;
+ $navcolour = false;
+ $nav_bg_1 = "f88";
+ $nav_bg_2 = "b00";
+ $nav_bg_3 = "f00";
+ $nav_bg_4 = "b00";
+ $displaystyle = false;
+ $linkcolour = false;
+ $shiny = false;
+ $radius = 5;
$site_line_height = get_config("redbasic","line_height");
$site_redbasic_font_size = get_config("redbasic", "font_size" );
$site_colour = get_config("redbasic", "colour" );
+ $shadows = get_config("redbasic", "shadow" );
+ $navcolour = get_config("redbasic", "navcolour" );
+ $displaystyle = get_config("redbasic", "displaystyle" );
+ $linkcolour = get_config("redbasic", "linkcolour" );
+ $shiny = get_config("redbasic", "shiny" );
- if (local_user()) {
- $line_height = get_pconfig(local_user(), "redbasic","line_height");
- $redbasic_font_size = get_pconfig(local_user(), "redbasic", "font_size");
- $colour = get_pconfig(local_user(), "redbasic", "colour");
+ $x = get_config('redbasic','radius');
+ if($x !== false)
+ $radius = $x;
+
+ if ($uid) {
+ $line_height = get_pconfig($uid, "redbasic","line_height");
+ $redbasic_font_size = get_pconfig($uid, "redbasic", "font_size");
+ $colour = get_pconfig($uid, "redbasic", "colour");
+ $shadows = get_pconfig($uid, "redbasic", "shadow");
+ $navcolour = get_pconfig($uid, "redbasic", "navcolour");
+ $displaystyle = get_pconfig($uid, "redbasic", "displaystyle");
+ $linkcolour = get_pconfig($uid, "redbasic", "linkcolour");
+ $shiny = get_pconfig($uid, "redbasic", "shiny");
+ $x = get_pconfig($uid,'redbasic','radius');
+ if($x !== false)
+ $radius = $x;
+
+ if (! feature_enabled($uid,'expert')) {$colour_scheme = get_pconfig($uid, "redbasic", "colour_scheme");}
}
- if ($line_height === false) {
- $line_height = $site_line_height;
- }
- if ($line_height === false) {
- $line_height = "1.2";
- }
- if ($redbasic_font_size === false) {
- $redbasic_font_size = $site_redbasic_font_size;
- }
- if ($redbasic_font_size === false) {
- $redbasic_font_size = "12";
- }
- if ($colour === false) {
- $colour = $site_colour;
- }
- if($colour === false) {
- $colour = "light";
- }
-
+ // In non-expert mode, we just let them choose font size, line height, and a colour scheme. A colour scheme is just a pre-defined set of the above variables.
+ // But only apply these settings in non-expert mode to prevent confusion when turning expert mode on and off.
+ if(! feature_enabled($uid,'expert')) {
+ if ($colour_scheme === 'fancyred') {$shadows = true; $navcolour = 'black'; $displaystyle = 'fancy'; $linkcolour = 'f00'; $shiny = "opaque";}
+ // Dark themes are very different - we need to do some of these from scratch, so don't bother setting vars for anything else
+ if ($colour_scheme === 'dark') {$colour = 'dark'; $navcolour = 'black';}
+ if ($colour_scheme === 'redbasic'){$navcolour = 'red';}
+ $shadows = false;
+ $radius = 5;
+}
+
+// This is probably the easiest place to apply global settings. Don't bother with site line height and such. Instead, check pconfig for global user settings.
+// eg, if ($redbasic_font_size === false) {$redbasic_font_size = get_pconfig($uid, "global", "font_size"); If it's not set, we'll just use the CSS with no changes.
+// Then all you need to do is add a "Global Settings" tab to settings/display, and make an equivalent of theme_settings.tpl and config.php to be loaded there. Easy.
+
+ if ($line_height === false) {$line_height = $site_line_height;}
+ if ($line_height === false) {$line_height = "1.2";}
+ if ($redbasic_font_size === false) {$redbasic_font_size = $site_redbasic_font_size;}
+ if ($redbasic_font_size === false) {$redbasic_font_size = "12";}
+ if ($colour === false) {$colour = $site_colour;}
+ if ($colour === false) {$colour = "light";}
+ if ($navcolour === "black") {$nav_bg_1 = "000";
+ $nav_bg_2 = "2e2f2e";}
+
if(file_exists('view/theme/' . current_theme() . '/css/style.css')) {
- echo file_get_contents('view/theme/' . current_theme() . '/css/style.css');
+ $x = file_get_contents('view/theme/' . current_theme() . '/css/style.css');
+ if(get_config('system','pcss_compress')) {
+ // this shaves off about 10%, probably not enough to worry about right now.
+ logger('pcss compress: original size: ' . strlen($x), LOGGER_DEBUG);
+ $x = str_replace(array("\r","\t"," "),array("",' ',' '),$x);
+ $x = preg_replace('/(\n[ ]+?)/s',"\n",$x);
+ $x = str_replace("\n","",$x);
+ logger('pcss compress: final size: ' . strlen($x), LOGGER_DEBUG);
+ }
+ echo str_replace(array('$radius'),array($radius),$x);
}
echo "\r\n";
- if(($redbasic_font_size >= 10.0) && ($redbasic_font_size <= 16.0)) {
- echo ".wall-item-content { font-size: $redbasic_font_size; }\r\n";
+// use $colour_scheme for idiot mode.
+ if($colour === "dark") {if (file_exists('view/theme/' . current_theme() . '/css/dark.css')) {
+ $dark = (file_get_contents('view/theme/' . current_theme() . '/css/dark.css'));
+ echo "$dark";}
+ }
+
+
+
+// Enforce sane limits for expert mode - otherwise we'll end up with "experts" who think font size is a percentage.
+
+ if(($redbasic_font_size >= 8.0) && ($redbasic_font_size <= 20.0)) {
+ echo ".wall-item-content { font-size: ${redbasic_font_size}px;}\r\n";
}
- if(($line_height >= 1.0) && ($line_height <= 1.5)) {
+ if(($line_height >= 1.0) && ($line_height <= 2.0)) {
echo ".wall-item-content { line-height: $line_height; }\r\n";
}
+
+
+// Minimum value shadows - they shouldn't all be the same size; just get it working, clean up later.
+ if($shadows === "true") {
+ echo "code, blockquote, .wall-item-content-wrapper, .wall-item-content-wrapper.comment, .wall-item-content img, #profile-jot-perms, #profile-jot-submit, .tab, .tab.active, .settings-widget li, .wall-item-photo, .photo, .contact-block-img, .my-comment-photo, #posted-date-selector:hover, .contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo, .group-selected, .nets-selected, .fileas-selected, .categories-selected {
+ box-shadow: 5px 5px 5px #111;}\r\n
+
+ .tab.active, #jot-title, #jot-category, .comment-edit-text-empty, .comment-edit-text-full, iframe#profile-jot-text_ifr, #profile-jot-text {
+ box-shadow: 5px 5px 5px #666 inset;}\r\n";
+
+ }
+
+// Since every change would otherwise require five lines, it's simpler to just set a default and echo this without first checking if we've set it.
+ echo "nav {background-image: linear-gradient(bottom, #$nav_bg_1 26%, #$nav_bg_2 82%);
+ background-image: -o-linear-gradient(bottom, #$nav_bg_1 26%, #$nav_bg_2 82%);
+ background-image: -moz-linear-gradient(bottom, #$nav_bg_1 26%, #$nav_bg_2 82%) !important;
+ background-image: -webkit-linear-gradient(bottom, #$nav_bg_1 26%, #$nav_bg_2 82%);
+ background-image: -ms-linear-gradient(bottom, #$nav_bg_1 26%, #$nav_bg_2 82%);}";
+
+ if($navcolour === false || $navcolour === 'red') {
+ echo "nav:hover {background-image: linear-gradient(bottom, #$nav_bg_3 26%, #$nav_bg_4 82%);
+ background-image: -o-linear-gradient(bottom, #$nav_bg_3 26%, #$nav_bg_4 82%);
+ background-image: -moz-linear-gradient(bottom, #$nav_bg_3 26%, #$nav_bg_4 82%) !important;
+ background-image: -webkit-linear-gradient(bottom, #$nav_bg_3 26%, #$nav_bg_4 82%);
+ background-image: -ms-linear-gradient(bottom, #$nav_bg_3 26%, #$nav_bg_4 82%);}";
+ }
+
+// This takes quite a lot of code, so we'll keep it in a separate file, and echo the lot. Devs still don't have to worry about - it's just overrides.
+// Theme devs can play with it without facing scary PHP.
+
+ if ($displaystyle === "fancy")
+ {if (file_exists('view/theme/' . current_theme() . '/css/fancy.css')) {
+ $fancy = (file_get_contents('view/theme/' . current_theme() . '/css/fancy.css'));
+ echo str_replace(array('$radius'),array($radius),$fancy);
+ }
+ }
+
+// Put the # here to force hex colours - if we don't, somebody is going to do something odd, using RGB and we're all going to be confused on the support forums
+// until one of us works out what they've done.
+
+ if ($linkcolour != false) {
+ echo "a, a:visited, a:link, .fakelink, .fakelink:visited, .fakelink:link {color: #$linkcolour;}\r\n";
+ }
+
+// If you want a shiny that just sets a different colour, add an if $shiny != false and handle it as the linkcolour above.
+
+ if ($shiny === 'opaque') {
+ echo "div.wall-item-content-wrapper.shiny {opacity: 1;}\r\n
+ .wall-item-content-wrapper {opacity: 0.8;}";
+ } \ No newline at end of file
diff --git a/view/theme/redbasic/tpl/basic_theme_settings.tpl b/view/theme/redbasic/tpl/basic_theme_settings.tpl
new file mode 100755
index 000000000..33a34b292
--- /dev/null
+++ b/view/theme/redbasic/tpl/basic_theme_settings.tpl
@@ -0,0 +1,14 @@
+{{*
+ * AUTOMATICALLY GENERATED TEMPLATE
+ * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
+ *
+ *}}
+{{include file="field_select.tpl" field=$font_size}}
+
+{{include file="field_select.tpl" field=$line_height}}
+
+{{include file="field_select.tpl" field=$colour_scheme}}
+
+<div class="settings-submit-wrapper">
+ <input type="submit" value="{{$submit}}" class="settings-submit" name="redbasic-settings-submit" />
+</div>
diff --git a/view/theme/redbasic/tpl/smarty3/theme_settings.tpl b/view/theme/redbasic/tpl/smarty3/theme_settings.tpl
deleted file mode 100644
index f91f24de6..000000000
--- a/view/theme/redbasic/tpl/smarty3/theme_settings.tpl
+++ /dev/null
@@ -1,12 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{include file="field_select.tpl" field=$font_size}}
-
-{{include file="field_select.tpl" field=$line_height}}
-
-<div class="settings-submit-wrapper">
- <input type="submit" value="{{$submit}}" class="settings-submit" name="redbasic-settings-submit" />
-</div>
diff --git a/view/theme/redbasic/tpl/theme_settings.tpl b/view/theme/redbasic/tpl/theme_settings.tpl
index d0d153e73..cd980fbc3 100644..100755
--- a/view/theme/redbasic/tpl/theme_settings.tpl
+++ b/view/theme/redbasic/tpl/theme_settings.tpl
@@ -1,7 +1,23 @@
-{{inc field_select.tpl with $field=$font_size}}{{endinc}}
+{{include file="field_select.tpl" field=$colour}}
-{{inc field_select.tpl with $field=$line_height}}{{endinc}}
+{{include file="field_input.tpl" field=$font_size}}
+
+{{include file="field_input.tpl" field=$line_height}}
+
+{{include file="field_select.tpl" field=$shadow}}
+
+{{include file="field_select.tpl" field=$navcolour}}
+
+{{include file="field_select.tpl" field=$displaystyle}}
+
+{{include file="field_input.tpl" field=$linkcolour}}
+
+{{include file="field_select.tpl" field=$iconset}}
+
+{{include file="field_select.tpl" field=$shiny}}
+
+{{include file="field_input.tpl" field=$radius}}
<div class="settings-submit-wrapper">
- <input type="submit" value="$submit" class="settings-submit" name="redbasic-settings-submit" />
+ <input type="submit" value="{{$submit}}" class="settings-submit" name="redbasic-settings-submit" />
</div>
diff --git a/view/tpl/404.tpl b/view/tpl/404.tpl
index bf4d4e949..518ad1d29 100644..100755
--- a/view/tpl/404.tpl
+++ b/view/tpl/404.tpl
@@ -1 +1 @@
-<h1>$message</h1>
+<h1>{{$message}}</h1>
diff --git a/view/tpl/abook_edit.tpl b/view/tpl/abook_edit.tpl
index 7f20f3398..c285e56d1 100644..100755
--- a/view/tpl/abook_edit.tpl
+++ b/view/tpl/abook_edit.tpl
@@ -1,74 +1,84 @@
+<h2>{{$header}}</h2>
-<h2>$header</h2>
+<h3>{{$addr}}</h3>
-<h3>$addr</h3>
-
-{{ if $notself }}
+{{if $notself}}
<div id="connection-flag-tabs">
-$tabs
+{{$tabs}}
</div>
-{{ endif }}
+{{/if}}
-{{ if $self }}
-<div id="autoperm-desc" class="descriptive-paragraph">$autolbl</div>
-{{ endif }}
+{{if $self}}
+<div id="autoperm-desc" class="descriptive-paragraph">{{$autolbl}}</div>
+{{/if}}
<div id="contact-edit-wrapper">
-{{ if $notself }}
-{{ if $slide }}
-<h3>$lbl_slider</h3>
+{{if $notself}}
+{{if $slide}}
+<h3>{{$lbl_slider}}</h3>
-$slide
+{{$slide}}
-{{ endif }}
-{{ endif }}
+{{/if}}
+{{/if}}
-<h3>$permlbl</h3>
+<h3>{{$permlbl}}</h3>
+<div id="perm-desc" class="descriptive-text">{{$permnote}}</div>
-<form id="abook-edit-form" action="connections/$contact_id" method="post" >
-<input type="hidden" name="contact_id" value="$contact_id">
-<input id="contact-closeness-mirror" type="hidden" name="closeness" value="$close" />
+<form id="abook-edit-form" action="connections/{{$contact_id}}" method="post" >
+<input type="hidden" name="contact_id" value="{{$contact_id}}">
+<input id="contact-closeness-mirror" type="hidden" name="closeness" value="{{$close}}" />
-{{ if $noperms }}
-<div id="noperm-desc" class="descriptive-paragraph">$noperms</div>
-{{ endif }}
+{{if $noperms}}
+<div id="noperm-msg" class="warning-text">{{$noperms}}</div>
+<div id="noperm-text" class="descriptive-text">{{$noperm_desc}}</div>
+{{/if}}
-{{ if $is_pending }}
-{{inc field_checkbox.tpl with $field=$unapproved }}{{endinc}}
-{{ endif }}
+{{if $is_pending}}
+{{include file="field_checkbox.tpl" field=$unapproved}}
+{{/if}}
<br />
-<b>$quick</b>
+<b>{{$quick}}</b>
<ul>
-{{ if $self }}
-<li><span class="fakelink" onclick="connectForum(); $('#abook-edit-form').submit();">$forum</span></li>
-<li><span class="fakelink" onclick="connectSoapBox(); $('#abook-edit-form').submit();">$soapbox</span></li>
-{{ endif }}
-<li><span class="fakelink" onclick="connectFullShare(); $('#abook-edit-form').submit();">$full</span></li>
-<li><span class="fakelink" onclick="connectCautiousShare(); $('#abook-edit-form').submit();">$cautious</span></li>
-<li><span class="fakelink" onclick="connectFollowOnly(); $('#abook-edit-form').submit();">$follow</span></li>
+{{if $self}}
+<li><span class="fakelink" onclick="connectForum(); // $('#abook-edit-form').submit();">{{$forum}}</span></li>
+<li><span class="fakelink" onclick="connectSoapBox(); // $('#abook-edit-form').submit();">{{$soapbox}}</span></li>
+{{/if}}
+<li><span class="fakelink" onclick="connectFullShare(); // $('#abook-edit-form').submit();">{{$full}}</span></li>
+<li><span class="fakelink" onclick="connectCautiousShare(); // $('#abook-edit-form').submit();">{{$cautious}}</span></li>
+<li><span class="fakelink" onclick="connectFollowOnly(); // $('#abook-edit-form').submit();">{{$follow}}</span></li>
</ul>
-<div id="abook-advanced" class="fakelink" onclick="openClose('abook-advanced-panel');">$advanced</div>
+<div id="abook-advanced" class="fakelink" onclick="openClose('abook-advanced-panel');">{{$advanced}}</div>
-<div id="abook-advanced-panel" style="display: none;">
+<div id="abook-advanced-panel" style="display: block;">
-<span class="abook-them">$them</span><span class="abook-me">$me</span>
+<span class="abook-them">{{$them}}</span><span class="abook-me">{{$me}}</span>
<br />
<br />
-{{ for $perms as $prm }}
-{{inc field_acheckbox.tpl with $field=$prm }}{{endinc}}
-{{ endfor }}
+{{foreach $perms as $prm}}
+{{include file="field_acheckbox.tpl" field=$prm}}
+{{/foreach}}
<br />
</div>
-<input class="contact-edit-submit" type="submit" name="done" value="$submit" />
+{{if $multiprofs }}
+<div>
+<h3>{{$lbl_vis1}}</h3>
+<div>{{$lbl_vis2}}</div>
+
+{{$profile_select}}
+</div>
+{{/if}}
+
+<input class="contact-edit-submit" type="submit" name="done" value="{{$submit}}" />
</form>
</div>
diff --git a/view/tpl/acl_selector.tpl b/view/tpl/acl_selector.tpl
index e5231b0f8..d21073b56 100644..100755
--- a/view/tpl/acl_selector.tpl
+++ b/view/tpl/acl_selector.tpl
@@ -1,6 +1,6 @@
<div id="acl-wrapper">
<input id="acl-search">
- <a href="#" id="acl-showall">$showall</a>
+ <a href="#" id="acl-showall">{{$showall}}</a>
<div id="acl-list">
<div id="acl-list-content">
</div>
@@ -10,8 +10,8 @@
<div class="acl-list-item" rel="acl-template" style="display:none">
<img src="{0}"><p>{1}</p>
- <a href="#" class='acl-button-show'>$show</a>
- <a href="#" class='acl-button-hide'>$hide</a>
+ <a href="#" class='acl-button-show'>{{$show}}</a>
+ <a href="#" class='acl-button-hide'>{{$hide}}</a>
</div>
<script>
@@ -20,7 +20,7 @@ $(document).ready(function() {
if(typeof acl=="undefined"){
acl = new ACL(
baseurl+"/acl",
- [ $allowcid,$allowgid,$denycid,$denygid ]
+ [ {{$allowcid}},{{$allowgid}},{{$denycid}},{{$denygid}} ]
);
}
}, 5000 );
diff --git a/view/tpl/admin_aside.tpl b/view/tpl/admin_aside.tpl
index ca1f4985c..acf58668d 100644..100755
--- a/view/tpl/admin_aside.tpl
+++ b/view/tpl/admin_aside.tpl
@@ -10,33 +10,33 @@
});
});
</script>
-<h4><a href="$admurl">$admtxt</a></h4>
+<h4><a href="{{$admurl}}">{{$admtxt}}</a></h4>
<ul class='admin linklist'>
- <li class='admin link button $admin.site.2'><a href='$admin.site.0'>$admin.site.1</a></li>
- <li class='admin link button $admin.users.2'><a href='$admin.users.0'>$admin.users.1</a><span id='pending-update' title='$h_pending'></span></li>
- <li class='admin link button $admin.plugins.2'><a href='$admin.plugins.0'>$admin.plugins.1</a></li>
- <li class='admin link button $admin.themes.2'><a href='$admin.themes.0'>$admin.themes.1</a></li>
- <li class='admin link button $admin.dbsync.2'><a href='$admin.dbsync.0'>$admin.dbsync.1</a></li>
+ <li class='admin link button {{$admin.site.2}}'><a href='{{$admin.site.0}}'>{{$admin.site.1}}</a></li>
+ <li class='admin link button {{$admin.users.2}}'><a href='{{$admin.users.0}}'>{{$admin.users.1}}</a><span id='pending-update' title='{{$h_pending}}'></span></li>
+ <li class='admin link button {{$admin.plugins.2}}'><a href='{{$admin.plugins.0}}'>{{$admin.plugins.1}}</a></li>
+ <li class='admin link button {{$admin.themes.2}}'><a href='{{$admin.themes.0}}'>{{$admin.themes.1}}</a></li>
+ <li class='admin link button {{$admin.dbsync.2}}'><a href='{{$admin.dbsync.0}}'>{{$admin.dbsync.1}}</a></li>
</ul>
-{{ if $admin.update }}
+{{if $admin.update}}
<ul class='admin linklist'>
- <li class='admin link button $admin.update.2'><a href='$admin.update.0'>$admin.update.1</a></li>
- <li class='admin link button $admin.update.2'><a href='https://kakste.com/profile/inthegit'>Important Changes</a></li>
+ <li class='admin link button {{$admin.update.2}}'><a href='{{$admin.update.0}}'>{{$admin.update.1}}</a></li>
+ <li class='admin link button {{$admin.update.2}}'><a href='https://kakste.com/profile/inthegit'>Important Changes</a></li>
</ul>
-{{ endif }}
+{{/if}}
-{{ if $admin.plugins_admin }}<h4>$plugadmtxt</h4>{{ endif }}
+{{if $admin.plugins_admin}}<h4>{{$plugadmtxt}}</h4>{{/if}}
<ul class='admin linklist'>
- {{ for $admin.plugins_admin as $l }}
- <li class='admin link button $l.2'><a href='$l.0'>$l.1</a></li>
- {{ endfor }}
+ {{foreach $admin.plugins_admin as $l}}
+ <li class='admin link button {{$l.2}}'><a href='{{$l.0}}'>{{$l.1}}</a></li>
+ {{/foreach}}
</ul>
-<h4>$logtxt</h4>
+<h4>{{$logtxt}}</h4>
<ul class='admin linklist'>
- <li class='admin link button $admin.logs.2'><a href='$admin.logs.0'>$admin.logs.1</a></li>
+ <li class='admin link button {{$admin.logs.2}}'><a href='{{$admin.logs.0}}'>{{$admin.logs.1}}</a></li>
</ul>
diff --git a/view/tpl/admin_logs.tpl b/view/tpl/admin_logs.tpl
index b777cf420..e5412429f 100644..100755
--- a/view/tpl/admin_logs.tpl
+++ b/view/tpl/admin_logs.tpl
@@ -1,19 +1,19 @@
<div id='adminpage'>
- <h1>$title - $page</h1>
+ <h1>{{$title}} - {{$page}}</h1>
- <form action="$baseurl/admin/logs" method="post">
- <input type='hidden' name='form_security_token' value='$form_security_token'>
+ <form action="{{$baseurl}}/admin/logs" method="post">
+ <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
- {{ inc field_checkbox.tpl with $field=$debugging }}{{ endinc }}
- {{ inc field_input.tpl with $field=$logfile }}{{ endinc }}
- {{ inc field_select.tpl with $field=$loglevel }}{{ endinc }}
+ {{include file="field_checkbox.tpl" field=$debugging}}
+ {{include file="field_input.tpl" field=$logfile}}
+ {{include file="field_select.tpl" field=$loglevel}}
- <div class="submit"><input type="submit" name="page_logs" value="$submit" /></div>
+ <div class="submit"><input type="submit" name="page_logs" value="{{$submit}}" /></div>
</form>
- <h3>$logname</h3>
- <div style="width:100%; height:400px; overflow: auto; "><pre>$data</pre></div>
-<!-- <iframe src='$baseurl/$logname' style="width:100%; height:400px"></iframe> -->
- <!-- <div class="submit"><input type="submit" name="page_logs_clear_log" value="$clear" /></div> -->
+ <h3>{{$logname}}</h3>
+ <div style="width:100%; height:400px; overflow: auto; "><pre>{{$data}}</pre></div>
+<!-- <iframe src='{{$baseurl}}/{{$logname}}' style="width:100%; height:400px"></iframe> -->
+ <!-- <div class="submit"><input type="submit" name="page_logs_clear_log" value="{{$clear}}" /></div> -->
</div>
diff --git a/view/tpl/admin_plugins.tpl b/view/tpl/admin_plugins.tpl
index 74b56bb4e..307814e87 100644..100755
--- a/view/tpl/admin_plugins.tpl
+++ b/view/tpl/admin_plugins.tpl
@@ -1,15 +1,20 @@
+{{*
+ * AUTOMATICALLY GENERATED TEMPLATE
+ * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
+ *
+ *}}
<div id='adminpage'>
- <h1>$title - $page</h1>
+ <h1>{{$title}} - {{$page}}</h1>
<ul id='pluginslist'>
- {{ for $plugins as $p }}
- <li class='plugin $p.1'>
- <a class='toggleplugin' href='$baseurl/admin/$function/$p.0?a=t&amp;t=$form_security_token' title="{{if $p.1==on }}Disable{{ else }}Enable{{ endif }}" ><span class='icon $p.1'></span></a>
- <a href='$baseurl/admin/$function/$p.0'><span class='name'>$p.2.name</span></a> - <span class="version">$p.2.version</span>
- {{ if $p.2.experimental }} $experimental {{ endif }}{{ if $p.2.unsupported }} $unsupported {{ endif }}
+ {{foreach $plugins as $p}}
+ <li class='plugin {{$p.1}}'>
+ <a class='toggleplugin' href='{{$baseurl}}/admin/{{$function}}/{{$p.0}}?a=t&amp;t={{$form_security_token}}' title="{{if $p.1==on}}Disable{{else}}Enable{{/if}}" ><span class='icon {{$p.1}}'></span></a>
+ <a href='{{$baseurl}}/admin/{{$function}}/{{$p.0}}'><span class='name'>{{$p.2.name}}</span></a> - <span class="version">{{$p.2.version}}</span>
+ {{if $p.2.experimental}} {{$experimental}} {{/if}}{{if $p.2.unsupported}} {{$unsupported}} {{/if}}
- <div class='desc'>$p.2.description</div>
+ <div class='desc'>{{$p.2.description}}</div>
</li>
- {{ endfor }}
+ {{/foreach}}
</ul>
</div>
diff --git a/view/tpl/admin_plugins_details.tpl b/view/tpl/admin_plugins_details.tpl
index 931c7b83c..47c33bec3 100644..100755
--- a/view/tpl/admin_plugins_details.tpl
+++ b/view/tpl/admin_plugins_details.tpl
@@ -1,36 +1,36 @@
<div id='adminpage'>
- <h1>$title - $page</h1>
+ <h1>{{$title}} - {{$page}}</h1>
- <p><span class='toggleplugin icon $status'></span> $info.name - $info.version : <a href="$baseurl/admin/$function/$plugin/?a=t&amp;t=$form_security_token">$action</a></p>
- <p>$info.description</p>
+ <p><span class='toggleplugin icon {{$status}}'></span> {{$info.name}} - {{$info.version}} : <a href="{{$baseurl}}/admin/{{$function}}/{{$plugin}}/?a=t&amp;t={{$form_security_token}}">{{$action}}</a></p>
+ <p>{{$info.description}}</p>
- <p class="author">$str_author
- {{ for $info.author as $a }}
- {{ if $a.link }}<a href="$a.link">$a.name</a>{{ else }}$a.name{{ endif }},
- {{ endfor }}
+ <p class="author">{{$str_author}}
+ {{foreach $info.author as $a}}
+ {{if $a.link}}<a href="{{$a.link}}">{{$a.name}}</a>{{else}}{{$a.name}}{{/if}},
+ {{/foreach}}
</p>
- <p class="maintainer">$str_maintainer
- {{ for $info.maintainer as $a }}
- {{ if $a.link }}<a href="$a.link">$a.name</a>{{ else }}$a.name{{ endif }},
- {{ endfor }}
+ <p class="maintainer">{{$str_maintainer}}
+ {{foreach $info.maintainer as $a}}
+ {{if $a.link}}<a href="{{$a.link}}">{{$a.name}}</a>{{else}}{{$a.name}}{{/if}},
+ {{/foreach}}
</p>
- {{ if $screenshot }}
- <a href="$screenshot.0" class='screenshot'><img src="$screenshot.0" alt="$screenshot.1" /></a>
- {{ endif }}
+ {{if $screenshot}}
+ <a href="{{$screenshot.0}}" class='screenshot'><img src="{{$screenshot.0}}" alt="{{$screenshot.1}}" /></a>
+ {{/if}}
- {{ if $admin_form }}
- <h3>$settings</h3>
- <form method="post" action="$baseurl/admin/$function/$plugin/">
- $admin_form
+ {{if $admin_form}}
+ <h3>{{$settings}}</h3>
+ <form method="post" action="{{$baseurl}}/admin/{{$function}}/{{$plugin}}/">
+ {{$admin_form}}
</form>
- {{ endif }}
+ {{/if}}
- {{ if $readme }}
+ {{if $readme}}
<h3>Readme</h3>
<div id="plugin_readme">
- $readme
+ {{$readme}}
</div>
- {{ endif }}
+ {{/if}}
</div>
diff --git a/view/tpl/admin_remoteupdate.tpl b/view/tpl/admin_remoteupdate.tpl
deleted file mode 100644
index 874c6e626..000000000
--- a/view/tpl/admin_remoteupdate.tpl
+++ /dev/null
@@ -1,98 +0,0 @@
-<script src="js/jquery.htmlstream.js"></script>
-<script>
- /* ajax updater */
- function updateEnd(data){
- //$("#updatepopup .panel_text").html(data);
- $("#remoteupdate_form").find("input").removeAttr('disabled');
- $(".panel_action_close").fadeIn()
- }
- function updateOn(data){
-
- var patt=/§([^§]*)§/g;
- var matches = data.match(patt);
- $(matches).each(function(id,data){
- data = data.replace(/§/g,"");
- d = data.split("@");
- console.log(d);
- elm = $("#updatepopup .panel_text #"+d[0]);
- html = "<div id='"+d[0]+"' class='progress'>"+d[1]+"<span>"+d[2]+"</span></div>";
- if (elm.length==0){
- $("#updatepopup .panel_text").append(html);
- } else {
- $(elm).replaceWith(html);
- }
- });
-
-
- }
-
- $(function(){
- $("#remoteupdate_form").submit(function(){
- var data={};
- $(this).find("input").each(function(i, e){
- name = $(e).attr('name');
- value = $(e).val();
- e.disabled = true;
- data[name]=value;
- });
-
- $("#updatepopup .panel_text").html("");
- $("#updatepopup").show();
- $("#updatepopup .panel").hide().slideDown(500);
- $(".panel_action_close").hide().click(function(){
- $("#updatepopup .panel").slideUp(500, function(){
- $("#updatepopup").hide();
- });
- });
-
- $.post(
- $(this).attr('action'),
- data,
- updateEnd,
- 'text',
- updateOn
- );
-
-
- return false;
- })
- });
-</script>
-<div id="updatepopup" class="popup">
- <div class="background"></div>
- <div class="panel">
- <div class="panel_in">
- <h1>Friendica Update</h1>
- <div class="panel_text"></div>
- <div class="panel_actions">
- <input type="button" value="$close" class="panel_action_close">
- </div>
- </div>
- </div>
-</div>
-<div id="adminpage">
- <dl> <dt>Your version:</dt><dd>$localversion</dd> </dl>
-{{ if $needupdate }}
- <dl> <dt>New version:</dt><dd>$remoteversion</dd> </dl>
-
- <form id="remoteupdate_form" method="POST" action="$baseurl/admin/update">
- <input type="hidden" name="$remotefile.0" value="$remotefile.2">
-
- {{ if $canwrite }}
- <div class="submit"><input type="submit" name="remoteupdate" value="$submit" /></div>
- {{ else }}
- <h3>Your friendica installation is not writable by web server.</h3>
- {{ if $canftp }}
- <p>You can try to update via FTP</p>
- {{ inc field_input.tpl with $field=$ftphost }}{{ endinc }}
- {{ inc field_input.tpl with $field=$ftppath }}{{ endinc }}
- {{ inc field_input.tpl with $field=$ftpuser }}{{ endinc }}
- {{ inc field_password.tpl with $field=$ftppwd }}{{ endinc }}
- <div class="submit"><input type="submit" name="remoteupdate" value="$submit" /></div>
- {{ endif }}
- {{ endif }}
- </form>
-{{ else }}
-<h4>No updates</h4>
-{{ endif }}
-</div>
diff --git a/view/tpl/admin_site.tpl b/view/tpl/admin_site.tpl
index e09996aee..546175899 100644..100755
--- a/view/tpl/admin_site.tpl
+++ b/view/tpl/admin_site.tpl
@@ -6,7 +6,7 @@
autoDimensions: false,
onStart: function(){
var theme = $("#id_theme :selected").val();
- $("#cnftheme").attr('href',"$baseurl/admin/themes/"+theme);
+ $("#cnftheme").attr('href',"{{$baseurl}}/admin/themes/"+theme);
},
onComplete: function(){
$("div#fancybox-content form").submit(function(e){
@@ -35,48 +35,49 @@
});
</script>
<div id='adminpage'>
- <h1>$title - $page</h1>
+ <h1>{{$title}} - {{$page}}</h1>
- <form action="$baseurl/admin/site" method="post">
- <input type='hidden' name='form_security_token' value='$form_security_token'>
+ <form action="{{$baseurl}}/admin/site" method="post">
+ <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
- {{ inc field_input.tpl with $field=$sitename }}{{ endinc }}
- {{ inc field_textarea.tpl with $field=$banner }}{{ endinc }}
- {{ inc field_select.tpl with $field=$language }}{{ endinc }}
- {{ inc field_select.tpl with $field=$theme }}{{ endinc }}
- {{ inc field_select.tpl with $field=$ssl_policy }}{{ endinc }}
+ {{include file="field_input.tpl" field=$sitename}}
+ {{include file="field_textarea.tpl" field=$banner}}
+ {{include file="field_select.tpl" field=$language}}
+ {{include file="field_select.tpl" field=$theme}}
+ {{include file="field_select.tpl" field=$theme_mobile}}
+ {{include file="field_select.tpl" field=$theme_accessibility}}
+ {{include file="field_input.tpl" field=$site_channel}}
+ {{include file="field_select.tpl" field=$ssl_policy}}
- <div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
+ <div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
- <h3>$registration</h3>
- {{ inc field_input.tpl with $field=$register_text }}{{ endinc }}
- {{ inc field_select.tpl with $field=$register_policy }}{{ endinc }}
+ <h3>{{$registration}}</h3>
+ {{include file="field_input.tpl" field=$register_text}}
+ {{include file="field_select.tpl" field=$register_policy}}
- <div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
+ <div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
- <h3>$upload</h3>
- {{ inc field_input.tpl with $field=$maximagesize }}{{ endinc }}
+ <h3>{{$upload}}</h3>
+ {{include file="field_input.tpl" field=$maximagesize}}
- <h3>$corporate</h3>
- {{ inc field_input.tpl with $field=$allowed_sites }}{{ endinc }}
- {{ inc field_input.tpl with $field=$allowed_email }}{{ endinc }}
- {{ inc field_checkbox.tpl with $field=$block_public }}{{ endinc }}
- {{ inc field_checkbox.tpl with $field=$force_publish }}{{ endinc }}
- {{ inc field_checkbox.tpl with $field=$no_community_page }}{{ endinc }}
- {{ inc field_input.tpl with $field=$global_directory }}{{ endinc }}
+ <h3>{{$corporate}}</h3>
+ {{include file="field_input.tpl" field=$allowed_sites}}
+ {{include file="field_input.tpl" field=$allowed_email}}
+ {{include file="field_checkbox.tpl" field=$block_public}}
+ {{include file="field_checkbox.tpl" field=$force_publish}}
- <div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
+ <div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
- <h3>$advanced</h3>
- {{ inc field_input.tpl with $field=$proxy }}{{ endinc }}
- {{ inc field_input.tpl with $field=$proxyuser }}{{ endinc }}
- {{ inc field_input.tpl with $field=$timeout }}{{ endinc }}
- {{ inc field_input.tpl with $field=$delivery_interval }}{{ endinc }}
- {{ inc field_input.tpl with $field=$poll_interval }}{{ endinc }}
- {{ inc field_input.tpl with $field=$maxloadavg }}{{ endinc }}
- {{ inc field_input.tpl with $field=$abandon_days }}{{ endinc }}
+ <h3>{{$advanced}}</h3>
+ {{include file="field_input.tpl" field=$proxy}}
+ {{include file="field_input.tpl" field=$proxyuser}}
+ {{include file="field_input.tpl" field=$timeout}}
+ {{include file="field_input.tpl" field=$delivery_interval}}
+ {{include file="field_input.tpl" field=$poll_interval}}
+ {{include file="field_input.tpl" field=$maxloadavg}}
+ {{include file="field_input.tpl" field=$abandon_days}}
- <div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
+ <div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
</form>
</div>
diff --git a/view/tpl/admin_summary.tpl b/view/tpl/admin_summary.tpl
index 99221c13e..88d87c35d 100644..100755
--- a/view/tpl/admin_summary.tpl
+++ b/view/tpl/admin_summary.tpl
@@ -1,39 +1,39 @@
<div id='adminpage'>
- <h1>$title - $page</h1>
+ <h1>{{$title}} - {{$page}}</h1>
<dl>
- <dt>$queues.label</dt>
- <dd>$queues.queue</dd>
+ <dt>{{$queues.label}}</dt>
+ <dd>{{$queues.queue}}</dd>
</dl>
<dl>
- <dt>$pending.0</dt>
- <dd>$pending.1</dt>
+ <dt>{{$pending.0}}</dt>
+ <dd>{{$pending.1}}</dt>
</dl>
<dl>
- <dt>$users.0</dt>
- <dd>$users.1</dd>
+ <dt>{{$users.0}}</dt>
+ <dd>{{$users.1}}</dd>
</dl>
- {{ for $accounts as $p }}
+ {{foreach $accounts as $p}}
<dl>
- <dt>$p.0</dt>
- <dd>{{ if $p.1 }}$p.1{{ else }}0{{ endif }}</dd>
+ <dt>{{$p.0}}</dt>
+ <dd>{{if $p.1}}{{$p.1}}{{else}}0{{/if}}</dd>
</dl>
- {{ endfor }}
+ {{/foreach}}
<dl>
- <dt>$plugins.0</dt>
+ <dt>{{$plugins.0}}</dt>
- {{ for $plugins.1 as $p }}
- <dd>$p</dd>
- {{ endfor }}
+ {{foreach $plugins.1 as $p}}
+ <dd>{{$p}}</dd>
+ {{/foreach}}
</dl>
<dl>
- <dt>$version.0</dt>
- <dd>$version.1 - $build</dt>
+ <dt>{{$version.0}}</dt>
+ <dd>{{$version.1}} - {{$build}}</dt>
</dl>
diff --git a/view/tpl/admin_users.tpl b/view/tpl/admin_users.tpl
index 727030f5d..86389e9f2 100644..100755
--- a/view/tpl/admin_users.tpl
+++ b/view/tpl/admin_users.tpl
@@ -1,9 +1,9 @@
<script>
function confirm_delete(uname){
- return confirm( "$confirm_delete".format(uname));
+ return confirm( "{{$confirm_delete}}".format(uname));
}
function confirm_delete_multi(){
- return confirm("$confirm_delete_multi");
+ return confirm("{{$confirm_delete_multi}}");
}
function selectall(cls){
$("."+cls).attr('checked','checked');
@@ -11,79 +11,77 @@
}
</script>
<div id='adminpage'>
- <h1>$title - $page</h1>
+ <h1>{{$title}} - {{$page}}</h1>
- <form action="$baseurl/admin/users" method="post">
- <input type='hidden' name='form_security_token' value='$form_security_token'>
+ <form action="{{$baseurl}}/admin/users" method="post">
+ <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
- <h3>$h_pending</h3>
- {{ if $pending }}
+ <h3>{{$h_pending}}</h3>
+ {{if $pending}}
<table id='pending'>
<thead>
<tr>
- {{ for $th_pending as $th }}<th>$th</th>{{ endfor }}
+ {{foreach $th_pending as $th}}<th>{{$th}}</th>{{/foreach}}
<th></th>
<th></th>
</tr>
</thead>
<tbody>
- {{ for $pending as $u }}
+ {{foreach $pending as $u}}
<tr>
- <td class="created">$u.created</td>
- <td class="name">$u.name</td>
- <td class="email">$u.email</td>
- <td class="checkbox"><input type="checkbox" class="pending_ckbx" id="id_pending_$u.hash" name="pending[]" value="$u.hash" /></td>
+ <td class="created">{{$u.created}}</td>
+ <td class="name">{{$u.name}}</td>
+ <td class="email">{{$u.email}}</td>
+ <td class="checkbox"><input type="checkbox" class="pending_ckbx" id="id_pending_{{$u.hash}}" name="pending[]" value="{{$u.hash}}" /></td>
<td class="tools">
- <a href="$baseurl/regmod/allow/$u.hash" title='$approve'><span class='icon like'></span></a>
- <a href="$baseurl/regmod/deny/$u.hash" title='$deny'><span class='icon dislike'></span></a>
+ <a href="{{$baseurl}}/regmod/allow/{{$u.hash}}" title='{{$approve}}'><span class='icon like'></span></a>
+ <a href="{{$baseurl}}/regmod/deny/{{$u.hash}}" title='{{$deny}}'><span class='icon dislike'></span></a>
</td>
</tr>
- {{ endfor }}
+ {{/foreach}}
</tbody>
</table>
- <div class='selectall'><a href='#' onclick="return selectall('pending_ckbx');">$select_all</a></div>
- <div class="submit"><input type="submit" name="page_users_deny" value="$deny"/> <input type="submit" name="page_users_approve" value="$approve" /></div>
- {{ else }}
- <p>$no_pending</p>
- {{ endif }}
+ <div class='selectall'><a href='#' onclick="return selectall('pending_ckbx');">{{$select_all}}</a></div>
+ <div class="submit"><input type="submit" name="page_users_deny" value="{{$deny}}"/> <input type="submit" name="page_users_approve" value="{{$approve}}" /></div>
+ {{else}}
+ <p>{{$no_pending}}</p>
+ {{/if}}
- <h3>$h_users</h3>
- {{ if $users }}
+ <h3>{{$h_users}}</h3>
+ {{if $users}}
<table id='users'>
<thead>
<tr>
<th></th>
- {{ for $th_users as $th }}<th>$th</th>{{ endfor }}
+ {{foreach $th_users as $th}}<th>{{$th}}</th>{{/foreach}}
<th></th>
<th></th>
</tr>
</thead>
<tbody>
- {{ for $users as $u }}
+ {{foreach $users as $u}}
<tr>
- <td><img src="$u.micro" alt="$u.nickname" title="$u.nickname"></td>
- <td class='name'><a href="$u.url" title="$u.nickname" >$u.name</a></td>
- <td class='email'>$u.email</td>
- <td class='register_date'>$u.register_date</td>
- <td class='login_date'>$u.login_date</td>
- <td class='lastitem_date'>$u.lastitem_date</td>
- <td class='login_date'>$u.page_flags</td>
- <td class="checkbox"><input type="checkbox" class="users_ckbx" id="id_user_$u.uid" name="user[]" value="$u.uid"/></td>
+ <td><img src="{{$u.micro}}" alt="{{$u.nickname}}" title="{{$u.nickname}}"></td>
+ <td class='email'>{{$u.account_email}}</td>
+ <td class='register_date'>{{$u.account_created}}</td>
+ <td class='login_date'>{{$u.account_lastlog}}</td>
+ <td class='service_class'>{{$u.account_service_class}}</td>
+ <td class="checkbox"><input type="checkbox" class="users_ckbx" id="id_user_{{$u.uid}}" name="user[]" value="{{$u.uid}}"/></td>
<td class="tools">
- <a href="$baseurl/admin/users/block/$u.uid?t=$form_security_token" title='{{ if $u.blocked }}$unblock{{ else }}$block{{ endif }}'><span class='icon block {{ if $u.blocked==0 }}dim{{ endif }}'></span></a>
- <a href="$baseurl/admin/users/delete/$u.uid?t=$form_security_token" title='$delete' onclick="return confirm_delete('$u.name')"><span class='icon drop'></span></a>
+ <a href="{{$baseurl}}/admin/users/block/{{$u.uid}}?t={{$form_security_token}}" title='{{if $u.blocked}}{{$unblock}}{{else}}{{$block}}{{/if}}'><span class='icon block {{if $u.blocked==0}}dim{{/if}}'></span></a>
+ <a href="{{$baseurl}}/admin/users/delete/{{$u.uid}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><span class='icon drop'></span></a>
</td>
</tr>
- {{ endfor }}
+ {{/foreach}}
</tbody>
</table>
- <div class='selectall'><a href='#' onclick="return selectall('users_ckbx');">$select_all</a></div>
- <div class="submit"><input type="submit" name="page_users_block" value="$block/$unblock" /> <input type="submit" name="page_users_delete" value="$delete" onclick="return confirm_delete_multi()" /></div>
- {{ else }}
+ <div class='selectall'><a href='#' onclick="return selectall('users_ckbx');">{{$select_all}}</a></div>
+ <div class="submit"><input type="submit" name="page_users_block" value="{{$block}}/{{$unblock}}" /> <input type="submit" name="page_users_delete" value="{{$delete}}" onclick="return confirm_delete_multi()" /></div>
+ {{else}}
NO USERS?!?
- {{ endif }}
+ {{/if}}
</form>
</div>
diff --git a/view/tpl/album_edit.tpl b/view/tpl/album_edit.tpl
index 56a7b73fc..61653c47c 100644..100755
--- a/view/tpl/album_edit.tpl
+++ b/view/tpl/album_edit.tpl
@@ -1,14 +1,14 @@
<div id="photo-album-edit-wrapper">
-<form name="photo-album-edit-form" id="photo-album-edit-form" action="photos/$nickname/album/$hexalbum" method="post" >
+<form name="photo-album-edit-form" id="photo-album-edit-form" action="photos/{{$nickname}}/album/{{$hexalbum}}" method="post" >
-<label id="photo-album-edit-name-label" for="photo-album-edit-name" >$nametext</label>
-<input type="text" size="64" name="albumname" value="$album" >
+<label id="photo-album-edit-name-label" for="photo-album-edit-name" >{{$nametext}}</label>
+<input type="text" size="64" name="albumname" value="{{$album}}" >
<div id="photo-album-edit-name-end"></div>
-<input id="photo-album-edit-submit" type="submit" name="submit" value="$submit" />
-<input id="photo-album-edit-drop" type="submit" name="dropalbum" value="$dropsubmit" onclick="return confirmDelete();" />
+<input id="photo-album-edit-submit" type="submit" name="submit" value="{{$submit}}" />
+<input id="photo-album-edit-drop" type="submit" name="dropalbum" value="{{$dropsubmit}}" onclick="return confirmDelete();" />
</form>
</div>
diff --git a/view/tpl/alt_pager.tpl b/view/tpl/alt_pager.tpl
new file mode 100644
index 000000000..b46dc7662
--- /dev/null
+++ b/view/tpl/alt_pager.tpl
@@ -0,0 +1,4 @@
+<div class="pager">
+{{if $has_less}}<a href="{{$url}}&page={{$prevpage}}" class="pager-prev">{{$less}}</a>{{/if}}
+{{if $has_more}}{{if $has_less}}&nbsp;|&nbsp;{{/if}}<a href="{{$url}}&page={{$nextpage}}" class="pager-next">{{$more}}</a>{{/if}}
+</div>
diff --git a/view/tpl/api_config_xml.tpl b/view/tpl/api_config_xml.tpl
index 3281e59dd..8c0766c73 100644..100755
--- a/view/tpl/api_config_xml.tpl
+++ b/view/tpl/api_config_xml.tpl
@@ -1,24 +1,24 @@
<config>
<site>
- <name>$config.site.name</name>
- <server>$config.site.server</server>
+ <name>{{$config.site.name}}</name>
+ <server>{{$config.site.server}}</server>
<theme>default</theme>
<path></path>
- <logo>$config.site.logo</logo>
+ <logo>{{$config.site.logo}}</logo>
<fancy>true</fancy>
<language>en</language>
- <email>$config.site.email</email>
+ <email>{{$config.site.email}}</email>
<broughtby></broughtby>
<broughtbyurl></broughtbyurl>
<timezone>UTC</timezone>
- <closed>$config.site.closed</closed>
+ <closed>{{$config.site.closed}}</closed>
<inviteonly>false</inviteonly>
- <private>$config.site.private</private>
- <textlimit>$config.site.textlimit</textlimit>
- <ssl>$config.site.ssl</ssl>
- <sslserver>$config.site.sslserver</sslserver>
+ <private>{{$config.site.private}}</private>
+ <textlimit>{{$config.site.textlimit}}</textlimit>
+ <ssl>{{$config.site.ssl}}</ssl>
+ <sslserver>{{$config.site.sslserver}}</sslserver>
<shorturllength>30</shorturllength>
</site>
diff --git a/view/tpl/api_friends_xml.tpl b/view/tpl/api_friends_xml.tpl
index 0ea7eb13b..f2a7234d1 100644..100755
--- a/view/tpl/api_friends_xml.tpl
+++ b/view/tpl/api_friends_xml.tpl
@@ -1,5 +1,5 @@
<users type="array">
- {{for $users as $user }}
- {{inc api_user_xml.tpl }}{{endinc}}
- {{endfor}}
+ {{foreach $users as $user}}
+ {{include file="api_user_xml.tpl"}}
+ {{/foreach}}
</users>
diff --git a/view/tpl/api_ratelimit_xml.tpl b/view/tpl/api_ratelimit_xml.tpl
index 36ec1993d..e4b470a25 100644..100755
--- a/view/tpl/api_ratelimit_xml.tpl
+++ b/view/tpl/api_ratelimit_xml.tpl
@@ -1,6 +1,6 @@
<hash>
- <remaining-hits type="integer">$hash.remaining_hits</remaining-hits>
- <hourly-limit type="integer">$hash.hourly_limit</hourly-limit>
- <reset-time type="datetime">$hash.reset_time</reset-time>
- <reset_time_in_seconds type="integer">$hash.resettime_in_seconds</reset_time_in_seconds>
+ <remaining-hits type="integer">{{$hash.remaining_hits}}</remaining-hits>
+ <hourly-limit type="integer">{{$hash.hourly_limit}}</hourly-limit>
+ <reset-time type="datetime">{{$hash.reset_time}}</reset-time>
+ <reset_time_in_seconds type="integer">{{$hash.resettime_in_seconds}}</reset_time_in_seconds>
</hash>
diff --git a/view/tpl/api_status_xml.tpl b/view/tpl/api_status_xml.tpl
index f6cd9c2c0..cbb736e22 100644..100755
--- a/view/tpl/api_status_xml.tpl
+++ b/view/tpl/api_status_xml.tpl
@@ -1,46 +1,46 @@
-<status>{{ if $status }}
- <created_at>$status.created_at</created_at>
- <id>$status.id</id>
- <text>$status.text</text>
- <source>$status.source</source>
- <truncated>$status.truncated</truncated>
- <in_reply_to_status_id>$status.in_reply_to_status_id</in_reply_to_status_id>
- <in_reply_to_user_id>$status.in_reply_to_user_id</in_reply_to_user_id>
- <favorited>$status.favorited</favorited>
- <in_reply_to_screen_name>$status.in_reply_to_screen_name</in_reply_to_screen_name>
- <geo>$status.geo</geo>
- <coordinates>$status.coordinates</coordinates>
- <place>$status.place</place>
- <contributors>$status.contributors</contributors>
+<status>{{if $status}}
+ <created_at>{{$status.created_at}}</created_at>
+ <id>{{$status.id}}</id>
+ <text>{{$status.text}}</text>
+ <source>{{$status.source}}</source>
+ <truncated>{{$status.truncated}}</truncated>
+ <in_reply_to_status_id>{{$status.in_reply_to_status_id}}</in_reply_to_status_id>
+ <in_reply_to_user_id>{{$status.in_reply_to_user_id}}</in_reply_to_user_id>
+ <favorited>{{$status.favorited}}</favorited>
+ <in_reply_to_screen_name>{{$status.in_reply_to_screen_name}}</in_reply_to_screen_name>
+ <geo>{{$status.geo}}</geo>
+ <coordinates>{{$status.coordinates}}</coordinates>
+ <place>{{$status.place}}</place>
+ <contributors>{{$status.contributors}}</contributors>
<user>
- <id>$status.user.id</id>
- <name>$status.user.name</name>
- <screen_name>$status.user.screen_name</screen_name>
- <location>$status.user.location</location>
- <description>$status.user.description</description>
- <profile_image_url>$status.user.profile_image_url</profile_image_url>
- <url>$status.user.url</url>
- <protected>$status.user.protected</protected>
- <followers_count>$status.user.followers</followers_count>
- <profile_background_color>$status.user.profile_background_color</profile_background_color>
- <profile_text_color>$status.user.profile_text_color</profile_text_color>
- <profile_link_color>$status.user.profile_link_color</profile_link_color>
- <profile_sidebar_fill_color>$status.user.profile_sidebar_fill_color</profile_sidebar_fill_color>
- <profile_sidebar_border_color>$status.user.profile_sidebar_border_color</profile_sidebar_border_color>
- <friends_count>$status.user.friends_count</friends_count>
- <created_at>$status.user.created_at</created_at>
- <favourites_count>$status.user.favourites_count</favourites_count>
- <utc_offset>$status.user.utc_offset</utc_offset>
- <time_zone>$status.user.time_zone</time_zone>
- <profile_background_image_url>$status.user.profile_background_image_url</profile_background_image_url>
- <profile_background_tile>$status.user.profile_background_tile</profile_background_tile>
- <profile_use_background_image>$status.user.profile_use_background_image</profile_use_background_image>
+ <id>{{$status.user.id}}</id>
+ <name>{{$status.user.name}}</name>
+ <screen_name>{{$status.user.screen_name}}</screen_name>
+ <location>{{$status.user.location}}</location>
+ <description>{{$status.user.description}}</description>
+ <profile_image_url>{{$status.user.profile_image_url}}</profile_image_url>
+ <url>{{$status.user.url}}</url>
+ <protected>{{$status.user.protected}}</protected>
+ <followers_count>{{$status.user.followers}}</followers_count>
+ <profile_background_color>{{$status.user.profile_background_color}}</profile_background_color>
+ <profile_text_color>{{$status.user.profile_text_color}}</profile_text_color>
+ <profile_link_color>{{$status.user.profile_link_color}}</profile_link_color>
+ <profile_sidebar_fill_color>{{$status.user.profile_sidebar_fill_color}}</profile_sidebar_fill_color>
+ <profile_sidebar_border_color>{{$status.user.profile_sidebar_border_color}}</profile_sidebar_border_color>
+ <friends_count>{{$status.user.friends_count}}</friends_count>
+ <created_at>{{$status.user.created_at}}</created_at>
+ <favourites_count>{{$status.user.favourites_count}}</favourites_count>
+ <utc_offset>{{$status.user.utc_offset}}</utc_offset>
+ <time_zone>{{$status.user.time_zone}}</time_zone>
+ <profile_background_image_url>{{$status.user.profile_background_image_url}}</profile_background_image_url>
+ <profile_background_tile>{{$status.user.profile_background_tile}}</profile_background_tile>
+ <profile_use_background_image>{{$status.user.profile_use_background_image}}</profile_use_background_image>
<notifications></notifications>
- <geo_enabled>$status.user.geo_enabled</geo_enabled>
- <verified>$status.user.verified</verified>
+ <geo_enabled>{{$status.user.geo_enabled}}</geo_enabled>
+ <verified>{{$status.user.verified}}</verified>
<following></following>
- <statuses_count>$status.user.statuses_count</statuses_count>
- <lang>$status.user.lang</lang>
- <contributors_enabled>$status.user.contributors_enabled</contributors_enabled>
+ <statuses_count>{{$status.user.statuses_count}}</statuses_count>
+ <lang>{{$status.user.lang}}</lang>
+ <contributors_enabled>{{$status.user.contributors_enabled}}</contributors_enabled>
</user>
-{{ endif }}</status>
+{{/if}}</status>
diff --git a/view/tpl/api_test_xml.tpl b/view/tpl/api_test_xml.tpl
index 7509a2dc1..80a541c39 100644..100755
--- a/view/tpl/api_test_xml.tpl
+++ b/view/tpl/api_test_xml.tpl
@@ -1 +1 @@
-<ok>$ok</ok>
+<ok>{{$ok}}</ok>
diff --git a/view/tpl/api_timeline_atom.tpl b/view/tpl/api_timeline_atom.tpl
index 9039220e7..e8bfb689e 100644..100755
--- a/view/tpl/api_timeline_atom.tpl
+++ b/view/tpl/api_timeline_atom.tpl
@@ -1,90 +1,90 @@
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:georss="http://www.georss.org/georss" xmlns:activity="http://activitystrea.ms/spec/1.0/" xmlns:media="http://purl.org/syndication/atommedia" xmlns:poco="http://portablecontacts.net/spec/1.0" xmlns:ostatus="http://ostatus.org/schema/1.0" xmlns:statusnet="http://status.net/schema/api/1/">
<generator uri="http://status.net" version="0.9.7">StatusNet</generator>
- <id>$rss.self</id>
+ <id>{{$rss.self}}</id>
<title>Friendika</title>
<subtitle>Friendika API feed</subtitle>
- <logo>$rss.logo</logo>
- <updated>$rss.atom_updated</updated>
- <link type="text/html" rel="alternate" href="$rss.alternate"/>
- <link type="application/atom+xml" rel="self" href="$rss.self"/>
+ <logo>{{$rss.logo}}</logo>
+ <updated>{{$rss.atom_updated}}</updated>
+ <link type="text/html" rel="alternate" href="{{$rss.alternate}}"/>
+ <link type="application/atom+xml" rel="self" href="{{$rss.self}}"/>
<author>
<activity:obj_type>http://activitystrea.ms/schema/1.0/person</activity:obj_type>
- <uri>$user.url</uri>
- <name>$user.name</name>
- <link rel="alternate" type="text/html" href="$user.url"/>
- <link rel="avatar" type="image/jpeg" media:width="106" media:height="106" href="$user.profile_image_url"/>
- <link rel="avatar" type="image/jpeg" media:width="96" media:height="96" href="$user.profile_image_url"/>
- <link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="$user.profile_image_url"/>
- <link rel="avatar" type="image/jpeg" media:width="24" media:height="24" href="$user.profile_image_url"/>
+ <uri>{{$user.url}}</uri>
+ <name>{{$user.name}}</name>
+ <link rel="alternate" type="text/html" href="{{$user.url}}"/>
+ <link rel="avatar" type="image/jpeg" media:width="106" media:height="106" href="{{$user.profile_image_url}}"/>
+ <link rel="avatar" type="image/jpeg" media:width="96" media:height="96" href="{{$user.profile_image_url}}"/>
+ <link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="{{$user.profile_image_url}}"/>
+ <link rel="avatar" type="image/jpeg" media:width="24" media:height="24" href="{{$user.profile_image_url}}"/>
<georss:point></georss:point>
- <poco:preferredUsername>$user.screen_name</poco:preferredUsername>
- <poco:displayName>$user.name</poco:displayName>
+ <poco:preferredUsername>{{$user.screen_name}}</poco:preferredUsername>
+ <poco:displayName>{{$user.name}}</poco:displayName>
<poco:urls>
<poco:type>homepage</poco:type>
- <poco:value>$user.url</poco:value>
+ <poco:value>{{$user.url}}</poco:value>
<poco:primary>true</poco:primary>
</poco:urls>
- <statusnet:profile_info local_id="$user.id"></statusnet:profile_info>
+ <statusnet:profile_info local_id="{{$user.id}}"></statusnet:profile_info>
</author>
<!--Deprecation warning: activity:subject is present only for backward compatibility. It will be removed in the next version of StatusNet.-->
<activity:subject>
<activity:obj_type>http://activitystrea.ms/schema/1.0/person</activity:obj_type>
- <id>$user.contact_url</id>
- <title>$user.name</title>
- <link rel="alternate" type="text/html" href="$user.url"/>
- <link rel="avatar" type="image/jpeg" media:width="106" media:height="106" href="$user.profile_image_url"/>
- <link rel="avatar" type="image/jpeg" media:width="96" media:height="96" href="$user.profile_image_url"/>
- <link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="$user.profile_image_url"/>
- <link rel="avatar" type="image/jpeg" media:width="24" media:height="24" href="$user.profile_image_url"/>
- <poco:preferredUsername>$user.screen_name</poco:preferredUsername>
- <poco:displayName>$user.name</poco:displayName>
+ <id>{{$user.contact_url}}</id>
+ <title>{{$user.name}}</title>
+ <link rel="alternate" type="text/html" href="{{$user.url}}"/>
+ <link rel="avatar" type="image/jpeg" media:width="106" media:height="106" href="{{$user.profile_image_url}}"/>
+ <link rel="avatar" type="image/jpeg" media:width="96" media:height="96" href="{{$user.profile_image_url}}"/>
+ <link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="{{$user.profile_image_url}}"/>
+ <link rel="avatar" type="image/jpeg" media:width="24" media:height="24" href="{{$user.profile_image_url}}"/>
+ <poco:preferredUsername>{{$user.screen_name}}</poco:preferredUsername>
+ <poco:displayName>{{$user.name}}</poco:displayName>
<poco:urls>
<poco:type>homepage</poco:type>
- <poco:value>$user.url</poco:value>
+ <poco:value>{{$user.url}}</poco:value>
<poco:primary>true</poco:primary>
</poco:urls>
- <statusnet:profile_info local_id="$user.id"></statusnet:profile_info>
+ <statusnet:profile_info local_id="{{$user.id}}"></statusnet:profile_info>
</activity:subject>
- {{ for $statuses as $status }}
+ {{foreach $statuses as $status}}
<entry>
- <activity:obj_type>$status.objecttype</activity:obj_type>
- <id>$status.message_id</id>
- <title>$status.text</title>
- <content type="html">$status.statusnet_html</content>
- <link rel="alternate" type="text/html" href="$status.url"/>
- <activity:verb>$status.verb</activity:verb>
- <published>$status.published</published>
- <updated>$status.updated</updated>
+ <activity:obj_type>{{$status.objecttype}}</activity:obj_type>
+ <id>{{$status.message_id}}</id>
+ <title>{{$status.text}}</title>
+ <content type="html">{{$status.statusnet_html}}</content>
+ <link rel="alternate" type="text/html" href="{{$status.url}}"/>
+ <activity:verb>{{$status.verb}}</activity:verb>
+ <published>{{$status.published}}</published>
+ <updated>{{$status.updated}}</updated>
- <link rel="self" type="application/atom+xml" href="$status.self"/>
- <link rel="edit" type="application/atom+xml" href="$status.edit"/>
- <statusnet:notice_info local_id="$status.id" source="$status.source" >
+ <link rel="self" type="application/atom+xml" href="{{$status.self}}"/>
+ <link rel="edit" type="application/atom+xml" href="{{$status.edit}}"/>
+ <statusnet:notice_info local_id="{{$status.id}}" source="{{$status.source}}" >
</statusnet:notice_info>
<author>
<activity:obj_type>http://activitystrea.ms/schema/1.0/person</activity:obj_type>
- <uri>$status.user.url</uri>
- <name>$status.user.name</name>
- <link rel="alternate" type="text/html" href="$status.user.url"/>
- <link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="$status.user.profile_image_url"/>
+ <uri>{{$status.user.url}}</uri>
+ <name>{{$status.user.name}}</name>
+ <link rel="alternate" type="text/html" href="{{$status.user.url}}"/>
+ <link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="{{$status.user.profile_image_url}}"/>
<georss:point/>
- <poco:preferredUsername>$status.user.screen_name</poco:preferredUsername>
- <poco:displayName>$status.user.name</poco:displayName>
+ <poco:preferredUsername>{{$status.user.screen_name}}</poco:preferredUsername>
+ <poco:displayName>{{$status.user.name}}</poco:displayName>
<poco:address/>
<poco:urls>
<poco:type>homepage</poco:type>
- <poco:value>$status.user.url</poco:value>
+ <poco:value>{{$status.user.url}}</poco:value>
<poco:primary>true</poco:primary>
</poco:urls>
</author>
- <link rel="ostatus:conversation" type="text/html" href="$status.url"/>
+ <link rel="ostatus:conversation" type="text/html" href="{{$status.url}}"/>
</entry>
- {{ endfor }}
+ {{/foreach}}
</feed>
diff --git a/view/tpl/api_timeline_rss.tpl b/view/tpl/api_timeline_rss.tpl
index 40239273c..86c645e99 100644..100755
--- a/view/tpl/api_timeline_rss.tpl
+++ b/view/tpl/api_timeline_rss.tpl
@@ -1,26 +1,26 @@
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:georss="http://www.georss.org/georss" xmlns:twitter="http://api.twitter.com">
<channel>
<title>Friendika</title>
- <link>$rss.alternate</link>
- <atom:link type="application/rss+xml" rel="self" href="$rss.self"/>
+ <link>{{$rss.alternate}}</link>
+ <atom:link type="application/rss+xml" rel="self" href="{{$rss.self}}"/>
<description>Friendika timeline</description>
- <language>$rss.language</language>
+ <language>{{$rss.language}}</language>
<ttl>40</ttl>
<image>
- <link>$user.link</link>
- <title>$user.name's items</title>
- <url>$user.profile_image_url</url>
+ <link>{{$user.link}}</link>
+ <title>{{$user.name}}'s items</title>
+ <url>{{$user.profile_image_url}}</url>
</image>
-{{ for $statuses as $status }}
+{{foreach $statuses as $status}}
<item>
- <title>$status.user.name: $status.text</title>
- <description>$status.text</description>
- <pubDate>$status.created_at</pubDate>
- <guid>$status.url</guid>
- <link>$status.url</link>
- <twitter:source>$status.source</twitter:source>
+ <title>{{$status.user.name}}: {{$status.text}}</title>
+ <description>{{$status.text}}</description>
+ <pubDate>{{$status.created_at}}</pubDate>
+ <guid>{{$status.url}}</guid>
+ <link>{{$status.url}}</link>
+ <twitter:source>{{$status.source}}</twitter:source>
</item>
-{{ endfor }}
+{{/foreach}}
</channel>
</rss>
diff --git a/view/tpl/api_timeline_xml.tpl b/view/tpl/api_timeline_xml.tpl
index 4a32b411b..f14d73e9c 100644..100755
--- a/view/tpl/api_timeline_xml.tpl
+++ b/view/tpl/api_timeline_xml.tpl
@@ -1,20 +1,20 @@
<statuses type="array" xmlns:statusnet="http://status.net/schema/api/1/">
-{{ for $statuses as $status }} <status>
- <text>$status.text</text>
- <truncated>$status.truncated</truncated>
- <created_at>$status.created_at</created_at>
- <in_reply_to_status_id>$status.in_reply_to_status_id</in_reply_to_status_id>
- <source>$status.source</source>
- <id>$status.id</id>
- <in_reply_to_user_id>$status.in_reply_to_user_id</in_reply_to_user_id>
- <in_reply_to_screen_name>$status.in_reply_to_screen_name</in_reply_to_screen_name>
- <geo>$status.geo</geo>
- <favorited>$status.favorited</favorited>
-{{ inc api_user_xml.tpl with $user=$status.user }}{{ endinc }} <statusnet:html>$status.statusnet_html</statusnet:html>
- <statusnet:conversation_id>$status.statusnet_conversation_id</statusnet:conversation_id>
- <url>$status.url</url>
- <coordinates>$status.coordinates</coordinates>
- <place>$status.place</place>
- <contributors>$status.contributors</contributors>
+{{foreach $statuses as $status}} <status>
+ <text>{{$status.text}}</text>
+ <truncated>{{$status.truncated}}</truncated>
+ <created_at>{{$status.created_at}}</created_at>
+ <in_reply_to_status_id>{{$status.in_reply_to_status_id}}</in_reply_to_status_id>
+ <source>{{$status.source}}</source>
+ <id>{{$status.id}}</id>
+ <in_reply_to_user_id>{{$status.in_reply_to_user_id}}</in_reply_to_user_id>
+ <in_reply_to_screen_name>{{$status.in_reply_to_screen_name}}</in_reply_to_screen_name>
+ <geo>{{$status.geo}}</geo>
+ <favorited>{{$status.favorited}}</favorited>
+{{include file="api_user_xml.tpl" user=$status.user}} <statusnet:html>{{$status.statusnet_html}}</statusnet:html>
+ <statusnet:conversation_id>{{$status.statusnet_conversation_id}}</statusnet:conversation_id>
+ <url>{{$status.url}}</url>
+ <coordinates>{{$status.coordinates}}</coordinates>
+ <place>{{$status.place}}</place>
+ <contributors>{{$status.contributors}}</contributors>
</status>
-{{ endfor }}</statuses>
+{{/foreach}}</statuses>
diff --git a/view/tpl/api_user_xml.tpl b/view/tpl/api_user_xml.tpl
index d286652c0..d7efcf3fb 100644..100755
--- a/view/tpl/api_user_xml.tpl
+++ b/view/tpl/api_user_xml.tpl
@@ -1,46 +1,51 @@
+{{*
+ * AUTOMATICALLY GENERATED TEMPLATE
+ * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
+ *
+ *}}
<user>
- <id>$user.id</id>
- <name>$user.name</name>
- <screen_name>$user.screen_name</screen_name>
- <location>$user.location</location>
- <description>$user.description</description>
- <profile_image_url>$user.profile_image_url</profile_image_url>
- <url>$user.url</url>
- <protected>$user.protected</protected>
- <followers_count>$user.followers_count</followers_count>
- <friends_count>$user.friends_count</friends_count>
- <created_at>$user.created_at</created_at>
- <favourites_count>$user.favourites_count</favourites_count>
- <utc_offset>$user.utc_offset</utc_offset>
- <time_zone>$user.time_zone</time_zone>
- <statuses_count>$user.statuses_count</statuses_count>
- <following>$user.following</following>
- <profile_background_color>$user.profile_background_color</profile_background_color>
- <profile_text_color>$user.profile_text_color</profile_text_color>
- <profile_link_color>$user.profile_link_color</profile_link_color>
- <profile_sidebar_fill_color>$user.profile_sidebar_fill_color</profile_sidebar_fill_color>
- <profile_sidebar_border_color>$user.profile_sidebar_border_color</profile_sidebar_border_color>
- <profile_background_image_url>$user.profile_background_image_url</profile_background_image_url>
- <profile_background_tile>$user.profile_background_tile</profile_background_tile>
- <profile_use_background_image>$user.profile_use_background_image</profile_use_background_image>
- <notifications>$user.notifications</notifications>
- <geo_enabled>$user.geo_enabled</geo_enabled>
- <verified>$user.verified</verified>
- <lang>$user.lang</lang>
- <contributors_enabled>$user.contributors_enabled</contributors_enabled>
- <status>{{ if $user.status }}
- <created_at>$user.status.created_at</created_at>
- <id>$user.status.id</id>
- <text>$user.status.text</text>
- <source>$user.status.source</source>
- <truncated>$user.status.truncated</truncated>
- <in_reply_to_status_id>$user.status.in_reply_to_status_id</in_reply_to_status_id>
- <in_reply_to_user_id>$user.status.in_reply_to_user_id</in_reply_to_user_id>
- <favorited>$user.status.favorited</favorited>
- <in_reply_to_screen_name>$user.status.in_reply_to_screen_name</in_reply_to_screen_name>
- <geo>$user.status.geo</geo>
- <coordinates>$user.status.coordinates</coordinates>
- <place>$user.status.place</place>
- <contributors>$user.status.contributors</contributors>
- {{ endif }}</status>
+ <id>{{$user.id}}</id>
+ <name>{{$user.name}}</name>
+ <screen_name>{{$user.screen_name}}</screen_name>
+ <location>{{$user.location}}</location>
+ <description>{{$user.description}}</description>
+ <profile_image_url>{{$user.profile_image_url}}</profile_image_url>
+ <url>{{$user.url}}</url>
+ <protected>{{$user.protected}}</protected>
+ <followers_count>{{$user.followers_count}}</followers_count>
+ <friends_count>{{$user.friends_count}}</friends_count>
+ <created_at>{{$user.created_at}}</created_at>
+ <favourites_count>{{$user.favourites_count}}</favourites_count>
+ <utc_offset>{{$user.utc_offset}}</utc_offset>
+ <time_zone>{{$user.time_zone}}</time_zone>
+ <statuses_count>{{$user.statuses_count}}</statuses_count>
+ <following>{{$user.following}}</following>
+ <profile_background_color>{{$user.profile_background_color}}</profile_background_color>
+ <profile_text_color>{{$user.profile_text_color}}</profile_text_color>
+ <profile_link_color>{{$user.profile_link_color}}</profile_link_color>
+ <profile_sidebar_fill_color>{{$user.profile_sidebar_fill_color}}</profile_sidebar_fill_color>
+ <profile_sidebar_border_color>{{$user.profile_sidebar_border_color}}</profile_sidebar_border_color>
+ <profile_background_image_url>{{$user.profile_background_image_url}}</profile_background_image_url>
+ <profile_background_tile>{{$user.profile_background_tile}}</profile_background_tile>
+ <profile_use_background_image>{{$user.profile_use_background_image}}</profile_use_background_image>
+ <notifications>{{$user.notifications}}</notifications>
+ <geo_enabled>{{$user.geo_enabled}}</geo_enabled>
+ <verified>{{$user.verified}}</verified>
+ <lang>{{$user.lang}}</lang>
+ <contributors_enabled>{{$user.contributors_enabled}}</contributors_enabled>
+ <status>{{if $user.status}}
+ <created_at>{{$user.status.created_at}}</created_at>
+ <id>{{$user.status.id}}</id>
+ <text>{{$user.status.text}}</text>
+ <source>{{$user.status.source}}</source>
+ <truncated>{{$user.status.truncated}}</truncated>
+ <in_reply_to_status_id>{{$user.status.in_reply_to_status_id}}</in_reply_to_status_id>
+ <in_reply_to_user_id>{{$user.status.in_reply_to_user_id}}</in_reply_to_user_id>
+ <favorited>{{$user.status.favorited}}</favorited>
+ <in_reply_to_screen_name>{{$user.status.in_reply_to_screen_name}}</in_reply_to_screen_name>
+ <geo>{{$user.status.geo}}</geo>
+ <coordinates>{{$user.status.coordinates}}</coordinates>
+ <place>{{$user.status.place}}</place>
+ <contributors>{{$user.status.contributors}}</contributors>
+ {{/if}}</status>
</user>
diff --git a/view/tpl/apps.tpl b/view/tpl/apps.tpl
index 4c7f8c94c..335e0ca97 100644..100755
--- a/view/tpl/apps.tpl
+++ b/view/tpl/apps.tpl
@@ -1,7 +1,7 @@
-<h3>$title</h3>
+<h3>{{$title}}</h3>
<ul>
- {{ for $apps as $ap }}
- <li>$ap</li>
- {{ endfor }}
+ {{foreach $apps as $ap}}
+ <li>{{$ap}}</li>
+ {{/foreach}}
</ul>
diff --git a/view/tpl/atom_feed.tpl b/view/tpl/atom_feed.tpl
index 2feb547ee..2c8024d47 100644..100755
--- a/view/tpl/atom_feed.tpl
+++ b/view/tpl/atom_feed.tpl
@@ -4,26 +4,29 @@
xmlns:at="http://purl.org/atompub/tombstones/1.0"
xmlns:media="http://purl.org/syndication/atommedia"
xmlns:dfrn="http://purl.org/macgirvin/dfrn/1.0"
+ xmlns:zot="http://purl.org/zot"
xmlns:as="http://activitystrea.ms/spec/1.0/"
xmlns:georss="http://www.georss.org/georss"
xmlns:poco="http://portablecontacts.net/spec/1.0"
xmlns:ostatus="http://ostatus.org/schema/1.0"
xmlns:statusnet="http://status.net/schema/api/1/" >
- <id>$feed_id</id>
- <title>$feed_title</title>
- <generator uri="http://friendica.com" version="$version">Friendica</generator>
+ <id>{{$feed_id}}</id>
+ <title>{{$feed_title}}</title>
+ <generator uri="http://getzot.com" version="{{$version}}">{{$red}}</generator>
<link rel="license" href="http://creativecommons.org/licenses/by/3.0/" />
- $hub
- $salmon
- $community
+{{if $hub}}
+ {{$hub}}
+{{/if}}
+{{if $salmon}}
+ {{$salmon}}
+{{/if}}
- <updated>$feed_updated</updated>
+ <updated>{{$feed_updated}}</updated>
- <dfrn:owner>
- <name dfrn:updated="$namdate" >$name</name>
- <uri dfrn:updated="$uridate" >$profile_page</uri>
- <link rel="photo" type="image/jpeg" dfrn:updated="$picdate" media:width="175" media:height="175" href="$photo" />
- <link rel="avatar" type="image/jpeg" dfrn:updated="$picdate" media:width="175" media:height="175" href="$photo" />
- $birthday
- </dfrn:owner>
+ <zot:owner>
+ <name>{{$name}}</name>
+ <uri>{{$profile_page}}</uri>
+ <link rel="photo" type="{{$mimephoto}}" media:width="175" media:height="175" href="{{$photo}}" />
+ <link rel="avatar" type="{{$mimephoto}}" media:width="175" media:height="175" href="{{$photo}}" />
+ </zot:owner>
diff --git a/view/tpl/atom_feed_dfrn.tpl b/view/tpl/atom_feed_dfrn.tpl
index 0bae62b52..307001fbe 100644..100755
--- a/view/tpl/atom_feed_dfrn.tpl
+++ b/view/tpl/atom_feed_dfrn.tpl
@@ -10,20 +10,20 @@
xmlns:ostatus="http://ostatus.org/schema/1.0"
xmlns:statusnet="http://status.net/schema/api/1/" >
- <id>$feed_id</id>
- <title>$feed_title</title>
- <generator uri="http://friendica.com" version="$version">Friendica</generator>
+ <id>{{$feed_id}}</id>
+ <title>{{$feed_title}}</title>
+ <generator uri="http://friendica.com" version="{{$version}}">Friendica</generator>
<link rel="license" href="http://creativecommons.org/licenses/by/3.0/" />
- $hub
- $salmon
- $community
+ {{$hub}}
+ {{$salmon}}
+ {{$community}}
- <updated>$feed_updated</updated>
+ <updated>{{$feed_updated}}</updated>
<author>
- <name dfrn:updated="$namdate" >$name</name>
- <uri dfrn:updated="$uridate" >$profile_page</uri>
- <link rel="photo" type="image/jpeg" dfrn:updated="$picdate" media:width="175" media:height="175" href="$photo" />
- <link rel="avatar" type="image/jpeg" dfrn:updated="$picdate" media:width="175" media:height="175" href="$photo" />
- $birthday
+ <name dfrn:updated="{{$namdate}}" >{{$name}}</name>
+ <uri dfrn:updated="{{$uridate}}" >{{$profile_page}}</uri>
+ <link rel="photo" type="image/jpeg" dfrn:updated="{{$picdate}}" media:width="175" media:height="175" href="{{$photo}}" />
+ <link rel="avatar" type="image/jpeg" dfrn:updated="{{$picdate}}" media:width="175" media:height="175" href="{{$photo}}" />
+ {{$birthday}}
</author>
diff --git a/view/tpl/atom_mail.tpl b/view/tpl/atom_mail.tpl
deleted file mode 100644
index bf7c3efc8..000000000
--- a/view/tpl/atom_mail.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-<dfrn:mail>
-
- <dfrn:sender>
- <dfrn:name>$name</dfrn:name>
- <dfrn:uri>$profile_page</dfrn:uri>
- <dfrn:avatar>$thumb</dfrn:avatar>
- </dfrn:sender>
-
- <dfrn:id>$item_id</dfrn:id>
- <dfrn:in-reply-to>$parent_id</dfrn:in-reply-to>
- <dfrn:sentdate>$created</dfrn:sentdate>
- <dfrn:subject>$subject</dfrn:subject>
- <dfrn:content>$content</dfrn:content>
-
-</dfrn:mail>
-
diff --git a/view/tpl/atom_suggest.tpl b/view/tpl/atom_suggest.tpl
deleted file mode 100644
index 66c61f9b6..000000000
--- a/view/tpl/atom_suggest.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-
-<dfrn:suggest>
-
- <dfrn:url>$url</dfrn:url>
- <dfrn:name>$name</dfrn:name>
- <dfrn:photo>$photo</dfrn:photo>
- <dfrn:request>$request</dfrn:request>
- <dfrn:note>$note</dfrn:note>
-
-</dfrn:suggest>
-
diff --git a/view/tpl/auto_request.tpl b/view/tpl/auto_request.tpl
deleted file mode 100644
index 961de9bb3..000000000
--- a/view/tpl/auto_request.tpl
+++ /dev/null
@@ -1,37 +0,0 @@
-
-<h1>$header</h1>
-
-<p id="dfrn-request-intro">
-$page_desc<br />
-<ul id="dfrn-request-networks">
-<li><a href="http://friendica.com" title="$friendica">$friendica</a></li>
-<li><a href="http://joindiaspora.com" title="$diaspora">$diaspora</a> $diasnote</li>
-<li><a href="http://ostatus.org" title="$public_net" >$statusnet</a></li>
-{{ if $emailnet }}<li>$emailnet</li>{{ endif }}
-</ul>
-</p>
-<p>
-$invite_desc
-</p>
-<p>
-$desc
-</p>
-
-<form action="dfrn_request/$nickname" method="post" />
-
-<div id="dfrn-request-url-wrapper" >
- <label id="dfrn-url-label" for="dfrn-url" >$your_address</label>
- <input type="text" name="dfrn_url" id="dfrn-url" size="32" value="$myaddr" />
- <div id="dfrn-request-url-end"></div>
-</div>
-
-
-<div id="dfrn-request-info-wrapper" >
-
-</div>
-
- <div id="dfrn-request-submit-wrapper">
- <input type="submit" name="submit" id="dfrn-request-submit-button" value="$submit" />
- <input type="submit" name="cancel" id="dfrn-request-cancel-button" value="$cancel" />
- </div>
-</form>
diff --git a/view/tpl/birthdays_reminder.tpl b/view/tpl/birthdays_reminder.tpl
index 8db7d22f4..d0500364a 100644..100755
--- a/view/tpl/birthdays_reminder.tpl
+++ b/view/tpl/birthdays_reminder.tpl
@@ -1,10 +1,10 @@
-{{ if $count }}
-<div id="birthday-notice" class="birthday-notice fakelink $classtoday" onclick="openClose('birthday-wrapper');">$event_reminders ($count)</div>
-<div id="birthday-wrapper" style="display: none;" ><div id="birthday-title">$event_title</div>
+{{if $count}}
+<div id="birthday-notice" class="birthday-notice fakelink {{$classtoday}}" onclick="openClose('birthday-wrapper');">{{$event_reminders}} ({{$count}})</div>
+<div id="birthday-wrapper" style="display: none;" ><div id="birthday-title">{{$event_title}}</div>
<div id="birthday-title-end"></div>
-{{ for $events as $event }}
-<div class="birthday-list" id="birthday-$event.id"></a> <a href="$event.link">$event.title</a> $event.date </div>
-{{ endfor }}
+{{foreach $events as $event}}
+<div class="birthday-list" id="birthday-{{$event.id}}"></a> <a href="{{$event.link}}">{{$event.title}}</a> {{$event.date}} </div>
+{{/foreach}}
</div>
-{{ endif }}
+{{/if}}
diff --git a/view/tpl/build_query.tpl b/view/tpl/build_query.tpl
index f4795acb2..06da526f1 100644..100755
--- a/view/tpl/build_query.tpl
+++ b/view/tpl/build_query.tpl
@@ -1,28 +1,28 @@
<script>
- var bParam_cmd = "$baseurl/update_$pgtype";
+ var bParam_cmd = "{{$baseurl}}/update_{{$pgtype}}";
- var bParam_uid = $uid;
- var bParam_gid = $gid;
- var bParam_cid = $cid;
- var bParam_cmin = $cmin;
- var bParam_cmax = $cmax;
- var bParam_star = $star;
- var bParam_liked = $liked;
- var bParam_conv = $conv;
- var bParam_spam = $spam;
- var bParam_new = $nouveau;
- var bParam_page = $page;
- var bParam_wall = $wall;
+ var bParam_uid = {{$uid}};
+ var bParam_gid = {{$gid}};
+ var bParam_cid = {{$cid}};
+ var bParam_cmin = {{$cmin}};
+ var bParam_cmax = {{$cmax}};
+ var bParam_star = {{$star}};
+ var bParam_liked = {{$liked}};
+ var bParam_conv = {{$conv}};
+ var bParam_spam = {{$spam}};
+ var bParam_new = {{$nouveau}};
+ var bParam_page = {{$page}};
+ var bParam_wall = {{$wall}};
- var bParam_search = "$search";
- var bParam_order = "$order";
- var bParam_file = "$file";
- var bParam_cats = "$cats";
- var bParam_dend = "$dend";
- var bParam_dbegin = "$dbegin";
- var bParam_uri = "$uri";
+ var bParam_search = "{{$search}}";
+ var bParam_order = "{{$order}}";
+ var bParam_file = "{{$file}}";
+ var bParam_cats = "{{$cats}}";
+ var bParam_dend = "{{$dend}}";
+ var bParam_dbegin = "{{$dbegin}}";
+ var bParam_mid = "{{$mid}}";
function buildCmd() {
var udargs = ((page_load) ? "/load" : "");
@@ -43,7 +43,7 @@
if(bParam_cats != "") bCmd = bCmd + "&cats=" + bParam_cats;
if(bParam_dend != "") bCmd = bCmd + "&dend=" + bParam_dend;
if(bParam_dbegin != "") bCmd = bCmd + "&dbegin=" + bParam_dbegin;
- if(bParam_uri != "") bCmd = bCmd + "&uri=" + bParam_uri;
+ if(bParam_mid != "") bCmd = bCmd + "&mid=" + bParam_mid;
if(bParam_page != 1) bCmd = bCmd + "&page=" + bParam_page;
return(bCmd);
}
diff --git a/view/tpl/categories_widget.tpl b/view/tpl/categories_widget.tpl
index 19e91c560..2c0b3bcc2 100644..100755
--- a/view/tpl/categories_widget.tpl
+++ b/view/tpl/categories_widget.tpl
@@ -1,12 +1,12 @@
<div id="categories-sidebar" class="widget">
- <h3>$title</h3>
- <div id="categories-sidebar-desc">$desc</div>
+ <h3>{{$title}}</h3>
+ <div id="categories-sidebar-desc">{{$desc}}</div>
<ul class="categories-ul">
- <li class="tool"><a href="$base" class="categories-link categories-all{{ if $sel_all }} categories-selected{{ endif }}">$all</a></li>
- {{ for $terms as $term }}
- <li class="tool"><a href="$base?f=&cat=$term.name" class="categories-link{{ if $term.selected }} categories-selected{{ endif }}">$term.name</a></li>
- {{ endfor }}
+ <li class="tool"><a href="{{$base}}" class="categories-link categories-all{{if $sel_all}} categories-selected{{/if}}">{{$all}}</a></li>
+ {{foreach $terms as $term}}
+ <li class="tool"><a href="{{$base}}?f=&cat={{$term.name}}" class="categories-link{{if $term.selected}} categories-selected{{/if}}">{{$term.name}}</a></li>
+ {{/foreach}}
</ul>
</div>
diff --git a/view/tpl/channel.tpl b/view/tpl/channel.tpl
index af4f9b703..d6462d1e4 100644..100755
--- a/view/tpl/channel.tpl
+++ b/view/tpl/channel.tpl
@@ -1,12 +1,12 @@
<div class="channel-selection">
-{{ if $channel.default_links }}
-{{ if $channel.default }}
-<div class="channel-selection-default default">$msg_default</div>
-{{ else }}
-<div class="channel-selection-default"><a href="manage/$channel.channel_id/default">$msg_make_default</a></div>
-{{ endif }}
-{{ endif }}
-<a href="$channel.link" class="channel-selection-photo-link" title="$channel.channel_name"><img class="channel-photo" src="$channel.xchan_photo_m" alt="$channel.channel_name" /></a>
-<a href="$channel.link" class="channel-selection-name-link" title="$channel.channel_name"><div class="channel-name">$channel.channel_name</div></a>
+{{if $channel.default_links}}
+{{if $channel.default}}
+<div class="channel-selection-default default">{{$msg_default}}</div>
+{{else}}
+<div class="channel-selection-default"><a href="manage/{{$channel.channel_id}}/default">{{$msg_make_default}}</a></div>
+{{/if}}
+{{/if}}
+<a href="{{$channel.link}}" class="channel-selection-photo-link" title="{{$channel.channel_name}}"><img class="channel-photo" src="{{$channel.xchan_photo_m}}" alt="{{$channel.channel_name}}" /></a>
+<a href="{{$channel.link}}" class="channel-selection-name-link" title="{{$channel.channel_name}}"><div class="channel-name">{{$channel.channel_name}}</div></a>
</div>
<div class="channel-selection-end"></div>
diff --git a/view/tpl/channel_import.tpl b/view/tpl/channel_import.tpl
index 8002b6e03..4804e34d6 100644..100755
--- a/view/tpl/channel_import.tpl
+++ b/view/tpl/channel_import.tpl
@@ -1,34 +1,34 @@
-<h2>$title</h2>
+<h2>{{$title}}</h2>
<form action="import" method="post" id="import-channel-form">
- <div id="import-desc" class="descriptive-paragraph">$desc</div>
+ <div id="import-desc" class="descriptive-paragraph">{{$desc}}</div>
- <label for="import-filename" id="label-import-filename" class="import-label" >$label_filename</label>
+ <label for="import-filename" id="label-import-filename" class="import-label" >{{$label_filename}}</label>
<input type="file" name="filename" id="import-filename" class="import-input" value="" />
<div id="import-filename-end" class="import-field-end"></div>
- <div id="import-choice" class="descriptive-paragraph">$choice</div>
+ <div id="import-choice" class="descriptive-paragraph">{{$choice}}</div>
- <label for="import-old-address" id="label-import-old-address" class="import-label" >$label_old_address</label>
+ <label for="import-old-address" id="label-import-old-address" class="import-label" >{{$label_old_address}}</label>
<input type="text" name="old_address" id="import-old-address" class="import-input" value="" />
<div id="import-old-address-end" class="import-field-end"></div>
- <label for="import-old-email" id="label-import-old-email" class="import-label" >$label_old_email</label>
- <input type="text" name="email" id="import-old-email" class="import-input" value="$email" />
+ <label for="import-old-email" id="label-import-old-email" class="import-label" >{{$label_old_email}}</label>
+ <input type="text" name="email" id="import-old-email" class="import-input" value="{{$email}}" />
<div id="import-old-email-end" class="import-field-end"></div>
- <label for="import-old-pass" id="label-import-old-pass" class="import-label" >$label_old_pass</label>
- <input type="password" name="password" id="import-old-pass" class="import-input" value="$pass" />
+ <label for="import-old-pass" id="label-import-old-pass" class="import-label" >{{$label_old_pass}}</label>
+ <input type="password" name="password" id="import-old-pass" class="import-input" value="{{$pass}}" />
<div id="import-old-pass-end" class="import-field-end"></div>
- <div id="import-common-desc" class="descriptive-paragraph">$common</div>
+ <div id="import-common-desc" class="descriptive-paragraph">{{$common}}</div>
<input type="checkbox" name="make_primary" id="import-make-primary" value="1" />
- <label for="import-make-primary" id="label-import-make-primary">$label_import_primary</label>
+ <label for="import-make-primary" id="label-import-make-primary">{{$label_import_primary}}</label>
<div id="import-make-primary-end" class="import-field-end"></div>
- <input type="submit" name="submit" id="import-submit-button" value="$submit" />
+ <input type="submit" name="submit" id="import-submit-button" value="{{$submit}}" />
<div id="import-submit-end" class="import-field-end"></div>
</form>
diff --git a/view/tpl/channels.tpl b/view/tpl/channels.tpl
index 916ba1c75..317384661 100644..100755
--- a/view/tpl/channels.tpl
+++ b/view/tpl/channels.tpl
@@ -1,22 +1,26 @@
-<h3>$header</h3>
+<h3>{{$header}}</h3>
-{{ if $links }}
-{{ for $links as $l }}
-<a class="channels-links" href="$l.0" title="$l.1">$l.2</a>
-{{ endfor }}
-{{ endif }}
+{{if $links}}
+{{foreach $links as $l}}
+<a class="channels-links" href="{{$l.0}}" title="{{$l.1}}">{{$l.2}}</a>
+{{/foreach}}
+{{/if}}
-{{ if $selected }}
-<div id="channels-selected">$msg_selected</div>
-{{ inc channel.tpl with $channel=$selected }}{{ endinc }}
+{{if $selected}}
+<div id="selected-channel">
+<div id="channels-selected">{{$msg_selected}}</div>
+{{include file="channel.tpl" channel=$selected}}
<div class="channels-end selected"></div>
-{{ endif }}
+</div>
+{{/if}}
-<div id="channels-desc" class="descriptive-text">$desc</div>
+<div id="channels-desc" class="descriptive-text">{{$desc}}</div>
-{{ for $all_channels as $chn }}
-{{ inc channel.tpl with $channel=$chn }}{{ endinc }}
-{{ endfor }}
+<div id="all-channels">
+{{foreach $all_channels as $chn}}
+{{include file="channel.tpl" channel=$chn}}
+{{/foreach}}
+</div>
<div class="channels-end all"></div>
diff --git a/view/tpl/chanview.tpl b/view/tpl/chanview.tpl
index da96c9c0c..4df327bf9 100644..100755
--- a/view/tpl/chanview.tpl
+++ b/view/tpl/chanview.tpl
@@ -1,2 +1,2 @@
-<div id="chanview-iframe-border" class="fakelink" onclick="chanviewFull(); return true;" title="$full" >&#x2610;</div>
-<iframe id="remote-channel" width="100%" src="$url" onload="resize_iframe()"></iframe>
+<div id="chanview-iframe-border" class="fakelink" onclick="chanviewFull(); return true;" title="{{$full}}" >&#x2610;</div>
+<iframe id="remote-channel" width="100%" src="{{$url}}" onload="resize_iframe()"></iframe>
diff --git a/view/tpl/comment_item.tpl b/view/tpl/comment_item.tpl
index cc7153ebb..f8add5d15 100644..100755
--- a/view/tpl/comment_item.tpl
+++ b/view/tpl/comment_item.tpl
@@ -1,65 +1,64 @@
- {{ if $threaded }}
- <div class="comment-wwedit-wrapper threaded" id="comment-edit-wrapper-$id" style="display: block;">
- {{ else }}
- <div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
- {{ endif }}
- <form class="comment-edit-form" style="display: block;" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
- <input type="hidden" name="type" value="$type" />
- <input type="hidden" name="profile_uid" value="$profile_uid" />
- <input type="hidden" name="parent" value="$parent" />
- <input type="hidden" name="return" value="$return_path" />
- <input type="hidden" name="jsreload" value="$jsreload" />
- <input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
- <input type="hidden" name="post_id_random" value="$rand_num" />
+ {{if $threaded}}
+ <div class="comment-wwedit-wrapper threaded" id="comment-edit-wrapper-{{$id}}" style="display: block;">
+ {{else}}
+ <div class="comment-wwedit-wrapper" id="comment-edit-wrapper-{{$id}}" style="display: block;">
+ {{/if}}
+ <form class="comment-edit-form" style="display: block;" id="comment-edit-form-{{$id}}" action="item" method="post" onsubmit="post_comment({{$id}}); return false;">
+ <input type="hidden" name="type" value="{{$type}}" />
+ <input type="hidden" name="profile_uid" value="{{$profile_uid}}" />
+ <input type="hidden" name="parent" value="{{$parent}}" />
+ <input type="hidden" name="return" value="{{$return_path}}" />
+ <input type="hidden" name="jsreload" value="{{$jsreload}}" />
+ <input type="hidden" name="preview" id="comment-preview-inp-{{$id}}" value="0" />
- <div class="comment-edit-photo" id="comment-edit-photo-$id" >
- <a class="comment-edit-photo-link" href="$mylink" title="$mytitle"><img class="my-comment-photo" src="$myphoto" alt="$mytitle" title="$mytitle" /></a>
+ <div class="comment-edit-photo" id="comment-edit-photo-{{$id}}" >
+ <a class="comment-edit-photo-link" href="{{$mylink}}" title="{{$mytitle}}"><img class="my-comment-photo" src="{{$myphoto}}" alt="{{$mytitle}}" title="{{$mytitle}}" /></a>
</div>
<div class="comment-edit-photo-end"></div>
- <ul class="comment-edit-bb-$id">
+ <ul class="comment-edit-bb-{{$id}}">
<li><a class="editicon boldbb shadow"
- style="cursor: pointer;" title="$edbold"
- onclick="insertFormatting('$comment','b', $id);"></a></li>
+ style="cursor: pointer;" title="{{$edbold}}"
+ onclick="insertFormatting('{{$comment}}','b', {{$id}});"></a></li>
<li><a class="editicon italicbb shadow"
- style="cursor: pointer;" title="$editalic"
- onclick="insertFormatting('$comment','i', $id);"></a></li>
+ style="cursor: pointer;" title="{{$editalic}}"
+ onclick="insertFormatting('{{$comment}}','i', {{$id}});"></a></li>
<li><a class="editicon underlinebb shadow"
- style="cursor: pointer;" title="$eduline"
- onclick="insertFormatting('$comment','u', $id);"></a></li>
+ style="cursor: pointer;" title="{{$eduline}}"
+ onclick="insertFormatting('{{$comment}}','u', {{$id}});"></a></li>
<li><a class="editicon quotebb shadow"
- style="cursor: pointer;" title="$edquote"
- onclick="insertFormatting('$comment','quote', $id);"></a></li>
+ style="cursor: pointer;" title="{{$edquote}}"
+ onclick="insertFormatting('{{$comment}}','quote', {{$id}});"></a></li>
<li><a class="editicon codebb shadow"
- style="cursor: pointer;" title="$edcode"
- onclick="insertFormatting('$comment','code', $id);"></a></li>
+ style="cursor: pointer;" title="{{$edcode}}"
+ onclick="insertFormatting('{{$comment}}','code', {{$id}});"></a></li>
<li><a class="editicon imagebb shadow"
- style="cursor: pointer;" title="$edimg"
- onclick="insertFormatting('$comment','img', $id);"></a></li>
+ style="cursor: pointer;" title="{{$edimg}}"
+ onclick="insertFormatting('{{$comment}}','img', {{$id}});"></a></li>
<li><a class="editicon urlbb shadow"
- style="cursor: pointer;" title="$edurl"
- onclick="insertFormatting('$comment','url', $id);"></a></li>
+ style="cursor: pointer;" title="{{$edurl}}"
+ onclick="insertFormatting('{{$comment}}','url', {{$id}});"></a></li>
<li><a class="editicon videobb shadow"
- style="cursor: pointer;" title="$edvideo"
- onclick="insertFormatting('$comment','video', $id);"></a></li>
+ style="cursor: pointer;" title="{{$edvideo}}"
+ onclick="insertFormatting('{{$comment}}','video', {{$id}});"></a></li>
</ul>
<div class="comment-edit-bb-end"></div>
- <textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);cmtBbOpen(this, $id);" onBlur="commentClose(this,$id);cmtBbClose(this,$id);" >$comment</textarea>
- {{ if $qcomment }}
- <select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
+ <textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,{{$id}});cmtBbOpen(this, {{$id}});" onBlur="commentClose(this,{{$id}});cmtBbClose(this,{{$id}});" >{{$comment}}</textarea>
+ {{if $qcomment}}
+ <select id="qcomment-select-{{$id}}" name="qcomment-{{$id}}" class="qcomment" onchange="qCommentInsert(this,{{$id}});" >
<option value=""></option>
- {{ for $qcomment as $qc }}
- <option value="$qc">$qc</option>
- {{ endfor }}
+ {{foreach $qcomment as $qc}}
+ <option value="{{$qc}}">{{$qc}}</option>
+ {{/foreach}}
</select>
- {{ endif }}
+ {{/if}}
<div class="comment-edit-text-end"></div>
- <div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;" >
- <input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
- {{ if $preview }}
- <span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
- <div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
- {{ endif }}
+ <div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-{{$id}}" style="display: none;" >
+ <input type="submit" onclick="post_comment({{$id}}); return false;" id="comment-edit-submit-{{$id}}" class="comment-edit-submit" name="submit" value="{{$submit}}" />
+ {{if $preview}}
+ <span onclick="preview_comment({{$id}});" id="comment-edit-preview-link-{{$id}}" class="fakelink">{{$preview}}</span>
+ <div id="comment-edit-preview-{{$id}}" class="comment-edit-preview" style="display:none;"></div>
+ {{/if}}
</div>
<div class="comment-edit-end"></div>
diff --git a/view/tpl/common_friends.tpl b/view/tpl/common_friends.tpl
index 1f610d8c4..489717e78 100644..100755
--- a/view/tpl/common_friends.tpl
+++ b/view/tpl/common_friends.tpl
@@ -1,12 +1,15 @@
<div class="profile-match-wrapper">
<div class="profile-match-photo">
- <a href="$url">
- <img src="$photo" alt="$name" width="80" height="80" title="$name [$url]" />
+ <a href="{{$url}}">
+ <img src="{{$photo}}" alt="{{$name}}" width="80" height="80" title="{{$name}} [{{$url}}]" />
</a>
</div>
<div class="profile-match-break"></div>
<div class="profile-match-name">
- <a href="$url" title="$name[$tags]">$name</a>
+ <a href="{{$url}}" title="{{$name}}[{{$tags}}]">{{$name}}</a>
</div>
+ {{if $note}}
+ <div class="profile-match-note">{{$note}}</div>
+ {{/if}}
<div class="profile-match-end"></div>
-</div> \ No newline at end of file
+</div>
diff --git a/view/tpl/common_tabs.tpl b/view/tpl/common_tabs.tpl
index 97b771e7a..3d34d7c57 100644..100755
--- a/view/tpl/common_tabs.tpl
+++ b/view/tpl/common_tabs.tpl
@@ -1,6 +1,6 @@
<ul class="tabs">
- {{ for $tabs as $tab }}
- <li {{ if $tab.id }}id="$tab.id"{{ endif }}><a href="$tab.url" class="tab button $tab.sel"{{ if $tab.title }} title="$tab.title"{{ endif }}>$tab.label</a></li>
- {{ endfor }}
+ {{foreach $tabs as $tab}}
+ <li {{if $tab.id}}id="{{$tab.id}}"{{/if}}><a href="{{$tab.url}}" class="tab button {{$tab.sel}}"{{if $tab.title}} title="{{$tab.title}}"{{/if}}>{{$tab.label}}</a></li>
+ {{/foreach}}
</ul>
-<div class="tabs-end"></div> \ No newline at end of file
+<div class="tabs-end"></div>
diff --git a/view/tpl/contact_block.tpl b/view/tpl/contact_block.tpl
index b90469199..d1ce5ca67 100644..100755
--- a/view/tpl/contact_block.tpl
+++ b/view/tpl/contact_block.tpl
@@ -1,12 +1,12 @@
<div id="contact-block">
-<div id="contact-block-numcontacts">$contacts</div>
-{{ if $micropro }}
- <a class="allcontact-link" href="viewconnections/$nickname">$viewconnections</a>
+<div id="contact-block-numcontacts">{{$contacts}}</div>
+{{if $micropro}}
+ <a class="allcontact-link" href="viewconnections/{{$nickname}}">{{$viewconnections}}</a>
<div class='contact-block-content'>
- {{ for $micropro as $m }}
- $m
- {{ endfor }}
+ {{foreach $micropro as $m}}
+ {{$m}}
+ {{/foreach}}
</div>
-{{ endif }}
+{{/if}}
</div>
<div class="clear"></div>
diff --git a/view/tpl/contact_edit.tpl b/view/tpl/contact_edit.tpl
deleted file mode 100644
index 4f99b4aca..000000000
--- a/view/tpl/contact_edit.tpl
+++ /dev/null
@@ -1,89 +0,0 @@
-
-<h2>$header</h2>
-
-<div id="contact-edit-wrapper" >
-
- $tab_str
-
- <div id="contact-edit-drop-link" >
- <a href="contacts/$contact_id/drop" class="icon drophide" id="contact-edit-drop-link" onclick="return confirmDelete();" title="$delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);"></a>
- </div>
-
- <div id="contact-edit-drop-link-end"></div>
-
-
- <div id="contact-edit-nav-wrapper" >
- <div id="contact-edit-links">
- <ul>
- <li><div id="contact-edit-rel">$relation_text</div></li>
- <li><div id="contact-edit-nettype">$nettype</div></li>
- {{ if $lost_contact }}
- <li><div id="lost-contact-message">$lost_contact</div></li>
- {{ endif }}
- {{ if $insecure }}
- <li><div id="insecure-message">$insecure</div></li>
- {{ endif }}
- {{ if $blocked }}
- <li><div id="block-message">$blocked</div></li>
- {{ endif }}
- {{ if $ignored }}
- <li><div id="ignore-message">$ignored</div></li>
- {{ endif }}
- {{ if $archived }}
- <li><div id="archive-message">$archived</div></li>
- {{ endif }}
-
- <li>&nbsp;</li>
-
- {{ if $common_text }}
- <li><div id="contact-edit-common"><a href="$common_link">$common_text</a></div></li>
- {{ endif }}
- {{ if $all_friends }}
- <li><div id="contact-edit-allfriends"><a href="allfriends/$contact_id">$all_friends</a></div></li>
- {{ endif }}
-
-
- <li><a href="network/?cid=$contact_id" id="contact-edit-view-recent">$lblrecent</a></li>
- {{ if $lblsuggest }}
- <li><a href="fsuggest/$contact_id" id="contact-edit-suggest">$lblsuggest</a></li>
- {{ endif }}
-
- </ul>
- </div>
- </div>
- <div id="contact-edit-nav-end"></div>
-
-
-<form action="contacts/$contact_id" method="post" >
-<input type="hidden" name="contact_id" value="$contact_id">
-<input id="contact-closeness-mirror" type="hidden" name="closeness" value="$close" />
-
- {{ if $poll_enabled }}
- <div id="contact-edit-poll-wrapper">
- <div id="contact-edit-last-update-text">$lastupdtext <span id="contact-edit-last-updated">$last_update</span></div>
- <span id="contact-edit-poll-text">$updpub</span> $poll_interval <span id="contact-edit-update-now" class="button"><a href="contacts/$contact_id/update" >$udnow</a></span>
- </div>
- {{ endif }}
- <div id="contact-edit-end" ></div>
-
- {{inc field_checkbox.tpl with $field=$hidden }}{{endinc}}
-
-<div id="contact-edit-info-wrapper">
-<h4>$lbl_info1</h4>
- <textarea id="contact-edit-info" rows="8" cols="60" name="info">$info</textarea>
- <input class="contact-edit-submit" type="submit" name="submit" value="$submit" />
-</div>
-<div id="contact-edit-info-end"></div>
-
-
-<div id="contact-edit-profile-select-text">
-<h4>$lbl_vis1</h4>
-<p>$lbl_vis2</p>
-</div>
-$profile_select
-<div id="contact-edit-profile-select-end"></div>
-
-<input class="contact-edit-submit" type="submit" name="submit" value="$submit" />
-
-</form>
-</div>
diff --git a/view/tpl/contact_head.tpl b/view/tpl/contact_head.tpl
index 9cfd81710..72e7edbfb 100644..100755
--- a/view/tpl/contact_head.tpl
+++ b/view/tpl/contact_head.tpl
@@ -1,10 +1,10 @@
<script language="javascript" type="text/javascript"
- src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
+ src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
theme : "advanced",
- mode : "$editselect",
+ mode : "{{$editselect}}",
elements: "contact-edit-info",
plugins : "bbcode",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",
@@ -20,7 +20,7 @@ tinyMCE.init({
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
- content_css: "$baseurl/view/custom_tinymce.css"
+ content_css: "{{$baseurl}}/view/custom_tinymce.css"
});
diff --git a/view/tpl/contact_slider.tpl b/view/tpl/contact_slider.tpl
index 2ccb08a90..33cd3fb71 100644..100755
--- a/view/tpl/contact_slider.tpl
+++ b/view/tpl/contact_slider.tpl
@@ -1,4 +1,4 @@
-<div id="contact-slider" class="slider" style="height: 32px; position: relative; left: 5%; width: 90%;"><input id="contact-range" type="text" name="fake-closeness" value="$val" /></div>
+<div id="contact-slider" class="slider" style="height: 32px; position: relative; left: 5%; width: 90%;"><input id="contact-range" type="text" name="fake-closeness" value="{{$val}}" /></div>
<script>
- $("#contact-range").slider({ from: 0, to: 99, step: 1, scale: ['$me', '|', '$intimate', '|', '$friends', '|', '$oldfriends', '|', '$acquaintances', '|', '$world' ], onstatechange: function(v) { $("#contact-closeness-mirror").val(v); } });
+ $("#contact-range").slider({ from: 0, to: 99, step: 1, scale: ['{{$me}}', '|', '{{$intimate}}', '|', '{{$friends}}', '|', '{{$oldfriends}}', '|', '{{$acquaintances}}', '|', '{{$world}}' ], onstatechange: function(v) { $("#contact-closeness-mirror").val(v); } });
</script>
diff --git a/view/tpl/contact_template.tpl b/view/tpl/contact_template.tpl
index 7bdcd6b93..7feefa655 100644..100755
--- a/view/tpl/contact_template.tpl
+++ b/view/tpl/contact_template.tpl
@@ -1,9 +1,8 @@
-
-<div class="contact-entry-wrapper" id="contact-entry-wrapper-$contact.id" >
+<div class="contact-entry-wrapper" id="contact-entry-wrapper-{{$contact.id}}" >
<div class="contact-entry-photo-wrapper" >
- <a href="$contact.url" title="$contact.img_hover" /><img src="$contact.thumb" alt="$contact.name" /></a>
+ <a href="{{$contact.link}}" title="{{$contact.img_hover}}" /><img class="contact-block-img" src="{{$contact.thumb}}" alt="{{$contact.name}}" /></a>
</div>
<div class="contact-entry-photo-end" ></div>
- <div class="contact-entry-name" id="contact-entry-name-$contact.id" >$contact.name</div>
+ <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
<div class="contact-entry-end" ></div>
</div>
diff --git a/view/tpl/contacts-template.tpl b/view/tpl/contacts-template.tpl
index ecb342bf4..0c7e01038 100644..100755
--- a/view/tpl/contacts-template.tpl
+++ b/view/tpl/contacts-template.tpl
@@ -1,25 +1,25 @@
-<h1>$header{{ if $total }} ($total){{ endif }}</h1>
+<h1>{{$header}}{{if $total}} ({{$total}}){{/if}}</h1>
-{{ if $finding }}<h4>$finding</h4>{{ endif }}
+{{if $finding}}<h4>{{$finding}}</h4>{{/if}}
<div id="contacts-search-wrapper">
-<form id="contacts-search-form" action="$cmd" method="get" >
-<span class="contacts-search-desc">$desc</span>
-<input type="text" name="search" id="contacts-search" class="search-input" onfocus="this.select();" value="$search" />
-<input type="submit" name="submit" id="contacts-search-submit" value="$submit" />
+<form id="contacts-search-form" action="{{$cmd}}" method="get" >
+<span class="contacts-search-desc">{{$desc}}</span>
+<input type="text" name="search" id="contacts-search" class="search-input" onfocus="this.select();" value="{{$search}}" />
+<input type="submit" name="submit" id="contacts-search-submit" value="{{$submit}}" />
</form>
</div>
<div id="contacts-search-end"></div>
-$tabs
+{{$tabs}}
-{{ for $contacts as $contact }}
- {{ inc contact_template.tpl }}{{ endinc }}
-{{ endfor }}
+{{foreach $contacts as $contact}}
+ {{include file="contact_template.tpl"}}
+{{/foreach}}
<div id="contact-edit-end"></div>
-$paginate
+{{$paginate}}
diff --git a/view/tpl/content.tpl b/view/tpl/content.tpl
deleted file mode 100644
index 466045d39..000000000
--- a/view/tpl/content.tpl
+++ /dev/null
@@ -1,2 +0,0 @@
-<div id="content-begin"></div>
-<div id="content-end"></div>
diff --git a/view/tpl/conv.tpl b/view/tpl/conv.tpl
index b7222f154..ddb959b84 100644..100755
--- a/view/tpl/conv.tpl
+++ b/view/tpl/conv.tpl
@@ -1,17 +1,17 @@
-{{ for $threads as $thread }}
-<div id="thread-wrapper-$thread.id" class="thread-wrapper">
- {{ for $thread.items as $item }}
+{{foreach $threads as $thread}}
+<div id="thread-wrapper-{{$thread.id}}" class="thread-wrapper">
+ {{foreach $thread.items as $item}}
{{if $item.comment_firstcollapsed}}
<div class="hide-comments-outer">
- <span id="hide-comments-total-$thread.id" class="hide-comments-total">$thread.num_comments</span> <span id="hide-comments-$thread.id" class="hide-comments fakelink" onclick="showHideComments($thread.id);">$thread.hide_text</span>
+ <span id="hide-comments-total-{{$thread.id}}" class="hide-comments-total">{{$thread.num_comments}}</span> <span id="hide-comments-{{$thread.id}}" class="hide-comments fakelink" onclick="showHideComments({{$thread.id}});">{{$thread.hide_text}}</span>
</div>
- <div id="collapsed-comments-$thread.id" class="collapsed-comments" style="display: none;">
- {{endif}}
- {{if $item.comment_lastcollapsed}}</div>{{endif}}
+ <div id="collapsed-comments-{{$thread.id}}" class="collapsed-comments" style="display: none;">
+ {{/if}}
+ {{if $item.comment_lastcollapsed}}</div>{{/if}}
- {{ inc $item.template }}{{ endinc }}
+ {{include file="{{$item.template}}"}}
- {{ endfor }}
+ {{/foreach}}
</div>
-{{ endfor }}
+{{/foreach}}
diff --git a/view/tpl/conv_frame.tpl b/view/tpl/conv_frame.tpl
index 202b095e7..596246708 100644..100755
--- a/view/tpl/conv_frame.tpl
+++ b/view/tpl/conv_frame.tpl
@@ -2,13 +2,13 @@
<div id="threads-end"></div>
<div id="conversation-end"></div>
-{{ if $dropping }}
+{{if $dropping}}
<div id="item-delete-selected" class="fakelink" onclick="deleteCheckedItems();">
- <div id="item-delete-selected-icon" class="icon drophide" title="$dropping" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
- <div id="item-delete-selected-desc" >$dropping</div>
+ <div id="item-delete-selected-icon" class="icon drophide" title="{{$dropping}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
+ <div id="item-delete-selected-desc" >{{$dropping}}</div>
</div>
<div id="item-delete-selected-end"></div>
-{{ endif }}
+{{/if}}
-<img id="page-spinner" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
+<div id="page-spinner"></div>
diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl
index 0c0553639..806e2ba02 100644..100755
--- a/view/tpl/conv_item.tpl
+++ b/view/tpl/conv_item.tpl
@@ -1,115 +1,117 @@
{{if $item.comment_firstcollapsed}}
<div class="hide-comments-outer">
- <span id="hide-comments-total-$item.id" class="hide-comments-total">$item.num_comments</span> <span id="hide-comments-$item.id" class="hide-comments fakelink" onclick="showHideComments($item.id);">$item.hide_text</span>
+ <span id="hide-comments-total-{{$item.id}}" class="hide-comments-total">{{$item.num_comments}}</span> <span id="hide-comments-{{$item.id}}" class="hide-comments fakelink" onclick="showHideComments({{$item.id}});">{{$item.hide_text}}</span>
</div>
- <div id="collapsed-comments-$item.id" class="collapsed-comments" style="display: none;">
-{{endif}}
-<div id="thread-wrapper-$item.id" class="thread-wrapper $item.toplevel">
-<a name="$item.id" ></a>
-<div class="wall-item-outside-wrapper $item.indent$item.previewing{{ if $item.owner_url }} wallwall{{ endif }}" id="wall-item-outside-wrapper-$item.id" >
- <div class="wall-item-content-wrapper $item.indent" id="wall-item-content-wrapper-$item.id" >
- <div class="wall-item-info{{ if $item.owner_url }} wallwall{{ endif }}" id="wall-item-info-$item.id">
- {{ if $item.owner_url }}
- <div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$item.id" >
- <a href="$item.owner_url" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id">
- <img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" /></a>
+ <div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: none;">
+{{/if}}
+<div id="thread-wrapper-{{$item.id}}" class="thread-wrapper {{$item.toplevel}}">
+<a name="{{$item.id}}" ></a>
+<div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}{{if $item.owner_url}} wallwall{{/if}}" id="wall-item-outside-wrapper-{{$item.id}}" >
+ <div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" >
+ <div class="wall-item-info{{if $item.owner_url}} wallwall{{/if}}" id="wall-item-info-{{$item.id}}">
+ {{if $item.owner_url}}
+ <div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-{{$item.id}}" >
+ <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-photo-link" id="wall-item-ownerphoto-link-{{$item.id}}">
+ <img src="{{$item.owner_photo}}" class="wall-item-photo{{$item.osparkle}}" id="wall-item-ownerphoto-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.owner_name}}" /></a>
</div>
- <div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="$item.wall" /></div>
- {{ endif }}
- <div class="wall-item-photo-wrapper{{ if $item.owner_url }} wwfrom{{ endif }}" id="wall-item-photo-wrapper-$item.id"
- onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
- onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
- <a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
- <img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
- <span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
- <div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
+ <div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="{{$item.wall}}" /></div>
+ {{/if}}
+ <div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}}" id="wall-item-photo-wrapper-{{$item.id}}"
+ onmouseover="if (typeof t{{$item.id}} != 'undefined') clearTimeout(t{{$item.id}}); openMenu('wall-item-photo-menu-button-{{$item.id}}')"
+ onmouseout="t{{$item.id}}=setTimeout('closeMenu(\'wall-item-photo-menu-button-{{$item.id}}\'); closeMenu(\'wall-item-photo-menu-{{$item.id}}\');',200)">
+ <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}">
+ <img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.name}}" /></a>
+ <span onclick="openClose('wall-item-photo-menu-{{$item.id}}');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-{{$item.id}}">menu</span>
+ <div class="wall-item-photo-menu" id="wall-item-photo-menu-{{$item.id}}">
<ul>
- $item.item_photo_menu
+ {{$item.item_photo_menu}}
</ul>
</div>
</div>
<div class="wall-item-photo-end"></div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-$item.id" >
- {{ if $item.lock }}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="$item.lock" onclick="lockview(event,$item.id);" /></div>
- {{ else }}<div class="wall-item-lock"></div>{{ endif }}
- <div class="wall-item-location" id="wall-item-location-$item.id">$item.location</div>
+ <div class="wall-item-wrapper" id="wall-item-wrapper-{{$item.id}}" >
+ {{if $item.lock}}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="{{$item.lock}}" onclick="lockview(event,{{$item.id}});" /></div>
+ {{else}}<div class="wall-item-lock"></div>{{/if}}
+ <div class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}}</div>
</div>
</div>
<div class="wall-item-author">
- <a href="$item.profile_url" title="$item.linktitle" class="wall-item-name-link"><span class="wall-item-name$item.sparkle" id="wall-item-name-$item.id" >$item.name</span></a>{{ if $item.owner_url }} $item.to <a href="$item.owner_url" title="$item.olinktitle" class="wall-item-name-link"><span class="wall-item-name$item.osparkle" id="wall-item-ownername-$item.id">$item.owner_name</span></a> $item.vwall{{ endif }}<br />
- <div class="wall-item-ago" id="wall-item-ago-$item.id" title="$item.localtime">$item.ago</div>
+ <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}} {{$item.to}} <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a> {{$item.vwall}}{{/if}}<br />
+ <div class="wall-item-ago" id="wall-item-ago-{{$item.id}}"><span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}</span>{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}</div>
</div>
- <div class="wall-item-content" id="wall-item-content-$item.id" >
- <div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
+ <div class="wall-item-content" id="wall-item-content-{{$item.id}}" >
+ <div class="wall-item-title" id="wall-item-title-{{$item.id}}">{{$item.title}}</div>
<div class="wall-item-title-end"></div>
- <div class="wall-item-body" id="wall-item-body-$item.id" >$item.body
+ <div class="wall-item-body" id="wall-item-body-{{$item.id}}" >{{$item.body}}
<div class="body-tag">
- {{ for $item.tags as $tag }}
- <span class='tag'>$tag</span>
- {{ endfor }}
+ {{foreach $item.tags as $tag}}
+ <span class='tag'>{{$tag}}</span>
+ {{/foreach}}
</div>
- {{ if $item.has_cats }}
- <div class="categorytags"><span>$item.txt_cats {{ for $item.categories as $cat }}$cat.name <a href="$cat.removeurl" title="$remove">[$remove]</a> {{ if $cat.last }}{{ else }}, {{ endif }}{{ endfor }}
+ {{if $item.has_cats}}
+ <div class="categorytags"><span>{{$item.txt_cats}} {{foreach $item.categories as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
</div>
- {{ endif }}
+ {{/if}}
- {{ if $item.has_folders }}
- <div class="filesavetags"><span>$item.txt_folders {{ for $item.folders as $cat }}$cat.name <a href="$cat.removeurl" title="$remove">[$remove]</a> {{ if $cat.last }}{{ else }}, {{ endif }}{{ endfor }}
+ {{if $item.has_folders}}
+ <div class="filesavetags"><span>{{$item.txt_folders}} {{foreach $item.folders as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
</div>
- {{ endif }}
+ {{/if}}
</div>
</div>
- <div class="wall-item-tools" id="wall-item-tools-$item.id">
- {{ if $item.like }}
- <a href="#" class="icon like item-tool" title="$item.like.0" onclick="dolike($item.id,'like'); return false"></a>
- {{ endif }}
- {{ if $item.dislike }}
- <a href="#" class="icon dislike item-tool" title="$item.dislike.0" onclick="dolike($item.id,'dislike'); return false"></a>
- {{ endif }}
- {{ if $item.share }}
- <a href="#" class="icon recycle item-tool" title="$item.share.0" onclick="jotShare($item.id); return false"></a>
- {{ endif }}
- {{ if $item.plink }}
- <a href="$item.plink.href" title="$item.plink.title" target="external-link" class="icon item-tool remote-link$item.sparkle"></a>
- {{ endif }}
- {{ if $item.edpost }}
- <a class="editpost icon pencil item-tool" href="$item.edpost.0" title="$item.edpost.1"></a>
- {{ endif }}
- {{ if $item.star }}
- <a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon item-tool $item.star.isstarred" title="$item.star.toggle"></a>
- {{ endif }}
- {{ if $item.tagger }}
- <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon item-tool tagged" title="$item.tagger.tagit"></a>
- {{ endif }}
- {{ if $item.filer }}
- <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon item-tool" title="$item.filer"></a>
- {{ endif }}
- <img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
+ <div class="wall-item-tools" id="wall-item-tools-{{$item.id}}">
+ {{if $item.like}}
+ <a href="#" class="icon like item-tool" title="{{$item.like.0}}" onclick="dolike({{$item.id}},'like'); return false"></a>
+ {{/if}}
+ {{if $item.dislike}}
+ <a href="#" class="icon dislike item-tool" title="{{$item.dislike.0}}" onclick="dolike({{$item.id}},'dislike'); return false"></a>
+ {{/if}}
+ {{if $item.share}}
+ <a href="#" class="icon recycle item-tool" title="{{$item.share.0}}" onclick="jotShare({{$item.id}}); return false"></a>
+ {{/if}}
+ {{if $item.plink}}
+ <a href="{{$item.plink.href}}" title="{{$item.plink.title}}" target="external-link" class="icon item-tool remote-link{{$item.sparkle}}"></a>
+ {{/if}}
+ {{if $item.edpost}}
+ <a class="editpost icon pencil item-tool" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"></a>
+ {{/if}}
+ {{if $item.star}}
+ <a href="#" id="starred-{{$item.id}}" onclick="dostar({{$item.id}}); return false;" class="star-item icon item-tool {{$item.star.isstarred}}" title="{{$item.star.toggle}}"></a>
+ {{/if}}
+ {{if $item.tagger}}
+ <a href="#" id="tagger-{{$item.id}}" onclick="itemTag({{$item.id}}); return false;" class="tag-item icon item-tool tagged" title="{{$item.tagger.tagit}}"></a>
+ {{/if}}
+ {{if $item.filer}}
+ <a href="#" id="filer-{{$item.id}}" onclick="itemFiler({{$item.id}}); return false;" class="filer-item filer-icon item-tool" title="{{$item.filer}}"></a>
+ {{/if}}
+ <div id="like-rotator-{{$item.id}}" class="like-rotator"></div>
- <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
- {{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
+ <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-{{$item.id}}" >
+ {{if $item.drop.dropping}}<a href="item/drop/{{$item.id}}" onclick="return confirmDelete();" class="icon drophide" title="{{$item.drop.delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{/if}}
</div>
- {{ if $item.drop.pagedrop }}<input type="checkbox" onclick="checkboxhighlight(this);" title="$item.drop.select" class="item-select" name="itemselected[]" value="$item.id" />{{ endif }}
+ {{if $item.drop.pagedrop}}<input type="checkbox" onclick="checkboxhighlight(this);" title="{{$item.drop.select}}" class="item-select" name="itemselected[]" value="{{$item.id}}" />{{/if}}
<div class="wall-item-delete-end"></div>
+ <div class="wall-item-like {{$item.indent}}" id="wall-item-like-{{$item.id}}">{{$item.showlike}}</div>
+ <div class="wall-item-dislike {{$item.indent}}" id="wall-item-dislike-{{$item.id}}">{{$item.showdislike}}</div>
+
</div>
</div>
+
<div class="wall-item-wrapper-end"></div>
- <div class="wall-item-like $item.indent" id="wall-item-like-$item.id">$item.showlike</div>
- <div class="wall-item-dislike $item.indent" id="wall-item-dislike-$item.id">$item.showdislike</div>
-<div class="wall-item-outside-wrapper-end $item.indent" ></div>
+<div class="wall-item-outside-wrapper-end {{$item.indent}}" ></div>
</div>
-{{ if $item.toplevel }}
-{{ for $item.children as $child }}
- {{ inc $child.template with $item=$child }}{{ endinc }}
-{{ endfor }}
-{{ endif }}
+{{if $item.toplevel}}
+{{foreach $item.children as $child}}
+ {{include file="{{$child.template}}" item=$child}}
+{{/foreach}}
+{{/if}}
<div class="wall-item-comment-wrapper" >
- $item.comment
+ {{$item.comment}}
</div>
</div>
-{{if $item.comment_lastcollapsed}}</div>{{endif}}
+{{if $item.comment_lastcollapsed}}</div>{{/if}}
diff --git a/view/tpl/conversation.tpl b/view/tpl/conversation.tpl
index 70cd389c9..8948fd474 100644..100755
--- a/view/tpl/conversation.tpl
+++ b/view/tpl/conversation.tpl
@@ -1,28 +1,28 @@
<div id="threads-begin"></div>
-{{ for $threads as $thread }}
-<div id="thread-wrapper-$thread.id" class="thread-wrapper">
- {{ for $thread.items as $item }}
+{{foreach $threads as $thread}}
+<div id="thread-wrapper-{{$thread.id}}" class="thread-wrapper">
+ {{foreach $thread.items as $item}}
{{if $item.comment_firstcollapsed}}
<div class="hide-comments-outer">
- <span id="hide-comments-total-$thread.id" class="hide-comments-total">$thread.num_comments</span> <span id="hide-comments-$thread.id" class="hide-comments fakelink" onclick="showHideComments($thread.id);">$thread.hide_text</span>
+ <span id="hide-comments-total-{{$thread.id}}" class="hide-comments-total">{{$thread.num_comments}}</span> <span id="hide-comments-{{$thread.id}}" class="hide-comments fakelink" onclick="showHideComments({{$thread.id}});">{{$thread.hide_text}}</span>
</div>
- <div id="collapsed-comments-$thread.id" class="collapsed-comments" style="display: none;">
- {{endif}}
- {{if $item.comment_lastcollapsed}}</div>{{endif}}
+ <div id="collapsed-comments-{{$thread.id}}" class="collapsed-comments" style="display: none;">
+ {{/if}}
+ {{if $item.comment_lastcollapsed}}</div>{{/if}}
- {{ inc $item.template }}{{ endinc }}
+ {{include file="{{$item.template}}"}}
- {{ endfor }}
+ {{/foreach}}
</div>
-{{ endfor }}
+{{/foreach}}
<div id="threads-end"></div>
<div id="conversation-end"></div>
-{{ if $dropping }}
+{{if $dropping}}
<div id="item-delete-selected" class="fakelink" onclick="deleteCheckedItems();">
- <div id="item-delete-selected-icon" class="icon drophide" title="$dropping" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
- <div id="item-delete-selected-desc" >$dropping</div>
+ <div id="item-delete-selected-icon" class="icon drophide" title="{{$dropping}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
+ <div id="item-delete-selected-desc" >{{$dropping}}</div>
</div>
<div id="item-delete-selected-end"></div>
-{{ endif }}
+{{/if}}
diff --git a/view/tpl/convobj.tpl b/view/tpl/convobj.tpl
index a35e232e2..d5cee1170 100644..100755
--- a/view/tpl/convobj.tpl
+++ b/view/tpl/convobj.tpl
@@ -1,4 +1,4 @@
-{{ for $threads as $item }}
-{{ inc $item.template }}{{ endinc }}
-{{ endfor }}
+{{foreach $threads as $item}}
+{{include file="{{$item.template}}"}}
+{{/foreach}}
diff --git a/view/tpl/crepair.tpl b/view/tpl/crepair.tpl
index a3e532b61..1a5a019db 100644..100755
--- a/view/tpl/crepair.tpl
+++ b/view/tpl/crepair.tpl
@@ -1,45 +1,44 @@
+<form id="crepair-form" action="crepair/{{$contact_id}}" method="post" >
-<form id="crepair-form" action="crepair/$contact_id" method="post" >
+<h4>{{$contact_name}}</h4>
-<h4>$contact_name</h4>
-
-<label id="crepair-name-label" class="crepair-label" for="crepair-name">$label_name</label>
-<input type="text" id="crepair-name" class="crepair-input" name="name" value="$contact_name" />
+<label id="crepair-name-label" class="crepair-label" for="crepair-name">{{$label_name}}</label>
+<input type="text" id="crepair-name" class="crepair-input" name="name" value="{{$contact_name}}" />
<div class="clear"></div>
-<label id="crepair-nick-label" class="crepair-label" for="crepair-nick">$label_nick</label>
-<input type="text" id="crepair-nick" class="crepair-input" name="nick" value="$contact_nick" />
+<label id="crepair-nick-label" class="crepair-label" for="crepair-nick">{{$label_nick}}</label>
+<input type="text" id="crepair-nick" class="crepair-input" name="nick" value="{{$contact_nick}}" />
<div class="clear"></div>
-<label id="crepair-attag-label" class="crepair-label" for="crepair-attag">$label_attag</label>
-<input type="text" id="crepair-attag" class="crepair-input" name="attag" value="$contact_attag" />
+<label id="crepair-attag-label" class="crepair-label" for="crepair-attag">{{$label_attag}}</label>
+<input type="text" id="crepair-attag" class="crepair-input" name="attag" value="{{$contact_attag}}" />
<div class="clear"></div>
-<label id="crepair-url-label" class="crepair-label" for="crepair-url">$label_url</label>
-<input type="text" id="crepair-url" class="crepair-input" name="url" value="$contact_url" />
+<label id="crepair-url-label" class="crepair-label" for="crepair-url">{{$label_url}}</label>
+<input type="text" id="crepair-url" class="crepair-input" name="url" value="{{$contact_url}}" />
<div class="clear"></div>
-<label id="crepair-request-label" class="crepair-label" for="crepair-request">$label_request</label>
-<input type="text" id="crepair-request" class="crepair-input" name="request" value="$request" />
+<label id="crepair-request-label" class="crepair-label" for="crepair-request">{{$label_request}}</label>
+<input type="text" id="crepair-request" class="crepair-input" name="request" value="{{$request}}" />
<div class="clear"></div>
-<label id="crepair-confirm-label" class="crepair-label" for="crepair-confirm">$label_confirm</label>
-<input type="text" id="crepair-confirm" class="crepair-input" name="confirm" value="$confirm" />
+<label id="crepair-confirm-label" class="crepair-label" for="crepair-confirm">{{$label_confirm}}</label>
+<input type="text" id="crepair-confirm" class="crepair-input" name="confirm" value="{{$confirm}}" />
<div class="clear"></div>
-<label id="crepair-notify-label" class="crepair-label" for="crepair-notify">$label_notify</label>
-<input type="text" id="crepair-notify" class="crepair-input" name="notify" value="$notify" />
+<label id="crepair-notify-label" class="crepair-label" for="crepair-notify">{{$label_notify}}</label>
+<input type="text" id="crepair-notify" class="crepair-input" name="notify" value="{{$notify}}" />
<div class="clear"></div>
-<label id="crepair-poll-label" class="crepair-label" for="crepair-poll">$label_poll</label>
-<input type="text" id="crepair-poll" class="crepair-input" name="poll" value="$poll" />
+<label id="crepair-poll-label" class="crepair-label" for="crepair-poll">{{$label_poll}}</label>
+<input type="text" id="crepair-poll" class="crepair-input" name="poll" value="{{$poll}}" />
<div class="clear"></div>
-<label id="crepair-photo-label" class="crepair-label" for="crepair-photo">$label_photo</label>
+<label id="crepair-photo-label" class="crepair-label" for="crepair-photo">{{$label_photo}}</label>
<input type="text" id="crepair-photo" class="crepair-input" name="photo" value="" />
<div class="clear"></div>
-<input type="submit" name="submit" value="$lbl_submit" />
+<input type="submit" name="submit" value="{{$lbl_submit}}" />
</form>
diff --git a/view/tpl/cropbody.tpl b/view/tpl/cropbody.tpl
index 4c0ca3d63..da5b1e859 100644..100755
--- a/view/tpl/cropbody.tpl
+++ b/view/tpl/cropbody.tpl
@@ -1,9 +1,9 @@
-<h1>$title</h1>
+<h1>{{$title}}</h1>
<p id="cropimage-desc">
-$desc
+{{$desc}}
</p>
<div id="cropimage-wrapper">
-<img src="$image_url" id="croppa" class="imgCrop" alt="$title" />
+<img src="{{$image_url}}" id="croppa" class="imgCrop" alt="{{$title}}" />
</div>
<div id="cropimage-preview-wrapper" >
<div id="previewWrap" ></div>
@@ -39,10 +39,10 @@ $desc
</script>
-<form action="profile_photo/$resource" id="crop-image-form" method="post" />
-<input type='hidden' name='form_security_token' value='$form_security_token'>
+<form action="profile_photo/{{$resource}}" id="crop-image-form" method="post" />
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-<input type='hidden' name='profile' value='$profile'>
+<input type='hidden' name='profile' value='{{$profile}}'>
<input type="hidden" name="cropfinal" value="1" />
<input type="hidden" name="xstart" id="x1" />
<input type="hidden" name="ystart" id="y1" />
@@ -52,7 +52,7 @@ $desc
<input type="hidden" name="width" id="width" />
<div id="crop-image-submit-wrapper" >
-<input type="submit" name="submit" value="$done" />
+<input type="submit" name="submit" value="{{$done}}" />
</div>
</form>
diff --git a/view/tpl/crophead.tpl b/view/tpl/crophead.tpl
index 48f375426..48f375426 100644..100755
--- a/view/tpl/crophead.tpl
+++ b/view/tpl/crophead.tpl
diff --git a/view/tpl/delegate.tpl b/view/tpl/delegate.tpl
index 9a7d2e18d..cbaa8da86 100644..100755
--- a/view/tpl/delegate.tpl
+++ b/view/tpl/delegate.tpl
@@ -1,57 +1,57 @@
-<h3>$header</h3>
+<h3>{{$header}}</h3>
-<div id="delegate-desc" class="delegate-desc">$desc</div>
+<div id="delegate-desc" class="delegate-desc">{{$desc}}</div>
-{{ if $managers }}
-<h3>$head_managers</h3>
+{{if $managers}}
+<h3>{{$head_managers}}</h3>
-{{ for $managers as $x }}
+{{foreach $managers as $x}}
<div class="contact-block-div">
<a class="contact-block-link" href="#" >
-<img class="contact-block-img" src="$base/photo/thumb/$x.uid" title="$x.username ($x.nickname)" />
+<img class="contact-block-img" src="{{$base}}/photo/thumb/{{$x.uid}}" title="{{$x.username}} ({{$x.nickname}})" />
</a>
</div>
-{{ endfor }}
+{{/foreach}}
<div class="clear"></div>
<hr />
-{{ endif }}
+{{/if}}
-<h3>$head_delegates</h3>
+<h3>{{$head_delegates}}</h3>
-{{ if $delegates }}
-{{ for $delegates as $x }}
+{{if $delegates}}
+{{foreach $delegates as $x}}
<div class="contact-block-div">
-<a class="contact-block-link" href="$base/delegate/remove/$x.uid" >
-<img class="contact-block-img" src="$base/photo/thumb/$x.uid" title="$x.username ($x.nickname)" />
+<a class="contact-block-link" href="{{$base}}/delegate/remove/{{$x.uid}}" >
+<img class="contact-block-img" src="{{$base}}/photo/thumb/{{$x.uid}}" title="{{$x.username}} ({{$x.nickname}})" />
</a>
</div>
-{{ endfor }}
+{{/foreach}}
<div class="clear"></div>
-{{ else }}
-$none
-{{ endif }}
+{{else}}
+{{$none}}
+{{/if}}
<hr />
-<h3>$head_potentials</h3>
-{{ if $potentials }}
-{{ for $potentials as $x }}
+<h3>{{$head_potentials}}</h3>
+{{if $potentials}}
+{{foreach $potentials as $x}}
<div class="contact-block-div">
-<a class="contact-block-link" href="$base/delegate/add/$x.uid" >
-<img class="contact-block-img" src="$base/photo/thumb/$x.uid" title="$x.username ($x.nickname)" />
+<a class="contact-block-link" href="{{$base}}/delegate/add/{{$x.uid}}" >
+<img class="contact-block-img" src="{{$base}}/photo/thumb/{{$x.uid}}" title="{{$x.username}} ({{$x.nickname}})" />
</a>
</div>
-{{ endfor }}
+{{/foreach}}
<div class="clear"></div>
-{{ else }}
-$none
-{{ endif }}
+{{else}}
+{{$none}}
+{{/if}}
<hr />
diff --git a/view/tpl/dfrn_req_confirm.tpl b/view/tpl/dfrn_req_confirm.tpl
deleted file mode 100644
index 6c916323c..000000000
--- a/view/tpl/dfrn_req_confirm.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-
-<p id="dfrn-request-homecoming" >
-$welcome
-<br />
-$please
-
-</p>
-<form id="dfrn-request-homecoming-form" action="dfrn_request/$nickname" method="post">
-<input type="hidden" name="dfrn_url" value="$dfrn_url" />
-<input type="hidden" name="confirm_key" value="$confirm_key" />
-<input type="hidden" name="localconfirm" value="1" />
-$aes_allow
-
-<label id="dfrn-request-homecoming-hide-label" for="dfrn-request-homecoming-hide">$hidethem</label>
-<input type="checkbox" name="hidden-contact" value="1" {{ if $hidechecked }}checked="checked" {{ endif }} />
-
-
-<div id="dfrn-request-homecoming-submit-wrapper" >
-<input id="dfrn-request-homecoming-submit" type="submit" name="submit" value="$submit" />
-</div>
-</form> \ No newline at end of file
diff --git a/view/tpl/dfrn_request.tpl b/view/tpl/dfrn_request.tpl
deleted file mode 100644
index 4f8a87ea2..000000000
--- a/view/tpl/dfrn_request.tpl
+++ /dev/null
@@ -1,59 +0,0 @@
-
-<h1>$header</h1>
-
-<p id="dfrn-request-intro">
-$page_desc<br />
-$invite_desc
-</p>
-<p>
-$desc
-</p>
-
-<form action="dfrn_request/$nickname" method="post" />
-
-<div id="dfrn-request-url-wrapper" >
- <label id="dfrn-url-label" for="dfrn-url" >$your_address</label>
- <input type="text" name="dfrn_url" id="dfrn-url" size="32" value="$myaddr" />
- <div id="dfrn-request-url-end"></div>
-</div>
-
-<p id="dfrn-request-options">
-$pls_answer
-</p>
-
-<div id="dfrn-request-info-wrapper" >
-
-
-<p id="doiknowyou">
-$does_know
-</p>
-
- <div id="dfrn-request-know-yes-wrapper">
- <label id="dfrn-request-knowyou-yes-label" for="dfrn-request-knowyouyes">$yes</label>
- <input type="radio" name="knowyou" id="knowyouyes" value="1" />
-
- <div id="dfrn-request-knowyou-break" ></div>
- </div>
- <div id="dfrn-request-know-no-wrapper">
- <label id="dfrn-request-knowyou-no-label" for="dfrn-request-knowyouno">$no</label>
- <input type="radio" name="knowyou" id="knowyouno" value="0" checked="checked" />
-
- <div id="dfrn-request-knowyou-end"></div>
- </div>
-
-
-<p id="dfrn-request-message-desc">
-$add_note
-</p>
- <div id="dfrn-request-message-wrapper">
- <textarea name="dfrn-request-message" rows="4" cols="64" ></textarea>
- </div>
-
-
-</div>
-
- <div id="dfrn-request-submit-wrapper">
- <input type="submit" name="submit" id="dfrn-request-submit-button" value="$submit" />
- <input type="submit" name="cancel" id="dfrn-request-cancel-button" value="$cancel" />
- </div>
-</form>
diff --git a/view/tpl/diasp_dec_hdr.tpl b/view/tpl/diasp_dec_hdr.tpl
deleted file mode 100644
index e87c61888..000000000
--- a/view/tpl/diasp_dec_hdr.tpl
+++ /dev/null
@@ -1,8 +0,0 @@
-<decrypted_hdeader>
- <iv>$inner_iv</iv>
- <aes_key>$inner_key</aes_key>
- <author>
- <name>$author_name</name>
- <uri>$author_uri</uri>
- </author>
-</decrypted_header>
diff --git a/view/tpl/directory_header.tpl b/view/tpl/directory_header.tpl
index e1def851b..5d703e2dd 100644..100755
--- a/view/tpl/directory_header.tpl
+++ b/view/tpl/directory_header.tpl
@@ -1,14 +1,14 @@
-<h1>$dirlbl</h1>
+<h1>{{$dirlbl}}</h1>
-{{ if $search }}
-<h4>$finddsc $safetxt</h4>
-{{ endif }}
+{{if $search}}
+<h4>{{$finddsc}} {{$safetxt}}</h4>
+{{/if}}
-{{for $entries as $entry}}
+{{foreach $entries as $entry}}
-{{ inc direntry.tpl }}{{ endinc }}
+{{include file="direntry.tpl"}}
-{{ endfor }}
+{{/foreach}}
diff --git a/view/tpl/directory_item.tpl b/view/tpl/directory_item.tpl
deleted file mode 100644
index d496cb2ad..000000000
--- a/view/tpl/directory_item.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-
-<div class="directory-item lframe" id="directory-item-$id" >
- <div class="contact-photo-wrapper" id="directory-photo-wrapper-$id" >
- <div class="contact-photo" id="directory-photo-$id" >
- <a href="$profile_link" class="directory-profile-link" id="directory-profile-link-$id" ><img class="directory-photo-img" src="$photo" alt="$alt_text" title="$alt_text" /></a>
- </div>
- </div>
-
- <div class="contact-name" id="directory-name-$id">$name</div>
- <div class="contact-details">$details</div>
-</div>
diff --git a/view/tpl/direntry.tpl b/view/tpl/direntry.tpl
index e860da41c..c6c0ab028 100644..100755
--- a/view/tpl/direntry.tpl
+++ b/view/tpl/direntry.tpl
@@ -1,11 +1,13 @@
-
-<div class="directory-item lframe" id="directory-item-$entry.id" >
- <div class="contact-photo-wrapper" id="directory-photo-wrapper-$entry.id" >
- <div class="contact-photo" id="directory-photo-$entry.id" >
- <a href="$entry.profile_link" class="directory-profile-link" id="directory-profile-link-$entry.id" ><img class="directory-photo-img" src="$entry.photo" alt="$entry.alttext" title="$entry.alttext" /></a>
+<div class="directory-item lframe" id="directory-item-{{$entry.id}}" >
+ <div class="contact-photo-wrapper" id="directory-photo-wrapper-{{$entry.id}}" >
+ <div class="contact-photo" id="directory-photo-{{$entry.id}}" >
+ <a href="{{$entry.profile_link}}" class="directory-profile-link" id="directory-profile-link-{{$entry.id}}" ><img class="directory-photo-img" src="{{$entry.photo}}" alt="{{$entry.alttext}}" title="{{$entry.alttext}}" /></a>
</div>
</div>
- <div class="contact-name" id="directory-name-$entry.id">$entry.name</div>
- <div class="contact-details">$entry.details</div>
+ <div class="contact-name" id="directory-name-{{$entry.id}}">{{$entry.name}}</div>
+ {{if $entry.connect}}
+ <div class="directory-connect"><a href="{{$entry.connect}}">{{$entry.conn_label}}</a></div>
+ {{/if}}
+ <div class="contact-details">{{$entry.details}}</div>
</div>
diff --git a/view/tpl/display-head.tpl b/view/tpl/display-head.tpl
index 3d4e7e96a..3d4e7e96a 100644..100755
--- a/view/tpl/display-head.tpl
+++ b/view/tpl/display-head.tpl
diff --git a/view/tpl/edpage_head.tpl b/view/tpl/edpage_head.tpl
new file mode 100755
index 000000000..890b746bf
--- /dev/null
+++ b/view/tpl/edpage_head.tpl
@@ -0,0 +1 @@
+<h2>{{$title}}</h2>
diff --git a/view/tpl/edpost_head.tpl b/view/tpl/edpost_head.tpl
index b83e606a0..890b746bf 100644..100755
--- a/view/tpl/edpost_head.tpl
+++ b/view/tpl/edpost_head.tpl
@@ -1 +1 @@
-<h2>$title</h2>
+<h2>{{$title}}</h2>
diff --git a/view/tpl/email_notify_html.tpl b/view/tpl/email_notify_html.tpl
index 3e1a814c5..85939ac22 100644..100755
--- a/view/tpl/email_notify_html.tpl
+++ b/view/tpl/email_notify_html.tpl
@@ -1,26 +1,26 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
<html>
<head>
- <title>$banner</title>
+ <title>{{$banner}}</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<table style="border:1px solid #ccc">
<tbody>
- <tr><td colspan="2" style="background:#ff0000; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='$siteurl/images/fred-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">$product</div><div style="clear: both;"></div></td></tr>
+ <tr><td colspan="2" style="background:#ff0000; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='{{$siteurl}}/images/rhash-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">{{$product}}</div><div style="clear: both;"></div></td></tr>
- <tr><td style="padding-top:22px;" colspan="2">$preamble</td></tr>
+ <tr><td style="padding-top:22px;" colspan="2">{{$preamble}}</td></tr>
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$source_link"><img style="border:0px;width:48px;height:48px;" src="$source_photo"></a></td>
- <td style="padding-top:22px;"><a href="$source_link">$source_name</a></td></tr>
- <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr>
- <tr><td style="padding-right:22px;">$htmlversion</td></tr>
- <tr><td style="padding-top:11px;" colspan="2">$hsitelink</td></tr>
- <tr><td style="padding-bottom:11px;" colspan="2">$hitemlink</td></tr>
- <tr><td></td><td>$thanks</td></tr>
- <tr><td></td><td>$site_admin</td></tr>
+ <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="{{$source_link}}"><img style="border:0px;width:48px;height:48px;" src="{{$source_photo}}"></a></td>
+ <td style="padding-top:22px;"><a href="{{$source_link}}">{{$source_name}}</a></td></tr>
+ <tr><td style="font-weight:bold;padding-bottom:5px;">{{$title}}</td></tr>
+ <tr><td style="padding-right:22px;">{{$htmlversion}}</td></tr>
+ <tr><td style="padding-top:11px;" colspan="2">{{$hsitelink}}</td></tr>
+ <tr><td style="padding-bottom:11px;" colspan="2">{{$hitemlink}}</td></tr>
+ <tr><td></td><td>{{$thanks}}</td></tr>
+ <tr><td></td><td>{{$site_admin}}</td></tr>
</tbody>
</table>
</body>
diff --git a/view/tpl/email_notify_text.tpl b/view/tpl/email_notify_text.tpl
index 018bb6078..bdab4c273 100644..100755
--- a/view/tpl/email_notify_text.tpl
+++ b/view/tpl/email_notify_text.tpl
@@ -1,13 +1,12 @@
-
-$preamble
+{{$preamble}}
-$title
+{{$title}}
-$textversion
+{{$textversion}}
-$tsitelink
-$titemlink
+{{$tsitelink}}
+{{$titemlink}}
-$thanks
-$site_admin
+{{$thanks}}
+{{$site_admin}}
diff --git a/view/tpl/event.tpl b/view/tpl/event.tpl
index 80c1dfc55..58a19eb76 100644..100755
--- a/view/tpl/event.tpl
+++ b/view/tpl/event.tpl
@@ -1,10 +1,10 @@
-{{ for $events as $event }}
+{{foreach $events as $event}}
<div class="event">
- {{ if $event.item.author-name }}<a href="$event.item.author-link" ><img src="$event.item.author-avatar" height="32" width="32" />$event.item.author-name</a>{{ endif }}
- $event.html
- {{ if $event.item.plink }}<a href="$event.plink.0" title="$event.plink.1" class="plink-event-link icon s22 remote-link"></a>{{ endif }}
- {{ if $event.edit }}<a href="$event.edit.0" title="$event.edit.1" class="edit-event-link icon s22 pencil"></a>{{ endif }}
+ {{if $event.item.author.xchan_name}}<a href="{{$event.item.author.xchan_url}}" ><img src="{{$event.item.author.xchan_photo_s}}" height="32" width="32" />{{$event.item.author.xchan_name}}</a>{{/if}}
+ {{$event.html}}
+ {{if $event.item.plink}}<a href="{{$event.plink.0}}" title="{{$event.plink.1}}" class="plink-event-link icon s22 remote-link"></a>{{/if}}
+ {{if $event.edit}}<a href="{{$event.edit.0}}" title="{{$event.edit.1}}" class="edit-event-link icon s22 pencil"></a>{{/if}}
</div>
<div class="clear"></div>
-{{ endfor }}
+{{/foreach}}
diff --git a/view/tpl/event_form.tpl b/view/tpl/event_form.tpl
index 536c52b0f..f661eac87 100644..100755
--- a/view/tpl/event_form.tpl
+++ b/view/tpl/event_form.tpl
@@ -1,49 +1,49 @@
-<h3>$title</h3>
+<h3>{{$title}}</h3>
<p>
-$desc
+{{$desc}}
</p>
-<form action="$post" method="post" >
+<form action="{{$post}}" method="post" >
-<input type="hidden" name="event_id" value="$eid" />
-<input type="hidden" name="cid" value="$cid" />
-<input type="hidden" name="uri" value="$uri" />
+<input type="hidden" name="event_id" value="{{$eid}}" />
+<input type="hidden" name="cid" value="{{$cid}}" />
+<input type="hidden" name="mid" value="{{$mid}}" />
-<div id="event-start-text">$s_text</div>
-$s_dsel $s_tsel
+<div id="event-start-text">{{$s_text}}</div>
+{{$s_dsel}} {{$s_tsel}}
-<div id="event-finish-text">$f_text</div>
-$f_dsel $f_tsel
+<div id="event-finish-text">{{$f_text}}</div>
+{{$f_dsel}} {{$f_tsel}}
<div id="event-datetime-break"></div>
-<input type="checkbox" name="nofinish" value="1" id="event-nofinish-checkbox" $n_checked /> <div id="event-nofinish-text">$n_text</div>
+<input type="checkbox" name="nofinish" value="1" id="event-nofinish-checkbox" {{$n_checked}} /> <div id="event-nofinish-text">{{$n_text}}</div>
<div id="event-nofinish-break"></div>
-<input type="checkbox" name="adjust" value="1" id="event-adjust-checkbox" $a_checked /> <div id="event-adjust-text">$a_text</div>
+<input type="checkbox" name="adjust" value="1" id="event-adjust-checkbox" {{$a_checked}} /> <div id="event-adjust-text">{{$a_text}}</div>
<div id="event-adjust-break"></div>
-<div id="event-summary-text">$t_text</div>
-<input type="text" id="event-summary" name="summary" value="$t_orig" />
+<div id="event-summary-text">{{$t_text}}</div>
+<input type="text" id="event-summary" name="summary" value="{{$t_orig}}" />
-<div id="event-desc-text">$d_text</div>
-<textarea id="event-desc-textarea" name="desc">$d_orig</textarea>
+<div id="event-desc-text">{{$d_text}}</div>
+<textarea id="event-desc-textarea" name="desc">{{$d_orig}}</textarea>
-<div id="event-location-text">$l_text</div>
-<textarea id="event-location-textarea" name="location">$l_orig</textarea>
+<div id="event-location-text">{{$l_text}}</div>
+<textarea id="event-location-textarea" name="location">{{$l_orig}}</textarea>
-<input type="checkbox" name="share" value="1" id="event-share-checkbox" $sh_checked /> <div id="event-share-text">$sh_text</div>
+<input type="checkbox" name="share" value="1" id="event-share-checkbox" {{$sh_checked}} /> <div id="event-share-text">{{$sh_text}}</div>
<div id="event-share-break"></div>
-$acl
+{{$acl}}
<div class="clear"></div>
-<input id="event-submit" type="submit" name="submit" value="$submit" />
+<input id="event-submit" type="submit" name="submit" value="{{$submit}}" />
</form>
diff --git a/view/tpl/event_head.tpl b/view/tpl/event_head.tpl
index 471748b97..b55025f65 100644..100755
--- a/view/tpl/event_head.tpl
+++ b/view/tpl/event_head.tpl
@@ -1,11 +1,11 @@
-<link rel='stylesheet' type='text/css' href='$baseurl/library/fullcalendar/fullcalendar.css' />
+<link rel='stylesheet' type='text/css' href='{{$baseurl}}/library/fullcalendar/fullcalendar.css' />
<script language="javascript" type="text/javascript"
- src="$baseurl/library/fullcalendar/fullcalendar.min.js"></script>
+ src="{{$baseurl}}/library/fullcalendar/fullcalendar.min.js"></script>
<script>
function showEvent(eventid) {
$.get(
- '$baseurl/events/?id='+eventid,
+ '{{$baseurl}}/events/?id='+eventid,
function(data){
$.fancybox(data);
}
@@ -14,7 +14,7 @@
$(document).ready(function() {
$('#events-calendar').fullCalendar({
- events: '$baseurl/events/json/',
+ events: '{{$baseurl}}/events/json/',
header: {
left: 'prev,next today',
center: 'title',
@@ -27,21 +27,21 @@
eventRender: function(event, element, view) {
//console.log(view.name);
- if (event.item['author-name']==null) return;
+ if (event.item['author']['xchan_name']==null) return;
switch(view.name){
case "month":
element.find(".fc-event-title").html(
"<img src='{0}' style='height:10px;width:10px'>{1} : {2}".format(
- event.item['author-avatar'],
- event.item['author-name'],
+ event.item['author']['xchan_photo_s'],
+ event.item['author']['xchan_name'],
event.title
));
break;
case "agendaWeek":
element.find(".fc-event-title").html(
"<img src='{0}' style='height:12px; width:12px'>{1}<p>{2}</p><p>{3}</p>".format(
- event.item['author-avatar'],
- event.item['author-name'],
+ event.item['author']['xchan_photo_s'],
+ event.item['author']['xchan_name'],
event.item.desc,
event.item.location
));
@@ -49,8 +49,8 @@
case "agendaDay":
element.find(".fc-event-title").html(
"<img src='{0}' style='height:24px;width:24px'>{1}<p>{2}</p><p>{3}</p>".format(
- event.item['author-avatar'],
- event.item['author-name'],
+ event.item['author']['xchan_photo_s'],
+ event.item['author']['xchan_name'],
event.item.desc,
event.item.location
));
@@ -75,7 +75,7 @@
<script language="javascript" type="text/javascript"
- src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
+ src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
<script language="javascript" type="text/javascript">
@@ -97,7 +97,7 @@
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
- content_css: "$baseurl/view/custom_tinymce.css",
+ content_css: "{{$baseurl}}/view/custom_tinymce.css",
theme_advanced_path : false,
setup : function(ed) {
ed.onInit.add(function(ed) {
diff --git a/view/tpl/events-js.tpl b/view/tpl/events-js.tpl
index b0e182c56..c87d20529 100644..100755
--- a/view/tpl/events-js.tpl
+++ b/view/tpl/events-js.tpl
@@ -1,6 +1,6 @@
-$tabs
-<h2>$title</h2>
+{{$tabs}}
+<h2>{{$title}}</h2>
-<div id="new-event-link"><a href="$new_event.0" >$new_event.1</a></div>
+<div id="new-event-link"><a href="{{$new_event.0}}" >{{$new_event.1}}</a></div>
<div id="events-calendar"></div>
diff --git a/view/tpl/events.tpl b/view/tpl/events.tpl
deleted file mode 100644
index e0d830691..000000000
--- a/view/tpl/events.tpl
+++ /dev/null
@@ -1,24 +0,0 @@
-$tabs
-<h2>$title</h2>
-
-<div id="new-event-link"><a href="$new_event.0" >$new_event.1</a></div>
-
-<div id="event-calendar-wrapper">
- <a href="$previus.0" class="prevcal $previus.2"><div id="event-calendar-prev" class="icon s22 prev" title="$previus.1"></div></a>
- $calendar
- <a href="$next.0" class="nextcal $next.2"><div id="event-calendar-prev" class="icon s22 next" title="$next.1"></div></a>
-</div>
-<div class="event-calendar-end"></div>
-
-
-{{ for $events as $event }}
- <div class="event">
- {{ if $event.is_first }}<hr /><a name="link-$event.j" ><div class="event-list-date">$event.d</div></a>{{ endif }}
- {{ if $event.item.author-name }}<a href="$event.item.author-link" ><img src="$event.item.author-avatar" height="32" width="32" />$event.item.author-name</a>{{ endif }}
- $event.html
- {{ if $event.item.plink }}<a href="$event.plink.0" title="$event.plink.1" class="plink-event-link icon s22 remote-link"></a>{{ endif }}
- {{ if $event.edit }}<a href="$event.edit.0" title="$event.edit.1" class="edit-event-link icon s22 pencil"></a>{{ endif }}
- </div>
- <div class="clear"></div>
-
-{{ endfor }}
diff --git a/view/tpl/events_reminder.tpl b/view/tpl/events_reminder.tpl
index f641a5faf..fd6a1a5c7 100644..100755
--- a/view/tpl/events_reminder.tpl
+++ b/view/tpl/events_reminder.tpl
@@ -1,10 +1,10 @@
-{{ if $count }}
-<div id="event-notice" class="birthday-notice fakelink $classtoday" onclick="openClose('event-wrapper');">$event_reminders ($count)</div>
-<div id="event-wrapper" style="display: none;" ><div id="event-title">$event_title</div>
+{{if $count}}
+<div id="event-notice" class="birthday-notice fakelink {{$classtoday}}" onclick="openClose('event-wrapper');">{{$event_reminders}} ({{$count}})</div>
+<div id="event-wrapper" style="display: none;" ><div id="event-title">{{$event_title}}</div>
<div id="event-title-end"></div>
-{{ for $events as $event }}
-<div class="event-list" id="event-$event.id"></a> <a href="events/$event.link">$event.title</a> $event.date </div>
-{{ endfor }}
+{{foreach $events as $event}}
+<div class="event-list" id="event-{{$event.id}}"></a> <a href="events/{{$event.link}}">{{$event.title}}</a> {{$event.date}} </div>
+{{/foreach}}
</div>
-{{ endif }}
+{{/if}}
diff --git a/view/tpl/failed_updates.tpl b/view/tpl/failed_updates.tpl
index c6e4cb08e..68c0bcdf2 100644..100755
--- a/view/tpl/failed_updates.tpl
+++ b/view/tpl/failed_updates.tpl
@@ -1,17 +1,17 @@
-<h2>$banner</h2>
+<h2>{{$banner}}</h2>
-<div id="failed_updates_desc">$desc</div>
+<div id="failed_updates_desc">{{$desc}}</div>
-{{ if $failed }}
-{{ for $failed as $f }}
+{{if $failed}}
+{{foreach $failed as $f}}
-<h4>$f</h4>
+<h4>{{$f}}</h4>
<ul>
-<li><a href="$base/admin/dbsync/mark/$f">$mark</a></li>
-<li><a href="$base/admin/dbsync/$f">$apply</a></li>
+<li><a href="{{$base}}/admin/dbsync/mark/{{$f}}">{{$mark}}</a></li>
+<li><a href="{{$base}}/admin/dbsync/{{$f}}">{{$apply}}</a></li>
</ul>
<hr />
-{{ endfor }}
-{{ endif }}
+{{/foreach}}
+{{/if}}
diff --git a/view/tpl/fake_feed.tpl b/view/tpl/fake_feed.tpl
deleted file mode 100644
index c37071cf4..000000000
--- a/view/tpl/fake_feed.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<feed xmlns="http://www.w3.org/2005/Atom" >
-
- <id>fake feed</id>
- <title>fake title</title>
-
- <updated>1970-01-01T00:00:00Z</updated>
-
- <author>
- <name>Fake Name</name>
- <uri>http://example.com</uri>
- </author>
-
diff --git a/view/tpl/field.tpl b/view/tpl/field.tpl
index 35f5afd39..942cfcef5 100644..100755
--- a/view/tpl/field.tpl
+++ b/view/tpl/field.tpl
@@ -1,4 +1,3 @@
-
- {{ if $field.0==select }}
- {{ inc field_select.tpl }}{{ endinc }}
- {{ endif }}
+ {{if $field.0==select}}
+ {{include file="field_select.tpl"}}
+ {{/if}}
diff --git a/view/tpl/field_acheckbox.tpl b/view/tpl/field_acheckbox.tpl
index 06bed38e7..cb63f7ca2 100644..100755
--- a/view/tpl/field_acheckbox.tpl
+++ b/view/tpl/field_acheckbox.tpl
@@ -1,7 +1,6 @@
-
<div class='field acheckbox'>
- <label for='id_$field.0'>$field.1</label>
- <input type="checkbox" class="abook-edit-them" name='$field.0' id='them_id_$field.0' value="1" disabled="disabled" {{ if $field.2 }}checked="checked"{{ endif }} />
- <input type="checkbox" class="abook-edit-me" name='$field.0' id='me_id_$field.0' value="$field.4" {{ if $field.3 }}checked="checked"{{ endif }} {{ if $field.5 }} disabled="disabled" {{ endif }}/>
- <span class='field_abook_help'>$field.6</span>
+ <label for='id_{{$field.0}}'>{{$field.1}}</label>
+ <input type="checkbox" class="abook-edit-them" name='them_{{$field.0}}' id='them_id_{{$field.0}}' value="1" disabled="disabled" {{if $field.2}}checked="checked"{{/if}} />
+ <input type="checkbox" class="abook-edit-me" name='{{$field.0}}' id='me_id_{{$field.0}}' value="{{$field.4}}" {{if $field.3}}checked="checked"{{/if}} {{if $field.5}} disabled="disabled" {{/if}}/>
+ <span class='field_abook_help'>{{$field.6}}</span>
</div>
diff --git a/view/tpl/field_checkbox.tpl b/view/tpl/field_checkbox.tpl
index afab29243..51d56f69c 100644..100755
--- a/view/tpl/field_checkbox.tpl
+++ b/view/tpl/field_checkbox.tpl
@@ -1,6 +1,5 @@
-
<div class='field checkbox'>
- <label for='id_$field.0'>$field.1</label>
- <input type="checkbox" name='$field.0' id='id_$field.0' value="1" {{ if $field.2 }}checked="checked"{{ endif }}>
- <span class='field_help'>$field.3</span>
+ <label for='id_{{$field.0}}'>{{$field.1}}</label>
+ <input type="checkbox" name='{{$field.0}}' id='id_{{$field.0}}' value="1" {{if $field.2}}checked="checked"{{/if}}>
+ <span class='field_help'>{{$field.3}}</span>
</div>
diff --git a/view/tpl/field_combobox.tpl b/view/tpl/field_combobox.tpl
index a4dc8e571..c4356e1cd 100644..100755
--- a/view/tpl/field_combobox.tpl
+++ b/view/tpl/field_combobox.tpl
@@ -1,18 +1,17 @@
-
<div class='field combobox'>
- <label for='id_$field.0' id='id_$field.0_label'>$field.1</label>
- {# html5 don't work on Chrome, Safari and IE9
- <input id="id_$field.0" type="text" list="data_$field.0" >
- <datalist id="data_$field.0" >
- {{ for $field.4 as $opt=>$val }}<option value="$val">{{ endfor }}
- </datalist> #}
+ <label for='id_{{$field.0}}' id='id_{{$field.0}}_label'>{{$field.1}}</label>
+ {{* html5 don't work on Chrome, Safari and IE9
+ <input id="id_{{$field.0}}" type="text" list="data_{{$field.0}}" >
+ <datalist id="data_{{$field.0}}" >
+ {{foreach $field.4 as $opt=>$val}}<option value="{{$val}}">{{/foreach}}
+ </datalist> *}}
- <input id="id_$field.0" type="text" value="$field.2">
- <select id="select_$field.0" onChange="$('#id_$field.0').val($(this).val())">
- <option value="">$field.5</option>
- {{ for $field.4 as $opt=>$val }}<option value="$val">$val</option>{{ endfor }}
+ <input id="id_{{$field.0}}" type="text" value="{{$field.2}}">
+ <select id="select_{{$field.0}}" onChange="$('#id_{{$field.0}}').val($(this).val())">
+ <option value="">{{$field.5}}</option>
+ {{foreach $field.4 as $opt=>$val}}<option value="{{$val}}">{{$val}}</option>{{/foreach}}
</select>
- <span class='field_help'>$field.3</span>
+ <span class='field_help'>{{$field.3}}</span>
</div>
diff --git a/view/tpl/field_custom.tpl b/view/tpl/field_custom.tpl
index be15d3f60..a6b49f6da 100644..100755
--- a/view/tpl/field_custom.tpl
+++ b/view/tpl/field_custom.tpl
@@ -1,6 +1,5 @@
-
<div class='field custom'>
- <label for='$field.0'>$field.1</label>
- $field.2
- <span class='field_help'>$field.3</span>
+ <label for='{{$field.0}}'>{{$field.1}}</label>
+ {{$field.2}}
+ <span class='field_help'>{{$field.3}}</span>
</div>
diff --git a/view/tpl/field_input.tpl b/view/tpl/field_input.tpl
index 09417deca..2cb3cb91e 100644..100755
--- a/view/tpl/field_input.tpl
+++ b/view/tpl/field_input.tpl
@@ -1,7 +1,6 @@
-
<div class='field input'>
- <label for='id_$field.0' id='label_$field.0'>$field.1</label>
- <input name='$field.0' id='id_$field.0' value="$field.2">
- <span id='help_$field.0' class='field_help'>$field.3</span>
- <div id='end_$field.0' class='field_end'></div>
+ <label for='id_{{$field.0}}' id='label_{{$field.0}}'>{{$field.1}}</label>
+ <input name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.2}}">
+ <span id='help_{{$field.0}}' class='field_help'>{{$field.3}}</span>
+ <div id='end_{{$field.0}}' class='field_end'></div>
</div>
diff --git a/view/tpl/field_intcheckbox.tpl b/view/tpl/field_intcheckbox.tpl
index 47a513a55..d9a8d7289 100644..100755
--- a/view/tpl/field_intcheckbox.tpl
+++ b/view/tpl/field_intcheckbox.tpl
@@ -1,6 +1,5 @@
-
<div class='field checkbox'>
- <label for='id_$field.0'>$field.1</label>
- <input type="checkbox" name='$field.0' id='id_$field.0' value="$field.3" {{ if $field.2 }}checked="true"{{ endif }}>
- <span class='field_help'>$field.4</span>
+ <label for='id_{{$field.0}}'>{{$field.1}}</label>
+ <input type="checkbox" name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.3}}" {{if $field.2}}checked="true"{{/if}}>
+ <span class='field_help'>{{$field.4}}</span>
</div>
diff --git a/view/tpl/field_openid.tpl b/view/tpl/field_openid.tpl
deleted file mode 100644
index acd93ff62..000000000
--- a/view/tpl/field_openid.tpl
+++ /dev/null
@@ -1,6 +0,0 @@
-
- <div class='field input openid'>
- <label for='id_$field.0'>$field.1</label>
- <input name='$field.0' id='id_$field.0' value="$field.2">
- <span class='field_help'>$field.3</span>
- </div>
diff --git a/view/tpl/field_password.tpl b/view/tpl/field_password.tpl
index e604b7f5d..23058f8a6 100644..100755
--- a/view/tpl/field_password.tpl
+++ b/view/tpl/field_password.tpl
@@ -1,6 +1,5 @@
-
<div class='field password'>
- <label for='id_$field.0'>$field.1</label>
- <input type='password' name='$field.0' id='id_$field.0' value="$field.2">
- <span class='field_help'>$field.3</span>
+ <label for='id_{{$field.0}}'>{{$field.1}}</label>
+ <input type='password' name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.2}}">
+ <span class='field_help'>{{$field.3}}</span>
</div>
diff --git a/view/tpl/field_radio.tpl b/view/tpl/field_radio.tpl
index a915e8eb3..147b6b834 100644..100755
--- a/view/tpl/field_radio.tpl
+++ b/view/tpl/field_radio.tpl
@@ -1,6 +1,5 @@
-
<div class='field radio'>
- <label for='id_$field.0_$field.2'>$field.1</label>
- <input type="radio" name='$field.0' id='id_$field.0_$field.2' value="$field.2" {{ if $field.4 }}checked="true"{{ endif }}>
- <span class='field_help'>$field.3</span>
+ <label for='id_{{$field.0}}_{{$field.2}}'>{{$field.1}}</label>
+ <input type="radio" name='{{$field.0}}' id='id_{{$field.0}}_{{$field.2}}' value="{{$field.2}}" {{if $field.4}}checked="true"{{/if}}>
+ <span class='field_help'>{{$field.3}}</span>
</div>
diff --git a/view/tpl/field_richtext.tpl b/view/tpl/field_richtext.tpl
index c124ee000..c8639cf10 100644..100755
--- a/view/tpl/field_richtext.tpl
+++ b/view/tpl/field_richtext.tpl
@@ -1,6 +1,5 @@
-
<div class='field richtext'>
- <label for='id_$field.0'>$field.1</label>
- <textarea name='$field.0' id='id_$field.0' class="fieldRichtext">$field.2</textarea>
- <span class='field_help'>$field.3</span>
+ <label for='id_{{$field.0}}'>{{$field.1}}</label>
+ <textarea name='{{$field.0}}' id='id_{{$field.0}}' class="fieldRichtext">{{$field.2}}</textarea>
+ <span class='field_help'>{{$field.3}}</span>
</div>
diff --git a/view/tpl/field_select.tpl b/view/tpl/field_select.tpl
index d79eb48e0..9aca26e7b 100644..100755
--- a/view/tpl/field_select.tpl
+++ b/view/tpl/field_select.tpl
@@ -1,8 +1,7 @@
-
<div class='field select'>
- <label for='id_$field.0'>$field.1</label>
- <select name='$field.0' id='id_$field.0'>
- {{ for $field.4 as $opt=>$val }}<option value="$opt" {{ if $opt==$field.2 }}selected="selected"{{ endif }}>$val</option>{{ endfor }}
+ <label for='id_{{$field.0}}'>{{$field.1}}</label>
+ <select name='{{$field.0}}' id='id_{{$field.0}}'>
+ {{foreach $field.4 as $opt=>$val}}<option value="{{$opt}}" {{if $opt==$field.2}}selected="selected"{{/if}}>{{$val}}</option>{{/foreach}}
</select>
- <span class='field_help'>$field.3</span>
+ <span class='field_help'>{{$field.3}}</span>
</div>
diff --git a/view/tpl/field_select_raw.tpl b/view/tpl/field_select_raw.tpl
index 765b285d9..861be3201 100644..100755
--- a/view/tpl/field_select_raw.tpl
+++ b/view/tpl/field_select_raw.tpl
@@ -1,8 +1,7 @@
-
<div class='field select'>
- <label for='id_$field.0'>$field.1</label>
- <select name='$field.0' id='id_$field.0'>
- $field.4
+ <label for='id_{{$field.0}}'>{{$field.1}}</label>
+ <select name='{{$field.0}}' id='id_{{$field.0}}'>
+ {{$field.4}}
</select>
- <span class='field_help'>$field.3</span>
+ <span class='field_help'>{{$field.3}}</span>
</div>
diff --git a/view/tpl/field_textarea.tpl b/view/tpl/field_textarea.tpl
index 2425cdd3b..98be8f138 100644..100755
--- a/view/tpl/field_textarea.tpl
+++ b/view/tpl/field_textarea.tpl
@@ -1,6 +1,5 @@
-
<div class='field textarea'>
- <label for='id_$field.0'>$field.1</label>
- <textarea name='$field.0' id='id_$field.0'>$field.2</textarea>
- <span class='field_help'>$field.3</span>
+ <label for='id_{{$field.0}}'>{{$field.1}}</label>
+ <textarea name='{{$field.0}}' id='id_{{$field.0}}'>{{$field.2}}</textarea>
+ <span class='field_help'>{{$field.3}}</span>
</div>
diff --git a/view/tpl/field_themeselect.tpl b/view/tpl/field_themeselect.tpl
index 1b3ede36c..c02eee328 100644..100755
--- a/view/tpl/field_themeselect.tpl
+++ b/view/tpl/field_themeselect.tpl
@@ -1,9 +1,9 @@
- <script>$(function(){ previewTheme($("#id_$field.0")[0]); });</script>
+ <script>$(function(){ previewTheme($("#id_{{$field.0}}")[0]); });</script>
<div class='field select'>
- <label for='id_$field.0'>$field.1</label>
- <select name='$field.0' id='id_$field.0' {{ if $field.5=='preview' }}onchange="previewTheme(this);"{{ endif }} >
- {{ for $field.4 as $opt=>$val }}<option value="$opt" {{ if $opt==$field.2 }}selected="selected"{{ endif }}>$val</option>{{ endfor }}
+ <label for='id_{{$field.0}}'>{{$field.1}}</label>
+ <select name='{{$field.0}}' id='id_{{$field.0}}' {{if $field.5=='preview'}}onchange="previewTheme(this);"{{/if}} >
+ {{foreach $field.4 as $opt=>$val}}<option value="{{$opt}}" {{if $opt==$field.2}}selected="selected"{{/if}}>{{$val}}</option>{{/foreach}}
</select>
- <span class='field_help'>$field.3</span>
+ <span class='field_help'>{{$field.3}}</span>
<div id="theme-preview"></div>
</div>
diff --git a/view/tpl/field_yesno.tpl b/view/tpl/field_yesno.tpl
index 5d4a775c2..e36e775c7 100644..100755
--- a/view/tpl/field_yesno.tpl
+++ b/view/tpl/field_yesno.tpl
@@ -1,13 +1,13 @@
<div class='field yesno'>
- <label for='id_$field.0'>$field.1</label>
- <div class='onoff' id="id_$field.0_onoff">
- <input type="hidden" name='$field.0' id='id_$field.0' value="$field.2">
+ <label for='id_{{$field.0}}'>{{$field.1}}</label>
+ <div class='onoff' id="id_{{$field.0}}_onoff">
+ <input type="hidden" name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.2}}">
<a href="#" class='off'>
- {{ if $field.4 }}$field.4.0{{ else }}OFF{{ endif }}
+ {{if $field.4}}{{$field.4.0}}{{else}}OFF{{/if}}
</a>
<a href="#" class='on'>
- {{ if $field.4 }}$field.4.1{{ else }}ON{{ endif }}
+ {{if $field.4}}{{$field.4.1}}{{else}}ON{{/if}}
</a>
</div>
- <span class='field_help'>$field.3</span>
+ <span class='field_help'>{{$field.3}}</span>
</div>
diff --git a/view/tpl/fileas_widget.tpl b/view/tpl/fileas_widget.tpl
index 54fba7435..70d68c56e 100644..100755
--- a/view/tpl/fileas_widget.tpl
+++ b/view/tpl/fileas_widget.tpl
@@ -1,12 +1,12 @@
<div id="fileas-sidebar" class="widget">
- <h3>$title</h3>
- <div id="nets-desc">$desc</div>
+ <h3>{{$title}}</h3>
+ <div id="nets-desc">{{$desc}}</div>
<ul class="fileas-ul">
- <li class="tool"><a href="$base" class="fileas-link fileas-all{{ if $sel_all }} fileas-selected{{ endif }}">$all</a></li>
- {{ for $terms as $term }}
- <li class="tool"><a href="$base?f=&file=$term.name" class="fileas-link{{ if $term.selected }} fileas-selected{{ endif }}">$term.name</a></li>
- {{ endfor }}
+ <li class="tool"><a href="{{$base}}" class="fileas-link fileas-all{{if $sel_all}} fileas-selected{{/if}}">{{$all}}</a></li>
+ {{foreach $terms as $term}}
+ <li class="tool"><a href="{{$base}}?f=&file={{$term.name}}" class="fileas-link{{if $term.selected}} fileas-selected{{/if}}">{{$term.name}}</a></li>
+ {{/foreach}}
</ul>
</div>
diff --git a/view/tpl/filebrowser.tpl b/view/tpl/filebrowser.tpl
index 7db31d716..787f7c0cd 100644..100755
--- a/view/tpl/filebrowser.tpl
+++ b/view/tpl/filebrowser.tpl
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
- <script type="text/javascript" src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_popup.js"></script>
+ <script type="text/javascript" src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_popup.js"></script>
<style>
.panel_wrapper div.current{.overflow: auto; height: auto!important; }
.filebrowser.path { font-family: fixed; font-size: 10px; background-color: #f0f0ee; height:auto; overflow:auto;}
@@ -60,24 +60,24 @@
<div id="general_panel" class="panel current">
<div class="filebrowser path">
- {{ for $path as $p }}<a href="$p.0">$p.1</a>{{ endfor }}
+ {{foreach $path as $p}}<a href="{{$p.0}}">{{$p.1}}</a>{{/foreach}}
</div>
<div class="filebrowser folders">
<ul>
- {{ for $folders as $f }}<li><a href="$f.0/">$f.1</a></li>{{ endfor }}
+ {{foreach $folders as $f}}<li><a href="{{$f.0}}/">{{$f.1}}</a></li>{{/foreach}}
</ul>
</div>
- <div class="filebrowser files $type">
+ <div class="filebrowser files {{$type}}">
<ul>
- {{ for $files as $f }}
- <li><a href="#" onclick="FileBrowserDialogue.mySubmit('$f.0'); return false;"><img src="$f.2"><span>$f.1</span></a></li>
- {{ endfor }}
+ {{foreach $files as $f}}
+ <li><a href="#" onclick="FileBrowserDialogue.mySubmit('{{$f.0}}'); return false;"><img src="{{$f.2}}"><span>{{$f.1}}</span></a></li>
+ {{/foreach}}
</ul>
</div>
</div>
</div>
<div class="mceActionPanel">
- <input type="button" id="cancel" name="cancel" value="$cancel" onclick="tinyMCEPopup.close();" />
+ <input type="button" id="cancel" name="cancel" value="{{$cancel}}" onclick="tinyMCEPopup.close();" />
</div>
</body>
diff --git a/view/tpl/filer_dialog.tpl b/view/tpl/filer_dialog.tpl
index ae837d6b7..ae59ab713 100644..100755
--- a/view/tpl/filer_dialog.tpl
+++ b/view/tpl/filer_dialog.tpl
@@ -1,4 +1,4 @@
-{{ inc field_combobox.tpl }}{{ endinc }}
+{{include file="field_combobox.tpl"}}
<div class="settings-submit-wrapper" >
- <input id="filer_save" type="button" class="settings-submit" value="$submit" />
+ <input id="filer_save" type="button" class="settings-submit" value="{{$submit}}" />
</div>
diff --git a/view/tpl/follow.tpl b/view/tpl/follow.tpl
index 259e74a93..350f8d910 100644..100755
--- a/view/tpl/follow.tpl
+++ b/view/tpl/follow.tpl
@@ -1,8 +1,8 @@
<div id="follow-sidebar" class="widget">
- <h3>$connect</h3>
- <div id="connect-desc">$desc</div>
+ <h3>{{$connect}}</h3>
+ <div id="connect-desc">{{$desc}}</div>
<form action="follow" method="post" />
- <input id="side-follow-url" type="text" name="url" size="24" title="$hint" /><input id="side-follow-submit" type="submit" name="submit" value="$follow" />
+ <input id="side-follow-url" type="text" name="url" size="24" title="{{$hint}}" /><input id="side-follow-submit" type="submit" name="submit" value="{{$follow}}" />
</form>
</div>
diff --git a/view/tpl/follow_slap.tpl b/view/tpl/follow_slap.tpl
deleted file mode 100644
index 1b1443bee..000000000
--- a/view/tpl/follow_slap.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
- <entry>
- <author>
- <name>$name</name>
- <uri>$profile_page</uri>
- <link rel="photo" type="image/jpeg" media:width="80" media:height="80" href="$thumb" />
- <link rel="avatar" type="image/jpeg" media:width="80" media:height="80" href="$thumb" />
- </author>
-
- <id>$item_id</id>
- <title>$title</title>
- <published>$published</published>
- <content type="$type" >$content</content>
-
- <as:actor>
- <as:obj_type>http://activitystrea.ms/schema/1.0/person</as:obj_type>
- <id>$profile_page</id>
- <title></title>
- <link rel="avatar" type="image/jpeg" media:width="175" media:height="175" href="$photo"/>
- <link rel="avatar" type="image/jpeg" media:width="80" media:height="80" href="$thumb"/>
- <poco:preferredUsername>$nick</poco:preferredUsername>
- <poco:displayName>$name</poco:displayName>
- </as:actor>
- <as:verb>$verb</as:verb>
- $ostat_follow
- </entry>
diff --git a/view/tpl/generic_links_widget.tpl b/view/tpl/generic_links_widget.tpl
index f3404f783..8b4c67b6f 100644..100755
--- a/view/tpl/generic_links_widget.tpl
+++ b/view/tpl/generic_links_widget.tpl
@@ -1,11 +1,11 @@
-<div class="widget{{ if $class }} $class{{ endif }}">
- {{if $title}}<h3>$title</h3>{{endif}}
- {{if $desc}}<div class="desc">$desc</div>{{endif}}
+<div class="widget{{if $class}} {{$class}}{{/if}}">
+ {{if $title}}<h3>{{$title}}</h3>{{/if}}
+ {{if $desc}}<div class="desc">{{$desc}}</div>{{/if}}
<ul>
- {{ for $items as $item }}
- <li class="tool"><a href="$item.url" class="{{ if $item.selected }}selected{{ endif }}">$item.label</a></li>
- {{ endfor }}
+ {{foreach $items as $item}}
+ <li class="tool"><a href="{{$item.url}}" class="{{if $item.selected}}selected{{/if}}">{{$item.label}}</a></li>
+ {{/foreach}}
</ul>
</div>
diff --git a/view/tpl/group_drop.tpl b/view/tpl/group_drop.tpl
index 2cbebbb8e..670136db7 100644..100755
--- a/view/tpl/group_drop.tpl
+++ b/view/tpl/group_drop.tpl
@@ -1,7 +1,7 @@
-<div class="group-delete-wrapper button" id="group-delete-wrapper-$id" >
- <a href="group/drop/$id?t=$form_security_token"
+<div class="group-delete-wrapper button" id="group-delete-wrapper-{{$id}}" >
+ <a href="group/drop/{{$id}}?t={{$form_security_token}}"
onclick="return confirmDelete();"
- id="group-delete-icon-$id"
+ id="group-delete-icon-{{$id}}"
class="icon drophide group-delete-icon"
onmouseover="imgbright(this);"
onmouseout="imgdull(this);" ></a>
diff --git a/view/tpl/group_edit.tpl b/view/tpl/group_edit.tpl
index 2fa2b1a55..e4fb987ac 100644..100755
--- a/view/tpl/group_edit.tpl
+++ b/view/tpl/group_edit.tpl
@@ -1,23 +1,23 @@
-<h2>$title</h2>
+<h2>{{$title}}</h2>
<div id="group-edit-wrapper" >
- <form action="group/$gid" id="group-edit-form" method="post" >
- <input type='hidden' name='form_security_token' value='$form_security_token'>
+ <form action="group/{{$gid}}" id="group-edit-form" method="post" >
+ <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
- {{ inc field_input.tpl with $field=$gname }}{{ endinc }}
- {{ if $drop }}$drop{{ endif }}
+ {{include file="field_input.tpl" field=$gname}}
+ {{if $drop}}{{$drop}}{{/if}}
<div id="group-edit-submit-wrapper" >
- <input type="submit" name="submit" value="$submit" >
+ <input type="submit" name="submit" value="{{$submit}}" >
</div>
<div id="group-edit-select-end" ></div>
</form>
</div>
-{{ if $groupeditor }}
+{{if $groupeditor}}
<div id="group-update-wrapper">
- {{ inc groupeditor.tpl }}{{ endinc }}
+ {{include file="groupeditor.tpl"}}
</div>
-{{ endif }}
-{{ if $desc }}<div id="group-edit-desc">$desc</div>{{ endif }}
+{{/if}}
+{{if $desc}}<div id="group-edit-desc">{{$desc}}</div>{{/if}}
diff --git a/view/tpl/group_selection.tpl b/view/tpl/group_selection.tpl
index 3809cb994..2223125ea 100644..100755
--- a/view/tpl/group_selection.tpl
+++ b/view/tpl/group_selection.tpl
@@ -1,8 +1,8 @@
<div class="field custom">
-<label for="group-selection" id="group-selection-lbl">$label</label>
+<label for="group-selection" id="group-selection-lbl">{{$label}}</label>
<select name="group-selection" id="group-selection" >
-{{ for $groups as $group }}
-<option value="$group.id" {{ if $group.selected }}selected="selected"{{ endif }} >$group.name</option>
-{{ endfor }}
+{{foreach $groups as $group}}
+<option value="{{$group.id}}" {{if $group.selected}}selected="selected"{{/if}} >{{$group.name}}</option>
+{{/foreach}}
</select>
</div>
diff --git a/view/tpl/group_side.tpl b/view/tpl/group_side.tpl
index ebb194d9c..ebc820530 100644..100755
--- a/view/tpl/group_side.tpl
+++ b/view/tpl/group_side.tpl
@@ -1,33 +1,33 @@
<div class="widget" id="group-sidebar">
-<h3>$title</h3>
+<h3>{{$title}}</h3>
<div id="sidebar-group-list">
<ul id="sidebar-group-ul">
- {{ for $groups as $group }}
+ {{foreach $groups as $group}}
<li class="sidebar-group-li">
- {{ if $group.cid }}
+ {{if $group.cid}}
<input type="checkbox"
- class="{{ if $group.selected }}ticked{{ else }}unticked {{ endif }} action"
- onclick="contactgroupChangeMember('$group.id','$group.cid');return true;"
- {{ if $group.ismember }}checked="checked"{{ endif }}
+ class="{{if $group.selected}}ticked{{else}}unticked {{/if}} action"
+ onclick="contactgroupChangeMember('{{$group.id}}','{{$group.cid}}');return true;"
+ {{if $group.ismember}}checked="checked"{{/if}}
/>
- {{ endif }}
- {{ if $group.edit }}
- <a class="groupsideedit" href="$group.edit.href" title="$edittext"><span id="edit-sidebar-group-element-$group.id" class="group-edit-icon iconspacer small-pencil"></span></a>
- {{ endif }}
- <a id="sidebar-group-element-$group.id" class="sidebar-group-element {{ if $group.selected }}group-selected{{ endif }}" href="$group.href">$group.text</a>
+ {{/if}}
+ {{if $group.edit}}
+ <a class="groupsideedit" href="{{$group.edit.href}}" title="{{$edittext}}"><span id="edit-sidebar-group-element-{{$group.id}}" class="group-edit-icon iconspacer small-pencil"></span></a>
+ {{/if}}
+ <a id="sidebar-group-element-{{$group.id}}" class="sidebar-group-element {{if $group.selected}}group-selected{{/if}}" href="{{$group.href}}">{{$group.text}}</a>
</li>
- {{ endfor }}
+ {{/foreach}}
</ul>
</div>
<div id="sidebar-new-group">
- <a href="group/new">$createtext</a>
+ <a href="group/new">{{$createtext}}</a>
</div>
- {{ if $ungrouped }}
+ {{if $ungrouped}}
<div id="sidebar-ungrouped">
- <a href="nogroup">$ungrouped</a>
+ <a href="nogroup">{{$ungrouped}}</a>
</div>
- {{ endif }}
+ {{/if}}
</div>
diff --git a/view/tpl/groupeditor.tpl b/view/tpl/groupeditor.tpl
index 755985eb3..c79bb0a2a 100644..100755
--- a/view/tpl/groupeditor.tpl
+++ b/view/tpl/groupeditor.tpl
@@ -1,16 +1,16 @@
<div id="group">
-<h3>$groupeditor.label_members</h3>
+<h3>{{$groupeditor.label_members}}</h3>
<div id="group-members" class="contact_list">
-{{ for $groupeditor.members as $c}} $c {{ endfor }}
+{{foreach $groupeditor.members as $c}} {{$c}} {{/foreach}}
</div>
<div id="group-members-end"></div>
<hr id="group-separator" />
</div>
<div id="contacts">
-<h3>$groupeditor.label_contacts</h3>
+<h3>{{$groupeditor.label_contacts}}</h3>
<div id="group-all-contacts" class="contact_list">
-{{ for $groupeditor.contacts as $m}} $m {{ endfor }}
+{{foreach $groupeditor.contacts as $m}} {{$m}} {{/foreach}}
</div>
<div id="group-all-contacts-end"></div>
</div>
diff --git a/view/tpl/head.tpl b/view/tpl/head.tpl
index 632ab21ca..4211eeab3 100644..100755
--- a/view/tpl/head.tpl
+++ b/view/tpl/head.tpl
@@ -1,28 +1,28 @@
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-<base href="$baseurl/" />
-<meta name="generator" content="$generator" />
+<base href="{{$baseurl}}/" />
+<meta name="generator" content="{{$generator}}" />
<!--[if IE]>
<script src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
-$head_css
+{{$head_css}}
-$js_strings
+{{$js_strings}}
-$head_js
+{{$head_js}}
-<link rel="shortcut icon" href="$baseurl/images/red.png" />
+<link rel="shortcut icon" href="{{$icon}}" />
<link rel="search"
- href="$baseurl/opensearch"
+ href="{{$baseurl}}/opensearch"
type="application/opensearchdescription+xml"
- title="Search in Friendica" />
+ title="Search in Red" />
<script>
- var updateInterval = $update_interval;
- var localUser = {{ if $local_user }}$local_user{{ else }}false{{ endif }};
+ var updateInterval = {{$update_interval}};
+ var localUser = {{if $local_user}}{{$local_user}}{{else}}false{{/if}};
</script>
diff --git a/view/tpl/hide_comments.tpl b/view/tpl/hide_comments.tpl
index 55ee9dd7b..f4ed9c552 100644..100755
--- a/view/tpl/hide_comments.tpl
+++ b/view/tpl/hide_comments.tpl
@@ -1,4 +1,4 @@
<div class="hide-comments-outer">
-<span id="hide-comments-total-$id" class="hide-comments-total">$num_comments</span> <span id="hide-comments-$id" class="hide-comments fakelink" onclick="showHideComments($id);">$hide_text</span>
+<span id="hide-comments-total-{{$id}}" class="hide-comments-total">{{$num_comments}}</span> <span id="hide-comments-{{$id}}" class="hide-comments fakelink" onclick="showHideComments({{$id}});">{{$hide_text}}</span>
</div>
-<div id="collapsed-comments-$id" class="collapsed-comments" style="display: $display;">
+<div id="collapsed-comments-{{$id}}" class="collapsed-comments" style="display: {{$display}};">
diff --git a/view/tpl/install.tpl b/view/tpl/install.tpl
index b3a5f46ff..0e77aa97b 100644..100755
--- a/view/tpl/install.tpl
+++ b/view/tpl/install.tpl
@@ -1,10 +1,9 @@
+<h1>{{$title}}</h1>
+<h2>{{$pass}}</h2>
-<h1>$title</h1>
-<h2>$pass</h2>
+{{if $status}}
+<h3 class="error-message">{{$status}}</h3>
+{{/if}}
-{{ if $status }}
-<h3 class="error-message">$status</h3>
-{{ endif }}
-
-$text
+{{$text}}
diff --git a/view/tpl/install_checks.tpl b/view/tpl/install_checks.tpl
index 76287c4a3..2068df916 100644..100755
--- a/view/tpl/install_checks.tpl
+++ b/view/tpl/install_checks.tpl
@@ -1,24 +1,24 @@
-<h1>$title</h1>
-<h2>$pass</h2>
-<form action="$baseurl/index.php?q=setup" method="post">
+<h1>{{$title}}</h1>
+<h2>{{$pass}}</h2>
+<form action="{{$baseurl}}/index.php?q=setup" method="post">
<table>
-{{ for $checks as $check }}
- <tr><td>$check.title </td><td><span class="icon s22 {{if $check.status}}on{{else}}{{if $check.required}}off{{else}}yellow{{endif}}{{endif}}"></td><td>{{if $check.required}}(required){{endif}}</td></tr>
- {{if $check.help }}
- <tr><td colspan="3"><blockquote>$check.help</blockquote></td></tr>
- {{endif}}
-{{ endfor }}
+{{foreach $checks as $check}}
+ <tr><td>{{$check.title}} </td><td><span class="icon s22 {{if $check.status}}on{{else}}{{if $check.required}}off{{else}}yellow{{/if}}{{/if}}"></td><td>{{if $check.required}}(required){{/if}}</td></tr>
+ {{if $check.help}}
+ <tr><td colspan="3"><blockquote>{{$check.help}}</blockquote></td></tr>
+ {{/if}}
+{{/foreach}}
</table>
-{{ if $phpath }}
- <input type="hidden" name="phpath" value="$phpath">
-{{ endif }}
+{{if $phpath}}
+ <input type="hidden" name="phpath" value="{{$phpath}}">
+{{/if}}
-{{ if $passed }}
+{{if $passed}}
<input type="hidden" name="pass" value="2">
- <input type="submit" value="$next">
-{{ else }}
+ <input type="submit" value="{{$next}}">
+{{else}}
<input type="hidden" name="pass" value="1">
- <input type="submit" value="$reload">
-{{ endif }}
+ <input type="submit" value="{{$reload}}">
+{{/if}}
</form>
diff --git a/view/tpl/install_db.tpl b/view/tpl/install_db.tpl
index dd8ba1302..3968d2a54 100644..100755
--- a/view/tpl/install_db.tpl
+++ b/view/tpl/install_db.tpl
@@ -1,30 +1,30 @@
-
-<h1>$title</h1>
-<h2>$pass</h2>
+<h1>{{$title}}</h1>
+<h2>{{$pass}}</h2>
<p>
-$info_01<br>
-$info_02<br>
-$info_03
+{{$info_01}}<br>
+{{$info_02}}<br>
+{{$info_03}}
</p>
-{{ if $status }}
-<h3 class="error-message">$status</h3>
-{{ endif }}
+{{if $status}}
+<h3 class="error-message">{{$status}}</h3>
+{{/if}}
-<form id="install-form" action="$baseurl/setup" method="post">
+<form id="install-form" action="{{$baseurl}}/setup" method="post">
-<input type="hidden" name="phpath" value="$phpath" />
+<input type="hidden" name="phpath" value="{{$phpath}}" />
<input type="hidden" name="pass" value="3" />
-{{ inc field_input.tpl with $field=$dbhost }}{{endinc}}
-{{ inc field_input.tpl with $field=$dbuser }}{{endinc}}
-{{ inc field_password.tpl with $field=$dbpass }}{{endinc}}
-{{ inc field_input.tpl with $field=$dbdata }}{{endinc}}
+{{include file="field_input.tpl" field=$dbhost}}
+{{include file="field_input.tpl" field=$dbport}}
+{{include file="field_input.tpl" field=$dbuser}}
+{{include file="field_password.tpl" field=$dbpass}}
+{{include file="field_input.tpl" field=$dbdata}}
-<input id="install-submit" type="submit" name="submit" value="$submit" />
+<input id="install-submit" type="submit" name="submit" value="{{$submit}}" />
</form>
diff --git a/view/tpl/install_settings.tpl b/view/tpl/install_settings.tpl
index ba39b99c5..d6fc66c87 100644..100755
--- a/view/tpl/install_settings.tpl
+++ b/view/tpl/install_settings.tpl
@@ -1,27 +1,27 @@
+<h1>{{$title}}</h1>
+<h2>{{$pass}}</h2>
-<h1>$title</h1>
-<h2>$pass</h2>
+{{if $status}}
+<h3 class="error-message">{{$status}}</h3>
+{{/if}}
-{{ if $status }}
-<h3 class="error-message">$status</h3>
-{{ endif }}
+<form id="install-form" action="{{$baseurl}}/setup" method="post">
-<form id="install-form" action="$baseurl/setup" method="post">
-
-<input type="hidden" name="phpath" value="$phpath" />
-<input type="hidden" name="dbhost" value="$dbhost" />
-<input type="hidden" name="dbuser" value="$dbuser" />
-<input type="hidden" name="dbpass" value="$dbpass" />
-<input type="hidden" name="dbdata" value="$dbdata" />
+<input type="hidden" name="phpath" value="{{$phpath}}" />
+<input type="hidden" name="dbhost" value="{{$dbhost}}" />
+<input type="hidden" name="dbport" value="{{$dbport}}" />
+<input type="hidden" name="dbuser" value="{{$dbuser}}" />
+<input type="hidden" name="dbpass" value="{{$dbpass}}" />
+<input type="hidden" name="dbdata" value="{{$dbdata}}" />
<input type="hidden" name="pass" value="4" />
-{{ inc field_input.tpl with $field=$adminmail }}{{endinc}}
-{{ inc field_input.tpl with $field=$siteurl }}{{endinc}}
+{{include file="field_input.tpl" field=$adminmail}}
+{{include file="field_input.tpl" field=$siteurl}}
-$timezone
+{{$timezone}}
-<input id="install-submit" type="submit" name="submit" value="$submit" />
+<input id="install-submit" type="submit" name="submit" value="{{$submit}}" />
</form>
diff --git a/view/tpl/intros.tpl b/view/tpl/intros.tpl
index 6d1f1baa0..a4aed3bb8 100644..100755
--- a/view/tpl/intros.tpl
+++ b/view/tpl/intros.tpl
@@ -1,18 +1,17 @@
+<div class="intro-wrapper" id="intro-{{$contact_id}}" >
-<div class="intro-wrapper" id="intro-$contact_id" >
-
-<div class="intro-fullname" id="intro-fullname-$contact_id" >$fullname</div>
-<a class="intro-url-link" id="intro-url-link-$contact_id" href="$url" ><img id="photo-$contact_id" class="intro-photo" src="$photo" width="175" height=175" title="$fullname" alt="$fullname" /></a>
-<div class="intro-wrapper-end" id="intro-wrapper-end-$contact_id"></div>
+<div class="intro-fullname" id="intro-fullname-{{$contact_id}}" >{{$fullname}}</div>
+<a class="intro-url-link" id="intro-url-link-{{$contact_id}}" href="{{$url}}" ><img id="photo-{{$contact_id}}" class="intro-photo" src="{{$photo}}" width="175" height=175" title="{{$fullname}}" alt="{{$fullname}}" /></a>
+<div class="intro-wrapper-end" id="intro-wrapper-end-{{$contact_id}}"></div>
<form class="intro-form" action="intro" method="post">
-<input class="intro-submit-ignore" type="submit" name="submit" value="$ignore" />
-<input class="intro-submit-block" type="submit" name="submit" value="$block" />
-<input class="intro-submit-discard" type="submit" name="submit" value="$discard" />
-{{inc field_checkbox.tpl with $field=$hidden }}{{endinc}}
-{# {{ inc field_checkbox.tpl with $field=$activity }}{{endinc}} #}
-<input type="hidden" name="contact_id" value="$contact_id" >
+<input class="intro-submit-ignore" type="submit" name="submit" value="{{$ignore}}" />
+<input class="intro-submit-block" type="submit" name="submit" value="{{$block}}" />
+<input class="intro-submit-discard" type="submit" name="submit" value="{{$discard}}" />
+{{include file="field_checkbox.tpl" field=$hidden}}
+{{* {{include file="field_checkbox.tpl" field=$activity}} *}}
+<input type="hidden" name="contact_id" value="{{$contact_id}}" >
-<input class="intro-submit-approve" type="submit" name="submit" value="$approve" />
+<input class="intro-submit-approve" type="submit" name="submit" value="{{$approve}}" />
</form>
</div>
<div class="intro-end"></div>
diff --git a/view/tpl/intros_header.tpl b/view/tpl/intros_header.tpl
index 17afd0cbd..15096c7f8 100644..100755
--- a/view/tpl/intros_header.tpl
+++ b/view/tpl/intros_header.tpl
@@ -1 +1 @@
-<h3>$title</h3>
+<h3>{{$title}}</h3>
diff --git a/view/tpl/invite.tpl b/view/tpl/invite.tpl
index e00d27d4a..2b7ab9cfb 100644..100755
--- a/view/tpl/invite.tpl
+++ b/view/tpl/invite.tpl
@@ -1,13 +1,13 @@
<form action="invite" method="post" id="invite-form" >
-<input type='hidden' name='form_security_token' value='$form_security_token'>
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
<div id="invite-wrapper">
-<h3>$invite</h3>
+<h3>{{$invite}}</h3>
<div id="invite-recipient-text">
-$addr_text
+{{$addr_text}}
</div>
<div id="invite-recipient-textarea">
@@ -15,15 +15,15 @@ $addr_text
</div>
<div id="invite-message-text">
-$msg_text
+{{$msg_text}}
</div>
<div id="invite-message-textarea">
-<textarea id="invite-message" name="message" rows="10" cols="72" >$default_message</textarea>
+<textarea id="invite-message" name="message" rows="10" cols="72" >{{$default_message}}</textarea>
</div>
<div id="invite-submit-wrapper">
-<input type="submit" name="submit" value="$submit" />
+<input type="submit" name="submit" value="{{$submit}}" />
</div>
</div>
diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl
index e4fb00b7a..810ec866f 100644..100755
--- a/view/tpl/jot-header.tpl
+++ b/view/tpl/jot-header.tpl
@@ -1,21 +1,20 @@
-
<script language="javascript" type="text/javascript">
var editor=false;
var textlen = 0;
-var plaintext = '$editselect';
+var plaintext = '{{$editselect}}';
function initEditor(cb){
if (editor==false){
- $("#profile-jot-text-loading").show();
+ $("#profile-jot-text-loading").spin('small');
if(plaintext == 'none') {
- $("#profile-jot-text-loading").hide();
+ $("#profile-jot-text-loading").spin(false);
$("#profile-jot-text").css({ 'height': 200, 'color': '#000' });
$("#profile-jot-text").contact_autocomplete(baseurl+"/acl");
editor = true;
- $("a#jot-perms-icon").fancybox({
- 'transitionIn' : 'elastic',
- 'transitionOut' : 'elastic'
+ $("a#jot-perms-icon").colorbox({
+ 'inline' : true,
+ 'transition' : 'elastic'
});
$(".jothidden").show();
if (typeof cb!="undefined") cb();
@@ -24,7 +23,7 @@ function initEditor(cb){
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
- editor_selector: $editselect,
+ editor_selector: {{$editselect}},
auto_focus: "profile-jot-text",
plugins : "bbcode,paste,autoresize, inlinepopups",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
@@ -42,7 +41,7 @@ function initEditor(cb){
force_br_newlines : true,
forced_root_block : '',
convert_urls: false,
- content_css: "$baseurl/view/custom_tinymce.css",
+ content_css: "{{$baseurl}}/view/custom_tinymce.css",
theme_advanced_path : false,
file_browser_callback : "fcFileBrowser",
setup : function(ed) {
@@ -74,29 +73,11 @@ function initEditor(cb){
$('#profile-jot-desc').html('&nbsp;');
}
- //Character count
-
- if(textlen <= 140) {
- $('#character-counter').removeClass('red');
- $('#character-counter').removeClass('orange');
- $('#character-counter').addClass('grey');
- }
- if((textlen > 140) && (textlen <= 420)) {
- $('#character-counter').removeClass('grey');
- $('#character-counter').removeClass('red');
- $('#character-counter').addClass('orange');
- }
- if(textlen > 420) {
- $('#character-counter').removeClass('grey');
- $('#character-counter').removeClass('orange');
- $('#character-counter').addClass('red');
- }
- $('#character-counter').text(textlen);
});
ed.onInit.add(function(ed) {
ed.pasteAsPlainText = true;
- $("#profile-jot-text-loading").hide();
+ $("#profile-jot-text-loading").spin(false);
$(".jothidden").show();
if (typeof cb!="undefined") cb();
});
@@ -106,10 +87,10 @@ function initEditor(cb){
editor = true;
// setup acl popup
- $("a#jot-perms-icon").fancybox({
- 'transitionIn' : 'elastic',
- 'transitionOut' : 'elastic'
- });
+ $("a#jot-perms-icon").colorbox({
+ 'inline' : true,
+ 'transition' : 'elastic'
+ });
} else {
if (typeof cb!="undefined") cb();
}
@@ -122,9 +103,9 @@ function enableOnUser(){
}
</script>
-<script type="text/javascript" src="$baseurl/js/ajaxupload.js" ></script>
+<script type="text/javascript" src="{{$baseurl}}/js/ajaxupload.js" ></script>
<script>
- var ispublic = '$ispublic';
+ var ispublic = '{{$ispublic}}';
$(document).ready(function() {
@@ -134,23 +115,23 @@ function enableOnUser(){
var uploader = new window.AjaxUpload(
'wall-image-upload',
- { action: '$baseurl/wall_upload/$nickname',
+ { action: '{{$baseurl}}/wall_upload/{{$nickname}}',
name: 'userfile',
- onSubmit: function(file,ext) { $('#profile-rotator').show(); },
+ onSubmit: function(file,ext) { $('#profile-rotator').spin('tiny'); },
onComplete: function(file,response) {
addeditortext(response);
- $('#profile-rotator').hide();
+ $('#profile-rotator').spin(false);
}
}
);
var file_uploader = new window.AjaxUpload(
'wall-file-upload',
- { action: '$baseurl/wall_attach/$nickname',
+ { action: '{{$baseurl}}/wall_attach/{{$nickname}}',
name: 'userfile',
- onSubmit: function(file,ext) { $('#profile-rotator').show(); },
+ onSubmit: function(file,ext) { $('#profile-rotator').spin('tiny'); },
onComplete: function(file,response) {
addeditortext(response);
- $('#profile-rotator').hide();
+ $('#profile-rotator').spin(false);
}
}
);
@@ -177,26 +158,26 @@ function enableOnUser(){
}
function jotGetLink() {
- reply = prompt("$linkurl");
+ reply = prompt("{{$linkurl}}");
if(reply && reply.length) {
reply = bin2hex(reply);
- $('#profile-rotator').show();
- $.get('$baseurl/parse_url?binurl=' + reply, function(data) {
+ $('#profile-rotator').spin('tiny');
+ $.get('{{$baseurl}}/parse_url?binurl=' + reply, function(data) {
addeditortext(data);
- $('#profile-rotator').hide();
+ $('#profile-rotator').spin(false);
});
}
}
function jotVideoURL() {
- reply = prompt("$vidurl");
+ reply = prompt("{{$vidurl}}");
if(reply && reply.length) {
addeditortext('[video]' + reply + '[/video]');
}
}
function jotAudioURL() {
- reply = prompt("$audurl");
+ reply = prompt("{{$audurl}}");
if(reply && reply.length) {
addeditortext('[audio]' + reply + '[/audio]');
}
@@ -204,7 +185,7 @@ function enableOnUser(){
function jotGetLocation() {
- reply = prompt("$whereareu", $('#jot-location').val());
+ reply = prompt("{{$whereareu}}", $('#jot-location').val());
if(reply && reply.length) {
$('#jot-location').val(reply);
}
@@ -213,12 +194,12 @@ function enableOnUser(){
function jotShare(id) {
if ($('#jot-popup').length != 0) $('#jot-popup').show();
- $('#like-rotator-' + id).show();
- $.get('$baseurl/share/' + id, function(data) {
+ $('#like-rotator-' + id).spin('tiny');
+ $.get('{{$baseurl}}/share/' + id, function(data) {
if (!editor) $("#profile-jot-text").val("");
initEditor(function(){
addeditortext(data);
- $('#like-rotator-' + id).hide();
+ $('#like-rotator-' + id).spin(false);
$(window).scrollTop(0);
});
@@ -237,19 +218,19 @@ function enableOnUser(){
event.preventDefault();
if(reply && reply.length) {
reply = bin2hex(reply);
- $('#profile-rotator').show();
- $.get('$baseurl/parse_url?binurl=' + reply, function(data) {
+ $('#profile-rotator').spin('tiny');
+ $.get('{{$baseurl}}/parse_url?binurl=' + reply, function(data) {
if (!editor) $("#profile-jot-text").val("");
initEditor(function(){
addeditortext(data);
- $('#profile-rotator').hide();
+ $('#profile-rotator').spin(false);
});
});
}
}
function itemTag(id) {
- reply = prompt("$term");
+ reply = prompt("{{$term}}");
if(reply && reply.length) {
reply = reply.replace('#','');
if(reply.length) {
@@ -257,7 +238,7 @@ function enableOnUser(){
commentBusy = true;
$('body').css('cursor', 'wait');
- $.get('$baseurl/tagger/' + id + '?term=' + reply);
+ $.get('{{$baseurl}}/tagger/' + id + '?term=' + reply);
if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,3000);
liking = 1;
@@ -270,7 +251,7 @@ function enableOnUser(){
var bordercolor = $("input").css("border-color");
$.get('filer/', function(data){
- $.fancybox(data);
+ $.colorbox({html:data});
$("#id_term").keypress(function(){
$(this).css("border-color",bordercolor);
})
@@ -284,11 +265,11 @@ function enableOnUser(){
if(reply && reply.length) {
commentBusy = true;
$('body').css('cursor', 'wait');
- $.get('$baseurl/filer/' + id + '?term=' + reply, NavUpdate);
+ $.get('{{$baseurl}}/filer/' + id + '?term=' + reply, NavUpdate);
// if(timer) clearTimeout(timer);
// timer = setTimeout(NavUpdate,3000);
liking = 1;
- $.fancybox.close();
+ $.colorbox.close();
} else {
$("#id_term").css("border-color","#FF0000");
}
@@ -312,7 +293,7 @@ function enableOnUser(){
tinyMCE.execCommand('mceInsertRawHTML',false,data);
}
- $geotag
+ {{$geotag}}
</script>
diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl
index 29c420900..8092a7047 100644..100755
--- a/view/tpl/jot.tpl
+++ b/view/tpl/jot.tpl
@@ -1,79 +1,78 @@
-
<div id="profile-jot-wrapper" >
- <div id="profile-jot-banner-wrapper">
- <div id="profile-jot-desc" >&nbsp;</div>
- <div id="character-counter" class="grey"></div>
- </div>
- <div id="profile-jot-banner-end"></div>
- <form id="profile-jot-form" action="$action" method="post" >
- <input type="hidden" name="type" value="$ptyp" />
- <input type="hidden" name="profile_uid" value="$profile_uid" />
- <input type="hidden" name="return" value="$return_path" />
- <input type="hidden" name="location" id="jot-location" value="$defloc" />
+ <form id="profile-jot-form" action="{{$action}}" method="post" >
+ <input type="hidden" name="type" value="{{$ptyp}}" />
+ <input type="hidden" name="profile_uid" value="{{$profile_uid}}" />
+ <input type="hidden" name="return" value="{{$return_path}}" />
+ <input type="hidden" name="location" id="jot-location" value="{{$defloc}}" />
<input type="hidden" name="coord" id="jot-coord" value="" />
- <input type="hidden" name="post_id" value="$post_id" />
+ <input type="hidden" name="post_id" value="{{$post_id}}" />
+ <input type="hidden" name="webpage" value="{{$webpage}}" />
<input type="hidden" name="preview" id="jot-preview" value="0" />
- <div id="jot-title-wrap"><input name="title" id="jot-title" type="text" placeholder="$placeholdertitle" value="$title" class="jothidden" style="display:none"></div>
- {{ if $catsenabled }}
- <div id="jot-category-wrap"><input name="category" id="jot-category" type="text" placeholder="$placeholdercategory" value="$category" class="jothidden" style="display:none" /></div>
- {{ endif }}
+ <div id="jot-title-wrap"><input name="title" id="jot-title" type="text" placeholder="{{$placeholdertitle}}" value="{{$title}}" class="jothidden" style="display:none"></div>
+ {{if $catsenabled}}
+ <div id="jot-category-wrap"><input name="category" id="jot-category" type="text" placeholder="{{$placeholdercategory}}" value="{{$category}}" class="jothidden" style="display:none" /></div>
+ {{/if}}
+ {{if $webpage}}
+ <div id="jot-pagetitle-wrap"><input name="pagetitle" id="jot-pagetitle" type="text" placeholder="{{$placeholdpagetitle}}" value="{{$pagetitle}}" class="jothidden" style="display:none" /></div>
+ {{/if}}
<div id="jot-text-wrap">
- <img id="profile-jot-text-loading" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
- <textarea rows="5" cols="64" class="profile-jot-text" id="profile-jot-text" name="body" >{{ if $content }}$content{{ else }}$share{{ endif }}</textarea>
+ <textarea rows="5" cols="64" class="profile-jot-text" id="profile-jot-text" name="body" >{{if $content}}{{$content}}{{else}}{{$share}}{{/if}}</textarea>
</div>
+ <div id="profile-jot-text-loading"></div>
<div id="profile-jot-submit-wrapper" class="jothidden">
- <input type="submit" id="profile-jot-submit" name="submit" value="$share" />
+ <input type="submit" id="profile-jot-submit" name="submit" value="{{$share}}" />
- <div id="profile-upload-wrapper" style="display: $visitor;" >
- <div id="wall-image-upload-div" ><a href="#" onclick="return false;" id="wall-image-upload" class="icon camera" title="$upload"></a></div>
+ <div id="profile-upload-wrapper" style="display: {{$visitor}};" >
+ <div id="wall-image-upload-div" ><a href="#" onclick="return false;" id="wall-image-upload" class="icon camera" title="{{$upload}}"></a></div>
</div>
- <div id="profile-attach-wrapper" style="display: $visitor;" >
- <div id="wall-file-upload-div" ><a href="#" onclick="return false;" id="wall-file-upload" class="icon attach" title="$attach"></a></div>
+ <div id="profile-attach-wrapper" style="display: {{$visitor}};" >
+ <div id="wall-file-upload-div" ><a href="#" onclick="return false;" id="wall-file-upload" class="icon attach" title="{{$attach}}"></a></div>
</div>
- <div id="profile-link-wrapper" style="display: $visitor;" ondragenter="linkdropper(event);" ondragover="linkdropper(event);" ondrop="linkdrop(event);" >
- <a id="profile-link" class="icon link" title="$weblink" ondragenter="return linkdropper(event);" ondragover="return linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;"></a>
+ <div id="profile-link-wrapper" style="display: {{$visitor}};" ondragenter="linkdropper(event);" ondragover="linkdropper(event);" ondrop="linkdrop(event);" >
+ <a id="profile-link" class="icon link" title="{{$weblink}}" ondragenter="return linkdropper(event);" ondragover="return linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;"></a>
</div>
- <div id="profile-video-wrapper" style="display: $visitor;" >
- <a id="profile-video" class="icon video" title="$video" onclick="jotVideoURL();return false;"></a>
+ <div id="profile-video-wrapper" style="display: {{$visitor}};" >
+ <a id="profile-video" class="icon video" title="{{$video}}" onclick="jotVideoURL();return false;"></a>
</div>
- <div id="profile-audio-wrapper" style="display: $visitor;" >
- <a id="profile-audio" class="icon audio" title="$audio" onclick="jotAudioURL();return false;"></a>
+ <div id="profile-audio-wrapper" style="display: {{$visitor}};" >
+ <a id="profile-audio" class="icon audio" title="{{$audio}}" onclick="jotAudioURL();return false;"></a>
</div>
- <div id="profile-location-wrapper" style="display: $visitor;" >
- <a id="profile-location" class="icon globe" title="$setloc" onclick="jotGetLocation();return false;"></a>
+ <div id="profile-location-wrapper" style="display: {{$visitor}};" >
+ <a id="profile-location" class="icon globe" title="{{$setloc}}" onclick="jotGetLocation();return false;"></a>
</div>
<div id="profile-nolocation-wrapper" style="display: none;" >
- <a id="profile-nolocation" class="icon noglobe" title="$noloc" onclick="jotClearLocation();return false;"></a>
- </div>
+ <a id="profile-nolocation" class="icon noglobe" title="{{$noloc}}" onclick="jotClearLocation();return false;"></a>
+ </div>
+ <div id="profile-rotator-wrapper" style="display: {{$visitor}};" >
+ <div id="profile-rotator"></div>
+ </div>
- <div id="profile-jot-perms" class="profile-jot-perms" style="display: $pvisit;" >
- <a href="#profile-jot-acl-wrapper" id="jot-perms-icon" class="icon $lockstate" title="$permset" ></a>$bang
+ {{if $showacl}}
+ <div id="profile-jot-perms" class="profile-jot-perms" style="display: {{$pvisit}};" >
+ <a href="#profile-jot-acl-wrapper" id="jot-perms-icon" class="icon {{$lockstate}}" title="{{$permset}}" ></a>{{$bang}}
</div>
+ {{/if}}
- {{ if $preview }}<span onclick="preview_post();" id="jot-preview-link" class="fakelink">$preview</span>{{ endif }}
+ {{if $preview}}<span onclick="preview_post();" id="jot-preview-link" class="fakelink">{{$preview}}</span>{{/if}}
<div id="profile-jot-perms-end"></div>
<div id="profile-jot-plugin-wrapper">
- $jotplugins
+ {{$jotplugins}}
</div>
- <div id="profile-rotator-wrapper" style="display: $visitor;" >
- <img id="profile-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
- </div>
-
<div id="jot-preview-content" style="display:none;"></div>
<div style="display: none;">
<div id="profile-jot-acl-wrapper" style="width:auto;height:auto;overflow:auto;">
- $acl
+ {{$acl}}
<hr style="clear:both"/>
- $jotnets
+ {{$jotnets}}
</div>
</div>
@@ -83,4 +82,4 @@
<div id="profile-jot-end"></div>
</form>
</div>
- {{ if $content }}<script>initEditor();</script>{{ endif }}
+ {{if $content}}<script>initEditor();</script>{{/if}}
diff --git a/view/tpl/jot_geotag.tpl b/view/tpl/jot_geotag.tpl
index b0f71e73b..7a398b612 100644..100755
--- a/view/tpl/jot_geotag.tpl
+++ b/view/tpl/jot_geotag.tpl
@@ -1,4 +1,3 @@
-
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
$('#jot-coord').val(position.coords.latitude + ' ' + position.coords.longitude);
diff --git a/view/tpl/js_strings.tpl b/view/tpl/js_strings.tpl
index babb1b219..b61c69b90 100644..100755
--- a/view/tpl/js_strings.tpl
+++ b/view/tpl/js_strings.tpl
@@ -1,33 +1,32 @@
-
<script>
var aStr = {
- 'delitem' : '$delitem',
- 'comment' : '$comment',
- 'showmore' : '$showmore',
- 'showfewer' : '$showfewer',
- 'pwshort' : '$pwshort',
- 'pwnomatch' : '$pwnomatch',
- 'everybody' : '$everybody',
+ 'delitem' : '{{$delitem}}',
+ 'comment' : '{{$comment}}',
+ 'showmore' : '{{$showmore}}',
+ 'showfewer' : '{{$showfewer}}',
+ 'pwshort' : '{{$pwshort}}',
+ 'pwnomatch' : '{{$pwnomatch}}',
+ 'everybody' : '{{$everybody}}',
- 't01' : $t01,
- 't02' : $t02,
- 't03' : '$t03',
- 't04' : '$t04',
- 't05' : '$t05',
- 't06' : '$t06',
- 't07' : '$t07',
- 't08' : '$t08',
- 't09' : '$t09',
- 't10' : '$t10',
- 't11' : '$t11',
- 't12' : '$t12',
- 't13' : '$t13',
- 't14' : '$t14',
- 't15' : '$t15',
- 't16' : '$t16',
- 't17' : '$t17',
+ 't01' : {{$t01}},
+ 't02' : {{$t02}},
+ 't03' : '{{$t03}}',
+ 't04' : '{{$t04}}',
+ 't05' : '{{$t05}}',
+ 't06' : '{{$t06}}',
+ 't07' : '{{$t07}}',
+ 't08' : '{{$t08}}',
+ 't09' : '{{$t09}}',
+ 't10' : '{{$t10}}',
+ 't11' : '{{$t11}}',
+ 't12' : '{{$t12}}',
+ 't13' : '{{$t13}}',
+ 't14' : '{{$t14}}',
+ 't15' : '{{$t15}}',
+ 't16' : '{{$t16}}',
+ 't17' : '{{$t17}}',
};
</script>
diff --git a/view/tpl/lang_selector.tpl b/view/tpl/lang_selector.tpl
index e777a0a86..945cbf51e 100644..100755
--- a/view/tpl/lang_selector.tpl
+++ b/view/tpl/lang_selector.tpl
@@ -1,10 +1,10 @@
-<div id="lang-select-icon" class="icon s22 language" title="$title" onclick="openClose('language-selector');" ></div>
+<div id="lang-select-icon" class="icon s22 language" title="{{$title}}" onclick="openClose('language-selector');" ></div>
<div id="language-selector" style="display: none;" >
<form action="#" method="post" >
<select name="system_language" onchange="this.form.submit();" >
- {{ for $langs.0 as $v=>$l }}
- <option value="$v" {{if $v==$langs.1}}selected="selected"{{endif}}>$l</option>
- {{ endfor }}
+ {{foreach $langs.0 as $v=>$l}}
+ <option value="{{$v}}" {{if $v==$langs.1}}selected="selected"{{/if}}>{{$l}}</option>
+ {{/foreach}}
</select>
</form>
</div>
diff --git a/view/tpl/like_noshare.tpl b/view/tpl/like_noshare.tpl
index 2651ea1f8..d2cf0f742 100644..100755
--- a/view/tpl/like_noshare.tpl
+++ b/view/tpl/like_noshare.tpl
@@ -1,5 +1,5 @@
-<div class="wall-item-like-buttons" id="wall-item-like-buttons-$id">
- <a href="#" class="icon like" title="$likethis" onclick="dolike($id,'like'); return false"></a>
- <a href="#" class="icon dislike" title="$nolike" onclick="dolike($id,'dislike'); return false"></a>
- <img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
+<div class="wall-item-like-buttons" id="wall-item-like-buttons-{{$id}}">
+ <a href="#" class="icon like" title="{{$likethis}}" onclick="dolike({{$id}},'like'); return false"></a>
+ <a href="#" class="icon dislike" title="{{$nolike}}" onclick="dolike({{$id}},'dislike'); return false"></a>
+ <div id="like-rotator-{{$id}}" class="like-rotator"></div>
</div>
diff --git a/view/tpl/login.tpl b/view/tpl/login.tpl
index 149c46e4c..3ca118590 100644..100755
--- a/view/tpl/login.tpl
+++ b/view/tpl/login.tpl
@@ -1,31 +1,30 @@
-
-<form action="$dest_url" id="$form_id" method="post" >
+<form action="{{$dest_url}}" id="{{$form_id}}" method="post" >
<input type="hidden" name="auth-params" value="login" />
<div id="login_standard">
- {{ inc field_input.tpl with $field=$lname }}{{ endinc }}
- {{ inc field_password.tpl with $field=$lpassword }}{{ endinc }}
+ {{include file="field_input.tpl" field=$lname}}
+ {{include file="field_password.tpl" field=$lpassword}}
</div>
<div id="login-extra-links">
- {{ if $register }}<a href="$register.link" title="$register.title" id="register-link">$register.desc</a>{{ endif }}
- <a href="lostpass" title="$lostpass" id="lost-password-link" >$lostlink</a>
+ {{if $register}}<a href="{{$register.link}}" title="{{$register.title}}" id="register-link">{{$register.desc}}</a>{{/if}}
+ <a href="lostpass" title="{{$lostpass}}" id="lost-password-link" >{{$lostlink}}</a>
</div>
- {{ inc field_checkbox.tpl with $field=$remember }}{{ endinc }}
+ {{include file="field_checkbox.tpl" field=$remember}}
<div id="login-standard-end"></div>
<div id="login-submit-wrapper" >
- <input type="submit" name="submit" id="login-submit-button" value="$login" />
+ <input type="submit" name="submit" id="login-submit-button" value="{{$login}}" />
</div>
- {{ for $hiddens as $k=>$v }}
- <input type="hidden" name="$k" value="$v" />
- {{ endfor }}
+ {{foreach $hiddens as $k=>$v}}
+ <input type="hidden" name="{{$k}}" value="{{$v}}" />
+ {{/foreach}}
</form>
-<script type="text/javascript"> $(document).ready(function() { $("#id_$lname.0").focus();} );</script>
+<script type="text/javascript"> $(document).ready(function() { $("#id_{{$lname.0}}").focus();} );</script>
diff --git a/view/tpl/logout.tpl b/view/tpl/logout.tpl
index efc971df8..7548ed196 100644..100755
--- a/view/tpl/logout.tpl
+++ b/view/tpl/logout.tpl
@@ -1,6 +1,6 @@
-<form action="$dest_url" method="post" >
+<form action="{{$dest_url}}" method="post" >
<div class="logout-wrapper">
<input type="hidden" name="auth-params" value="logout" />
-<input type="submit" name="submit" id="logout-button" value="$logout" />
+<input type="submit" name="submit" id="logout-button" value="{{$logout}}" />
</div>
</form>
diff --git a/view/tpl/lostpass.tpl b/view/tpl/lostpass.tpl
index cd3644157..f6fdb28d7 100644..100755
--- a/view/tpl/lostpass.tpl
+++ b/view/tpl/lostpass.tpl
@@ -1,17 +1,17 @@
-<h3>$title</h3>
+<h3>{{$title}}</h3>
<p id="lostpass-desc">
-$desc
+{{$desc}}
</p>
<form action="lostpass" method="post" >
<div id="login-name-wrapper">
- <label for="login-name" id="label-login-name">$name</label>
+ <label for="login-name" id="label-login-name">{{$name}}</label>
<input type="text" maxlength="60" name="login-name" id="login-name" value="" />
</div>
<div id="login-extra-end"></div>
<div id="login-submit-wrapper" >
- <input type="submit" name="submit" id="lostpass-submit-button" value="$submit" />
+ <input type="submit" name="submit" id="lostpass-submit-button" value="{{$submit}}" />
</div>
<div id="login-submit-end"></div>
</form>
diff --git a/view/tpl/magicsig.tpl b/view/tpl/magicsig.tpl
deleted file mode 100644
index 75f9bc475..000000000
--- a/view/tpl/magicsig.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<me:env xmlns:me="http://salmon-protocol.org/ns/magic-env">
-<me:data type="application/atom+xml">
-$data
-</me:data>
-<me:encoding>$encoding</me:encoding>
-<me:alg>$algorithm</me:alg>
-<me:sig key_id="$keyhash">$signature</me:sig>
-</me:env>
diff --git a/view/tpl/mail_conv.tpl b/view/tpl/mail_conv.tpl
index fe115d223..bfa9491f4 100644..100755
--- a/view/tpl/mail_conv.tpl
+++ b/view/tpl/mail_conv.tpl
@@ -1,13 +1,13 @@
<div class="mail-conv-outside-wrapper">
<div class="mail-conv-sender" >
- <a href="$mail.from_url" class="mail-conv-sender-url" ><img class="mframe mail-conv-sender-photo$mail.sparkle" src="$mail.from_photo" heigth="80" width="80" alt="$mail.from_name" /></a>
- <div class="mail-conv-sender-name" >$mail.from_name</div>
+ <a href="{{$mail.from_url}}" class="mail-conv-sender-url" ><img class="mframe mail-conv-sender-photo{{$mail.sparkle}}" src="{{$mail.from_photo}}" heigth="80" width="80" alt="{{$mail.from_name}}" /></a>
+ <div class="mail-conv-sender-name" >{{$mail.from_name}}</div>
</div>
<div class="mail-conv-detail" >
- <div class="mail-conv-date">$mail.date</div>
- <div class="mail-conv-subject">$mail.subject</div>
- <div class="mail-conv-body">$mail.body</div>
- <div class="mail-conv-delete-wrapper" id="mail-conv-delete-wrapper-$mail.id" ><a href="message/drop/$mail.id" class="icon drophide delete-icon mail-list-delete-icon" onclick="return confirmDelete();" title="$mail.delete" id="mail-conv-delete-icon-$mail.id" class="mail-conv-delete-icon" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a></div><div class="mail-conv-delete-end"></div>
+ <div class="mail-conv-date">{{$mail.date}}</div>
+ <div class="mail-conv-subject">{{$mail.subject}}</div>
+ <div class="mail-conv-body">{{$mail.body}}</div>
+ <div class="mail-conv-delete-wrapper" id="mail-conv-delete-wrapper-{{$mail.id}}" ><a href="message/drop/{{$mail.id}}" class="icon drophide delete-icon mail-list-delete-icon" onclick="return confirmDelete();" title="{{$mail.delete}}" id="mail-conv-delete-icon-{{$mail.id}}" class="mail-conv-delete-icon" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a></div><div class="mail-conv-delete-end"></div>
<div class="mail-conv-outside-wrapper-end"></div>
</div>
</div>
diff --git a/view/tpl/mail_display.tpl b/view/tpl/mail_display.tpl
index 8fbc12929..26e02529a 100644..100755
--- a/view/tpl/mail_display.tpl
+++ b/view/tpl/mail_display.tpl
@@ -1,10 +1,9 @@
+{{foreach $mails as $mail}}
+ {{include file="mail_conv.tpl"}}
+{{/foreach}}
-{{ for $mails as $mail }}
- {{ inc mail_conv.tpl }}{{endinc}}
-{{ endfor }}
-
-{{ if $canreply }}
-{{ inc prv_message.tpl }}{{ endinc }}
-{{ else }}
-$unknown_text
-{{endif }} \ No newline at end of file
+{{if $canreply}}
+{{include file="prv_message.tpl"}}
+{{else}}
+{{$unknown_text}}
+{{/if}}
diff --git a/view/tpl/mail_head.tpl b/view/tpl/mail_head.tpl
index afb65f537..1cd7145e7 100644..100755
--- a/view/tpl/mail_head.tpl
+++ b/view/tpl/mail_head.tpl
@@ -1,3 +1,3 @@
-<h3>$messages</h3>
+<h3>{{$messages}}</h3>
-$tab_content
+{{$tab_content}}
diff --git a/view/tpl/mail_list.tpl b/view/tpl/mail_list.tpl
index 4417d1863..fc4af8ddd 100644..100755
--- a/view/tpl/mail_list.tpl
+++ b/view/tpl/mail_list.tpl
@@ -1,19 +1,7 @@
-<div class="mail-list-outside-wrapper">
- <div class="mail-list-sender" >
- <a href="$from_url" class="mail-list-sender-url" ><img class="mail-list-sender-photo" src="$from_photo" height="32" width="32" alt="$from_name" /></a>
- <div class="mail-list-sender-name" >$from_name</div>
- </div>
- <div class="mail-list-recip" >
- <a href="$to_url" class="mail-list-recip-url" ><img class="mail-list-recip-photo" src="$to_photo" height="32" width="32" alt="$to_name" /></a>
- <div class="mail-list-recip-name" >$to_name</div>
- </div>
- <div class="mail-list-date">$date</div>
- <div class="mail-list-subject"><a href="message/$id" class="mail-list-link">$subject</a></div>
- <div class="mail-list-delete-wrapper" id="mail-list-delete-wrapper-$id" >
- <a href="message/dropconv/$id" onclick="return confirmDelete();" title="$delete" class="icon drophide mail-list-delete delete-icon" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>
- </div>
+<div class="mail-list-wrapper">
+ <span class="mail-delete"><a href="message/dropconv/{{$id}}" onclick="return confirmDelete();" title="{{$delete}}" class="icon drophide mail-list-delete delete-icon" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a></span>
+ <a href="{{$from_url}}" class="mail-list-sender-url" ><img class="mail-list-sender-photo" src="{{$from_photo}}" alt="{{$from_name}}" /></a>
+ <span class="mail-from">{{$from_name}}</span>
+ <span class="mail-subject {{if $seen}}seen{{else}}unseen{{/if}}"><a href="message/{{$id}}" class="mail-link">{{$subject}}</a></span>
+ <span class="mail-date" title="{{$date}}">{{$date}}</span>
</div>
-</div>
-<div class="mail-list-delete-end"></div>
-
-<div class="mail-list-outside-wrapper-end"></div>
diff --git a/view/tpl/main_slider.tpl b/view/tpl/main_slider.tpl
index 662677684..fbc290df1 100644..100755
--- a/view/tpl/main_slider.tpl
+++ b/view/tpl/main_slider.tpl
@@ -1,17 +1,27 @@
-<div id="main-slider" class="slider" ><input id="main-range" type="text" name="cminmax" value="$val" /></div>
+<div id="main-slider" class="slider" ><input id="main-range" type="text" name="cminmax" value="{{$val}}" /></div>
<script>
- $("#main-range").slider({ from: 0, to: 99, step: 1, scale: ['$me', '|', '$intimate', '|', '$friends', '|', '$oldfriends', '|', '$acquaintances', '|', '$world' ], onstatechange: function(v) {
- var carr = v.split(";");
- bParam_cmin = carr[0];
- bParam_cmax = carr[1];
- networkRefresh();
- } });
+ var old_cmin = 0;
+ var old_cmax = 99;
+ $("#main-range").slider({ from: 0, to: 99, step: 1, scale: ['{{$me}}', '|', '{{$intimate}}', '|', '{{$friends}}', '|', '{{$oldfriends}}', '|', '{{$acquaintances}}', '|', '{{$world}}' ], onstatechange: function(v) {
+ var carr = v.split(";");
+ if(carr[0] != bParam_cmin) {
+ old_cmin = bParam_cmin;
+ bParam_cmin = carr[0];
+ }
+ if(carr[1] != bParam_cmax) {
+ old_cmax = bParam_cmax;
+ bParam_cmax = carr[1];
+ }
+ networkRefresh();
+ } });
var slideTimer = null;
function networkRefresh() {
if((document.readyState !== "complete") || (slideTimer !== null))
return;
- setTimeout(function() { $("#profile-jot-text-loading").show(); }, 1000 );
+ if((bParam_cmin == old_cmin) && (bParam_cmax == old_cmax))
+ return;
+ setTimeout(function() { $("#profile-jot-text-loading").spin('small'); }, 1000 );
slideTimer = setTimeout(networkTimerRefresh,2000);
}
diff --git a/view/tpl/match.tpl b/view/tpl/match.tpl
index b052845ae..0688ca26b 100644..100755
--- a/view/tpl/match.tpl
+++ b/view/tpl/match.tpl
@@ -1,16 +1,16 @@
<div class="profile-match-wrapper">
<div class="profile-match-photo">
- <a href="$url">
- <img src="$photo" alt="$name" title="$name[$tags]" />
+ <a href="{{$url}}">
+ <img src="{{$photo}}" alt="{{$name}}" title="{{$name}}[{{$tags}}]" />
</a>
</div>
<div class="profile-match-break"></div>
<div class="profile-match-name">
- <a href="$url" title="$name[$tags]">$name</a>
+ <a href="{{$url}}" title="{{$name}}[{{$tags}}]">{{$name}}</a>
</div>
<div class="profile-match-end"></div>
- {{ if $connlnk }}
- <div class="profile-match-connect"><a href="$connlnk" title="$conntxt">$conntxt</a></div>
- {{ endif }}
+ {{if $connlnk}}
+ <div class="profile-match-connect"><a href="{{$connlnk}}" title="{{$conntxt}}">{{$conntxt}}</a></div>
+ {{/if}}
</div>
diff --git a/view/tpl/message_side.tpl b/view/tpl/message_side.tpl
index fce771bd5..4db427fa7 100644..100755
--- a/view/tpl/message_side.tpl
+++ b/view/tpl/message_side.tpl
@@ -1,10 +1,11 @@
<div id="message-sidebar" class="widget">
- <div id="message-new"><a href="$new.url" class="{{ if $new.sel }}newmessage-selected{{ endif }}">$new.label</a> </div>
+ <div id="message-check"><a href="{{$check.url}}" class="{{if $check.sel}}checkmessage-selected{{/if}}">{{$check.label}}</a> </div>
+ <div id="message-new"><a href="{{$new.url}}" class="{{if $new.sel}}newmessage-selected{{/if}}">{{$new.label}}</a> </div>
<ul class="message-ul">
- {{ for $tabs as $t }}
- <li class="tool"><a href="$t.url" class="message-link{{ if $t.sel }}message-selected{{ endif }}">$t.label</a></li>
- {{ endfor }}
+ {{foreach $tabs as $t}}
+ <li class="tool"><a href="{{$t.url}}" class="message-link{{if $t.sel}}message-selected{{/if}}">{{$t.label}}</a></li>
+ {{/foreach}}
</ul>
</div>
diff --git a/view/tpl/micropro_img.tpl b/view/tpl/micropro_img.tpl
index 06df22d7b..23b7bd281 100644..100755
--- a/view/tpl/micropro_img.tpl
+++ b/view/tpl/micropro_img.tpl
@@ -1 +1 @@
-<div class="contact-block-div{{if $class}} $class{{endif}}"><a class="contact-block-link{{if $class}} $class{{endif}}{{if $click}} fakelink{{endif}}" href="{{if $click}}#{{else}}$url{{endif}}" {{if $click}}onclick="$click"{{endif}}><img class="contact-block-img{{if $class}} $class{{endif}}" src="$photo" title="$title" alt="$name" /></a></div>
+<div class="contact-block-div{{if $class}} {{$class}}{{/if}}"><a class="contact-block-link{{if $class}} {{$class}}{{/if}}{{if $click}} fakelink{{/if}}" href="{{if $click}}#{{else}}{{$url}}{{/if}}" {{if $click}}onclick="{{$click}}"{{/if}}><img class="contact-block-img{{if $class}} {{$class}}{{/if}}" src="{{$photo}}" title="{{$title}}" alt="{{$name}}" /></a></div>
diff --git a/view/tpl/micropro_txt.tpl b/view/tpl/micropro_txt.tpl
index 6a6ef6392..295e7940d 100644..100755
--- a/view/tpl/micropro_txt.tpl
+++ b/view/tpl/micropro_txt.tpl
@@ -1 +1 @@
-<div class="contact-block-textdiv{{if $class}} $class{{endif}}"><a class="contact-block-link{{if $class}} $class{{endif}}{{if $click}} fakelink{{endif}}" href="{{if $click}}#{{else}}$url{{endif}}" {{if $click}}onclick="$click"{{endif}} title="$title">$name</a></div>
+<div class="contact-block-textdiv{{if $class}} {{$class}}{{/if}}"><a class="contact-block-link{{if $class}} {{$class}}{{/if}}{{if $click}} fakelink{{/if}}" href="{{if $click}}#{{else}}{{$url}}{{/if}}" {{if $click}}onclick="{{$click}}"{{/if}} title="{{$title}}">{{$name}}</a></div>
diff --git a/view/tpl/moderated_comment.tpl b/view/tpl/moderated_comment.tpl
deleted file mode 100644
index 911c35f33..000000000
--- a/view/tpl/moderated_comment.tpl
+++ /dev/null
@@ -1,34 +0,0 @@
- <div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
- <form class="comment-edit-form" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
- <input type="hidden" name="type" value="$type" />
- <input type="hidden" name="profile_uid" value="$profile_uid" />
- <input type="hidden" name="parent" value="$parent" />
- <input type="hidden" name="return" value="$return_path" />
- <input type="hidden" name="jsreload" value="$jsreload" />
- <input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
-
- <div class="comment-edit-photo" id="comment-edit-photo-$id" >
- <a class="comment-edit-photo-link" href="$mylink" title="$mytitle"><img class="my-comment-photo" src="$myphoto" alt="$mytitle" title="$mytitle" /></a>
- </div>
- <div class="comment-edit-photo-end"></div>
- <div id="mod-cmnt-wrap-$id" class="mod-cmnt-wrap" style="display:none">
- <div id="mod-cmnt-name-lbl-$id" class="mod-cmnt-name-lbl">$lbl_modname</div>
- <input type="text" id="mod-cmnt-name-$id" class="mod-cmnt-name" name="mod-cmnt-name" value="$modname" />
- <div id="mod-cmnt-email-lbl-$id" class="mod-cmnt-email-lbl">$lbl_modemail</div>
- <input type="text" id="mod-cmnt-email-$id" class="mod-cmnt-email" name="mod-cmnt-email" value="$modemail" />
- <div id="mod-cmnt-url-lbl-$id" class="mod-cmnt-url-lbl">$lbl_modurl</div>
- <input type="text" id="mod-cmnt-url-$id" class="mod-cmnt-url" name="mod-cmnt-url" value="$modurl" />
- </div>
- <textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);" onBlur="commentClose(this,$id);" >$comment</textarea>
-
- <div class="comment-edit-text-end"></div>
- <div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;" >
- <input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
- <span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
- <div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
- </div>
-
- <div class="comment-edit-end"></div>
- </form>
-
- </div>
diff --git a/view/tpl/mood_content.tpl b/view/tpl/mood_content.tpl
index 9349c56ae..63eaa2d8d 100644..100755
--- a/view/tpl/mood_content.tpl
+++ b/view/tpl/mood_content.tpl
@@ -1,20 +1,20 @@
-<h3>$title</h3>
+<h3>{{$title}}</h3>
-<div id="mood-desc">$desc</div>
+<div id="mood-desc">{{$desc}}</div>
<form action="mood" method="get">
<br />
<br />
-<input id="mood-parent" type="hidden" value="$parent" name="parent" />
+<input id="mood-parent" type="hidden" value="{{$parent}}" name="parent" />
<select name="verb" id="mood-verb-select" >
-{{ for $verbs as $v }}
-<option value="$v.0">$v.1</option>
-{{ endfor }}
+{{foreach $verbs as $v}}
+<option value="{{$v.0}}">{{$v.1}}</option>
+{{/foreach}}
</select>
<br />
<br />
-<input type="submit" name="submit" value="$submit" />
+<input type="submit" name="submit" value="{{$submit}}" />
</form>
diff --git a/view/tpl/msg-header.tpl b/view/tpl/msg-header.tpl
index 2d1ea7a61..0be288709 100644..100755
--- a/view/tpl/msg-header.tpl
+++ b/view/tpl/msg-header.tpl
@@ -1,8 +1,7 @@
-
-<script language="javascript" type="text/javascript" src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
+<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
<script language="javascript" type="text/javascript">
-var plaintext = '$editselect';
+var plaintext = '{{$editselect}}';
if(plaintext != 'none') {
tinyMCE.init({
@@ -25,7 +24,7 @@ if(plaintext != 'none') {
force_br_newlines : true,
forced_root_block : '',
convert_urls: false,
- content_css: "$baseurl/view/custom_tinymce.css",
+ content_css: "{{$baseurl}}/view/custom_tinymce.css",
//Character count
theme_advanced_path : false,
setup : function(ed) {
@@ -51,12 +50,12 @@ else
$(document).ready(function() {
var uploader = new window.AjaxUpload(
'prvmail-upload',
- { action: 'wall_upload/$nickname',
+ { action: 'wall_upload/{{$nickname}}',
name: 'userfile',
- onSubmit: function(file,ext) { $('#profile-rotator').show(); },
+ onSubmit: function(file,ext) { $('#profile-rotator').spin('tiny'); },
onComplete: function(file,response) {
tinyMCE.execCommand('mceInsertRawHTML',false,response);
- $('#profile-rotator').hide();
+ $('#profile-rotator').spin(false);
}
}
);
@@ -64,12 +63,12 @@ else
});
function jotGetLink() {
- reply = prompt("$linkurl");
+ reply = prompt("{{$linkurl}}");
if(reply && reply.length) {
- $('#profile-rotator').show();
+ $('#profile-rotator').spin('tiny');
$.get('parse_url?url=' + reply, function(data) {
tinyMCE.execCommand('mceInsertRawHTML',false,data);
- $('#profile-rotator').hide();
+ $('#profile-rotator').spin(false);
});
}
}
@@ -85,10 +84,10 @@ else
event.target.textContent = reply;
event.preventDefault();
if(reply && reply.length) {
- $('#profile-rotator').show();
+ $('#profile-rotator').spin('tiny');
$.get('parse_url?url=' + reply, function(data) {
tinyMCE.execCommand('mceInsertRawHTML',false,data);
- $('#profile-rotator').hide();
+ $('#profile-rotator').spin(false);
});
}
}
diff --git a/view/tpl/nav.tpl b/view/tpl/nav.tpl
index e98621aa4..352eecd42 100644..100755
--- a/view/tpl/nav.tpl
+++ b/view/tpl/nav.tpl
@@ -1,141 +1,145 @@
<header>
- <div id="site-location">$sitelocation</div>
- <div id="banner">$banner</div>
+ <div id="site-location">{{$sitelocation}}</div>
+ <div id="banner">{{$banner}}</div>
</header>
<nav>
<ul>
- {{ if $nav.lock }}
+
+ {{if $userinfo}}
+ <li id="nav-user-linkmenu" class="nav-menu-icon"><a href="#" rel="#nav-user-menu" title="{{$userinfo.name}}"><img src="{{$userinfo.icon}}" alt="{{$userinfo.name}}"><span class="nav-dropdown-indicator">&nabla;</span></a>
+ {{if $localuser}}
+ <ul id="nav-user-menu" class="menu-popup">
+ {{foreach $nav.usermenu as $usermenu}}
+ <li><a class="{{$usermenu.2}}" href="{{$usermenu.0}}" title="{{$usermenu.3}}">{{$usermenu.1}}</a></li>
+ {{/foreach}}
+ {{if $nav.profiles}}<li><a class="{{$nav.profiles.2}}" href="{{$nav.profiles.0}}" title="{{$nav.profiles.3}}">{{$nav.profiles.1}}</a></li>{{/if}}
+ {{if $nav.manage}}<li><a class="{{$nav.manage.2}}" href="{{$nav.manage.0}}" title="{{$nav.manage.3}}">{{$nav.manage.1}}</a></li>{{/if}}
+ {{if $nav.contacts}}<li><a class="{{$nav.contacts.2}}" href="{{$nav.contacts.0}}" title="{{$nav.contacts.3}}" >{{$nav.contacts.1}}</a></li>{{/if}}
+ {{if $nav.settings}}<li><a class="{{$nav.settings.2}}" href="{{$nav.settings.0}}" title="{{$nav.settings.3}}">{{$nav.settings.1}}</a></li>{{/if}}
+
+ {{if $nav.admin}}<li><a class="{{$nav.admin.2}}" href="{{$nav.admin.0}}" title="{{$nav.admin.3}}" >{{$nav.admin.1}}</a></li>{{/if}}
+
+ {{if $nav.logout}}<li><a class="menu-sep {{$nav.logout.2}}" href="{{$nav.logout.0}}" title="{{$nav.logout.3}}" >{{$nav.logout.1}}</a></li>{{/if}}
+
+ </ul>
+ {{/if}}
+ </li>
+ {{/if}}
+
+
+ {{if $nav.lock}}
<li id="nav-rmagic-link" class="nav-menu-icon" >
- <a class="icon $nav.lock.2" href="$nav.lock.0" title="$nav.lock.3" >$nav.lock.1</a>
+ <a class="icon {{$nav.lock.2}}" href="{{$nav.lock.0}}" title="{{$nav.lock.3}}" >{{$nav.lock.1}}</a>
</li>
- {{ endif }}
+ {{/if}}
- {{ if $nav.network }}
- <li id="nav-network-link" class="nav-menu $sel.network">
- <a class="$nav.network.2" href="$nav.network.0" title="$nav.network.3" ><span class="icon network">$nav.network.1</span></a>
+ {{if $nav.network}}
+ <li id="nav-network-link" class="nav-menu {{$sel.network}}">
+ <a class="{{$nav.network.2}}" href="{{$nav.network.0}}" title="{{$nav.network.3}}" >{{$nav.network.1}}</a>
<span id="net-update" class="nav-notify fakelink" rel="#nav-network-menu"></span>
<ul id="nav-network-menu" class="menu-popup notify-menus" rel="network">
- <li id="nav-network-see-all"><a href="$nav.network.all.0">$nav.network.all.1</a></li>
- <li id="nav-network-mark-all"><a href="#" onclick="markRead('network'); return false;">$nav.network.mark.1</a></li>
- <li class="empty">$emptynotifications</li>
+ <li id="nav-network-see-all"><a href="{{$nav.network.all.0}}">{{$nav.network.all.1}}</a></li>
+ <li id="nav-network-mark-all"><a href="#" onclick="markRead('network'); return false;">{{$nav.network.mark.1}}</a></li>
+ <li class="empty">{{$emptynotifications}}</li>
</ul>
</li>
- {{ endif }}
+ {{/if}}
- {{ if $nav.home }}
- <li id="nav-home-link" class="nav-menu $sel.home">
- <a class="$nav.home.2" href="$nav.home.0" title="$nav.home.3" ><span class="icon home">$nav.home.1</span></a>
+ {{if $nav.home}}
+ <li id="nav-home-link" class="nav-menu {{$sel.home}}">
+ <a class="{{$nav.home.2}}" href="{{$nav.home.0}}" title="{{$nav.home.3}}" >{{$nav.home.1}}</a>
<span id="home-update" class="nav-notify fakelink" rel="#nav-home-menu"></span>
<ul id="nav-home-menu" class="menu-popup notify-menus" rel="home">
- <li id="nav-home-see-all"><a href="$nav.home.all.0">$nav.home.all.1</a></li>
- <li id="nav-home-mark-all"><a href="#" onclick="markRead('home'); return false;">$nav.home.mark.1</a></li>
- <li class="empty">$emptynotifications</li>
+ <li id="nav-home-see-all"><a href="{{$nav.home.all.0}}">{{$nav.home.all.1}}</a></li>
+ <li id="nav-home-mark-all"><a href="#" onclick="markRead('home'); return false;">{{$nav.home.mark.1}}</a></li>
+ <li class="empty">{{$emptynotifications}}</li>
</ul>
</li>
- {{ endif }}
+ {{/if}}
+
+ {{if $nav.register}}<li id="nav-register-link" class="nav-menu {{$nav.register.2}}"><a href="{{$nav.register.0}}" title="{{$nav.register.3}}" >{{$nav.register.1}}</a><li>{{/if}}
- {{ if $nav.messages }}
- <li id="nav-mail-link" class="nav-menu $sel.messages">
- <a class="$nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" ><span class="icon mail">$nav.messages.1</span></a>
+
+ {{if $nav.messages}}
+ <li id="nav-mail-link" class="nav-menu {{$sel.messages}}">
+ <a class="{{$nav.messages.2}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" >{{$nav.messages.1}}</a>
<span id="mail-update" class="nav-notify fakelink" rel="#nav-messages-menu"></span>
<ul id="nav-messages-menu" class="menu-popup notify-menus" rel="messages">
- <li id="nav-messages-see-all"><a href="$nav.messages.all.0">$nav.messages.all.1</a></li>
- <li id="nav-messages-mark-all"><a href="#" onclick="markRead('messages'); return false;">$nav.messages.mark.1</a></li>
- <li class="empty">$emptynotifications</li>
+ <li id="nav-messages-see-all"><a href="{{$nav.messages.all.0}}">{{$nav.messages.all.1}}</a></li>
+ <li id="nav-messages-mark-all"><a href="#" onclick="markRead('messages'); return false;">{{$nav.messages.mark.1}}</a></li>
+ <li class="empty">{{$emptynotifications}}</li>
</ul>
</li>
- {{ endif }}
+ {{/if}}
- {{ if $nav.all_events }}
- <li id="nav-all_events-link" class="nav-menu $sel.all_events">
- <a class="$nav.all_events.2" href="$nav.all_events.0" title="$nav.all_events.3" ><span class="icon events">$nav.all_events.1</span></a>
+ {{if $nav.all_events}}
+ <li id="nav-all_events-link" class="nav-menu {{$sel.all_events}}">
+ <a class="{{$nav.all_events.2}}" href="{{$nav.all_events.0}}" title="{{$nav.all_events.3}}" >{{$nav.all_events.1}}</a>
<span id="all_events-update" class="nav-notify fakelink" rel="#nav-all_events-menu"></span>
<ul id="nav-all_events-menu" class="menu-popup notify-menus" rel="all_events">
- <li id="nav-all_events-see-all"><a href="$nav.all_events.all.0">$nav.all_events.all.1</a></li>
- <li id="nav-all_events-mark-all"><a href="#" onclick="markRead('all_events'); return false;">$nav.all_events.mark.1</a></li>
- <li class="empty">$emptynotifications</li>
+ <li id="nav-all_events-see-all"><a href="{{$nav.all_events.all.0}}">{{$nav.all_events.all.1}}</a></li>
+ <li id="nav-all_events-mark-all"><a href="#" onclick="markRead('all_events'); return false;">{{$nav.all_events.mark.1}}</a></li>
+ <li class="empty">{{$emptynotifications}}</li>
</ul>
</li>
- {{ endif }}
+ {{/if}}
- {{ if $nav.intros }}
- <li id="nav-intros-link" class="nav-menu $sel.intros">
- <a class="$nav.intros.2" href="$nav.intros.0" title="$nav.intros.3" ><span class="icon introductions">$nav.intros.1</span></a>
+ {{if $nav.intros}}
+ <li id="nav-intros-link" class="nav-menu {{$sel.intros}}">
+ <a class="{{$nav.intros.2}}" href="{{$nav.intros.0}}" title="{{$nav.intros.3}}" >{{$nav.intros.1}}</a>
<span id="intro-update" class="nav-notify fakelink" rel="#nav-intros-menu"></span>
<ul id="nav-intros-menu" class="menu-popup notify-menus" rel="intros">
- <li id="nav-intros-see-all"><a href="$nav.intros.all.0">$nav.intros.all.1</a></li>
- <li class="empty">$emptynotifications</li>
+ <li id="nav-intros-see-all"><a href="{{$nav.intros.all.0}}">{{$nav.intros.all.1}}</a></li>
+ <li class="empty">{{$emptynotifications}}</li>
</ul>
</li>
- {{ endif }}
+ {{/if}}
- {{ if $nav.notifications }}
- <li id="nav-notify-linkmenu" class="nav-menu fakelink">
- <a href="$nav.notifications.0" title="$nav.notifications.1"><span class="icon s22 notify">$nav.notifications.1</span></a>
+ {{if $nav.notifications}}
+ <li id="nav-notify-linkmenu" class="nav-menu fakelink {{$sel.notifications}}">
+ <a href="{{$nav.notifications.0}}" title="{{$nav.notifications.1}}">{{$nav.notifications.1}}</a>
<span id="notify-update" class="nav-notify fakelink" rel="#nav-notify-menu"></span>
<ul id="nav-notify-menu" class="menu-popup notify-menus" rel="notify">
- <li id="nav-notify-see-all"><a href="$nav.notifications.all.0">$nav.notifications.all.1</a></li>
- <li id="nav-notify-mark-all"><a href="#" onclick="markRead('notify'); return false;">$nav.notifications.mark.1</a></li>
- <li class="empty">$emptynotifications</li>
+ <li id="nav-notify-see-all"><a href="{{$nav.notifications.all.0}}">{{$nav.notifications.all.1}}</a></li>
+ <li id="nav-notify-mark-all"><a href="#" onclick="markRead('notify'); return false;">{{$nav.notifications.mark.1}}</a></li>
+ <li class="empty">{{$emptynotifications}}</li>
</ul>
</li>
- {{ endif }}
-
- {{ if $nav.settings }}
- <li id="nav-site-linkmenu" class="nav-menu-icon"><a href="#" rel="#nav-site-menu"><span class="icon s22 gear">$nav.settings.1</span></a>
- <ul id="nav-site-menu" class="menu-popup">
- {{ if $nav.settings }}<li><a class="$nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a></li>{{ endif }}
- {{ if $nav.directory }}<li><a class="$nav.directory.2" href="$nav.directory.0" title="$nav.directory.3">$nav.directory.1</a></li>{{ endif }}
-
- {{ if $nav.admin }}<li><a class="$nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a></li>{{ endif }}
+ {{/if}}
+
+ {{if $nav.login}}<li id="nav-login-link" class="nav-menu {{$nav.login.2}}"><a href="{{$nav.login.0}}" title="{{$nav.login.3}}" >{{$nav.login.1}}</a><li>{{/if}}
+ {{if $nav.alogout}}<li id=nav-alogout-link" class="nav-menu {{$nav}}-alogout.2"><a href="{{$nav.alogout.0}}" title="{{$nav.alogout.3}}" >{{$nav.alogout.1}}</a></li>{{/if}}
- </ul>
+ {{if $nav.directory}}
+ <li id="nav-directory-link" class="nav-menu {{$sel.directory}}">
+ <a class="{{$nav.directory.2}}" href="{{$nav.directory.0}}" title="{{$nav.directory.3}}">{{$nav.directory.1}}</a>
</li>
- {{ endif }}
+ {{/if}}
- {{ if $userinfo }}
- <li id="nav-user-linkmenu" class="nav-menu-icon"><a href="#" rel="#nav-user-menu" title="$userinfo.name"><img src="$userinfo.icon" alt="$userinfo.name"></a>
- {{ if $localuser }}
- <ul id="nav-user-menu" class="menu-popup">
- {{ for $nav.usermenu as $usermenu }}
- <li><a class="$usermenu.2" href="$usermenu.0" title="$usermenu.3">$usermenu.1</a></li>
- {{ endfor }}
- {{ if $nav.profiles }}<li><a class="$nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3">$nav.profiles.1</a></li>{{ endif }}
- {{ if $nav.manage }}<li><a class="$nav.manage.2" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a></li>{{ endif }}
- {{ if $nav.contacts }}<li><a class="$nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a></li>{{ endif }}
- {{ if $nav.logout }}<li><a class="menu-sep $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.1</a></li>{{ endif }}
-
- </ul>
- {{ endif }}
- </li>
- {{ endif }}
-
- {{ if $nav.login }}<li id="nav-login-link" class="nav-menu $nav.login.2"><a href="$nav.login.0" title="$nav.login.3" >$nav.login.1</a><li>{{ endif }}
- {{ if $nav.alogout }}<li id=nav-alogout-link" class="nav-menu $nav-alogout.2"><a href="$nav.alogout.0" title="$nav.alogout.3" >$nav.alogout.1</a></li>{{ endif }}
- {{ if $nav.help }}
- <li id="nav-help-link" class="nav-menu $sel.help">
- <a class="$nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
+ {{if $nav.help}}
+ <li id="nav-help-link" class="nav-menu {{$sel.help}}">
+ <a class="{{$nav.help.2}}" target="friendika-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" >{{$nav.help.1}}</a>
</li>
- {{ endif }}
+ {{/if}}
- {{ if $nav.apps }}
- <li id="nav-apps-link" class="nav-menu $sel.apps">
- <a class=" $nav.apps.2" href="#" rel="#nav-apps-menu" title="$nav.apps.3" >$nav.apps.1</a>
+ {{if $nav.apps}}
+ <li id="nav-apps-link" class="nav-menu {{$sel.apps}}">
+ <a class=" {{$nav.apps.2}}" href="#" rel="#nav-apps-menu" title="{{$nav.apps.3}}" >{{$nav.apps.1}}</a>
<ul id="nav-apps-menu" class="menu-popup">
- {{ for $apps as $ap }}
- <li>$ap</li>
- {{ endfor }}
+ {{foreach $apps as $ap}}
+ <li>{{$ap}}</li>
+ {{/foreach}}
</ul>
</li>
- {{ endif }}
+ {{/if}}
<li id="nav-searchbar">
<form method="get" action="search">
- <input id="nav-search-text" type="text" value="" placeholder="$nav.search.1" name="search" title="$nav.search.3" onclick="this.submit();" />
+ <input id="nav-search-text" type="text" value="" placeholder="{{$nav.search.1}}" name="search" title="{{$nav.search.3}}" onclick="this.submit();" />
</form>
</li>
- <img src="images/rotator.gif" id="nav-search-spinner" style="display: none;" alt="$pleasewait" />
+ <div id="nav-search-spinner"></div>
</ul>
</nav>
@@ -144,5 +148,5 @@
<li class="{4}"><a href="{0}"><img src="{1}">{2} <span class="notif-when">{3}</span></a></li>
</ul>
-<div id="langselector" >$langselector</div>
+<div id="langselector" >{{$langselector}}</div>
<div id="panel" style="display: none;"></div>
diff --git a/view/tpl/netfriend.tpl b/view/tpl/netfriend.tpl
index c2a92ce9e..ec6b3b6cc 100644..100755
--- a/view/tpl/netfriend.tpl
+++ b/view/tpl/netfriend.tpl
@@ -1,14 +1,14 @@
-<div class="intro-approve-as-friend-desc">$approve_as</div>
+<div class="intro-approve-as-friend-desc">{{$approve_as}}</div>
<div class="intro-approve-as-friend-wrapper">
- <label class="intro-approve-as-friend-label" for="intro-approve-as-friend-$intro_id">$as_friend</label>
- <input type="radio" name="duplex" id="intro-approve-as-friend-$intro_id" class="intro-approve-as-friend" $friend_selected value="1" />
+ <label class="intro-approve-as-friend-label" for="intro-approve-as-friend-{{$intro_id}}">{{$as_friend}}</label>
+ <input type="radio" name="duplex" id="intro-approve-as-friend-{{$intro_id}}" class="intro-approve-as-friend" {{$friend_selected}} value="1" />
<div class="intro-approve-friend-break" ></div>
</div>
<div class="intro-approve-as-friend-end"></div>
<div class="intro-approve-as-fan-wrapper">
- <label class="intro-approve-as-fan-label" for="intro-approve-as-fan-$intro_id">$as_fan</label>
- <input type="radio" name="duplex" id="intro-approve-as-fan-$intro_id" class="intro-approve-as-fan" $fan_selected value="0" />
+ <label class="intro-approve-as-fan-label" for="intro-approve-as-fan-{{$intro_id}}">{{$as_fan}}</label>
+ <input type="radio" name="duplex" id="intro-approve-as-fan-{{$intro_id}}" class="intro-approve-as-fan" {{$fan_selected}} value="0" />
<div class="intro-approve-fan-break"></div>
</div>
<div class="intro-approve-as-end"></div>
diff --git a/view/tpl/new_channel.tpl b/view/tpl/new_channel.tpl
index 0ea764621..261f965da 100644..100755
--- a/view/tpl/new_channel.tpl
+++ b/view/tpl/new_channel.tpl
@@ -1,29 +1,29 @@
-<h2>$title</h2>
+<h2>{{$title}}</h2>
<form action="new_channel" method="post" id="newchannel-form">
- <div id="newchannel-desc" class="descriptive-paragraph">$desc</div>
+ <div id="newchannel-desc" class="descriptive-paragraph">{{$desc}}</div>
- <label for="newchannel-name" id="label-newchannel-name" class="newchannel-label" >$label_name</label>
- <input type="text" name="name" id="newchannel-name" class="newchannel-input" value="$name" />
+ <label for="newchannel-name" id="label-newchannel-name" class="newchannel-label" >{{$label_name}}</label>
+ <input type="text" name="name" id="newchannel-name" class="newchannel-input" value="{{$name}}" />
<div id="newchannel-name-feedback" class="newchannel-feedback"></div>
<div id="newchannel-name-end" class="newchannel-field-end"></div>
- <div id="newchannel-name-help" class="descriptive-paragraph">$help_name</div>
+ <div id="newchannel-name-help" class="descriptive-paragraph">{{$help_name}}</div>
- <label for="newchannel-nickname" id="label-newchannel-nickname" class="newchannel-label" >$label_nick</label>
- <input type="text" name="nickname" id="newchannel-nickname" class="newchannel-input" value="$nickname" />
+ <label for="newchannel-nickname" id="label-newchannel-nickname" class="newchannel-label" >{{$label_nick}}</label>
+ <input type="text" name="nickname" id="newchannel-nickname" class="newchannel-input" value="{{$nickname}}" />
<div id="newchannel-nickname-feedback" class="newchannel-feedback"></div>
<div id="newchannel-nickname-end" class="newchannel-field-end"></div>
- <div id="newchannel-nick-desc" class="descriptive-paragraph">$nick_desc</div>
+ <div id="newchannel-nick-desc" class="descriptive-paragraph">{{$nick_desc}}</div>
- <div id="newchannel-import-link" class="descriptive-paragraph" >$label_import</div>
+ <div id="newchannel-import-link" class="descriptive-paragraph" >{{$label_import}}</div>
<div id="newchannel-import-end" class="newchannel-field-end"></div>
- <input type="submit" name="submit" id="newchannel-submit-button" value="$submit" />
+ <input type="submit" name="submit" id="newchannel-submit-button" value="{{$submit}}" />
<div id="newchannel-submit-end" class="newchannel-field-end"></div>
</form>
diff --git a/view/tpl/nogroup-template.tpl b/view/tpl/nogroup-template.tpl
index dd00ed097..15094b2d6 100644..100755
--- a/view/tpl/nogroup-template.tpl
+++ b/view/tpl/nogroup-template.tpl
@@ -1,11 +1,11 @@
-<h1>$header</h1>
+<h1>{{$header}}</h1>
-{{ for $contacts as $contact }}
- {{ inc contact_template.tpl }}{{ endinc }}
-{{ endfor }}
+{{foreach $contacts as $contact}}
+ {{include file="contact_template.tpl"}}
+{{/foreach}}
<div id="contact-edit-end"></div>
-$paginate
+{{$paginate}}
diff --git a/view/tpl/notifications.tpl b/view/tpl/notifications.tpl
index 1a13b68b9..3015de504 100644..100755
--- a/view/tpl/notifications.tpl
+++ b/view/tpl/notifications.tpl
@@ -1,8 +1,5 @@
-
-<h1>$notif_header</h1>
-
-{{ inc common_tabs.tpl }}{{ endinc }}
+<h1>{{$notif_header}}</h1>
<div class="notif-network-wrapper">
- $notif_content
+ {{$notif_content}}
</div>
diff --git a/view/tpl/notifications_comments_item.tpl b/view/tpl/notifications_comments_item.tpl
index 73cc9f948..856955424 100644..100755
--- a/view/tpl/notifications_comments_item.tpl
+++ b/view/tpl/notifications_comments_item.tpl
@@ -1,3 +1,3 @@
<div class="notif-item">
- <a href="$item_link" target="friendica-notifications"><img src="$item_image" class="notif-image">$item_text <span class="notif-when">$item_when</span></a>
-</div> \ No newline at end of file
+ <a href="{{$item_link}}" target="friendica-notifications"><img src="{{$item_image}}" class="notif-image">{{$item_text}} <span class="notif-when">{{$item_when}}</span></a>
+</div>
diff --git a/view/tpl/notifications_dislikes_item.tpl b/view/tpl/notifications_dislikes_item.tpl
index 73cc9f948..856955424 100644..100755
--- a/view/tpl/notifications_dislikes_item.tpl
+++ b/view/tpl/notifications_dislikes_item.tpl
@@ -1,3 +1,3 @@
<div class="notif-item">
- <a href="$item_link" target="friendica-notifications"><img src="$item_image" class="notif-image">$item_text <span class="notif-when">$item_when</span></a>
-</div> \ No newline at end of file
+ <a href="{{$item_link}}" target="friendica-notifications"><img src="{{$item_image}}" class="notif-image">{{$item_text}} <span class="notif-when">{{$item_when}}</span></a>
+</div>
diff --git a/view/tpl/notifications_friends_item.tpl b/view/tpl/notifications_friends_item.tpl
index 73cc9f948..856955424 100644..100755
--- a/view/tpl/notifications_friends_item.tpl
+++ b/view/tpl/notifications_friends_item.tpl
@@ -1,3 +1,3 @@
<div class="notif-item">
- <a href="$item_link" target="friendica-notifications"><img src="$item_image" class="notif-image">$item_text <span class="notif-when">$item_when</span></a>
-</div> \ No newline at end of file
+ <a href="{{$item_link}}" target="friendica-notifications"><img src="{{$item_image}}" class="notif-image">{{$item_text}} <span class="notif-when">{{$item_when}}</span></a>
+</div>
diff --git a/view/tpl/notifications_likes_item.tpl b/view/tpl/notifications_likes_item.tpl
index 389144d9b..b2ba4024b 100644..100755
--- a/view/tpl/notifications_likes_item.tpl
+++ b/view/tpl/notifications_likes_item.tpl
@@ -1,3 +1,3 @@
<div class="notif-item">
- <a href="$item_link" target="friendica-notification"><img src="$item_image" class="notif-image">$item_text <span class="notif-when">$item_when</span></a>
-</div> \ No newline at end of file
+ <a href="{{$item_link}}" target="friendica-notification"><img src="{{$item_image}}" class="notif-image">{{$item_text}} <span class="notif-when">{{$item_when}}</span></a>
+</div>
diff --git a/view/tpl/notifications_network_item.tpl b/view/tpl/notifications_network_item.tpl
deleted file mode 100644
index 261ab3643..000000000
--- a/view/tpl/notifications_network_item.tpl
+++ /dev/null
@@ -1,3 +0,0 @@
-<div class="notif-item">
- <a href="$item_link" target="friendica-notifications"><img src="$item_image" class="notif-image">$item_text <span class="notif-when">$item_when</span></a>
-</div>
diff --git a/view/tpl/notifications_posts_item.tpl b/view/tpl/notifications_posts_item.tpl
index 73cc9f948..856955424 100644..100755
--- a/view/tpl/notifications_posts_item.tpl
+++ b/view/tpl/notifications_posts_item.tpl
@@ -1,3 +1,3 @@
<div class="notif-item">
- <a href="$item_link" target="friendica-notifications"><img src="$item_image" class="notif-image">$item_text <span class="notif-when">$item_when</span></a>
-</div> \ No newline at end of file
+ <a href="{{$item_link}}" target="friendica-notifications"><img src="{{$item_image}}" class="notif-image">{{$item_text}} <span class="notif-when">{{$item_when}}</span></a>
+</div>
diff --git a/view/tpl/notify.tpl b/view/tpl/notify.tpl
index 73cc9f948..856955424 100644..100755
--- a/view/tpl/notify.tpl
+++ b/view/tpl/notify.tpl
@@ -1,3 +1,3 @@
<div class="notif-item">
- <a href="$item_link" target="friendica-notifications"><img src="$item_image" class="notif-image">$item_text <span class="notif-when">$item_when</span></a>
-</div> \ No newline at end of file
+ <a href="{{$item_link}}" target="friendica-notifications"><img src="{{$item_image}}" class="notif-image">{{$item_text}} <span class="notif-when">{{$item_when}}</span></a>
+</div>
diff --git a/view/tpl/oauth_authorize.tpl b/view/tpl/oauth_authorize.tpl
index 31f02ac50..2b7afa80e 100644..100755
--- a/view/tpl/oauth_authorize.tpl
+++ b/view/tpl/oauth_authorize.tpl
@@ -1,10 +1,10 @@
-<h1>$title</h1>
+<h1>{{$title}}</h1>
<div class='oauthapp'>
- <img src='$app.icon'>
- <h4>$app.name</h4>
+ <img src='{{$app.icon}}'>
+ <h4>{{$app.name}}</h4>
</div>
-<h3>$authorize</h3>
+<h3>{{$authorize}}</h3>
<form method="POST">
-<div class="settings-submit-wrapper"><input class="settings-submit" type="submit" name="oauth_yes" value="$yes" /></div>
+<div class="settings-submit-wrapper"><input class="settings-submit" type="submit" name="oauth_yes" value="{{$yes}}" /></div>
</form>
diff --git a/view/tpl/oauth_authorize_done.tpl b/view/tpl/oauth_authorize_done.tpl
index 51eaea248..2e91e0125 100644..100755
--- a/view/tpl/oauth_authorize_done.tpl
+++ b/view/tpl/oauth_authorize_done.tpl
@@ -1,4 +1,4 @@
-<h1>$title</h1>
+<h1>{{$title}}</h1>
-<p>$info</p>
-<code>$code</code>
+<p>{{$info}}</p>
+<code>{{$code}}</code>
diff --git a/view/tpl/oembed_video.tpl b/view/tpl/oembed_video.tpl
index d3a9a9311..4ad75a82e 100755
--- a/view/tpl/oembed_video.tpl
+++ b/view/tpl/oembed_video.tpl
@@ -1,4 +1,4 @@
-<a href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); return false;' style='float:left; margin: 1em; position: relative;'>
- <img width='$tw' height='$th' src='$turl' >
- <div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url($baseurl/images/icons/48/play.png) no-repeat center center;'></div>
+<a href='{{$embedurl}}' onclick='this.innerHTML=Base64.decode("{{$escapedhtml}}"); return false;' style='float:left; margin: 1em; position: relative;'>
+ <img width='{{$tw}}' height='{{$th}}' src='{{$turl}}' >
+ <div style='position: absolute; top: 0px; left: 0px; width: {{$twpx}}; height: {{$thpx}}; background: url({{$baseurl}}/images/icons/48/play.png) no-repeat center center;'></div>
</a>
diff --git a/view/tpl/oexchange_xrd.tpl b/view/tpl/oexchange_xrd.tpl
index c7e6df498..74ef22874 100644..100755
--- a/view/tpl/oexchange_xrd.tpl
+++ b/view/tpl/oexchange_xrd.tpl
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
- <Subject>$base</Subject>
+ <Subject>{{$base}}</Subject>
<Property
type="http://www.oexchange.org/spec/0.8/prop/vendor">Friendika</Property>
@@ -14,19 +14,19 @@
<Link
rel="icon"
- href="$base/images/friendika-16.png"
+ href="{{$base}}/images/friendika-16.png"
type="image/png"
/>
<Link
rel="icon32"
- href="$base/images/friendika-32.png"
+ href="{{$base}}/images/friendika-32.png"
type="image/png"
/>
<Link
rel= "http://www.oexchange.org/spec/0.8/rel/offer"
- href="$base/oexchange"
+ href="{{$base}}/oexchange"
type="text/html"
/>
</XRD>
diff --git a/view/tpl/opensearch.tpl b/view/tpl/opensearch.tpl
index 374fcaac9..26fb5a799 100644..100755
--- a/view/tpl/opensearch.tpl
+++ b/view/tpl/opensearch.tpl
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
- <ShortName>Friendika@$nodename</ShortName>
- <Description>Search in Friendika@$nodename</Description>
- <Contact>http://bugs.friendika.com/</Contact>
- <Image height="16" width="16" type="image/png">$baseurl/images/friendika-16.png</Image>
- <Image height="64" width="64" type="image/png">$baseurl/images/friendika-64.png</Image>
+ <ShortName>Red Matrix@{{$nodename}}</ShortName>
+ <Description>Search in The Red Matrix@{{$nodename}}</Description>
+ <Contact>http://github.com/friendica/red/</Contact>
+ <Image height="16" width="16" type="image/png">{{$baseurl}}/images/rhash-16.png</Image>
+ <Image height="64" width="64" type="image/png">{{$baseurl}}/images/rhash-64.png</Image>
<Url type="text/html"
- template="$baseurl/search?search={searchTerms}"/>
+ template="{{$baseurl}}/search?search={searchTerms}"/>
<Url type="application/opensearchdescription+xml"
rel="self"
- template="$baseurl/opensearch" />
+ template="{{$baseurl}}/opensearch" />
</OpenSearchDescription> \ No newline at end of file
diff --git a/view/tpl/page_display.tpl b/view/tpl/page_display.tpl
index a79d505dd..7b4fdb96e 100644..100755
--- a/view/tpl/page_display.tpl
+++ b/view/tpl/page_display.tpl
@@ -1,7 +1,9 @@
-<div class=page">
- <h3 class="page-title">$title</h3>
+<div class="page">
- <div class="page-author"><a class=="page-author-link" href="$auth_url">$author</a></div>
- <div class="page-date">$date</div>
- <div class="page-body">body</div>
+<div class="page-content-wrapper" id="page-content-wrapper" >
+ <h3 class="page-title">{{$title}}</h3>
+ <div class="page-author"><a class=="page-author-link" href="{{$auth_url}}">{{$author}}</a></div>
+ <div class="page-date">{{$date}}</div>
+ <div class="page-body">{{$body}}</div>
+</div>
</div>
diff --git a/view/tpl/pagetypes.tpl b/view/tpl/pagetypes.tpl
deleted file mode 100644
index c9022a1c1..000000000
--- a/view/tpl/pagetypes.tpl
+++ /dev/null
@@ -1,5 +0,0 @@
- {{inc field_radio.tpl with $field=$page_normal }}{{endinc}}
- {{inc field_radio.tpl with $field=$page_community }}{{endinc}}
- {{inc field_radio.tpl with $field=$page_prvgroup }}{{endinc}}
- {{inc field_radio.tpl with $field=$page_soapbox }}{{endinc}}
- {{inc field_radio.tpl with $field=$page_freelove }}{{endinc}}
diff --git a/view/tpl/peoplefind.tpl b/view/tpl/peoplefind.tpl
index 3c2692d25..72c0830cf 100644..100755
--- a/view/tpl/peoplefind.tpl
+++ b/view/tpl/peoplefind.tpl
@@ -1,14 +1,14 @@
<div id="peoplefind-sidebar" class="widget">
- <h3>$findpeople</h3>
- <div id="peoplefind-desc">$desc</div>
+ <h3>{{$findpeople}}</h3>
+ <div id="peoplefind-desc">{{$desc}}</div>
<form action="dirfind" method="post" />
- <input id="side-peoplefind-url" type="text" name="search" size="24" title="$hint" /><input id="side-peoplefind-submit" type="submit" name="submit" value="$findthem" />
+ <input id="side-peoplefind-url" type="text" name="search" size="24" title="{{$hint}}" /><input id="side-peoplefind-submit" type="submit" name="submit" value="{{$findthem}}" />
</form>
- <div class="side-link" id="side-match-link"><a href="match" >$similar</a></div>
- <div class="side-link" id="side-suggest-link"><a href="suggest" >$suggest</a></div>
- <div class="side-link" id="side-random-profile-link" ><a href="randprof" target="extlink" >$random</a></div>
- {{ if $inv }}
- <div class="side-link" id="side-invite-link" ><a href="invite" >$inv</a></div>
- {{ endif }}
+ <div class="side-link" id="side-match-link"><a href="match" >{{$similar}}</a></div>
+ <div class="side-link" id="side-suggest-link"><a href="suggest" >{{$suggest}}</a></div>
+ <div class="side-link" id="side-random-profile-link" ><a href="randprof" >{{$random}}</a></div>
+ {{if $inv}}
+ <div class="side-link" id="side-invite-link" ><a href="invite" >{{$inv}}</a></div>
+ {{/if}}
</div>
diff --git a/view/tpl/photo_album.tpl b/view/tpl/photo_album.tpl
index cc3dcfb9c..d2016e41c 100644..100755
--- a/view/tpl/photo_album.tpl
+++ b/view/tpl/photo_album.tpl
@@ -1,7 +1,8 @@
-<div class="photo-album-image-wrapper" id="photo-album-image-wrapper-$id">
- <a href="$photolink" class="photo-album-photo-link" id="photo-album-photo-link-$id" title="$phototitle">
- <img src="$imgsrc" alt="$imgalt" title="$phototitle" class="photo-album-photo lframe resize$twist" id="photo-album-photo-$id" />
- <p class='caption'>$desc</p>
+{{include file="prettyphoto.tpl"}}
+<div class="photo-album-image-wrapper" id="photo-album-image-wrapper-{{$id}}">
+ <a href="{{$photolink}}" class="photo-album-photo-link" id="photo-album-photo-link-{{$id}}" title="{{$phototitle}}" rel="{{$rel}}">
+ <img src="{{$imgsrc}}" alt="{{$imgalt}}" title="{{$phototitle}}" class="photo-album-photo lframe resize{{$twist}}" id="photo-album-photo-{{$id}}" />
+ <p class='caption'>{{$desc}}</p>
</a>
</div>
<div class="photo-album-image-wrapper-end"></div>
diff --git a/view/tpl/photo_albums.tpl b/view/tpl/photo_albums.tpl
index eccc3660a..e83eefb39 100644..100755
--- a/view/tpl/photo_albums.tpl
+++ b/view/tpl/photo_albums.tpl
@@ -1,13 +1,13 @@
<div id="side-bar-photos-albums" class="widget">
-<h3><a href="$baseurl/photos/$nick" title="$title" >$title</a></h3>
-{{ if $albums }}
+<h3><a href="{{$baseurl}}/photos/{{$nick}}" title="{{$title}}" >{{$title}}</a></h3>
+{{if $albums}}
<ul>
-{{ for $albums as $al }}
-<li><a href="$baseurl/photos/$nick/$al.bin2hex">$al.album</a></li>
-{{ endfor }}
+{{foreach $albums as $al}}
+<li><a href="{{$baseurl}}/photos/{{$nick}}/album/{{$al.bin2hex}}">{{$al.text}}</a></li>
+{{/foreach}}
</ul>
-{{ endif }}
-{{ if $upload }}
-<div id="photo-albums-upload-link"><a href="$baseurl/photos/$nick/upload" title="$upload">$upload</a></div>
-{{ endif }}
+{{/if}}
+{{if $upload}}
+<div id="photo-albums-upload-link"><a href="{{$baseurl}}/photos/{{$nick}}/upload" title="{{$upload}}">{{$upload}}</a></div>
+{{/if}}
</div>
diff --git a/view/tpl/photo_drop.tpl b/view/tpl/photo_drop.tpl
index b4ea62b45..94ef5a3ee 100644..100755
--- a/view/tpl/photo_drop.tpl
+++ b/view/tpl/photo_drop.tpl
@@ -1,4 +1,4 @@
-<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$id" >
- <a href="item/drop/$id" onclick="return confirmDelete();" class="icon drophide" title="$delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>
+<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-{{$id}}" >
+ <a href="item/drop/{{$id}}" onclick="return confirmDelete();" class="icon drophide" title="{{$delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>
</div>
<div class="wall-item-delete-end"></div>
diff --git a/view/tpl/photo_edit.tpl b/view/tpl/photo_edit.tpl
deleted file mode 100644
index 53b69caae..000000000
--- a/view/tpl/photo_edit.tpl
+++ /dev/null
@@ -1,50 +0,0 @@
-
-<form action="photos/$nickname/$resource_id" method="post" id="photo_edit_form" >
-
- <input type="hidden" name="item_id" value="$item_id" />
-
- <label id="photo-edit-albumname-label" for="photo-edit-albumname">$newalbum</label>
- <input id="photo-edit-albumname" type="text" size="32" name="albname" value="$album" />
-
- <div id="photo-edit-albumname-end"></div>
-
- <label id="photo-edit-caption-label" for="photo-edit-caption">$capt_label</label>
- <input id="photo-edit-caption" type="text" size="84" name="desc" value="$caption" />
-
- <div id="photo-edit-caption-end"></div>
-
- <label id="photo-edit-tags-label" for="photo-edit-newtag" >$tag_label</label>
- <input name="newtag" id="photo-edit-newtag" size="84" title="$help_tags" type="text" />
-
- <div id="photo-edit-tags-end"></div>
- <div id="photo-edit-rotate-wrapper">
- <div id="photo-edit-rotate-label">
- $rotatecw<br>
- $rotateccw
- </div>
- <input type="radio" name="rotate" value="1" /><br>
- <input type="radio" name="rotate" value="2" />
- </div>
- <div id="photo-edit-rotate-end"></div>
-
- <div id="photo-edit-perms" class="photo-edit-perms" >
- <a href="#photo-edit-perms-select" id="photo-edit-perms-menu" class="button popupbox" title="$permissions"/>
- <span id="jot-perms-icon" class="icon $lockstate" ></span>$permissions
- </a>
- <div id="photo-edit-perms-menu-end"></div>
-
- <div style="display: none;">
- <div id="photo-edit-perms-select" >
- $aclselect
- </div>
- </div>
- </div>
- <div id="photo-edit-perms-end"></div>
-
- <input id="photo-edit-submit-button" type="submit" name="submit" value="$submit" />
- <input id="photo-edit-delete-button" type="submit" name="delete" value="$delete" onclick="return confirmDelete()"; />
-
- <div id="photo-edit-end"></div>
-</form>
-
-
diff --git a/view/tpl/photo_item.tpl b/view/tpl/photo_item.tpl
index 22884e848..e7d25fd55 100644..100755
--- a/view/tpl/photo_item.tpl
+++ b/view/tpl/photo_item.tpl
@@ -1,22 +1,22 @@
-<div class="wall-item-outside-wrapper$indent" id="wall-item-outside-wrapper-$id" >
- <div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$id" >
- <a href="$profile_url" title="View $name's profile" class="wall-item-photo-link" id="wall-item-photo-link-$id">
- <img src="$thumb" class="wall-item-photo" id="wall-item-photo-$id" style="height: 80px; width: 80px;" alt="$name" /></a>
+<div class="wall-item-outside-wrapper{{$indent}}" id="wall-item-outside-wrapper-{{$id}}" >
+ <div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-{{$id}}" >
+ <a href="{{$profile_url}}" title="View {{$name}}'s profile" class="wall-item-photo-link" id="wall-item-photo-link-{{$id}}">
+ <img src="{{$thumb}}" class="wall-item-photo" id="wall-item-photo-{{$id}}" style="height: 80px; width: 80px;" alt="{{$name}}" /></a>
</div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-$id" >
- <a href="$profile_url" title="View $name's profile" class="wall-item-name-link"><span class="wall-item-name" id="wall-item-name-$id" >$name</span></a>
- <div class="wall-item-ago" id="wall-item-ago-$id">$ago</div>
+ <div class="wall-item-wrapper" id="wall-item-wrapper-{{$id}}" >
+ <a href="{{$profile_url}}" title="View {{$name}}'s profile" class="wall-item-name-link"><span class="wall-item-name" id="wall-item-name-{{$id}}" >{{$name}}</span></a>
+ <div class="wall-item-ago" id="wall-item-ago-{{$id}}">{{$ago}}</div>
</div>
- <div class="wall-item-content" id="wall-item-content-$id" >
- <div class="wall-item-title" id="wall-item-title-$id">$title</div>
- <div class="wall-item-body" id="wall-item-body-$id" >$body</div>
+ <div class="wall-item-content" id="wall-item-content-{{$id}}" >
+ <div class="wall-item-title" id="wall-item-title-{{$id}}">{{$title}}</div>
+ <div class="wall-item-body" id="wall-item-body-{{$id}}" >{{$body}}</div>
</div>
- $drop
+ {{$drop}}
<div class="wall-item-wrapper-end"></div>
<div class="wall-item-comment-separator"></div>
- $comment
+ {{$comment}}
-<div class="wall-item-outside-wrapper-end$indent" ></div>
+<div class="wall-item-outside-wrapper-end{{$indent}}" ></div>
</div>
diff --git a/view/tpl/photo_top.tpl b/view/tpl/photo_top.tpl
index 155cab51d..902f74232 100644..100755
--- a/view/tpl/photo_top.tpl
+++ b/view/tpl/photo_top.tpl
@@ -1,8 +1,7 @@
-
-<div class="photo-top-image-wrapper lframe" id="photo-top-image-wrapper-$photo.id">
- <a href="$photo.link" class="photo-top-photo-link" id="photo-top-photo-link-$photo.id" title="$photo.title">
- <img src="$photo.src" alt="$photo.alt" title="$photo.title" class="photo-top-photo$photo.twist" id="photo-top-photo-$photo.id" />
+<div class="photo-top-image-wrapper lframe" id="photo-top-image-wrapper-{{$photo.id}}">
+ <a href="{{$photo.link}}" class="photo-top-photo-link" id="photo-top-photo-link-{{$photo.id}}" title="{{$photo.title}}">
+ <img src="{{$photo.src}}" alt="{{$photo.alt}}" title="{{$photo.title}}" class="photo-top-photo{{$photo.twist}}" id="photo-top-photo-{{$photo.id}}" />
</a>
- <div class="photo-top-album-name"><a href="$photo.album.link" class="photo-top-album-link" title="$photo.album.alt" >$photo.album.name</a></div>
+ <div class="photo-top-album-name"><a href="{{$photo.album.link}}" class="photo-top-album-link" title="{{$photo.album.alt}}" >{{$photo.album.name}}</a></div>
</div>
diff --git a/view/tpl/photo_view.tpl b/view/tpl/photo_view.tpl
index 732caf690..f825dcba6 100644..100755
--- a/view/tpl/photo_view.tpl
+++ b/view/tpl/photo_view.tpl
@@ -1,37 +1,88 @@
+{{include file="prettyphoto.tpl"}}
+
<div id="live-display"></div>
-<h3><a href="$album.0">$album.1</a></h3>
+<h3><a href="{{$album.0}}">{{$album.1}}</a></h3>
<div id="photo-edit-link-wrap">
-{{ if $tools }}
-<a id="photo-edit-link" href="$tools.edit.0">$tools.edit.1</a>
-|
-<a id="photo-toprofile-link" href="$tools.profile.0">$tools.profile.1</a>
-{{ endif }}
-{{ if $lock }} | <img src="images/lock_icon.gif" class="lockview" alt="$lock" onclick="lockview(event,'photo/$id');" /> {{ endif }}
+{{if $tools}}
+<a id="photo-toprofile-link" href="{{$tools.profile.0}}">{{$tools.profile.1}}</a>
+{{/if}}
+{{if $lock}} | <img src="images/lock_icon.gif" class="lockview" alt="{{$lock}}" onclick="lockview(event,'photo/{{$id}}');" /> {{/if}}
</div>
-{{ if $prevlink }}<div id="photo-prev-link"><a href="$prevlink.0">$prevlink.1</a></div>{{ endif }}
-<div id="photo-photo"><a href="$photo.href" title="$photo.title"><img src="$photo.src" /></a></div>
-{{ if $nextlink }}<div id="photo-next-link"><a href="$nextlink.0">$nextlink.1</a></div>{{ endif }}
+{{if $prevlink}}<div id="photo-prev-link"><a href="{{$prevlink.0}}">{{$prevlink.1}}</a></div>{{/if}}
+<div id="photo-photo"><a href="{{$photo.href}}" title="{{$photo.title}}" rel="prettyPhoto"><img src="{{$photo.src}}" /></a></div>
+{{if $nextlink}}<div id="photo-next-link"><a href="{{$nextlink.0}}">{{$nextlink.1}}</a></div>{{/if}}
<div id="photo-photo-end"></div>
-<div id="photo-caption">$desc</div>
-{{ if $tags }}
-<div id="in-this-photo-text">$tags.0</div>
-<div id="in-this-photo">$tags.1</div>
-{{ endif }}
-{{ if $tags.2 }}<div id="tag-remove"><a href="$tags.2">$tags.3</a></div>{{ endif }}
+<div id="photo-caption">{{$desc}}</div>
+{{if $tags}}
+<div id="in-this-photo-text">{{$tags.0}}</div>
+<div id="in-this-photo">{{$tags.1}}</div>
+{{/if}}
+{{if $tags.2}}<div id="tag-remove"><a href="{{$tags.2}}">{{$tags.3}}</a></div>{{/if}}
+
+{{if $edit}}
+<div id="photo-edit-edit-wrapper" class="fakelink" onclick="openClose('photo-edit-edit');">{{$edit.edit}}</div>
+<div id="photo-edit-edit" style="display: none;">
+<form action="photos/{{$edit.nickname}}/{{$edit.resource_id}}" method="post" id="photo_edit_form" >
+
+ <input type="hidden" name="item_id" value="{{$item_id}}" />
+
+ <label id="photo-edit-albumname-label" for="photo-edit-albumname">{{$edit.newalbum}}</label>
+ <input id="photo-edit-albumname" type="text" size="32" name="albname" value="{{$edit.album}}" />
+
+ <div id="photo-edit-albumname-end"></div>
+
+ <label id="photo-edit-caption-label" for="photo-edit-caption">{{$edit.capt_label}}</label>
+ <input id="photo-edit-caption" type="text" size="84" name="desc" value="{{$edit.caption}}" />
-{{ if $edit }}$edit{{ endif }}
+ <div id="photo-edit-caption-end"></div>
+
+ <label id="photo-edit-tags-label" for="photo-edit-newtag" >{{$edit.tag_label}}</label>
+ <input name="newtag" id="photo-edit-newtag" size="84" title="{{$edit.help_tags}}" type="text" />
+
+ <div id="photo-edit-tags-end"></div>
+ <div id="photo-edit-rotate-wrapper">
+ <div id="photo-edit-rotate-label">
+ {{$edit.rotatecw}}<br>
+ {{$edit.rotateccw}}
+ </div>
+ <input type="radio" name="rotate" value="1" /><br>
+ <input type="radio" name="rotate" value="2" />
+ </div>
+ <div id="photo-edit-rotate-end"></div>
+
+ <div id="photo-edit-perms" class="photo-edit-perms" >
+ <a href="#photo-edit-perms-select" id="photo-edit-perms-menu" class="button popupbox" title="{{$edit.permissions}}"/>
+ <span id="jot-perms-icon" class="icon {{$edit.lockstate}}" ></span>{{$edit.permissions}}
+ </a>
+ <div id="photo-edit-perms-menu-end"></div>
+
+ <div style="display: none;">
+ <div id="photo-edit-perms-select" >
+ {{$edit.aclselect}}
+ </div>
+ </div>
+ </div>
+ <div id="photo-edit-perms-end"></div>
+
+ <input id="photo-edit-submit-button" type="submit" name="submit" value="{{$edit.submit}}" />
+ <input id="photo-edit-delete-button" type="submit" name="delete" value="{{$edit.delete}}" onclick="return confirmDelete()"; />
+
+ <div id="photo-edit-end"></div>
+</form>
+</div>
+{{/if}}
-{{ if $likebuttons }}
+{{if $likebuttons}}
<div id="photo-like-div">
- $likebuttons
- $like
- $dislike
+ {{$likebuttons}}
+ {{$like}}
+ {{$dislike}}
</div>
-{{ endif }}
+{{/if}}
-$comments
+{{$comments}}
-$paginate
+{{$paginate}}
diff --git a/view/tpl/photos_recent.tpl b/view/tpl/photos_recent.tpl
index 1df78cb7b..43a22a017 100644..100755
--- a/view/tpl/photos_recent.tpl
+++ b/view/tpl/photos_recent.tpl
@@ -1,11 +1,11 @@
-<h3>$title</h3>
-{{ if $can_post }}
-<a id="photo-top-upload-link" href="$upload.1">$upload.0</a>
-{{ endif }}
+<h3>{{$title}}</h3>
+{{if $can_post}}
+<a id="photo-top-upload-link" href="{{$upload.1}}">{{$upload.0}}</a>
+{{/if}}
<div class="photos">
-{{ for $photos as $photo }}
- {{ inc photo_top.tpl }}{{ endinc }}
-{{ endfor }}
+{{foreach $photos as $photo}}
+ {{include file="photo_top.tpl"}}
+{{/foreach}}
</div>
<div class="photos-end"></div>
diff --git a/view/tpl/photos_upload.tpl b/view/tpl/photos_upload.tpl
index 93c0b7d54..707024cb9 100644..100755
--- a/view/tpl/photos_upload.tpl
+++ b/view/tpl/photos_upload.tpl
@@ -1,45 +1,46 @@
-<h3>$pagename</h3>
+<h3>{{$pagename}}</h3>
-<div id="photos-usage-message">$usage</div>
+<div id="photos-usage-message">{{$usage}}</div>
-<form action="photos/$nickname" enctype="multipart/form-data" method="post" name="photos-upload-form" id="photos-upload-form" >
+<form action="photos/{{$nickname}}" enctype="multipart/form-data" method="post" name="photos-upload-form" id="photos-upload-form" >
+ <input type="hidden" id="photos-upload-source" name="source" value="photos" />
<div id="photos-upload-new-wrapper" >
<div id="photos-upload-newalbum-div">
- <label id="photos-upload-newalbum-text" for="photos-upload-newalbum" >$newalbum</label>
+ <label id="photos-upload-newalbum-text" for="photos-upload-newalbum" >{{$newalbum}}</label>
</div>
<input id="photos-upload-newalbum" type="text" name="newalbum" />
</div>
<div id="photos-upload-new-end"></div>
<div id="photos-upload-exist-wrapper">
- <div id="photos-upload-existing-album-text">$existalbumtext</div>
- $albumselect
+ <div id="photos-upload-existing-album-text">{{$existalbumtext}}</div>
+ {{$albumselect}}
</div>
<div id="photos-upload-exist-end"></div>
<div id="photos-upload-noshare-div" class="photos-upload-noshare-div" >
<input id="photos-upload-noshare" type="checkbox" name="not_visible" value="1" />
- <label id="photos-upload-noshare-text" for="photos-upload-noshare" >$nosharetext</label>
+ <label id="photos-upload-noshare-text" for="photos-upload-noshare" >{{$nosharetext}}</label>
</div>
<div id="photos-upload-perms" class="photos-upload-perms" >
<a href="#photos-upload-permissions-wrapper" id="photos-upload-perms-menu" class="button popupbox" />
- <span id="jot-perms-icon" class="icon $lockstate" ></span>$permissions
+ <span id="jot-perms-icon" class="icon {{$lockstate}}" ></span>{{$permissions}}
</a>
</div>
<div id="photos-upload-perms-end"></div>
<div style="display: none;">
<div id="photos-upload-permissions-wrapper">
- $aclselect
+ {{$aclselect}}
</div>
</div>
<div id="photos-upload-spacer"></div>
- $uploader
+ {{$uploader}}
- $default
+ {{$default}}
<div class="photos-upload-end" ></div>
</form>
diff --git a/view/tpl/poco_entry_xml.tpl b/view/tpl/poco_entry_xml.tpl
index 4d84cee41..869894852 100644..100755
--- a/view/tpl/poco_entry_xml.tpl
+++ b/view/tpl/poco_entry_xml.tpl
@@ -1,7 +1,7 @@
<entry>
-{{ if $entry.id }}<id>$entry.id</id>{{ endif }}
-{{ if $entry.displayName }}<displayName>$entry.displayName</displayName>{{ endif }}
-{{ if $entry.preferredUsername }}<preferredUsername>$entry.preferredUsername</preferredUsername>{{ endif }}
-{{ if $entry.urls }}{{ for $entry.urls as $url }}<urls><value>$url.value</value><type>$url.type</type></urls>{{ endfor }}{{ endif }}
-{{ if $entry.photos }}{{ for $entry.photos as $photo }}<photos><value>$photo.value</value><type>$photo.type</type></photos>{{ endfor }}{{ endif }}
+{{if $entry.id}}<id>{{$entry.id}}</id>{{/if}}
+{{if $entry.displayName}}<displayName>{{$entry.displayName}}</displayName>{{/if}}
+{{if $entry.preferredUsername}}<preferredUsername>{{$entry.preferredUsername}}</preferredUsername>{{/if}}
+{{if $entry.urls}}{{foreach $entry.urls as $url}}<urls><value>{{$url.value}}</value><type>{{$url.type}}</type></urls>{{/foreach}}{{/if}}
+{{if $entry.photos}}{{foreach $entry.photos as $photo}}<photos><value>{{$photo.value}}</value><type>{{$photo.type}}</type></photos>{{/foreach}}{{/if}}
</entry>
diff --git a/view/tpl/poco_xml.tpl b/view/tpl/poco_xml.tpl
index 9549b695d..0e38a692c 100644..100755
--- a/view/tpl/poco_xml.tpl
+++ b/view/tpl/poco_xml.tpl
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<response>
-{{ if $response.sorted }}<sorted>$response.sorted</sorted>{{ endif }}
-{{ if $response.filtered }}<filtered>$response.filtered</filtered>{{ endif }}
-{{ if $response.updatedSince }}<updatedSince>$response.updatedSince</updatedSince>{{ endif }}
-<startIndex>$response.startIndex</startIndex>
-<itemsPerPage>$response.itemsPerPage</itemsPerPage>
-<totalResults>$response.totalResults</totalResults>
+{{if $response.sorted}}<sorted>{{$response.sorted}}</sorted>{{/if}}
+{{if $response.filtered}}<filtered>{{$response.filtered}}</filtered>{{/if}}
+{{if $response.updatedSince}}<updatedSince>{{$response.updatedSince}}</updatedSince>{{/if}}
+<startIndex>{{$response.startIndex}}</startIndex>
+<itemsPerPage>{{$response.itemsPerPage}}</itemsPerPage>
+<totalResults>{{$response.totalResults}}</totalResults>
-{{ if $response.totalResults }}
-{{ for $response.entry as $entry }}
-{{ inc poco_entry_xml.tpl }}{{ endinc }}
-{{ endfor }}
-{{ else }}
+{{if $response.totalResults}}
+{{foreach $response.entry as $entry}}
+{{include file="poco_entry_xml.tpl"}}
+{{/foreach}}
+{{else}}
<entry></entry>
-{{ endif }}
+{{/if}}
</response>
diff --git a/view/tpl/poke_content.tpl b/view/tpl/poke_content.tpl
index b9e089f5b..22a0b291f 100644..100755
--- a/view/tpl/poke_content.tpl
+++ b/view/tpl/poke_content.tpl
@@ -1,32 +1,32 @@
-<h3>$title</h3>
+<h3>{{$title}}</h3>
-<div id="poke-desc">$desc</div>
+<div id="poke-desc">{{$desc}}</div>
<form action="poke" method="get">
<br />
<br />
-<div id="poke-recip-label">$clabel</div>
+<div id="poke-recip-label">{{$clabel}}</div>
<br />
-<input id="poke-recip" type="text" size="64" maxlength="255" value="$name" name="pokename" autocomplete="off" />
-<input id="poke-recip-complete" type="hidden" value="$id" name="cid" />
-<input id="poke-parent" type="hidden" value="$parent" name="parent" />
+<input id="poke-recip" type="text" size="64" maxlength="255" value="{{$name}}" name="pokename" autocomplete="off" />
+<input id="poke-recip-complete" type="hidden" value="{{$id}}" name="cid" />
+<input id="poke-parent" type="hidden" value="{{$parent}}" name="parent" />
<br />
<br />
-<div id="poke-action-label">$choice</div>
+<div id="poke-action-label">{{$choice}}</div>
<br />
<br />
<select name="verb" id="poke-verb-select" >
-{{ for $verbs as $v }}
-<option value="$v.0">$v.1</option>
-{{ endfor }}
+{{foreach $verbs as $v}}
+<option value="{{$v.0}}">{{$v.1}}</option>
+{{/foreach}}
</select>
<br />
<br />
-<div id="poke-private-desc">$prv_desc</div>
-<input type="checkbox" name="private" {{ if $parent }}disabled="disabled"{{ endif }} value="1" />
+<div id="poke-private-desc">{{$prv_desc}}</div>
+<input type="checkbox" name="private" {{if $parent}}disabled="disabled"{{/if}} value="1" />
<br />
<br />
-<input type="submit" name="submit" value="$submit" />
+<input type="submit" name="submit" value="{{$submit}}" />
</form>
diff --git a/view/tpl/posted_date_widget.tpl b/view/tpl/posted_date_widget.tpl
index 3e2ee5a3e..009fa60a6 100644..100755
--- a/view/tpl/posted_date_widget.tpl
+++ b/view/tpl/posted_date_widget.tpl
@@ -1,9 +1,9 @@
<div id="datebrowse-sidebar" class="widget">
- <h3>$title</h3>
+ <h3>{{$title}}</h3>
<script>function dateSubmit(dateurl) { window.location.href = dateurl; } </script>
-<select id="posted-date-selector" name="posted-date-select" onchange="dateSubmit($(this).val());" size="$size">
-{{ for $dates as $d }}
-<option value="$url/$d.1/$d.2" >$d.0</option>
-{{ endfor }}
+<select id="posted-date-selector" name="posted-date-select" onchange="dateSubmit($(this).val());" size="{{$size}}">
+{{foreach $dates as $d}}
+<option value="{{$url}}/{{$d.1}}/{{$d.2}}" >{{$d.0}}</option>
+{{/foreach}}
</select>
</div>
diff --git a/view/tpl/prettyphoto.tpl b/view/tpl/prettyphoto.tpl
new file mode 100644
index 000000000..6d047e620
--- /dev/null
+++ b/view/tpl/prettyphoto.tpl
@@ -0,0 +1,6 @@
+<script type="text/javascript" charset="utf-8">
+ $(document).ready(function(){
+ $("a[rel^='prettyPhoto']").prettyPhoto();
+ });
+</script>
+
diff --git a/view/tpl/profed_head.tpl b/view/tpl/profed_head.tpl
index 2477654b3..103960a76 100644..100755
--- a/view/tpl/profed_head.tpl
+++ b/view/tpl/profed_head.tpl
@@ -1,11 +1,11 @@
<script language="javascript" type="text/javascript"
- src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
+ src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
theme : "advanced",
- mode : "$editselect",
+ mode : "{{$editselect}}",
plugins : "bbcode,paste",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
theme_advanced_buttons2 : "",
@@ -21,7 +21,7 @@ tinyMCE.init({
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
- content_css: "$baseurl/view/custom_tinymce.css",
+ content_css: "{{$baseurl}}/view/custom_tinymce.css",
theme_advanced_path : false,
setup : function(ed) {
ed.onInit.add(function(ed) {
diff --git a/view/tpl/profile-hide-friends.tpl b/view/tpl/profile-hide-friends.tpl
deleted file mode 100644
index 9ecacfbe0..000000000
--- a/view/tpl/profile-hide-friends.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-<p id="hide-friends-text">
-$desc
-</p>
-
- <div id="hide-friends-yes-wrapper">
- <label id="hide-friends-yes-label" for="hide-friends-yes">$yes_str</label>
- <input type="radio" name="hide-friends" id="hide-friends-yes" $yes_selected value="1" />
-
- <div id="hide-friends-break" ></div>
- </div>
- <div id="hide-friends-no-wrapper">
- <label id="hide-friends-no-label" for="hide-friends-no">$no_str</label>
- <input type="radio" name="hide-friends" id="hide-friends-no" $no_selected value="0" />
-
- <div id="hide-friends-end"></div>
- </div>
diff --git a/view/tpl/profile-hide-wall.tpl b/view/tpl/profile-hide-wall.tpl
deleted file mode 100644
index 10185e243..000000000
--- a/view/tpl/profile-hide-wall.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-<p id="hide-wall-text">
-$desc
-</p>
-
- <div id="hide-wall-yes-wrapper">
- <label id="hide-wall-yes-label" for="hide-wall-yes">$yes_str</label>
- <input type="radio" name="hidewall" id="hide-wall-yes" $yes_selected value="1" />
-
- <div id="hide-wall-break" ></div>
- </div>
- <div id="hide-wall-no-wrapper">
- <label id="hide-wall-no-label" for="hide-wall-no">$no_str</label>
- <input type="radio" name="hidewall" id="hide-wall-no" $no_selected value="0" />
-
- <div id="hide-wall-end"></div>
- </div>
diff --git a/view/tpl/profile-in-directory.tpl b/view/tpl/profile-in-directory.tpl
deleted file mode 100644
index 56b28d37e..000000000
--- a/view/tpl/profile-in-directory.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-<p id="profile-in-directory">
-$desc
-</p>
-
- <div id="profile-in-dir-yes-wrapper">
- <label id="profile-in-dir-yes-label" for="profile-in-dir-yes">$yes_str</label>
- <input type="radio" name="profile_in_directory" id="profile-in-dir-yes" $yes_selected value="1" />
-
- <div id="profile-in-dir-break" ></div>
- </div>
- <div id="profile-in-dir-no-wrapper">
- <label id="profile-in-dir-no-label" for="profile-in-dir-no">$no_str</label>
- <input type="radio" name="profile_in_directory" id="profile-in-dir-no" $no_selected value="0" />
-
- <div id="profile-in-dir-end"></div>
- </div>
diff --git a/view/tpl/profile-in-netdir.tpl b/view/tpl/profile-in-netdir.tpl
deleted file mode 100644
index 882ad2d17..000000000
--- a/view/tpl/profile-in-netdir.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-<p id="profile-in-directory">
-$desc
-</p>
-
- <div id="profile-in-netdir-yes-wrapper">
- <label id="profile-in-netdir-yes-label" for="profile-in-netdir-yes">$yes_str</label>
- <input type="radio" name="profile_in_netdirectory" id="profile-in-netdir-yes" $yes_selected value="1" />
-
- <div id="profile-in-netdir-break" ></div>
- </div>
- <div id="profile-in-netdir-no-wrapper">
- <label id="profile-in-netdir-no-label" for="profile-in-netdir-no">$no_str</label>
- <input type="radio" name="profile_in_netdirectory" id="profile-in-netdir-no" $no_selected value="0" />
-
- <div id="profile-in-netdir-end"></div>
- </div>
diff --git a/view/tpl/profile_advanced.tpl b/view/tpl/profile_advanced.tpl
index 0bc4d3fd3..db48a8509 100644..100755
--- a/view/tpl/profile_advanced.tpl
+++ b/view/tpl/profile_advanced.tpl
@@ -1,170 +1,182 @@
-<h2>$title</h2>
+<h2>{{$title}}</h2>
<dl id="aprofile-fullname" class="aprofile">
- <dt>$profile.fullname.0</dt>
- <dd>$profile.fullname.1</dd>
+ <dt>{{$profile.fullname.0}}</dt>
+ <dd>{{$profile.fullname.1}}</dd>
</dl>
-{{ if $profile.gender }}
+{{if $profile.gender}}
<dl id="aprofile-gender" class="aprofile">
- <dt>$profile.gender.0</dt>
- <dd>$profile.gender.1</dd>
+ <dt>{{$profile.gender.0}}</dt>
+ <dd>{{$profile.gender.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.birthday }}
+{{if $profile.birthday}}
<dl id="aprofile-birthday" class="aprofile">
- <dt>$profile.birthday.0</dt>
- <dd>$profile.birthday.1</dd>
+ <dt>{{$profile.birthday.0}}</dt>
+ <dd>{{$profile.birthday.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.age }}
+{{if $profile.age}}
<dl id="aprofile-age" class="aprofile">
- <dt>$profile.age.0</dt>
- <dd>$profile.age.1</dd>
+ <dt>{{$profile.age.0}}</dt>
+ <dd>{{$profile.age.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.marital }}
+{{if $profile.marital}}
<dl id="aprofile-marital" class="aprofile">
- <dt><span class="heart">&hearts;</span> $profile.marital.0</dt>
- <dd>$profile.marital.1{{ if $profile.marital.with }} ($profile.marital.with){{ endif }}{{ if $profile.howlong }} $profile.howlong{{ endif }}</dd>
+ <dt><span class="heart">&hearts;</span> {{$profile.marital.0}}</dt>
+ <dd>{{$profile.marital.1}}{{if $profile.marital.with}} ({{$profile.marital.with}}){{/if}}{{if $profile.howlong}} {{$profile.howlong}}{{/if}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.sexual }}
+{{if $profile.sexual}}
<dl id="aprofile-sexual" class="aprofile">
- <dt>$profile.sexual.0</dt>
- <dd>$profile.sexual.1</dd>
+ <dt>{{$profile.sexual.0}}</dt>
+ <dd>{{$profile.sexual.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.keywords }}
+{{if $profile.keywords}}
<dl id="aprofile-tags" class="aprofile">
- <dt>$profile.keywords.0</dt>
- <dd>$profile.keywords.1</dd>
+ <dt>{{$profile.keywords.0}}</dt>
+ <dd>{{$profile.keywords.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.homepage }}
+{{if $profile.homepage}}
<dl id="aprofile-homepage" class="aprofile">
- <dt>$profile.homepage.0</dt>
- <dd>$profile.homepage.1</dd>
+ <dt>{{$profile.homepage.0}}</dt>
+ <dd>{{$profile.homepage.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.hometown }}
+{{if $profile.hometown}}
<dl id="aprofile-hometown" class="aprofile">
- <dt>$profile.hometown.0</dt>
- <dd>$profile.hometown.1</dd>
+ <dt>{{$profile.hometown.0}}</dt>
+ <dd>{{$profile.hometown.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.politic }}
+{{if $profile.politic}}
<dl id="aprofile-politic" class="aprofile">
- <dt>$profile.politic.0</dt>
- <dd>$profile.politic.1</dd>
+ <dt>{{$profile.politic.0}}</dt>
+ <dd>{{$profile.politic.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.religion }}
+{{if $profile.religion}}
<dl id="aprofile-religion" class="aprofile">
- <dt>$profile.religion.0</dt>
- <dd>$profile.religion.1</dd>
+ <dt>{{$profile.religion.0}}</dt>
+ <dd>{{$profile.religion.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.about }}
+{{if $profile.about}}
<dl id="aprofile-about" class="aprofile">
- <dt>$profile.about.0</dt>
- <dd>$profile.about.1</dd>
+ <dt>{{$profile.about.0}}</dt>
+ <dd>{{$profile.about.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.interest }}
+{{if $profile.interest}}
<dl id="aprofile-interest" class="aprofile">
- <dt>$profile.interest.0</dt>
- <dd>$profile.interest.1</dd>
+ <dt>{{$profile.interest.0}}</dt>
+ <dd>{{$profile.interest.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.likes }}
+{{if $profile.likes}}
<dl id="aprofile-likes" class="aprofile">
- <dt>$profile.likes.0</dt>
- <dd>$profile.likes.1</dd>
+ <dt>{{$profile.likes.0}}</dt>
+ <dd>{{$profile.likes.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.dislikes }}
+{{if $profile.dislikes}}
<dl id="aprofile-dislikes" class="aprofile">
- <dt>$profile.dislikes.0</dt>
- <dd>$profile.dislikes.1</dd>
+ <dt>{{$profile.dislikes.0}}</dt>
+ <dd>{{$profile.dislikes.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.contact }}
+{{if $profile.contact}}
<dl id="aprofile-contact" class="aprofile">
- <dt>$profile.contact.0</dt>
- <dd>$profile.contact.1</dd>
+ <dt>{{$profile.contact.0}}</dt>
+ <dd>{{$profile.contact.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.music }}
+{{if $profile.music}}
<dl id="aprofile-music" class="aprofile">
- <dt>$profile.music.0</dt>
- <dd>$profile.music.1</dd>
+ <dt>{{$profile.music.0}}</dt>
+ <dd>{{$profile.music.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.book }}
+{{if $profile.book}}
<dl id="aprofile-book" class="aprofile">
- <dt>$profile.book.0</dt>
- <dd>$profile.book.1</dd>
+ <dt>{{$profile.book.0}}</dt>
+ <dd>{{$profile.book.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.tv }}
+{{if $profile.tv}}
<dl id="aprofile-tv" class="aprofile">
- <dt>$profile.tv.0</dt>
- <dd>$profile.tv.1</dd>
+ <dt>{{$profile.tv.0}}</dt>
+ <dd>{{$profile.tv.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.film }}
+{{if $profile.film}}
<dl id="aprofile-film" class="aprofile">
- <dt>$profile.film.0</dt>
- <dd>$profile.film.1</dd>
+ <dt>{{$profile.film.0}}</dt>
+ <dd>{{$profile.film.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.romance }}
+{{if $profile.romance}}
<dl id="aprofile-romance" class="aprofile">
- <dt>$profile.romance.0</dt>
- <dd>$profile.romance.1</dd>
+ <dt>{{$profile.romance.0}}</dt>
+ <dd>{{$profile.romance.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.work }}
+{{if $profile.work}}
<dl id="aprofile-work" class="aprofile">
- <dt>$profile.work.0</dt>
- <dd>$profile.work.1</dd>
+ <dt>{{$profile.work.0}}</dt>
+ <dd>{{$profile.work.1}}</dd>
</dl>
-{{ endif }}
+{{/if}}
-{{ if $profile.education }}
+{{if $profile.education}}
<dl id="aprofile-education" class="aprofile">
- <dt>$profile.education.0</dt>
- <dd>$profile.education.1</dd>
-</dl>
-{{ endif }}
-
-
+ <dt>{{$profile.education.0}}</dt>
+ <dd>{{$profile.education.1}}</dd>
+</dl>
+{{/if}}
+
+{{if $things}}
+{{foreach $things as $key => $items}}
+<b>{{$profile.fullname.1}} {{$key}}</b>
+<ul class="profile-thing-list">
+{{foreach $items as $item}}
+<li>{{if $item.img}}<img src="{{$item.img}}" width="100" height="100" alt="{{$item.term}}" />{{/if}}
+<a href="{{$item.url}}" >{{$item.term}}</a>
+</li>
+{{/foreach}}
+</ul>
+<div class="clear"></div>
+{{/foreach}}
+{{/if}}
diff --git a/view/tpl/profile_edit.tpl b/view/tpl/profile_edit.tpl
index a498f3a65..183389b9b 100644..100755
--- a/view/tpl/profile_edit.tpl
+++ b/view/tpl/profile_edit.tpl
@@ -1,14 +1,14 @@
-$default
+{{$default}}
-<h1>$banner</h1>
+<h1>{{$banner}}</h1>
<div id="profile-edit-links">
<ul>
-<li><a href="profile_photo" id="profile-photo_upload-link" title="$profpic">$profpic</a></li>
-<li><a href="profile/$profile_id/view?tab=profile" id="profile-edit-view-link" title="$viewprof">$viewprof</a></li>
-<li><a href="$profile_clone_link" id="profile-edit-clone-link" title="$cr_prof">$cl_prof</a></li>
+<li><a href="profile_photo" id="profile-photo_upload-link" title="{{$profpic}}">{{$profpic}}</a></li>
+<li><a href="profile/{{$profile_id}}/view" id="profile-edit-view-link" title="{{$viewprof}}">{{$viewprof}}</a></li>
+<li><a href="{{$profile_clone_link}}" id="profile-edit-clone-link" title="{{$cr_prof}}">{{$cl_prof}}</a></li>
<li></li>
-<li><a href="$profile_drop_link" id="profile-edit-drop-link" title="$del_prof" $disabled >$del_prof</a></li>
+<li><a href="{{$profile_drop_link}}" id="profile-edit-drop-link" title="{{$del_prof}}" {{$disabled}} >{{$del_prof}}</a></li>
</ul>
</div>
@@ -17,147 +17,147 @@ $default
<div id="profile-edit-wrapper" >
-<form id="profile-edit-form" name="form1" action="profiles/$profile_id" method="post" >
-<input type='hidden' name='form_security_token' value='$form_security_token'>
+<form id="profile-edit-form" name="form1" action="profiles/{{$profile_id}}" method="post" >
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
<div id="profile-edit-profile-name-wrapper" >
-<label id="profile-edit-profile-name-label" for="profile-edit-profile-name" >$lbl_profname </label>
-<input type="text" size="32" name="profile_name" id="profile-edit-profile-name" value="$profile_name" /><div class="required">*</div>
+<label id="profile-edit-profile-name-label" for="profile-edit-profile-name" >{{$lbl_profname}} </label>
+<input type="text" size="32" name="profile_name" id="profile-edit-profile-name" value="{{$profile_name}}" /><div class="required">*</div>
</div>
<div id="profile-edit-profile-name-end"></div>
<div id="profile-edit-name-wrapper" >
-<label id="profile-edit-name-label" for="profile-edit-name" >$lbl_fullname </label>
-<input type="text" size="32" name="name" id="profile-edit-name" value="$name" />
+<label id="profile-edit-name-label" for="profile-edit-name" >{{$lbl_fullname}} </label>
+<input type="text" size="32" name="name" id="profile-edit-name" value="{{$name}}" />
</div>
<div id="profile-edit-name-end"></div>
<div id="profile-edit-pdesc-wrapper" >
-<label id="profile-edit-pdesc-label" for="profile-edit-pdesc" >$lbl_title </label>
-<input type="text" size="32" name="pdesc" id="profile-edit-pdesc" value="$pdesc" />
+<label id="profile-edit-pdesc-label" for="profile-edit-pdesc" >{{$lbl_title}} </label>
+<input type="text" size="32" name="pdesc" id="profile-edit-pdesc" value="{{$pdesc}}" />
</div>
<div id="profile-edit-pdesc-end"></div>
<div id="profile-edit-gender-wrapper" >
-<label id="profile-edit-gender-label" for="gender-select" >$lbl_gender </label>
-$gender
+<label id="profile-edit-gender-label" for="gender-select" >{{$lbl_gender}} </label>
+{{$gender}}
</div>
<div id="profile-edit-gender-end"></div>
<div id="profile-edit-dob-wrapper" >
-<label id="profile-edit-dob-label" for="dob-select" >$lbl_bd </label>
+<label id="profile-edit-dob-label" for="dob-select" >{{$lbl_bd}} </label>
<div id="profile-edit-dob" >
-$dob $age
+{{$dob}} {{$age}}
</div>
</div>
<div id="profile-edit-dob-end"></div>
-$hide_friends
+{{$hide_friends}}
<div class="profile-edit-submit-wrapper" >
-<input type="submit" name="submit" class="profile-edit-submit-button" value="$submit" />
+<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="profile-edit-address-wrapper" >
-<label id="profile-edit-address-label" for="profile-edit-address" >$lbl_address </label>
-<input type="text" size="32" name="address" id="profile-edit-address" value="$address" />
+<label id="profile-edit-address-label" for="profile-edit-address" >{{$lbl_address}} </label>
+<input type="text" size="32" name="address" id="profile-edit-address" value="{{$address}}" />
</div>
<div id="profile-edit-address-end"></div>
<div id="profile-edit-locality-wrapper" >
-<label id="profile-edit-locality-label" for="profile-edit-locality" >$lbl_city </label>
-<input type="text" size="32" name="locality" id="profile-edit-locality" value="$locality" />
+<label id="profile-edit-locality-label" for="profile-edit-locality" >{{$lbl_city}} </label>
+<input type="text" size="32" name="locality" id="profile-edit-locality" value="{{$locality}}" />
</div>
<div id="profile-edit-locality-end"></div>
<div id="profile-edit-postal-code-wrapper" >
-<label id="profile-edit-postal-code-label" for="profile-edit-postal-code" >$lbl_zip </label>
-<input type="text" size="32" name="postal_code" id="profile-edit-postal-code" value="$postal_code" />
+<label id="profile-edit-postal-code-label" for="profile-edit-postal-code" >{{$lbl_zip}} </label>
+<input type="text" size="32" name="postal_code" id="profile-edit-postal-code" value="{{$postal_code}}" />
</div>
<div id="profile-edit-postal-code-end"></div>
<div id="profile-edit-region-wrapper" >
-<label id="profile-edit-region-label" for="profile-edit-region" >$lbl_region </label>
-<input type="text" size="32" name="region" id="profile-edit-region" value="$region" />
+<label id="profile-edit-region-label" for="profile-edit-region" >{{$lbl_region}} </label>
+<input type="text" size="32" name="region" id="profile-edit-region" value="{{$region}}" />
</div>
<div id="profile-edit-region-end"></div>
<div id="profile-edit-country-name-wrapper" >
-<label id="profile-edit-country-name-label" for="profile-edit-country-name" >$lbl_country </label>
-<input type="text" size="32" name="country_name" id="profile-edit-country-name" value="$country_name" />
+<label id="profile-edit-country-name-label" for="profile-edit-country-name" >{{$lbl_country}} </label>
+<input type="text" size="32" name="country_name" id="profile-edit-country-name" value="{{$country_name}}" />
</div>
<div id="profile-edit-country-name-end"></div>
<div id="profile-edit-hometown-wrapper" >
-<label id="profile-edit-hometown-label" for="profile-edit-hometown" >$lbl_hometown </label>
-<input type="text" size="32" name="hometown" id="profile-edit-hometown" value="$hometown" />
+<label id="profile-edit-hometown-label" for="profile-edit-hometown" >{{$lbl_hometown}} </label>
+<input type="text" size="32" name="hometown" id="profile-edit-hometown" value="{{$hometown}}" />
</div>
<div id="profile-edit-hometown-end"></div>
<div class="profile-edit-submit-wrapper" >
-<input type="submit" name="submit" class="profile-edit-submit-button" value="$submit" />
+<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="profile-edit-marital-wrapper" >
-<label id="profile-edit-marital-label" for="profile-edit-marital" >$lbl_marital </label>
-$marital
+<label id="profile-edit-marital-label" for="profile-edit-marital" >{{$lbl_marital}} </label>
+{{$marital}}
</div>
-<label id="profile-edit-with-label" for="profile-edit-with" > $lbl_with </label>
-<input type="text" size="32" name="with" id="profile-edit-with" title="$lbl_ex1" value="$with" />
-<label id="profile-edit-howlong-label" for="profile-edit-howlong" > $lbl_howlong </label>
-<input type="text" size="32" name="howlong" id="profile-edit-howlong" title="$lbl_howlong" value="$howlong" />
+<label id="profile-edit-with-label" for="profile-edit-with" > {{$lbl_with}} </label>
+<input type="text" size="32" name="with" id="profile-edit-with" title="{{$lbl_ex1}}" value="{{$with}}" />
+<label id="profile-edit-howlong-label" for="profile-edit-howlong" > {{$lbl_howlong}} </label>
+<input type="text" size="32" name="howlong" id="profile-edit-howlong" title="{{$lbl_howlong}}" value="{{$howlong}}" />
<div id="profile-edit-marital-end"></div>
<div id="profile-edit-sexual-wrapper" >
-<label id="profile-edit-sexual-label" for="sexual-select" >$lbl_sexual </label>
-$sexual
+<label id="profile-edit-sexual-label" for="sexual-select" >{{$lbl_sexual}} </label>
+{{$sexual}}
</div>
<div id="profile-edit-sexual-end"></div>
<div id="profile-edit-homepage-wrapper" >
-<label id="profile-edit-homepage-label" for="profile-edit-homepage" >$lbl_homepage </label>
-<input type="text" size="32" name="homepage" id="profile-edit-homepage" value="$homepage" />
+<label id="profile-edit-homepage-label" for="profile-edit-homepage" >{{$lbl_homepage}} </label>
+<input type="text" size="32" name="homepage" id="profile-edit-homepage" value="{{$homepage}}" />
</div>
<div id="profile-edit-homepage-end"></div>
<div id="profile-edit-politic-wrapper" >
-<label id="profile-edit-politic-label" for="profile-edit-politic" >$lbl_politic </label>
-<input type="text" size="32" name="politic" id="profile-edit-politic" value="$politic" />
+<label id="profile-edit-politic-label" for="profile-edit-politic" >{{$lbl_politic}} </label>
+<input type="text" size="32" name="politic" id="profile-edit-politic" value="{{$politic}}" />
</div>
<div id="profile-edit-politic-end"></div>
<div id="profile-edit-religion-wrapper" >
-<label id="profile-edit-religion-label" for="profile-edit-religion" >$lbl_religion </label>
-<input type="text" size="32" name="religion" id="profile-edit-religion" value="$religion" />
+<label id="profile-edit-religion-label" for="profile-edit-religion" >{{$lbl_religion}} </label>
+<input type="text" size="32" name="religion" id="profile-edit-religion" value="{{$religion}}" />
</div>
<div id="profile-edit-religion-end"></div>
<div id="profile-edit-pubkeywords-wrapper" >
-<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords" >$lbl_pubkey </label>
-<input type="text" size="32" name="keywords" id="profile-edit-pubkeywords" title="$lbl_ex2" value="$keywords" />
-</div><div id="profile-edit-pubkeywords-desc">$lbl_pubdsc</div>
+<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords" >{{$lbl_pubkey}} </label>
+<input type="text" size="32" name="keywords" id="profile-edit-pubkeywords" title="{{$lbl_ex2}}" value="{{$keywords}}" />
+</div><div id="profile-edit-pubkeywords-desc">{{$lbl_pubdsc}}</div>
<div id="profile-edit-pubkeywords-end"></div>
<div class="profile-edit-submit-wrapper" >
-<input type="submit" name="submit" class="profile-edit-submit-button" value="$submit" />
+<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="about-jot-wrapper" >
<p id="about-jot-desc" >
-$lbl_about
+{{$lbl_about}}
</p>
-<textarea rows="10" cols="72" id="profile-about-text" name="about" >$about</textarea>
+<textarea rows="10" cols="72" id="profile-about-text" name="about" >{{$about}}</textarea>
</div>
<div id="about-jot-end"></div>
@@ -165,10 +165,10 @@ $lbl_about
<div id="interest-jot-wrapper" >
<p id="interest-jot-desc" >
-$lbl_hobbies
+{{$lbl_hobbies}}
</p>
-<textarea rows="10" cols="72" id="interest-jot-text" name="interest" >$interest</textarea>
+<textarea rows="10" cols="72" id="interest-jot-text" name="interest" >{{$interest}}</textarea>
</div>
<div id="interest-jot-end"></div>
@@ -176,10 +176,10 @@ $lbl_hobbies
<div id="likes-jot-wrapper" >
<p id="likes-jot-desc" >
-$lbl_likes
+{{$lbl_likes}}
</p>
-<textarea rows="10" cols="72" id="likes-jot-text" name="likes" >$likes</textarea>
+<textarea rows="10" cols="72" id="likes-jot-text" name="likes" >{{$likes}}</textarea>
</div>
<div id="likes-jot-end"></div>
@@ -187,10 +187,10 @@ $lbl_likes
<div id="dislikes-jot-wrapper" >
<p id="dislikes-jot-desc" >
-$lbl_dislikes
+{{$lbl_dislikes}}
</p>
-<textarea rows="10" cols="72" id="dislikes-jot-text" name="dislikes" >$dislikes</textarea>
+<textarea rows="10" cols="72" id="dislikes-jot-text" name="dislikes" >{{$dislikes}}</textarea>
</div>
<div id="dislikes-jot-end"></div>
@@ -198,37 +198,46 @@ $lbl_dislikes
<div id="contact-jot-wrapper" >
<p id="contact-jot-desc" >
-$lbl_social
+{{$lbl_social}}
</p>
-<textarea rows="10" cols="72" id="contact-jot-text" name="contact" >$contact</textarea>
+<textarea rows="10" cols="72" id="contact-jot-text" name="contact" >{{$contact}}</textarea>
</div>
<div id="contact-jot-end"></div>
+<div id="channels-jot-wrapper" >
+<p id="channels-jot-desc" >
+{{$lbl_channels}}
+</p>
+
+<textarea rows="10" cols="72" id="channels-jot-text" name="channels" >{{$channels}}</textarea>
+
+</div>
+<div id="channels-jot-end"></div>
<div class="profile-edit-submit-wrapper" >
-<input type="submit" name="submit" class="profile-edit-submit-button" value="$submit" />
+<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="music-jot-wrapper" >
<p id="music-jot-desc" >
-$lbl_music
+{{$lbl_music}}
</p>
-<textarea rows="10" cols="72" id="music-jot-text" name="music" >$music</textarea>
+<textarea rows="10" cols="72" id="music-jot-text" name="music" >{{$music}}</textarea>
</div>
<div id="music-jot-end"></div>
<div id="book-jot-wrapper" >
<p id="book-jot-desc" >
-$lbl_book
+{{$lbl_book}}
</p>
-<textarea rows="10" cols="72" id="book-jot-text" name="book" >$book</textarea>
+<textarea rows="10" cols="72" id="book-jot-text" name="book" >{{$book}}</textarea>
</div>
<div id="book-jot-end"></div>
@@ -237,10 +246,10 @@ $lbl_book
<div id="tv-jot-wrapper" >
<p id="tv-jot-desc" >
-$lbl_tv
+{{$lbl_tv}}
</p>
-<textarea rows="10" cols="72" id="tv-jot-text" name="tv" >$tv</textarea>
+<textarea rows="10" cols="72" id="tv-jot-text" name="tv" >{{$tv}}</textarea>
</div>
<div id="tv-jot-end"></div>
@@ -249,27 +258,27 @@ $lbl_tv
<div id="film-jot-wrapper" >
<p id="film-jot-desc" >
-$lbl_film
+{{$lbl_film}}
</p>
-<textarea rows="10" cols="72" id="film-jot-text" name="film" >$film</textarea>
+<textarea rows="10" cols="72" id="film-jot-text" name="film" >{{$film}}</textarea>
</div>
<div id="film-jot-end"></div>
<div class="profile-edit-submit-wrapper" >
-<input type="submit" name="submit" class="profile-edit-submit-button" value="$submit" />
+<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="romance-jot-wrapper" >
<p id="romance-jot-desc" >
-$lbl_love
+{{$lbl_love}}
</p>
-<textarea rows="10" cols="72" id="romance-jot-text" name="romance" >$romance</textarea>
+<textarea rows="10" cols="72" id="romance-jot-text" name="romance" >{{$romance}}</textarea>
</div>
<div id="romance-jot-end"></div>
@@ -278,10 +287,10 @@ $lbl_love
<div id="work-jot-wrapper" >
<p id="work-jot-desc" >
-$lbl_work
+{{$lbl_work}}
</p>
-<textarea rows="10" cols="72" id="work-jot-text" name="work" >$work</textarea>
+<textarea rows="10" cols="72" id="work-jot-text" name="work" >{{$work}}</textarea>
</div>
<div id="work-jot-end"></div>
@@ -290,10 +299,10 @@ $lbl_work
<div id="education-jot-wrapper" >
<p id="education-jot-desc" >
-$lbl_school
+{{$lbl_school}}
</p>
-<textarea rows="10" cols="72" id="education-jot-text" name="education" >$education</textarea>
+<textarea rows="10" cols="72" id="education-jot-text" name="education" >{{$education}}</textarea>
</div>
<div id="education-jot-end"></div>
@@ -301,7 +310,7 @@ $lbl_school
<div class="profile-edit-submit-wrapper" >
-<input type="submit" name="submit" class="profile-edit-submit-button" value="$submit" />
+<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
</div>
<div class="profile-edit-submit-end"></div>
diff --git a/view/tpl/profile_edlink.tpl b/view/tpl/profile_edlink.tpl
index ea787b9f5..247bfaace 100644..100755
--- a/view/tpl/profile_edlink.tpl
+++ b/view/tpl/profile_edlink.tpl
@@ -1,2 +1,2 @@
-<div class="profile-edit-side-div"><a class="profile-edit-side-link icon edit" title="$editprofile" href="profiles/$profid" ></a></div>
-<div class="clear"></div> \ No newline at end of file
+<div class="profile-edit-side-div"><a class="profile-edit-side-link icon edit" title="{{$editprofile}}" href="profiles/{{$profid}}" ></a></div>
+<div class="clear"></div>
diff --git a/view/tpl/profile_entry.tpl b/view/tpl/profile_entry.tpl
index 7ff6d685b..cc0f3477c 100644..100755
--- a/view/tpl/profile_entry.tpl
+++ b/view/tpl/profile_entry.tpl
@@ -1,11 +1,10 @@
-
<div class="profile-listing" >
<div class="profile-listing-photo-wrapper" >
-<a href="profiles/$id" class="profile-listing-edit-link"><img class="profile-listing-photo" id="profile-listing-photo-$id" src="$photo" alt="$alt" /></a>
+<a href="profiles/{{$id}}" class="profile-listing-edit-link"><img class="profile-listing-photo" id="profile-listing-photo-{{$id}}" src="{{$photo}}" alt="{{$alt}}" /></a>
</div>
<div class="profile-listing-photo-end"></div>
-<div class="profile-listing-name" id="profile-listing-name-$id"><a href="profiles/$id" class="profile-listing-edit-link" >$profile_name</a></div>
-<div class="profile-listing-visible">$visible</div>
+<div class="profile-listing-name" id="profile-listing-name-{{$id}}"><a href="profiles/{{$id}}" class="profile-listing-edit-link" >{{$profile_name}}</a></div>
+<div class="profile-listing-visible">{{$visible}}</div>
</div>
<div class="profile-listing-end"></div>
diff --git a/view/tpl/profile_listing_header.tpl b/view/tpl/profile_listing_header.tpl
index 61a273792..b771a1ea2 100644..100755
--- a/view/tpl/profile_listing_header.tpl
+++ b/view/tpl/profile_listing_header.tpl
@@ -1,8 +1,8 @@
-<h1>$header</h1>
+<h1>{{$header}}</h1>
<p id="profile-listing-desc" class="button" >
-<a href="profile_photo" >$chg_photo</a>
+<a href="profile_photo" >{{$chg_photo}}</a>
</p>
<div id="profile-listing-new-link-wrapper" class="button" >
-<a href="$cr_new_link" id="profile-listing-new-link" title="$cr_new" >$cr_new</a>
+<a href="{{$cr_new_link}}" id="profile-listing-new-link" title="{{$cr_new}}" >{{$cr_new}}</a>
</div>
diff --git a/view/tpl/profile_photo.tpl b/view/tpl/profile_photo.tpl
index 05952afa4..48a3c7f26 100644..100755
--- a/view/tpl/profile_photo.tpl
+++ b/view/tpl/profile_photo.tpl
@@ -1,29 +1,29 @@
-<h1>$title</h1>
+<h1>{{$title}}</h1>
<form enctype="multipart/form-data" action="profile_photo" method="post">
-<input type='hidden' name='form_security_token' value='$form_security_token'>
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
<div id="profile-photo-upload-wrapper">
-<label id="profile-photo-upload-label" class="form-label" for="profile-photo-upload">$lbl_upfile</label>
+<label id="profile-photo-upload-label" class="form-label" for="profile-photo-upload">{{$lbl_upfile}}</label>
<input name="userfile" class="form-input" type="file" id="profile-photo-upload" size="48" />
<div class="clear"></div>
-<label id="profile-photo-profiles-label" class="form-label" for="profile-photo-profiles">$lbl_profiles</label>
+<label id="profile-photo-profiles-label" class="form-label" for="profile-photo-profiles">{{$lbl_profiles}}</label>
<select name="profile" id="profile-photo-profiles" class="form-input" >
-{{ for $profiles as $p }}
-<option value="$p.id" {{ if $p.is_default }}selected="selected"{{ endif }}>$p.name</option>
-{{ endfor }}
+{{foreach $profiles as $p}}
+<option value="{{$p.id}}" {{if $p.is_default}}selected="selected"{{/if}}>{{$p.name}}</option>
+{{/foreach}}
</select>
<div class="clear"></div>
<div id="profile-photo-submit-wrapper">
-<input type="submit" name="submit" id="profile-photo-submit" value="$submit">
+<input type="submit" name="submit" id="profile-photo-submit" value="{{$submit}}">
</div>
</div>
</form>
<div id="profile-photo-link-select-wrapper">
-$select
-</div> \ No newline at end of file
+{{$select}}
+</div>
diff --git a/view/tpl/profile_publish.tpl b/view/tpl/profile_publish.tpl
deleted file mode 100644
index 8fd0bc913..000000000
--- a/view/tpl/profile_publish.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-<p id="profile-publish-desc-$instance">
-$pubdesc
-</p>
-
- <div id="profile-publish-yes-wrapper-$instance">
- <label id="profile-publish-yes-label-$instance" for="profile-publish-yes-$instance">$str_yes</label>
- <input type="radio" name="profile_publish_$instance" id="profile-publish-yes-$instance" $yes_selected value="1" />
-
- <div id="profile-publish-break-$instance" ></div>
- </div>
- <div id="profile-publish-no-wrapper-$instance">
- <label id="profile-publish-no-label-$instance" for="profile-publish-no-$instance">$str_no</label>
- <input type="radio" name="profile_publish_$instance" id="profile-publish-no-$instance" $no_selected value="0" />
-
- <div id="profile-publish-end-$instance"></div>
- </div>
diff --git a/view/tpl/profile_vcard.tpl b/view/tpl/profile_vcard.tpl
index 323658463..13460c2d9 100644..100755
--- a/view/tpl/profile_vcard.tpl
+++ b/view/tpl/profile_vcard.tpl
@@ -1,52 +1,52 @@
<div class="vcard">
- {{ if $profile.edit }}
+ {{if $profile.edit}}
<div class="action">
- <a class="profile-edit-side-link icon edit" rel="#profiles-menu" title="$profile.edit.3" href="#" ><span>$profile.edit.1</span></a>
+ <a class="profile-edit-side-link icon edit" rel="#profiles-menu" title="{{$profile.edit.3}}" href="#" ><span>{{$profile.edit.1}}</span></a>
<ul id="profiles-menu" class="menu-popup">
- {{ for $profile.menu.entries as $e }}
+ {{foreach $profile.menu.entries as $e}}
<li>
- <a href="profiles/$e.id"><img src='$e.photo'>$e.profile_name</a>
+ <a href="profiles/{{$e.id}}"><img src='{{$e.photo}}'>{{$e.profile_name}}</a>
</li>
- {{ endfor }}
- <li><a href="profile_photo" >$profile.menu.chg_photo</a></li>
- <li><a href="profiles/new" id="profile-listing-new-link">$profile.menu.cr_new</a></li>
+ {{/foreach}}
+ <li><a href="profile_photo" >{{$profile.menu.chg_photo}}</a></li>
+ <li><a href="profiles/new" id="profile-listing-new-link">{{$profile.menu.cr_new}}</a></li>
</ul>
</div>
- {{ endif }}
+ {{/if}}
- <div class="fn label">$profile.name</div>
+ <div class="fn label">{{$profile.name}}</div>
- {{ if $pdesc }}<div class="title">$profile.pdesc</div>{{ endif }}
- <div id="profile-photo-wrapper"><img class="photo" width="175" height="175" src="$profile.photo?rev=$profile.picdate" alt="$profile.name"></div>
+ {{if $pdesc}}<div class="title">{{$profile.pdesc}}</div>{{/if}}
+ <div id="profile-photo-wrapper"><img class="photo" width="175" height="175" src="{{$profile.photo}}?rev={{$profile.picdate}}" alt="{{$profile.name}}"></div>
- {{ if $location }}
- <dl class="location"><dt class="location-label">$location</dt>
+ {{if $location}}
+ <dl class="location"><dt class="location-label">{{$location}}</dt>
<dd class="adr">
- {{ if $profile.address }}<div class="street-address">$profile.address</div>{{ endif }}
+ {{if $profile.address}}<div class="street-address">{{$profile.address}}</div>{{/if}}
<span class="city-state-zip">
- <span class="locality">$profile.locality</span>{{ if $profile.locality }}, {{ endif }}
- <span class="region">$profile.region</span>
- <span class="postal-code">$profile.postal_code</span>
+ <span class="locality">{{$profile.locality}}</span>{{if $profile.locality}}, {{/if}}
+ <span class="region">{{$profile.region}}</span>
+ <span class="postal-code">{{$profile.postal_code}}</span>
</span>
- {{ if $profile.country_name }}<span class="country-name">$profile.country_name</span>{{ endif }}
+ {{if $profile.country_name}}<span class="country-name">{{$profile.country_name}}</span>{{/if}}
</dd>
</dl>
- {{ endif }}
+ {{/if}}
- {{ if $gender }}<dl class="mf"><dt class="gender-label">$gender</dt> <dd class="x-gender">$profile.gender</dd></dl>{{ endif }}
+ {{if $gender}}<dl class="mf"><dt class="gender-label">{{$gender}}</dt> <dd class="x-gender">{{$profile.gender}}</dd></dl>{{/if}}
- {{ if $marital }}<dl class="marital"><dt class="marital-label"><span class="heart">&hearts;</span>$marital</dt><dd class="marital-text">$profile.marital</dd></dl>{{ endif }}
+ {{if $marital}}<dl class="marital"><dt class="marital-label"><span class="heart">&hearts;</span>{{$marital}}</dt><dd class="marital-text">{{$profile.marital}}</dd></dl>{{/if}}
- {{ if $homepage }}<dl class="homepage"><dt class="homepage-label">$homepage</dt><dd class="homepage-url"><a href="$profile.homepage" >$profile.homepage</a></dd></dl>{{ endif }}
+ {{if $homepage}}<dl class="homepage"><dt class="homepage-label">{{$homepage}}</dt><dd class="homepage-url"><a href="{{$profile.homepage}}" >{{$profile.homepage}}</a></dd></dl>{{/if}}
</div>
<div id="vcard-end"></div>
-$contact_block
+{{$contact_block}}
diff --git a/view/tpl/prv_message.tpl b/view/tpl/prv_message.tpl
index 3f0bd937f..2ddf75544 100644..100755
--- a/view/tpl/prv_message.tpl
+++ b/view/tpl/prv_message.tpl
@@ -1,37 +1,36 @@
-
-<h3>$header</h3>
+<h3>{{$header}}</h3>
<div id="prvmail-wrapper" >
<form id="prvmail-form" action="message" method="post" >
-$parent
+{{$parent}}
-<div id="prvmail-to-label">$to</div>
+<div id="prvmail-to-label">{{$to}}</div>
-{{ if $showinputs }}
-<input type="text" id="recip" name="messagerecip" value="$prefill" maxlength="255" size="64" tabindex="10" />
-<input type="hidden" id="recip-complete" name="messageto" value="$preid">
-{{ else }}
-$select
-{{ endif }}
+{{if $showinputs}}
+<input type="text" id="recip" name="messagerecip" value="{{$prefill}}" maxlength="255" size="64" tabindex="10" />
+<input type="hidden" id="recip-complete" name="messageto" value="{{$preid}}">
+{{else}}
+{{$select}}
+{{/if}}
-<div id="prvmail-subject-label">$subject</div>
-<input type="text" size="64" maxlength="255" id="prvmail-subject" name="subject" value="$subjtxt" $readonly tabindex="11" />
+<div id="prvmail-subject-label">{{$subject}}</div>
+<input type="text" size="64" maxlength="255" id="prvmail-subject" name="subject" value="{{$subjtxt}}" {{$readonly}} tabindex="11" />
-<div id="prvmail-message-label">$yourmessage</div>
-<textarea rows="8" cols="72" class="prvmail-text" id="prvmail-text" name="body" tabindex="12">$text</textarea>
+<div id="prvmail-message-label">{{$yourmessage}}</div>
+<textarea rows="8" cols="72" class="prvmail-text" id="prvmail-text" name="body" tabindex="12">{{$text}}</textarea>
<div id="prvmail-submit-wrapper" >
- <input type="submit" id="prvmail-submit" name="submit" value="$submit" tabindex="13" />
+ <input type="submit" id="prvmail-submit" name="submit" value="{{$submit}}" tabindex="13" />
<div id="prvmail-upload-wrapper" >
- <div id="prvmail-upload" class="icon border camera" title="$upload" ></div>
+ <div id="prvmail-upload" class="icon border camera" title="{{$upload}}" ></div>
</div>
<div id="prvmail-link-wrapper" >
- <div id="prvmail-link" class="icon border link" title="$insert" onclick="jotGetLink();" ></div>
+ <div id="prvmail-link" class="icon border link" title="{{$insert}}" onclick="jotGetLink();" ></div>
</div>
<div id="prvmail-rotator-wrapper" >
- <img id="prvmail-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
+ <img id="prvmail-rotator" src="images/rotator.gif" alt="{{$wait}}" title="{{$wait}}" style="display: none;" />
</div>
</div>
<div id="prvmail-end"></div>
diff --git a/view/tpl/pwdreset.tpl b/view/tpl/pwdreset.tpl
index 497b93396..3993dec64 100644..100755
--- a/view/tpl/pwdreset.tpl
+++ b/view/tpl/pwdreset.tpl
@@ -1,17 +1,17 @@
-<h3>$lbl1</h3>
+<h3>{{$lbl1}}</h3>
<p>
-$lbl2
+{{$lbl2}}
</p>
<p>
-$lbl3
+{{$lbl3}}
</p>
<p>
-$newpass
+{{$newpass}}
</p>
<p>
-$lbl4 $lbl5
+{{$lbl4}} {{$lbl5}}
</p>
<p>
-$lbl6
+{{$lbl6}}
</p>
diff --git a/view/tpl/register.tpl b/view/tpl/register.tpl
index 4b565718d..48c1ba525 100644..100755
--- a/view/tpl/register.tpl
+++ b/view/tpl/register.tpl
@@ -1,45 +1,45 @@
-<h2>$title</h2>
+<h2>{{$title}}</h2>
<form action="register" method="post" id="register-form">
-{{ if $registertext }}
-<div id="register-desc" class="descriptive-paragraph">$registertext</div>
-{{ endif }}
+{{if $registertext}}
+<div id="register-desc" class="descriptive-paragraph">{{$registertext}}</div>
+{{/if}}
-{{ if $invitations }}
- <p id="register-invite-desc">$invite_desc</p>
+{{if $invitations}}
+ <p id="register-invite-desc">{{$invite_desc}}</p>
- <label for="register-invite" id="label-register-invite" class="register-label">$label_invite</label>
- <input type="text" maxlength="72" size="32" name="invite_code" id="register-invite" class="register-input" value="$invite_code" />
+ <label for="register-invite" id="label-register-invite" class="register-label">{{$label_invite}}</label>
+ <input type="text" maxlength="72" size="32" name="invite_code" id="register-invite" class="register-input" value="{{$invite_code}}" />
<div id="register-invite-feedback" class="register-feedback"></div>
<div id="register-invite-end" class="register-field-end"></div>
-{{ endif }}
+{{/if}}
- <label for="register-email" id="label-register-email" class="register-label" >$label_email</label>
- <input type="text" maxlength="72" size="32" name="email" id="register-email" class="register-input" value="$email" />
+ <label for="register-email" id="label-register-email" class="register-label" >{{$label_email}}</label>
+ <input type="text" maxlength="72" size="32" name="email" id="register-email" class="register-input" value="{{$email}}" />
<div id="register-email-feedback" class="register-feedback"></div>
<div id="register-email-end" class="register-field-end"></div>
- <label for="register-password" id="label-register-password" class="register-label" >$label_pass1</label>
- <input type="password" maxlength="72" size="32" name="password" id="register-password" class="register-input" value="$pass1" />
+ <label for="register-password" id="label-register-password" class="register-label" >{{$label_pass1}}</label>
+ <input type="password" maxlength="72" size="32" name="password" id="register-password" class="register-input" value="{{$pass1}}" />
<div id="register-password-feedback" class="register-feedback"></div>
<div id="register-password-end" class="register-field-end"></div>
- <label for="register-password2" id="label-register-password2" class="register-label" >$label_pass2</label>
- <input type="password" maxlength="72" size="32" name="password2" id="register-password2" class="register-input" value="$pass2" />
+ <label for="register-password2" id="label-register-password2" class="register-label" >{{$label_pass2}}</label>
+ <input type="password" maxlength="72" size="32" name="password2" id="register-password2" class="register-input" value="{{$pass2}}" />
<div id="register-password2-feedback" class="register-feedback"></div>
<div id="register-password2-end" class="register-field-end"></div>
- {{ if $enable_tos }}
+ {{if $enable_tos}}
<input type="checkbox" name="tos" id="register-tos" value="1" />
- <label for="register-tos" id="label-register-tos">$label_tos</label>
+ <label for="register-tos" id="label-register-tos">{{$label_tos}}</label>
<div id="register-tos-feedback" class="register-feedback"></div>
<div id="register-tos-end" class="register-field-end"></div>
- {{ else }}
+ {{else}}
<input type="hidden" name="tos" value="1" />
- {{ endif }}
+ {{/if}}
- <input type="submit" name="submit" id="register-submit-button" value="$submit" />
+ <input type="submit" name="submit" id="register-submit-button" value="{{$submit}}" />
<div id="register-submit-end" class="register-field-end"></div>
</form>
diff --git a/view/tpl/remote_friends_common.tpl b/view/tpl/remote_friends_common.tpl
index 48bdd548f..d6d2fd211 100644..100755
--- a/view/tpl/remote_friends_common.tpl
+++ b/view/tpl/remote_friends_common.tpl
@@ -1,21 +1,21 @@
<div id="remote-friends-in-common" class="bigwidget">
- <div id="rfic-desc">$desc &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ if $linkmore }}<a href="$base/common/$uid">$more</a>{{ endif }}</div>
- {{ if $items }}
- {{ for $items as $item }}
+ <div id="rfic-desc">{{$desc}} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{if $linkmore}}<a href="{{$base}}/common/{{$uid}}">{{$more}}</a>{{/if}}</div>
+ {{if $items}}
+ {{foreach $items as $item}}
<div class="profile-match-wrapper">
<div class="profile-match-photo">
- <a href="$base/chanview?f=&url=$item.xchan_url">
- <img src="$item.xchan_photo_m" width="80" height="80" alt="$item.xchan_name" title="$item.xchan_name" />
+ <a href="{{$base}}/chanview?f=&url={{$item.xchan_url}}">
+ <img src="{{$item.xchan_photo_m}}" width="80" height="80" alt="{{$item.xchan_name}}" title="{{$item.xchan_name}}" />
</a>
</div>
<div class="profile-match-break"></div>
<div class="profile-match-name">
- <a href="$base/chanview?f=&url=$item.xchan_url" title="$item.xchan_name">$item.xchan_name</a>
+ <a href="{{$base}}/chanview?f=&url={{$item.xchan_url}}" title="{{$item.xchan_name}}">{{$item.xchan_name}}</a>
</div>
<div class="profile-match-end"></div>
</div>
- {{ endfor }}
- {{ endif }}
+ {{/foreach}}
+ {{/if}}
<div id="rfic-end" class="clear"></div>
</div>
diff --git a/view/tpl/removeme.tpl b/view/tpl/removeme.tpl
index a3ca8d4cf..496f91ff5 100644..100755
--- a/view/tpl/removeme.tpl
+++ b/view/tpl/removeme.tpl
@@ -1,19 +1,19 @@
-<h1>$title</h1>
+<h1>{{$title}}</h1>
<div id="remove-account-wrapper">
-<div id="remove-account-desc">$desc</div>
+<div id="remove-account-desc">{{$desc}}</div>
-<form action="$basedir/removeme" autocomplete="off" method="post" >
-<input type="hidden" name="verify" value="$hash" />
+<form action="{{$basedir}}/removeme" autocomplete="off" method="post" >
+<input type="hidden" name="verify" value="{{$hash}}" />
<div id="remove-account-pass-wrapper">
-<label id="remove-account-pass-label" for="remove-account-pass">$passwd</label>
+<label id="remove-account-pass-label" for="remove-account-pass">{{$passwd}}</label>
<input type="password" id="remove-account-pass" name="qxz_password" />
</div>
<div id="remove-account-pass-end"></div>
-<input type="submit" name="submit" value="$submit" />
+<input type="submit" name="submit" value="{{$submit}}" />
</form>
</div>
diff --git a/view/tpl/rmagic.tpl b/view/tpl/rmagic.tpl
index f16abe975..58df71718 100644..100755
--- a/view/tpl/rmagic.tpl
+++ b/view/tpl/rmagic.tpl
@@ -1,11 +1,11 @@
-<h3>$title</h3>
+<h3>{{$title}}</h3>
<form action="rmagic" method="post" >
- <label for="rmagic-address" id="label-rmagic-address" class="rmagic-label">$desc</label>
+ <label for="rmagic-address" id="label-rmagic-address" class="rmagic-label">{{$desc}}</label>
<input type="text" maxlength="255" size="32" name="address" id="rmagic-address" class="rmagic-input" value="" />
- <input type="submit" name="submit" id="rmagic-submit-button" value="$submit" />
+ <input type="submit" name="submit" id="rmagic-submit-button" value="{{$submit}}" />
<div id="rmagic-submit-end" class="rmagic-field-end"></div>
</form>
diff --git a/view/tpl/saved_searches_aside.tpl b/view/tpl/saved_searches_aside.tpl
index a204c48ff..27c7d86a0 100644..100755
--- a/view/tpl/saved_searches_aside.tpl
+++ b/view/tpl/saved_searches_aside.tpl
@@ -1,14 +1,14 @@
<div class="widget" id="saved-search-list">
- <h3 id="search">$title</h3>
- $searchbox
+ <h3 id="search">{{$title}}</h3>
+ {{$searchbox}}
<ul id="saved-search-ul">
- {{ for $saved as $search }}
+ {{foreach $saved as $search}}
<li class="saved-search-li clear">
- <a title="$search.delete" onclick="return confirmDelete();" id="drop-saved-search-term-$search.id" class="iconspacer savedsearchdrop " href="network/?f=&amp;remove=1&amp;search=$search.encodedterm"></a>
- <a id="saved-search-term-$search.id" class="savedsearchterm" href="network/?f=&amp;search=$search.encodedterm">$search.displayterm</a>
+ <a title="{{$search.delete}}" onclick="return confirmDelete();" id="drop-saved-search-term-{{$search.id}}" class="iconspacer savedsearchdrop " href="network/?f=&amp;remove=1&amp;search={{$search.encodedterm}}"></a>
+ <a id="saved-search-term-{{$search.id}}" class="savedsearchterm" href="network/?f=&amp;search={{$search.encodedterm}}">{{$search.displayterm}}</a>
</li>
- {{ endfor }}
+ {{/foreach}}
</ul>
<div class="clear"></div>
</div>
diff --git a/view/tpl/search_item.tpl b/view/tpl/search_item.tpl
index 304fca4d5..bb796346d 100644..100755
--- a/view/tpl/search_item.tpl
+++ b/view/tpl/search_item.tpl
@@ -1,62 +1,62 @@
-<div id="thread-wrapper-$item.id" class="thread-wrapper $item.toplevel">
-<a name="$item.id" ></a>
-<div class="wall-item-outside-wrapper $item.indent$item.previewing" id="wall-item-outside-wrapper-$item.id" >
- <div class="wall-item-content-wrapper $item.indent$item.previewing" id="wall-item-content-wrapper-$item.id" >
- <div class="wall-item-info" id="wall-item-info-$item.id">
- <div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$item.id"
- onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
- onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
- <a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
- <img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
- <span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
- <div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
+<div id="thread-wrapper-{{$item.id}}" class="thread-wrapper {{$item.toplevel}}">
+<a name="{{$item.id}}" ></a>
+<div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}" id="wall-item-outside-wrapper-{{$item.id}}" >
+ <div class="wall-item-content-wrapper {{$item.indent}}{{$item.previewing}}" id="wall-item-content-wrapper-{{$item.id}}" >
+ <div class="wall-item-info" id="wall-item-info-{{$item.id}}">
+ <div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-{{$item.id}}"
+ onmouseover="if (typeof t{{$item.id}} != 'undefined') clearTimeout(t{{$item.id}}); openMenu('wall-item-photo-menu-button-{{$item.id}}')"
+ onmouseout="t{{$item.id}}=setTimeout('closeMenu(\'wall-item-photo-menu-button-{{$item.id}}\'); closeMenu(\'wall-item-photo-menu-{{$item.id}}\');',200)">
+ <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}">
+ <img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.name}}" /></a>
+ <span onclick="openClose('wall-item-photo-menu-{{$item.id}}');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-{{$item.id}}">menu</span>
+ <div class="wall-item-photo-menu" id="wall-item-photo-menu-{{$item.id}}">
<ul>
- $item.item_photo_menu
+ {{$item.item_photo_menu}}
</ul>
</div>
</div>
<div class="wall-item-photo-end"></div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-$item.id" >
- {{ if $item.lock }}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="$item.lock" onclick="lockview(event,$item.id);" /></div>
- {{ else }}<div class="wall-item-lock"></div>{{ endif }}
- <div class="wall-item-location" id="wall-item-location-$item.id">$item.location</div>
+ <div class="wall-item-wrapper" id="wall-item-wrapper-{{$item.id}}" >
+ {{if $item.lock}}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="{{$item.lock}}" onclick="lockview(event,{{$item.id}});" /></div>
+ {{else}}<div class="wall-item-lock"></div>{{/if}}
+ <div class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}}</div>
</div>
</div>
<div class="wall-item-author">
- <a href="$item.profile_url" title="$item.linktitle" class="wall-item-name-link"><span class="wall-item-name$item.sparkle" id="wall-item-name-$item.id" >$item.name</span></a>
+ <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>
- <div id="wall-item-ago-$item.id" class="wall-item-ago"><abbr class="wall-item-ago-time" title="$item.localtime">$item.ago</abbr>{{ if $item.app }}<span class="item.app">$item.str_app</span>{{ endif }}</div>
+ <div class="wall-item-ago" id="wall-item-ago-{{$item.id}}"><span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}</span>{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}</div>
</div>
- <div class="wall-item-content" id="wall-item-content-$item.id" >
- <div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
+ <div class="wall-item-content" id="wall-item-content-{{$item.id}}" >
+ <div class="wall-item-title" id="wall-item-title-{{$item.id}}">{{$item.title}}</div>
<div class="wall-item-title-end"></div>
- <div class="wall-item-body" id="wall-item-body-$item.id" >$item.body
+ <div class="wall-item-body" id="wall-item-body-{{$item.id}}" >{{$item.body}}
<div class="body-tag">
- {{ for $item.tags as $tag }}
- <span class='tag'>$tag</span>
- {{ endfor }}
+ {{foreach $item.tags as $tag}}
+ <span class='tag'>{{$tag}}</span>
+ {{/foreach}}
</div>
</div>
</div>
- <div class="wall-item-tools" id="wall-item-tools-$item.id">
- <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
- {{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
+ <div class="wall-item-tools" id="wall-item-tools-{{$item.id}}">
+ <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-{{$item.id}}" >
+ {{if $item.drop.dropping}}<a href="item/drop/{{$item.id}}" onclick="return confirmDelete();" class="icon drophide" title="{{$item.drop.delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{/if}}
</div>
- {{ if $item.drop.pagedropping }}<input type="checkbox" onclick="checkboxhighlight(this);" title="$item.drop.select" class="item-select" name="itemselected[]" value="$item.id" />{{ endif }}
+ {{if $item.drop.pagedropping}}<input type="checkbox" onclick="checkboxhighlight(this);" title="{{$item.drop.select}}" class="item-select" name="itemselected[]" value="{{$item.id}}" />{{/if}}
<div class="wall-item-delete-end"></div>
</div>
</div>
<div class="wall-item-wrapper-end"></div>
- <div class="wall-item-conv" id="wall-item-conv-$item.id" >
- {{ if $item.conv }}
- <a href='$item.conv.href' id='context-$item.id' title='$item.conv.title'>$item.conv.title</a>
- {{ endif }}
+ <div class="wall-item-conv" id="wall-item-conv-{{$item.id}}" >
+ {{if $item.conv}}
+ <a href='{{$item.conv.href}}' id='context-{{$item.id}}' title='{{$item.conv.title}}'>{{$item.conv.title}}</a>
+ {{/if}}
</div>
-<div class="wall-item-outside-wrapper-end $item.indent" ></div>
+<div class="wall-item-outside-wrapper-end {{$item.indent}}" ></div>
</div>
</div>
diff --git a/view/tpl/settings.tpl b/view/tpl/settings.tpl
index ea44c1240..9a3a1ce8b 100644..100755
--- a/view/tpl/settings.tpl
+++ b/view/tpl/settings.tpl
@@ -1,71 +1,80 @@
-<h1>$ptitle</h1>
+<h1>{{$ptitle}}</h1>
-$nickname_block
+{{$nickname_block}}
<form action="settings" id="settings-form" method="post" autocomplete="off" >
-<input type='hidden' name='form_security_token' value='$form_security_token'>
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-<h3 class="settings-heading">$h_basic</h3>
+<h3 class="settings-heading">{{$h_basic}}</h3>
-{{inc field_input.tpl with $field=$username }}{{endinc}}
-{{inc field_custom.tpl with $field=$timezone }}{{endinc}}
-{{inc field_input.tpl with $field=$defloc }}{{endinc}}
-{{inc field_checkbox.tpl with $field=$allowloc }}{{endinc}}
+{{include file="field_input.tpl" field=$username}}
+{{include file="field_custom.tpl" field=$timezone}}
+{{include file="field_input.tpl" field=$defloc}}
+{{include file="field_checkbox.tpl" field=$allowloc}}
<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="$submit" />
+<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
</div>
-<h3 class="settings-heading">$h_prv</h3>
+<h3 class="settings-heading">{{$h_prv}}</h3>
+
+<div id="settings-privacy-macros">{{$lbl_pmacro}}</div>
+<ul>
+<li><a href="#" onclick="channel_privacy_macro(3); return false" id="settings_pmacro3">{{$pmacro3}}</a></li>
+<li><a href="#" onclick="channel_privacy_macro(2); return false" id="settings_pmacro2">{{$pmacro2}}</a></li>
+<li><a href="#" onclick="channel_privacy_macro(1); return false" id="settings_pmacro1">{{$pmacro1}}</a></li>
+<li><a href="#" onclick="channel_privacy_macro(0); return false" id="settings_pmacro0">{{$pmacro0}}</a></li>
+</ul>
+
<div id="settings-permissions-wrapper">
-{{ for $permiss_arr as $permit }}
-{{inc field_select.tpl with $field=$permit }}{{endinc}}
-{{ endfor }}
+{{foreach $permiss_arr as $permit}}
+{{include file="field_select.tpl" field=$permit}}
+{{/foreach}}
</div>
<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="$submit" />
+<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
</div>
-$profile_in_dir
+{{$profile_in_dir}}
-$suggestme
+{{$suggestme}}
-{{inc field_input.tpl with $field=$maxreq }}{{endinc}}
+{{include file="field_input.tpl" field=$maxreq}}
-{{inc field_input.tpl with $field=$cntunkmail }}{{endinc}}
+{{include file="field_input.tpl" field=$cntunkmail}}
-{{inc field_input.tpl with $field=$expire.days }}{{endinc}}
+{{include file="field_input.tpl" field=$expire.days}}
<div class="field input">
- <span class="field_help"><a href="#advanced-expire-popup" id="advanced-expire" class='popupbox' title="$expire.advanced">$expire.label</a></span>
+ <span class="field_help"><a href="#advanced-expire-popup" id="advanced-expire" class='popupbox' title="{{$expire.advanced}}">{{$expire.label}}</a></span>
<div style="display: none;">
<div id="advanced-expire-popup" style="width:auto;height:auto;overflow:auto;">
- <h3>$expire.advanced</h3>
- {{ inc field_yesno.tpl with $field=$expire.items }}{{endinc}}
- {{ inc field_yesno.tpl with $field=$expire.starred }}{{endinc}}
- {{ inc field_yesno.tpl with $field=$expire.network_only }}{{endinc}}
+ <h3>{{$expire.advanced}}</h3>
+ {{include file="field_yesno.tpl" field=$expire.items}}
+ {{include file="field_yesno.tpl" field=$expire.starred}}
+ {{include file="field_yesno.tpl" field=$expire.network_only}}
</div>
</div>
</div>
<div id="settings-default-perms" class="settings-default-perms" >
- <a href="#profile-jot-acl-wrapper" id="settings-default-perms-menu" class='popupbox'>$permissions $permdesc</a>
+ <a href="#profile-jot-acl-wrapper" id="settings-default-perms-menu" class='popupbox'>{{$permissions}} {{$permdesc}}</a>
<div id="settings-default-perms-menu-end"></div>
<div id="settings-default-perms-select" style="display: none; margin-bottom: 20px" >
<div style="display: none;">
<div id="profile-jot-acl-wrapper" style="width:auto;height:auto;overflow:auto;">
- $aclselect
+ {{$aclselect}}
</div>
</div>
@@ -74,41 +83,41 @@ $suggestme
<br/>
<div id="settings-default-perms-end"></div>
-$group_select
+{{$group_select}}
<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="$submit" />
+<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
</div>
-<h3 class="settings-heading">$h_not</h3>
+<h3 class="settings-heading">{{$h_not}}</h3>
<div id="settings-notifications">
-<div id="settings-activity-desc">$activity_options</div>
+<div id="settings-activity-desc">{{$activity_options}}</div>
-{{inc field_checkbox.tpl with $field=$post_newfriend }}{{endinc}}
-{{inc field_checkbox.tpl with $field=$post_joingroup }}{{endinc}}
-{{inc field_checkbox.tpl with $field=$post_profilechange }}{{endinc}}
+{{include file="field_checkbox.tpl" field=$post_newfriend}}
+{{include file="field_checkbox.tpl" field=$post_joingroup}}
+{{include file="field_checkbox.tpl" field=$post_profilechange}}
-<div id="settings-notify-desc">$lbl_not</div>
+<div id="settings-notify-desc">{{$lbl_not}}</div>
<div class="group">
-{{inc field_intcheckbox.tpl with $field=$notify1 }}{{endinc}}
-{{inc field_intcheckbox.tpl with $field=$notify2 }}{{endinc}}
-{{inc field_intcheckbox.tpl with $field=$notify3 }}{{endinc}}
-{{inc field_intcheckbox.tpl with $field=$notify4 }}{{endinc}}
-{{inc field_intcheckbox.tpl with $field=$notify5 }}{{endinc}}
-{{inc field_intcheckbox.tpl with $field=$notify6 }}{{endinc}}
-{{inc field_intcheckbox.tpl with $field=$notify7 }}{{endinc}}
-{{inc field_intcheckbox.tpl with $field=$notify8 }}{{endinc}}
+{{include file="field_intcheckbox.tpl" field=$notify1}}
+{{include file="field_intcheckbox.tpl" field=$notify2}}
+{{include file="field_intcheckbox.tpl" field=$notify3}}
+{{include file="field_intcheckbox.tpl" field=$notify4}}
+{{include file="field_intcheckbox.tpl" field=$notify5}}
+{{include file="field_intcheckbox.tpl" field=$notify6}}
+{{include file="field_intcheckbox.tpl" field=$notify7}}
+{{include file="field_intcheckbox.tpl" field=$notify8}}
</div>
</div>
<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="$submit" />
+<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
</div>
diff --git a/view/tpl/settings_account.tpl b/view/tpl/settings_account.tpl
index d1a635f91..198ac9565 100644..100755
--- a/view/tpl/settings_account.tpl
+++ b/view/tpl/settings_account.tpl
@@ -1,28 +1,28 @@
-<h1>$title</h1>
+<h1>{{$title}}</h1>
<div id="settings-remove-account-link">
-<a href="removeme" title="$permanent" >$removeme</a>
+<a href="removeme" title="{{$permanent}}" >{{$removeme}}</a>
</div>
<form action="settings/account" id="settings-account-form" method="post" autocomplete="off" >
-<input type='hidden' name='form_security_token' value='$form_security_token'>
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-{{inc field_input.tpl with $field=$email }}{{endinc}}
+{{include file="field_input.tpl" field=$email}}
-<h3 class="settings-heading">$h_pass</h3>
+<h3 class="settings-heading">{{$h_pass}}</h3>
-{{inc field_password.tpl with $field=$password1 }}{{endinc}}
-{{inc field_password.tpl with $field=$password2 }}{{endinc}}
+{{include file="field_password.tpl" field=$password1}}
+{{include file="field_password.tpl" field=$password2}}
<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="$submit" />
+<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
</div>
-$account_settings
+{{$account_settings}}
diff --git a/view/tpl/settings_addons.tpl b/view/tpl/settings_addons.tpl
index 9a4f95341..cad6a2274 100644..100755
--- a/view/tpl/settings_addons.tpl
+++ b/view/tpl/settings_addons.tpl
@@ -1,10 +1,10 @@
-<h1>$title</h1>
+<h1>{{$title}}</h1>
<form action="settings/featured" method="post" autocomplete="off">
-<input type='hidden' name='form_security_token' value='$form_security_token'>
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-$settings_addons
+{{$settings_addons}}
</form>
diff --git a/view/tpl/settings_connectors.tpl b/view/tpl/settings_connectors.tpl
index 07a86e4fe..a8bde4c1e 100644..100755
--- a/view/tpl/settings_connectors.tpl
+++ b/view/tpl/settings_connectors.tpl
@@ -1,9 +1,9 @@
-<h1>$title</h1>
+<h1>{{$title}}</h1>
<form action="settings/connectors" method="post" autocomplete="off">
-<input type='hidden' name='form_security_token' value='$form_security_token'>
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-$settings_connectors
+{{$settings_connectors}}
</form>
diff --git a/view/tpl/settings_display.tpl b/view/tpl/settings_display.tpl
index 2aac64515..2645ce740 100644..100755
--- a/view/tpl/settings_display.tpl
+++ b/view/tpl/settings_display.tpl
@@ -1,22 +1,22 @@
-<h1>$ptitle</h1>
+<h1>{{$ptitle}}</h1>
<form action="settings/display" id="settings-form" method="post" autocomplete="off" >
-<input type='hidden' name='form_security_token' value='$form_security_token'>
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-{{inc field_themeselect.tpl with $field=$theme }}{{endinc}}
-{{inc field_themeselect.tpl with $field=$mobile_theme }}{{endinc}}
-{{inc field_input.tpl with $field=$ajaxint }}{{endinc}}
-{{inc field_input.tpl with $field=$itemspage }}{{endinc}}
-{{inc field_checkbox.tpl with $field=$nosmile}}{{endinc}}
+{{include file="field_themeselect.tpl" field=$theme}}
+{{include file="field_themeselect.tpl" field=$mobile_theme}}
+{{include file="field_input.tpl" field=$ajaxint}}
+{{include file="field_input.tpl" field=$itemspage}}
+{{include file="field_checkbox.tpl" field=$nosmile}}
<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="$submit" />
+<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
</div>
-{{ if $theme_config }}
+{{if $theme_config}}
<h2>Theme settings</h2>
-$theme_config
-{{ endif }}
+{{$theme_config}}
+{{/if}}
</form>
diff --git a/view/tpl/settings_features.tpl b/view/tpl/settings_features.tpl
index fd65abebb..47d755ee6 100644..100755
--- a/view/tpl/settings_features.tpl
+++ b/view/tpl/settings_features.tpl
@@ -1,19 +1,19 @@
-<h1>$title</h1>
+<h1>{{$title}}</h1>
<form action="settings/features" method="post" autocomplete="off">
-<input type='hidden' name='form_security_token' value='$form_security_token'>
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-{{ for $features as $f }}
-<h3 class="settings-heading">$f.0</h3>
+{{foreach $features as $f}}
+<h3 class="settings-heading">{{$f.0}}</h3>
-{{ for $f.1 as $fcat }}
- {{ inc $field_yesno with $field=$fcat }}{{endinc}}
-{{ endfor }}
-{{ endfor }}
+{{foreach $f.1 as $fcat}}
+ {{include file="{{$field_yesno}}" field=$fcat}}
+{{/foreach}}
+{{/foreach}}
<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-features-submit" value="$submit" />
+<input type="submit" name="submit" class="settings-features-submit" value="{{$submit}}" />
</div>
</form>
diff --git a/view/tpl/settings_nick_set.tpl b/view/tpl/settings_nick_set.tpl
index eb4721d50..ae11c00c8 100644..100755
--- a/view/tpl/settings_nick_set.tpl
+++ b/view/tpl/settings_nick_set.tpl
@@ -1,5 +1,4 @@
-
<div id="settings-nick-wrapper" >
-<div id="settings-nickname-desc" class="info-message">$desc <strong>'$nickname@$basepath'</strong>$subdir</div>
+<div id="settings-nickname-desc" class="info-message">{{$desc}} <strong>'{{$nickname}}@{{$basepath}}'</strong>{{$subdir}}</div>
</div>
<div id="settings-nick-end" ></div>
diff --git a/view/tpl/settings_nick_subdir.tpl b/view/tpl/settings_nick_subdir.tpl
deleted file mode 100644
index 303c24df7..000000000
--- a/view/tpl/settings_nick_subdir.tpl
+++ /dev/null
@@ -1,6 +0,0 @@
-<p>
-It appears that your website is located in a subdirectory of the<br />
-$hostname website, so this setting may not work reliably.<br />
-</p>
-<p>If you have any issues, you may have better results using the profile<br /> address '<strong>$baseurl/profile/$nickname</strong>'.
-</p> \ No newline at end of file
diff --git a/view/tpl/settings_oauth.tpl b/view/tpl/settings_oauth.tpl
index 890c4ee6c..11c61a43e 100644..100755
--- a/view/tpl/settings_oauth.tpl
+++ b/view/tpl/settings_oauth.tpl
@@ -1,31 +1,31 @@
-<h1>$title</h1>
+<h1>{{$title}}</h1>
<form action="settings/oauth" method="post" autocomplete="off">
-<input type='hidden' name='form_security_token' value='$form_security_token'>
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
<div id="profile-edit-links">
<ul>
<li>
- <a id="profile-edit-view-link" href="$baseurl/settings/oauth/add">$add</a>
+ <a id="profile-edit-view-link" href="{{$baseurl}}/settings/oauth/add">{{$add}}</a>
</li>
</ul>
</div>
- {{ for $apps as $app }}
+ {{foreach $apps as $app}}
<div class='oauthapp'>
- <img src='$app.icon' class="{{ if $app.icon }} {{ else }}noicon{{ endif }}">
- {{ if $app.name }}<h4>$app.name</h4>{{ else }}<h4>$noname</h4>{{ endif }}
- {{ if $app.my }}
- {{ if $app.oauth_token }}
- <div class="settings-submit-wrapper" ><button class="settings-submit" type="submit" name="remove" value="$app.oauth_token">$remove</button></div>
- {{ endif }}
- {{ endif }}
- {{ if $app.my }}
- <a href="$baseurl/settings/oauth/edit/$app.client_id" class="icon s22 edit" title="$edit">&nbsp;</a>
- <a href="$baseurl/settings/oauth/delete/$app.client_id?t=$form_security_token" class="icon s22 delete" title="$delete">&nbsp;</a>
- {{ endif }}
+ <img src='{{$app.icon}}' class="{{if $app.icon}} {{else}}noicon{{/if}}">
+ {{if $app.name}}<h4>{{$app.name}}</h4>{{else}}<h4>{{$noname}}</h4>{{/if}}
+ {{if $app.my}}
+ {{if $app.oauth_token}}
+ <div class="settings-submit-wrapper" ><button class="settings-submit" type="submit" name="remove" value="{{$app.oauth_token}}">{{$remove}}</button></div>
+ {{/if}}
+ {{/if}}
+ {{if $app.my}}
+ <a href="{{$baseurl}}/settings/oauth/edit/{{$app.client_id}}" class="icon s22 edit" title="{{$edit}}">&nbsp;</a>
+ <a href="{{$baseurl}}/settings/oauth/delete/{{$app.client_id}}?t={{$form_security_token}}" class="icon s22 delete" title="{{$delete}}">&nbsp;</a>
+ {{/if}}
</div>
- {{ endfor }}
+ {{/foreach}}
</form>
diff --git a/view/tpl/settings_oauth_edit.tpl b/view/tpl/settings_oauth_edit.tpl
index e6f2abdc2..bf805363c 100644..100755
--- a/view/tpl/settings_oauth_edit.tpl
+++ b/view/tpl/settings_oauth_edit.tpl
@@ -1,17 +1,17 @@
-<h1>$title</h1>
+<h1>{{$title}}</h1>
<form method="POST">
-<input type='hidden' name='form_security_token' value='$form_security_token'>
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-{{ inc field_input.tpl with $field=$name }}{{ endinc }}
-{{ inc field_input.tpl with $field=$key }}{{ endinc }}
-{{ inc field_input.tpl with $field=$secret }}{{ endinc }}
-{{ inc field_input.tpl with $field=$redirect }}{{ endinc }}
-{{ inc field_input.tpl with $field=$icon }}{{ endinc }}
+{{include file="field_input.tpl" field=$name}}
+{{include file="field_input.tpl" field=$key}}
+{{include file="field_input.tpl" field=$secret}}
+{{include file="field_input.tpl" field=$redirect}}
+{{include file="field_input.tpl" field=$icon}}
<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="$submit" />
-<input type="submit" name="cancel" class="settings-submit" value="$cancel" />
+<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
+<input type="submit" name="cancel" class="settings-submit" value="{{$cancel}}" />
</div>
</form>
diff --git a/view/tpl/siteinfo.tpl b/view/tpl/siteinfo.tpl
new file mode 100755
index 000000000..f6647110c
--- /dev/null
+++ b/view/tpl/siteinfo.tpl
@@ -0,0 +1,14 @@
+<h3>{{$title}}</h3>
+<p></p>
+<p>{{$description}}</p>
+{{if $version}}
+<p>{{$version}}</p>
+{{/if}}
+<p>{{$web_location}}</p>
+<p>{{$visit}}</p>
+<p>{{$bug_text}} <a href="{{$bug_link_url}}">{{$bug_link_text}}</a></p>
+<p>{{$contact}}</p>
+<p>{{$plugins_text}}</p>
+{{if $plugins_list}}
+ <div style="margin-left: 25px; margin-right: 25px;">{{$plugins_list}}</div>
+{{/if}}
diff --git a/view/tpl/smarty3/404.tpl b/view/tpl/smarty3/404.tpl
deleted file mode 100644
index 2d581ab8d..000000000
--- a/view/tpl/smarty3/404.tpl
+++ /dev/null
@@ -1,6 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$message}}</h1>
diff --git a/view/tpl/smarty3/README b/view/tpl/smarty3/README
new file mode 100644
index 000000000..78ff8d9a1
--- /dev/null
+++ b/view/tpl/smarty3/README
@@ -0,0 +1,4 @@
+view/tpl/smarty3
+
+This directory must exist and be writeable by the webserver in order to store compiled template files, which are created dynamically. Please see the installation instructions.
+
diff --git a/view/tpl/smarty3/abook_edit.tpl b/view/tpl/smarty3/abook_edit.tpl
deleted file mode 100644
index 9f6556842..000000000
--- a/view/tpl/smarty3/abook_edit.tpl
+++ /dev/null
@@ -1,79 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<h2>{{$header}}</h2>
-
-<h3>{{$addr}}</h3>
-
-{{if $notself}}
-<div id="connection-flag-tabs">
-{{$tabs}}
-</div>
-{{/if}}
-
-{{if $self}}
-<div id="autoperm-desc" class="descriptive-paragraph">{{$autolbl}}</div>
-{{/if}}
-
-
-<div id="contact-edit-wrapper">
-
-{{if $notself}}
-{{if $slide}}
-<h3>{{$lbl_slider}}</h3>
-
-{{$slide}}
-
-{{/if}}
-{{/if}}
-
-
-
-<h3>{{$permlbl}}</h3>
-
-<form id="abook-edit-form" action="connections/{{$contact_id}}" method="post" >
-<input type="hidden" name="contact_id" value="{{$contact_id}}">
-<input id="contact-closeness-mirror" type="hidden" name="closeness" value="{{$close}}" />
-
-{{if $noperms}}
-<div id="noperm-desc" class="descriptive-paragraph">{{$noperms}}</div>
-{{/if}}
-
-
-{{if $is_pending}}
-{{include file="field_checkbox.tpl" field=$unapproved}}
-{{/if}}
-
-<br />
-<b>{{$quick}}</b>
-<ul>
-{{if $self}}
-<li><span class="fakelink" onclick="connectForum(); $('#abook-edit-form').submit();">{{$forum}}</span></li>
-<li><span class="fakelink" onclick="connectSoapBox(); $('#abook-edit-form').submit();">{{$soapbox}}</span></li>
-{{/if}}
-<li><span class="fakelink" onclick="connectFullShare(); $('#abook-edit-form').submit();">{{$full}}</span></li>
-<li><span class="fakelink" onclick="connectCautiousShare(); $('#abook-edit-form').submit();">{{$cautious}}</span></li>
-<li><span class="fakelink" onclick="connectFollowOnly(); $('#abook-edit-form').submit();">{{$follow}}</span></li>
-</ul>
-
-<div id="abook-advanced" class="fakelink" onclick="openClose('abook-advanced-panel');">{{$advanced}}</div>
-
-<div id="abook-advanced-panel" style="display: none;">
-
-<span class="abook-them">{{$them}}</span><span class="abook-me">{{$me}}</span>
-<br />
-<br />
-{{foreach $perms as $prm}}
-{{include file="field_acheckbox.tpl" field=$prm}}
-{{/foreach}}
-<br />
-
-</div>
-
-<input class="contact-edit-submit" type="submit" name="done" value="{{$submit}}" />
-
-</form>
-</div>
diff --git a/view/tpl/smarty3/acl_selector.tpl b/view/tpl/smarty3/acl_selector.tpl
deleted file mode 100644
index aebef71ee..000000000
--- a/view/tpl/smarty3/acl_selector.tpl
+++ /dev/null
@@ -1,33 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="acl-wrapper">
- <input id="acl-search">
- <a href="#" id="acl-showall">{{$showall}}</a>
- <div id="acl-list">
- <div id="acl-list-content">
- </div>
- </div>
- <span id="acl-fields"></span>
-</div>
-
-<div class="acl-list-item" rel="acl-template" style="display:none">
- <img src="{0}"><p>{1}</p>
- <a href="#" class='acl-button-show'>{{$show}}</a>
- <a href="#" class='acl-button-hide'>{{$hide}}</a>
-</div>
-
-<script>
-$(document).ready(function() {
- setTimeout( function () {
- if(typeof acl=="undefined"){
- acl = new ACL(
- baseurl+"/acl",
- [ {{$allowcid}},{{$allowgid}},{{$denycid}},{{$denygid}} ]
- );
- }
- }, 5000 );
-});
-</script>
diff --git a/view/tpl/smarty3/admin_aside.tpl b/view/tpl/smarty3/admin_aside.tpl
deleted file mode 100644
index 69445d3b1..000000000
--- a/view/tpl/smarty3/admin_aside.tpl
+++ /dev/null
@@ -1,47 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<script>
- // update pending count //
- $(function(){
-
- $("nav").bind('nav-update', function(e,data){
- var elm = $('#pending-update');
- var register = $(data).find('register').text();
- if (register=="0") { reigster=""; elm.hide();} else { elm.show(); }
- elm.html(register);
- });
- });
-</script>
-<h4><a href="{{$admurl}}">{{$admtxt}}</a></h4>
-<ul class='admin linklist'>
- <li class='admin link button {{$admin.site.2}}'><a href='{{$admin.site.0}}'>{{$admin.site.1}}</a></li>
- <li class='admin link button {{$admin.users.2}}'><a href='{{$admin.users.0}}'>{{$admin.users.1}}</a><span id='pending-update' title='{{$h_pending}}'></span></li>
- <li class='admin link button {{$admin.plugins.2}}'><a href='{{$admin.plugins.0}}'>{{$admin.plugins.1}}</a></li>
- <li class='admin link button {{$admin.themes.2}}'><a href='{{$admin.themes.0}}'>{{$admin.themes.1}}</a></li>
- <li class='admin link button {{$admin.dbsync.2}}'><a href='{{$admin.dbsync.0}}'>{{$admin.dbsync.1}}</a></li>
-</ul>
-
-{{if $admin.update}}
-<ul class='admin linklist'>
- <li class='admin link button {{$admin.update.2}}'><a href='{{$admin.update.0}}'>{{$admin.update.1}}</a></li>
- <li class='admin link button {{$admin.update.2}}'><a href='https://kakste.com/profile/inthegit'>Important Changes</a></li>
-</ul>
-{{/if}}
-
-
-{{if $admin.plugins_admin}}<h4>{{$plugadmtxt}}</h4>{{/if}}
-<ul class='admin linklist'>
- {{foreach $admin.plugins_admin as $l}}
- <li class='admin link button {{$l.2}}'><a href='{{$l.0}}'>{{$l.1}}</a></li>
- {{/foreach}}
-</ul>
-
-
-<h4>{{$logtxt}}</h4>
-<ul class='admin linklist'>
- <li class='admin link button {{$admin.logs.2}}'><a href='{{$admin.logs.0}}'>{{$admin.logs.1}}</a></li>
-</ul>
-
diff --git a/view/tpl/smarty3/admin_logs.tpl b/view/tpl/smarty3/admin_logs.tpl
deleted file mode 100644
index 6a2259500..000000000
--- a/view/tpl/smarty3/admin_logs.tpl
+++ /dev/null
@@ -1,24 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id='adminpage'>
- <h1>{{$title}} - {{$page}}</h1>
-
- <form action="{{$baseurl}}/admin/logs" method="post">
- <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
- {{include file="field_checkbox.tpl" field=$debugging}}
- {{include file="field_input.tpl" field=$logfile}}
- {{include file="field_select.tpl" field=$loglevel}}
-
- <div class="submit"><input type="submit" name="page_logs" value="{{$submit}}" /></div>
-
- </form>
-
- <h3>{{$logname}}</h3>
- <div style="width:100%; height:400px; overflow: auto; "><pre>{{$data}}</pre></div>
-<!-- <iframe src='{{$baseurl}}/{{$logname}}' style="width:100%; height:400px"></iframe> -->
- <!-- <div class="submit"><input type="submit" name="page_logs_clear_log" value="{{$clear}}" /></div> -->
-</div>
diff --git a/view/tpl/smarty3/admin_plugins.tpl b/view/tpl/smarty3/admin_plugins.tpl
deleted file mode 100644
index 307814e87..000000000
--- a/view/tpl/smarty3/admin_plugins.tpl
+++ /dev/null
@@ -1,20 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id='adminpage'>
- <h1>{{$title}} - {{$page}}</h1>
-
- <ul id='pluginslist'>
- {{foreach $plugins as $p}}
- <li class='plugin {{$p.1}}'>
- <a class='toggleplugin' href='{{$baseurl}}/admin/{{$function}}/{{$p.0}}?a=t&amp;t={{$form_security_token}}' title="{{if $p.1==on}}Disable{{else}}Enable{{/if}}" ><span class='icon {{$p.1}}'></span></a>
- <a href='{{$baseurl}}/admin/{{$function}}/{{$p.0}}'><span class='name'>{{$p.2.name}}</span></a> - <span class="version">{{$p.2.version}}</span>
- {{if $p.2.experimental}} {{$experimental}} {{/if}}{{if $p.2.unsupported}} {{$unsupported}} {{/if}}
-
- <div class='desc'>{{$p.2.description}}</div>
- </li>
- {{/foreach}}
- </ul>
-</div>
diff --git a/view/tpl/smarty3/admin_plugins_details.tpl b/view/tpl/smarty3/admin_plugins_details.tpl
deleted file mode 100644
index e81701732..000000000
--- a/view/tpl/smarty3/admin_plugins_details.tpl
+++ /dev/null
@@ -1,41 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id='adminpage'>
- <h1>{{$title}} - {{$page}}</h1>
-
- <p><span class='toggleplugin icon {{$status}}'></span> {{$info.name}} - {{$info.version}} : <a href="{{$baseurl}}/admin/{{$function}}/{{$plugin}}/?a=t&amp;t={{$form_security_token}}">{{$action}}</a></p>
- <p>{{$info.description}}</p>
-
- <p class="author">{{$str_author}}
- {{foreach $info.author as $a}}
- {{if $a.link}}<a href="{{$a.link}}">{{$a.name}}</a>{{else}}{{$a.name}}{{/if}},
- {{/foreach}}
- </p>
-
- <p class="maintainer">{{$str_maintainer}}
- {{foreach $info.maintainer as $a}}
- {{if $a.link}}<a href="{{$a.link}}">{{$a.name}}</a>{{else}}{{$a.name}}{{/if}},
- {{/foreach}}
- </p>
-
- {{if $screenshot}}
- <a href="{{$screenshot.0}}" class='screenshot'><img src="{{$screenshot.0}}" alt="{{$screenshot.1}}" /></a>
- {{/if}}
-
- {{if $admin_form}}
- <h3>{{$settings}}</h3>
- <form method="post" action="{{$baseurl}}/admin/{{$function}}/{{$plugin}}/">
- {{$admin_form}}
- </form>
- {{/if}}
-
- {{if $readme}}
- <h3>Readme</h3>
- <div id="plugin_readme">
- {{$readme}}
- </div>
- {{/if}}
-</div>
diff --git a/view/tpl/smarty3/admin_remoteupdate.tpl b/view/tpl/smarty3/admin_remoteupdate.tpl
deleted file mode 100644
index cee0ef9b8..000000000
--- a/view/tpl/smarty3/admin_remoteupdate.tpl
+++ /dev/null
@@ -1,103 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<script src="js/jquery.htmlstream.js"></script>
-<script>
- /* ajax updater */
- function updateEnd(data){
- //$("#updatepopup .panel_text").html(data);
- $("#remoteupdate_form").find("input").removeAttr('disabled');
- $(".panel_action_close").fadeIn()
- }
- function updateOn(data){
-
- var patt=/§([^§]*)§/g;
- var matches = data.match(patt);
- $(matches).each(function(id,data){
- data = data.replace(/§/g,"");
- d = data.split("@");
- console.log(d);
- elm = $("#updatepopup .panel_text #"+d[0]);
- html = "<div id='"+d[0]+"' class='progress'>"+d[1]+"<span>"+d[2]+"</span></div>";
- if (elm.length==0){
- $("#updatepopup .panel_text").append(html);
- } else {
- $(elm).replaceWith(html);
- }
- });
-
-
- }
-
- $(function(){
- $("#remoteupdate_form").submit(function(){
- var data={};
- $(this).find("input").each(function(i, e){
- name = $(e).attr('name');
- value = $(e).val();
- e.disabled = true;
- data[name]=value;
- });
-
- $("#updatepopup .panel_text").html("");
- $("#updatepopup").show();
- $("#updatepopup .panel").hide().slideDown(500);
- $(".panel_action_close").hide().click(function(){
- $("#updatepopup .panel").slideUp(500, function(){
- $("#updatepopup").hide();
- });
- });
-
- $.post(
- $(this).attr('action'),
- data,
- updateEnd,
- 'text',
- updateOn
- );
-
-
- return false;
- })
- });
-</script>
-<div id="updatepopup" class="popup">
- <div class="background"></div>
- <div class="panel">
- <div class="panel_in">
- <h1>Friendica Update</h1>
- <div class="panel_text"></div>
- <div class="panel_actions">
- <input type="button" value="{{$close}}" class="panel_action_close">
- </div>
- </div>
- </div>
-</div>
-<div id="adminpage">
- <dl> <dt>Your version:</dt><dd>{{$localversion}}</dd> </dl>
-{{if $needupdate}}
- <dl> <dt>New version:</dt><dd>{{$remoteversion}}</dd> </dl>
-
- <form id="remoteupdate_form" method="POST" action="{{$baseurl}}/admin/update">
- <input type="hidden" name="{{$remotefile.0}}" value="{{$remotefile.2}}">
-
- {{if $canwrite}}
- <div class="submit"><input type="submit" name="remoteupdate" value="{{$submit}}" /></div>
- {{else}}
- <h3>Your friendica installation is not writable by web server.</h3>
- {{if $canftp}}
- <p>You can try to update via FTP</p>
- {{include file="field_input.tpl" field=$ftphost}}
- {{include file="field_input.tpl" field=$ftppath}}
- {{include file="field_input.tpl" field=$ftpuser}}
- {{include file="field_password.tpl" field=$ftppwd}}
- <div class="submit"><input type="submit" name="remoteupdate" value="{{$submit}}" /></div>
- {{/if}}
- {{/if}}
- </form>
-{{else}}
-<h4>No updates</h4>
-{{/if}}
-</div>
diff --git a/view/tpl/smarty3/admin_site.tpl b/view/tpl/smarty3/admin_site.tpl
deleted file mode 100644
index 75a386f7d..000000000
--- a/view/tpl/smarty3/admin_site.tpl
+++ /dev/null
@@ -1,87 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<script>
- $(function(){
-
- $("#cnftheme").fancybox({
- width: 800,
- autoDimensions: false,
- onStart: function(){
- var theme = $("#id_theme :selected").val();
- $("#cnftheme").attr('href',"{{$baseurl}}/admin/themes/"+theme);
- },
- onComplete: function(){
- $("div#fancybox-content form").submit(function(e){
- var url = $(this).attr('action');
- // can't get .serialize() to work...
- var data={};
- $(this).find("input").each(function(){
- data[$(this).attr('name')] = $(this).val();
- });
- $(this).find("select").each(function(){
- data[$(this).attr('name')] = $(this).children(":selected").val();
- });
- console.log(":)", url, data);
-
- $.post(url, data, function(data) {
- if(timer) clearTimeout(timer);
- NavUpdate();
- $.fancybox.close();
- })
-
- return false;
- });
-
- }
- });
- });
-</script>
-<div id='adminpage'>
- <h1>{{$title}} - {{$page}}</h1>
-
- <form action="{{$baseurl}}/admin/site" method="post">
- <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
- {{include file="field_input.tpl" field=$sitename}}
- {{include file="field_textarea.tpl" field=$banner}}
- {{include file="field_select.tpl" field=$language}}
- {{include file="field_select.tpl" field=$theme}}
- {{include file="field_select.tpl" field=$ssl_policy}}
-
- <div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
-
- <h3>{{$registration}}</h3>
- {{include file="field_input.tpl" field=$register_text}}
- {{include file="field_select.tpl" field=$register_policy}}
-
- <div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
-
- <h3>{{$upload}}</h3>
- {{include file="field_input.tpl" field=$maximagesize}}
-
- <h3>{{$corporate}}</h3>
- {{include file="field_input.tpl" field=$allowed_sites}}
- {{include file="field_input.tpl" field=$allowed_email}}
- {{include file="field_checkbox.tpl" field=$block_public}}
- {{include file="field_checkbox.tpl" field=$force_publish}}
- {{include file="field_checkbox.tpl" field=$no_community_page}}
- {{include file="field_input.tpl" field=$global_directory}}
-
- <div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
-
- <h3>{{$advanced}}</h3>
- {{include file="field_input.tpl" field=$proxy}}
- {{include file="field_input.tpl" field=$proxyuser}}
- {{include file="field_input.tpl" field=$timeout}}
- {{include file="field_input.tpl" field=$delivery_interval}}
- {{include file="field_input.tpl" field=$poll_interval}}
- {{include file="field_input.tpl" field=$maxloadavg}}
- {{include file="field_input.tpl" field=$abandon_days}}
-
- <div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
-
- </form>
-</div>
diff --git a/view/tpl/smarty3/admin_summary.tpl b/view/tpl/smarty3/admin_summary.tpl
deleted file mode 100644
index 76ac23d29..000000000
--- a/view/tpl/smarty3/admin_summary.tpl
+++ /dev/null
@@ -1,45 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id='adminpage'>
- <h1>{{$title}} - {{$page}}</h1>
-
- <dl>
- <dt>{{$queues.label}}</dt>
- <dd>{{$queues.queue}}</dd>
- </dl>
- <dl>
- <dt>{{$pending.0}}</dt>
- <dd>{{$pending.1}}</dt>
- </dl>
-
- <dl>
- <dt>{{$users.0}}</dt>
- <dd>{{$users.1}}</dd>
- </dl>
- {{foreach $accounts as $p}}
- <dl>
- <dt>{{$p.0}}</dt>
- <dd>{{if $p.1}}{{$p.1}}{{else}}0{{/if}}</dd>
- </dl>
- {{/foreach}}
-
-
- <dl>
- <dt>{{$plugins.0}}</dt>
-
- {{foreach $plugins.1 as $p}}
- <dd>{{$p}}</dd>
- {{/foreach}}
-
- </dl>
-
- <dl>
- <dt>{{$version.0}}</dt>
- <dd>{{$version.1}} - {{$build}}</dt>
- </dl>
-
-
-</div>
diff --git a/view/tpl/smarty3/admin_users.tpl b/view/tpl/smarty3/admin_users.tpl
deleted file mode 100644
index 5448a08c4..000000000
--- a/view/tpl/smarty3/admin_users.tpl
+++ /dev/null
@@ -1,94 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<script>
- function confirm_delete(uname){
- return confirm( "{{$confirm_delete}}".format(uname));
- }
- function confirm_delete_multi(){
- return confirm("{{$confirm_delete_multi}}");
- }
- function selectall(cls){
- $("."+cls).attr('checked','checked');
- return false;
- }
-</script>
-<div id='adminpage'>
- <h1>{{$title}} - {{$page}}</h1>
-
- <form action="{{$baseurl}}/admin/users" method="post">
- <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
- <h3>{{$h_pending}}</h3>
- {{if $pending}}
- <table id='pending'>
- <thead>
- <tr>
- {{foreach $th_pending as $th}}<th>{{$th}}</th>{{/foreach}}
- <th></th>
- <th></th>
- </tr>
- </thead>
- <tbody>
- {{foreach $pending as $u}}
- <tr>
- <td class="created">{{$u.created}}</td>
- <td class="name">{{$u.name}}</td>
- <td class="email">{{$u.email}}</td>
- <td class="checkbox"><input type="checkbox" class="pending_ckbx" id="id_pending_{{$u.hash}}" name="pending[]" value="{{$u.hash}}" /></td>
- <td class="tools">
- <a href="{{$baseurl}}/regmod/allow/{{$u.hash}}" title='{{$approve}}'><span class='icon like'></span></a>
- <a href="{{$baseurl}}/regmod/deny/{{$u.hash}}" title='{{$deny}}'><span class='icon dislike'></span></a>
- </td>
- </tr>
- {{/foreach}}
- </tbody>
- </table>
- <div class='selectall'><a href='#' onclick="return selectall('pending_ckbx');">{{$select_all}}</a></div>
- <div class="submit"><input type="submit" name="page_users_deny" value="{{$deny}}"/> <input type="submit" name="page_users_approve" value="{{$approve}}" /></div>
- {{else}}
- <p>{{$no_pending}}</p>
- {{/if}}
-
-
-
-
- <h3>{{$h_users}}</h3>
- {{if $users}}
- <table id='users'>
- <thead>
- <tr>
- <th></th>
- {{foreach $th_users as $th}}<th>{{$th}}</th>{{/foreach}}
- <th></th>
- <th></th>
- </tr>
- </thead>
- <tbody>
- {{foreach $users as $u}}
- <tr>
- <td><img src="{{$u.micro}}" alt="{{$u.nickname}}" title="{{$u.nickname}}"></td>
- <td class='name'><a href="{{$u.url}}" title="{{$u.nickname}}" >{{$u.name}}</a></td>
- <td class='email'>{{$u.email}}</td>
- <td class='register_date'>{{$u.register_date}}</td>
- <td class='login_date'>{{$u.login_date}}</td>
- <td class='lastitem_date'>{{$u.lastitem_date}}</td>
- <td class='login_date'>{{$u.page_flags}}</td>
- <td class="checkbox"><input type="checkbox" class="users_ckbx" id="id_user_{{$u.uid}}" name="user[]" value="{{$u.uid}}"/></td>
- <td class="tools">
- <a href="{{$baseurl}}/admin/users/block/{{$u.uid}}?t={{$form_security_token}}" title='{{if $u.blocked}}{{$unblock}}{{else}}{{$block}}{{/if}}'><span class='icon block {{if $u.blocked==0}}dim{{/if}}'></span></a>
- <a href="{{$baseurl}}/admin/users/delete/{{$u.uid}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><span class='icon drop'></span></a>
- </td>
- </tr>
- {{/foreach}}
- </tbody>
- </table>
- <div class='selectall'><a href='#' onclick="return selectall('users_ckbx');">{{$select_all}}</a></div>
- <div class="submit"><input type="submit" name="page_users_block" value="{{$block}}/{{$unblock}}" /> <input type="submit" name="page_users_delete" value="{{$delete}}" onclick="return confirm_delete_multi()" /></div>
- {{else}}
- NO USERS?!?
- {{/if}}
- </form>
-</div>
diff --git a/view/tpl/smarty3/album_edit.tpl b/view/tpl/smarty3/album_edit.tpl
deleted file mode 100644
index 36c07a9f0..000000000
--- a/view/tpl/smarty3/album_edit.tpl
+++ /dev/null
@@ -1,20 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="photo-album-edit-wrapper">
-<form name="photo-album-edit-form" id="photo-album-edit-form" action="photos/{{$nickname}}/album/{{$hexalbum}}" method="post" >
-
-
-<label id="photo-album-edit-name-label" for="photo-album-edit-name" >{{$nametext}}</label>
-<input type="text" size="64" name="albumname" value="{{$album}}" >
-
-<div id="photo-album-edit-name-end"></div>
-
-<input id="photo-album-edit-submit" type="submit" name="submit" value="{{$submit}}" />
-<input id="photo-album-edit-drop" type="submit" name="dropalbum" value="{{$dropsubmit}}" onclick="return confirmDelete();" />
-
-</form>
-</div>
-<div id="photo-album-edit-end" ></div>
diff --git a/view/tpl/smarty3/api_config_xml.tpl b/view/tpl/smarty3/api_config_xml.tpl
deleted file mode 100644
index 09aa00ac4..000000000
--- a/view/tpl/smarty3/api_config_xml.tpl
+++ /dev/null
@@ -1,71 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<config>
- <site>
- <name>{{$config.site.name}}</name>
- <server>{{$config.site.server}}</server>
- <theme>default</theme>
- <path></path>
- <logo>{{$config.site.logo}}</logo>
-
- <fancy>true</fancy>
- <language>en</language>
- <email>{{$config.site.email}}</email>
- <broughtby></broughtby>
- <broughtbyurl></broughtbyurl>
- <timezone>UTC</timezone>
- <closed>{{$config.site.closed}}</closed>
-
- <inviteonly>false</inviteonly>
- <private>{{$config.site.private}}</private>
- <textlimit>{{$config.site.textlimit}}</textlimit>
- <ssl>{{$config.site.ssl}}</ssl>
- <sslserver>{{$config.site.sslserver}}</sslserver>
- <shorturllength>30</shorturllength>
-
-</site>
- <license>
- <type>cc</type>
- <owner></owner>
- <url>http://creativecommons.org/licenses/by/3.0/</url>
- <title>Creative Commons Attribution 3.0</title>
- <image>http://i.creativecommons.org/l/by/3.0/80x15.png</image>
-
-</license>
- <nickname>
- <featured></featured>
-</nickname>
- <profile>
- <biolimit></biolimit>
-</profile>
- <group>
- <desclimit></desclimit>
-</group>
- <notice>
-
- <contentlimit></contentlimit>
-</notice>
- <throttle>
- <enabled>false</enabled>
- <count>20</count>
- <timespan>600</timespan>
-</throttle>
- <xmpp>
-
- <enabled>false</enabled>
- <server>INVALID SERVER</server>
- <port>5222</port>
- <user>update</user>
-</xmpp>
- <integration>
- <source>StatusNet</source>
-
-</integration>
- <attachments>
- <uploads>false</uploads>
- <file_quota>0</file_quota>
-</attachments>
-</config>
diff --git a/view/tpl/smarty3/api_friends_xml.tpl b/view/tpl/smarty3/api_friends_xml.tpl
deleted file mode 100644
index e9c40293b..000000000
--- a/view/tpl/smarty3/api_friends_xml.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<users type="array">
- {{foreach $users as $user}}
- {{include file="api_user_xml.tpl"}}
- {{/foreach}}
-</users>
diff --git a/view/tpl/smarty3/api_ratelimit_xml.tpl b/view/tpl/smarty3/api_ratelimit_xml.tpl
deleted file mode 100644
index a34eb6723..000000000
--- a/view/tpl/smarty3/api_ratelimit_xml.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<hash>
- <remaining-hits type="integer">{{$hash.remaining_hits}}</remaining-hits>
- <hourly-limit type="integer">{{$hash.hourly_limit}}</hourly-limit>
- <reset-time type="datetime">{{$hash.reset_time}}</reset-time>
- <reset_time_in_seconds type="integer">{{$hash.resettime_in_seconds}}</reset_time_in_seconds>
-</hash>
diff --git a/view/tpl/smarty3/api_status_xml.tpl b/view/tpl/smarty3/api_status_xml.tpl
deleted file mode 100644
index e3e80d2b1..000000000
--- a/view/tpl/smarty3/api_status_xml.tpl
+++ /dev/null
@@ -1,51 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<status>{{if $status}}
- <created_at>{{$status.created_at}}</created_at>
- <id>{{$status.id}}</id>
- <text>{{$status.text}}</text>
- <source>{{$status.source}}</source>
- <truncated>{{$status.truncated}}</truncated>
- <in_reply_to_status_id>{{$status.in_reply_to_status_id}}</in_reply_to_status_id>
- <in_reply_to_user_id>{{$status.in_reply_to_user_id}}</in_reply_to_user_id>
- <favorited>{{$status.favorited}}</favorited>
- <in_reply_to_screen_name>{{$status.in_reply_to_screen_name}}</in_reply_to_screen_name>
- <geo>{{$status.geo}}</geo>
- <coordinates>{{$status.coordinates}}</coordinates>
- <place>{{$status.place}}</place>
- <contributors>{{$status.contributors}}</contributors>
- <user>
- <id>{{$status.user.id}}</id>
- <name>{{$status.user.name}}</name>
- <screen_name>{{$status.user.screen_name}}</screen_name>
- <location>{{$status.user.location}}</location>
- <description>{{$status.user.description}}</description>
- <profile_image_url>{{$status.user.profile_image_url}}</profile_image_url>
- <url>{{$status.user.url}}</url>
- <protected>{{$status.user.protected}}</protected>
- <followers_count>{{$status.user.followers}}</followers_count>
- <profile_background_color>{{$status.user.profile_background_color}}</profile_background_color>
- <profile_text_color>{{$status.user.profile_text_color}}</profile_text_color>
- <profile_link_color>{{$status.user.profile_link_color}}</profile_link_color>
- <profile_sidebar_fill_color>{{$status.user.profile_sidebar_fill_color}}</profile_sidebar_fill_color>
- <profile_sidebar_border_color>{{$status.user.profile_sidebar_border_color}}</profile_sidebar_border_color>
- <friends_count>{{$status.user.friends_count}}</friends_count>
- <created_at>{{$status.user.created_at}}</created_at>
- <favourites_count>{{$status.user.favourites_count}}</favourites_count>
- <utc_offset>{{$status.user.utc_offset}}</utc_offset>
- <time_zone>{{$status.user.time_zone}}</time_zone>
- <profile_background_image_url>{{$status.user.profile_background_image_url}}</profile_background_image_url>
- <profile_background_tile>{{$status.user.profile_background_tile}}</profile_background_tile>
- <profile_use_background_image>{{$status.user.profile_use_background_image}}</profile_use_background_image>
- <notifications></notifications>
- <geo_enabled>{{$status.user.geo_enabled}}</geo_enabled>
- <verified>{{$status.user.verified}}</verified>
- <following></following>
- <statuses_count>{{$status.user.statuses_count}}</statuses_count>
- <lang>{{$status.user.lang}}</lang>
- <contributors_enabled>{{$status.user.contributors_enabled}}</contributors_enabled>
- </user>
-{{/if}}</status>
diff --git a/view/tpl/smarty3/api_test_xml.tpl b/view/tpl/smarty3/api_test_xml.tpl
deleted file mode 100644
index df5009af5..000000000
--- a/view/tpl/smarty3/api_test_xml.tpl
+++ /dev/null
@@ -1,6 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<ok>{{$ok}}</ok>
diff --git a/view/tpl/smarty3/api_timeline_atom.tpl b/view/tpl/smarty3/api_timeline_atom.tpl
deleted file mode 100644
index 00a28e390..000000000
--- a/view/tpl/smarty3/api_timeline_atom.tpl
+++ /dev/null
@@ -1,95 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:georss="http://www.georss.org/georss" xmlns:activity="http://activitystrea.ms/spec/1.0/" xmlns:media="http://purl.org/syndication/atommedia" xmlns:poco="http://portablecontacts.net/spec/1.0" xmlns:ostatus="http://ostatus.org/schema/1.0" xmlns:statusnet="http://status.net/schema/api/1/">
- <generator uri="http://status.net" version="0.9.7">StatusNet</generator>
- <id>{{$rss.self}}</id>
- <title>Friendika</title>
- <subtitle>Friendika API feed</subtitle>
- <logo>{{$rss.logo}}</logo>
- <updated>{{$rss.atom_updated}}</updated>
- <link type="text/html" rel="alternate" href="{{$rss.alternate}}"/>
- <link type="application/atom+xml" rel="self" href="{{$rss.self}}"/>
-
-
- <author>
- <activity:obj_type>http://activitystrea.ms/schema/1.0/person</activity:obj_type>
- <uri>{{$user.url}}</uri>
- <name>{{$user.name}}</name>
- <link rel="alternate" type="text/html" href="{{$user.url}}"/>
- <link rel="avatar" type="image/jpeg" media:width="106" media:height="106" href="{{$user.profile_image_url}}"/>
- <link rel="avatar" type="image/jpeg" media:width="96" media:height="96" href="{{$user.profile_image_url}}"/>
- <link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="{{$user.profile_image_url}}"/>
- <link rel="avatar" type="image/jpeg" media:width="24" media:height="24" href="{{$user.profile_image_url}}"/>
- <georss:point></georss:point>
- <poco:preferredUsername>{{$user.screen_name}}</poco:preferredUsername>
- <poco:displayName>{{$user.name}}</poco:displayName>
- <poco:urls>
- <poco:type>homepage</poco:type>
- <poco:value>{{$user.url}}</poco:value>
- <poco:primary>true</poco:primary>
- </poco:urls>
- <statusnet:profile_info local_id="{{$user.id}}"></statusnet:profile_info>
- </author>
-
- <!--Deprecation warning: activity:subject is present only for backward compatibility. It will be removed in the next version of StatusNet.-->
- <activity:subject>
- <activity:obj_type>http://activitystrea.ms/schema/1.0/person</activity:obj_type>
- <id>{{$user.contact_url}}</id>
- <title>{{$user.name}}</title>
- <link rel="alternate" type="text/html" href="{{$user.url}}"/>
- <link rel="avatar" type="image/jpeg" media:width="106" media:height="106" href="{{$user.profile_image_url}}"/>
- <link rel="avatar" type="image/jpeg" media:width="96" media:height="96" href="{{$user.profile_image_url}}"/>
- <link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="{{$user.profile_image_url}}"/>
- <link rel="avatar" type="image/jpeg" media:width="24" media:height="24" href="{{$user.profile_image_url}}"/>
- <poco:preferredUsername>{{$user.screen_name}}</poco:preferredUsername>
- <poco:displayName>{{$user.name}}</poco:displayName>
- <poco:urls>
- <poco:type>homepage</poco:type>
- <poco:value>{{$user.url}}</poco:value>
- <poco:primary>true</poco:primary>
- </poco:urls>
- <statusnet:profile_info local_id="{{$user.id}}"></statusnet:profile_info>
- </activity:subject>
-
-
- {{foreach $statuses as $status}}
- <entry>
- <activity:obj_type>{{$status.objecttype}}</activity:obj_type>
- <id>{{$status.message_id}}</id>
- <title>{{$status.text}}</title>
- <content type="html">{{$status.statusnet_html}}</content>
- <link rel="alternate" type="text/html" href="{{$status.url}}"/>
- <activity:verb>{{$status.verb}}</activity:verb>
- <published>{{$status.published}}</published>
- <updated>{{$status.updated}}</updated>
-
- <link rel="self" type="application/atom+xml" href="{{$status.self}}"/>
- <link rel="edit" type="application/atom+xml" href="{{$status.edit}}"/>
- <statusnet:notice_info local_id="{{$status.id}}" source="{{$status.source}}" >
- </statusnet:notice_info>
-
- <author>
- <activity:obj_type>http://activitystrea.ms/schema/1.0/person</activity:obj_type>
- <uri>{{$status.user.url}}</uri>
- <name>{{$status.user.name}}</name>
- <link rel="alternate" type="text/html" href="{{$status.user.url}}"/>
- <link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="{{$status.user.profile_image_url}}"/>
-
- <georss:point/>
- <poco:preferredUsername>{{$status.user.screen_name}}</poco:preferredUsername>
- <poco:displayName>{{$status.user.name}}</poco:displayName>
- <poco:address/>
- <poco:urls>
- <poco:type>homepage</poco:type>
- <poco:value>{{$status.user.url}}</poco:value>
- <poco:primary>true</poco:primary>
- </poco:urls>
- </author>
- <link rel="ostatus:conversation" type="text/html" href="{{$status.url}}"/>
-
- </entry>
- {{/foreach}}
-</feed>
diff --git a/view/tpl/smarty3/api_timeline_rss.tpl b/view/tpl/smarty3/api_timeline_rss.tpl
deleted file mode 100644
index afad50aab..000000000
--- a/view/tpl/smarty3/api_timeline_rss.tpl
+++ /dev/null
@@ -1,31 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:georss="http://www.georss.org/georss" xmlns:twitter="http://api.twitter.com">
- <channel>
- <title>Friendika</title>
- <link>{{$rss.alternate}}</link>
- <atom:link type="application/rss+xml" rel="self" href="{{$rss.self}}"/>
- <description>Friendika timeline</description>
- <language>{{$rss.language}}</language>
- <ttl>40</ttl>
- <image>
- <link>{{$user.link}}</link>
- <title>{{$user.name}}'s items</title>
- <url>{{$user.profile_image_url}}</url>
- </image>
-
-{{foreach $statuses as $status}}
- <item>
- <title>{{$status.user.name}}: {{$status.text}}</title>
- <description>{{$status.text}}</description>
- <pubDate>{{$status.created_at}}</pubDate>
- <guid>{{$status.url}}</guid>
- <link>{{$status.url}}</link>
- <twitter:source>{{$status.source}}</twitter:source>
- </item>
-{{/foreach}}
- </channel>
-</rss>
diff --git a/view/tpl/smarty3/api_timeline_xml.tpl b/view/tpl/smarty3/api_timeline_xml.tpl
deleted file mode 100644
index 84148d17f..000000000
--- a/view/tpl/smarty3/api_timeline_xml.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<statuses type="array" xmlns:statusnet="http://status.net/schema/api/1/">
-{{foreach $statuses as $status}} <status>
- <text>{{$status.text}}</text>
- <truncated>{{$status.truncated}}</truncated>
- <created_at>{{$status.created_at}}</created_at>
- <in_reply_to_status_id>{{$status.in_reply_to_status_id}}</in_reply_to_status_id>
- <source>{{$status.source}}</source>
- <id>{{$status.id}}</id>
- <in_reply_to_user_id>{{$status.in_reply_to_user_id}}</in_reply_to_user_id>
- <in_reply_to_screen_name>{{$status.in_reply_to_screen_name}}</in_reply_to_screen_name>
- <geo>{{$status.geo}}</geo>
- <favorited>{{$status.favorited}}</favorited>
-{{include file="api_user_xml.tpl" user=$status.user}} <statusnet:html>{{$status.statusnet_html}}</statusnet:html>
- <statusnet:conversation_id>{{$status.statusnet_conversation_id}}</statusnet:conversation_id>
- <url>{{$status.url}}</url>
- <coordinates>{{$status.coordinates}}</coordinates>
- <place>{{$status.place}}</place>
- <contributors>{{$status.contributors}}</contributors>
- </status>
-{{/foreach}}</statuses>
diff --git a/view/tpl/smarty3/api_user_xml.tpl b/view/tpl/smarty3/api_user_xml.tpl
deleted file mode 100644
index d7efcf3fb..000000000
--- a/view/tpl/smarty3/api_user_xml.tpl
+++ /dev/null
@@ -1,51 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
- <user>
- <id>{{$user.id}}</id>
- <name>{{$user.name}}</name>
- <screen_name>{{$user.screen_name}}</screen_name>
- <location>{{$user.location}}</location>
- <description>{{$user.description}}</description>
- <profile_image_url>{{$user.profile_image_url}}</profile_image_url>
- <url>{{$user.url}}</url>
- <protected>{{$user.protected}}</protected>
- <followers_count>{{$user.followers_count}}</followers_count>
- <friends_count>{{$user.friends_count}}</friends_count>
- <created_at>{{$user.created_at}}</created_at>
- <favourites_count>{{$user.favourites_count}}</favourites_count>
- <utc_offset>{{$user.utc_offset}}</utc_offset>
- <time_zone>{{$user.time_zone}}</time_zone>
- <statuses_count>{{$user.statuses_count}}</statuses_count>
- <following>{{$user.following}}</following>
- <profile_background_color>{{$user.profile_background_color}}</profile_background_color>
- <profile_text_color>{{$user.profile_text_color}}</profile_text_color>
- <profile_link_color>{{$user.profile_link_color}}</profile_link_color>
- <profile_sidebar_fill_color>{{$user.profile_sidebar_fill_color}}</profile_sidebar_fill_color>
- <profile_sidebar_border_color>{{$user.profile_sidebar_border_color}}</profile_sidebar_border_color>
- <profile_background_image_url>{{$user.profile_background_image_url}}</profile_background_image_url>
- <profile_background_tile>{{$user.profile_background_tile}}</profile_background_tile>
- <profile_use_background_image>{{$user.profile_use_background_image}}</profile_use_background_image>
- <notifications>{{$user.notifications}}</notifications>
- <geo_enabled>{{$user.geo_enabled}}</geo_enabled>
- <verified>{{$user.verified}}</verified>
- <lang>{{$user.lang}}</lang>
- <contributors_enabled>{{$user.contributors_enabled}}</contributors_enabled>
- <status>{{if $user.status}}
- <created_at>{{$user.status.created_at}}</created_at>
- <id>{{$user.status.id}}</id>
- <text>{{$user.status.text}}</text>
- <source>{{$user.status.source}}</source>
- <truncated>{{$user.status.truncated}}</truncated>
- <in_reply_to_status_id>{{$user.status.in_reply_to_status_id}}</in_reply_to_status_id>
- <in_reply_to_user_id>{{$user.status.in_reply_to_user_id}}</in_reply_to_user_id>
- <favorited>{{$user.status.favorited}}</favorited>
- <in_reply_to_screen_name>{{$user.status.in_reply_to_screen_name}}</in_reply_to_screen_name>
- <geo>{{$user.status.geo}}</geo>
- <coordinates>{{$user.status.coordinates}}</coordinates>
- <place>{{$user.status.place}}</place>
- <contributors>{{$user.status.contributors}}</contributors>
- {{/if}}</status>
- </user>
diff --git a/view/tpl/smarty3/apps.tpl b/view/tpl/smarty3/apps.tpl
deleted file mode 100644
index 01d9bb8c8..000000000
--- a/view/tpl/smarty3/apps.tpl
+++ /dev/null
@@ -1,12 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$title}}</h3>
-
-<ul>
- {{foreach $apps as $ap}}
- <li>{{$ap}}</li>
- {{/foreach}}
-</ul>
diff --git a/view/tpl/smarty3/atom_feed.tpl b/view/tpl/smarty3/atom_feed.tpl
deleted file mode 100644
index db553d99f..000000000
--- a/view/tpl/smarty3/atom_feed.tpl
+++ /dev/null
@@ -1,34 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<?xml version="1.0" encoding="utf-8" ?>
-<feed xmlns="http://www.w3.org/2005/Atom"
- xmlns:thr="http://purl.org/syndication/thread/1.0"
- xmlns:at="http://purl.org/atompub/tombstones/1.0"
- xmlns:media="http://purl.org/syndication/atommedia"
- xmlns:dfrn="http://purl.org/macgirvin/dfrn/1.0"
- xmlns:as="http://activitystrea.ms/spec/1.0/"
- xmlns:georss="http://www.georss.org/georss"
- xmlns:poco="http://portablecontacts.net/spec/1.0"
- xmlns:ostatus="http://ostatus.org/schema/1.0"
- xmlns:statusnet="http://status.net/schema/api/1/" >
-
- <id>{{$feed_id}}</id>
- <title>{{$feed_title}}</title>
- <generator uri="http://friendica.com" version="{{$version}}">Friendica</generator>
- <link rel="license" href="http://creativecommons.org/licenses/by/3.0/" />
- {{$hub}}
- {{$salmon}}
- {{$community}}
-
- <updated>{{$feed_updated}}</updated>
-
- <dfrn:owner>
- <name dfrn:updated="{{$namdate}}" >{{$name}}</name>
- <uri dfrn:updated="{{$uridate}}" >{{$profile_page}}</uri>
- <link rel="photo" type="image/jpeg" dfrn:updated="{{$picdate}}" media:width="175" media:height="175" href="{{$photo}}" />
- <link rel="avatar" type="image/jpeg" dfrn:updated="{{$picdate}}" media:width="175" media:height="175" href="{{$photo}}" />
- {{$birthday}}
- </dfrn:owner>
diff --git a/view/tpl/smarty3/atom_feed_dfrn.tpl b/view/tpl/smarty3/atom_feed_dfrn.tpl
deleted file mode 100644
index 87d78a518..000000000
--- a/view/tpl/smarty3/atom_feed_dfrn.tpl
+++ /dev/null
@@ -1,34 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<?xml version="1.0" encoding="utf-8" ?>
-<feed xmlns="http://www.w3.org/2005/Atom"
- xmlns:thr="http://purl.org/syndication/thread/1.0"
- xmlns:at="http://purl.org/atompub/tombstones/1.0"
- xmlns:media="http://purl.org/syndication/atommedia"
- xmlns:dfrn="http://purl.org/macgirvin/dfrn/1.0"
- xmlns:as="http://activitystrea.ms/spec/1.0/"
- xmlns:georss="http://www.georss.org/georss"
- xmlns:poco="http://portablecontacts.net/spec/1.0"
- xmlns:ostatus="http://ostatus.org/schema/1.0"
- xmlns:statusnet="http://status.net/schema/api/1/" >
-
- <id>{{$feed_id}}</id>
- <title>{{$feed_title}}</title>
- <generator uri="http://friendica.com" version="{{$version}}">Friendica</generator>
- <link rel="license" href="http://creativecommons.org/licenses/by/3.0/" />
- {{$hub}}
- {{$salmon}}
- {{$community}}
-
- <updated>{{$feed_updated}}</updated>
-
- <author>
- <name dfrn:updated="{{$namdate}}" >{{$name}}</name>
- <uri dfrn:updated="{{$uridate}}" >{{$profile_page}}</uri>
- <link rel="photo" type="image/jpeg" dfrn:updated="{{$picdate}}" media:width="175" media:height="175" href="{{$photo}}" />
- <link rel="avatar" type="image/jpeg" dfrn:updated="{{$picdate}}" media:width="175" media:height="175" href="{{$photo}}" />
- {{$birthday}}
- </author>
diff --git a/view/tpl/smarty3/atom_mail.tpl b/view/tpl/smarty3/atom_mail.tpl
deleted file mode 100644
index adf75a3e7..000000000
--- a/view/tpl/smarty3/atom_mail.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<dfrn:mail>
-
- <dfrn:sender>
- <dfrn:name>{{$name}}</dfrn:name>
- <dfrn:uri>{{$profile_page}}</dfrn:uri>
- <dfrn:avatar>{{$thumb}}</dfrn:avatar>
- </dfrn:sender>
-
- <dfrn:id>{{$item_id}}</dfrn:id>
- <dfrn:in-reply-to>{{$parent_id}}</dfrn:in-reply-to>
- <dfrn:sentdate>{{$created}}</dfrn:sentdate>
- <dfrn:subject>{{$subject}}</dfrn:subject>
- <dfrn:content>{{$content}}</dfrn:content>
-
-</dfrn:mail>
-
diff --git a/view/tpl/smarty3/atom_suggest.tpl b/view/tpl/smarty3/atom_suggest.tpl
deleted file mode 100644
index c0d1a1b3c..000000000
--- a/view/tpl/smarty3/atom_suggest.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<dfrn:suggest>
-
- <dfrn:url>{{$url}}</dfrn:url>
- <dfrn:name>{{$name}}</dfrn:name>
- <dfrn:photo>{{$photo}}</dfrn:photo>
- <dfrn:request>{{$request}}</dfrn:request>
- <dfrn:note>{{$note}}</dfrn:note>
-
-</dfrn:suggest>
-
diff --git a/view/tpl/smarty3/auto_request.tpl b/view/tpl/smarty3/auto_request.tpl
deleted file mode 100644
index 662ca2447..000000000
--- a/view/tpl/smarty3/auto_request.tpl
+++ /dev/null
@@ -1,42 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<h1>{{$header}}</h1>
-
-<p id="dfrn-request-intro">
-{{$page_desc}}<br />
-<ul id="dfrn-request-networks">
-<li><a href="http://friendica.com" title="{{$friendica}}">{{$friendica}}</a></li>
-<li><a href="http://joindiaspora.com" title="{{$diaspora}}">{{$diaspora}}</a> {{$diasnote}}</li>
-<li><a href="http://ostatus.org" title="{{$public_net}}" >{{$statusnet}}</a></li>
-{{if $emailnet}}<li>{{$emailnet}}</li>{{/if}}
-</ul>
-</p>
-<p>
-{{$invite_desc}}
-</p>
-<p>
-{{$desc}}
-</p>
-
-<form action="dfrn_request/{{$nickname}}" method="post" />
-
-<div id="dfrn-request-url-wrapper" >
- <label id="dfrn-url-label" for="dfrn-url" >{{$your_address}}</label>
- <input type="text" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
- <div id="dfrn-request-url-end"></div>
-</div>
-
-
-<div id="dfrn-request-info-wrapper" >
-
-</div>
-
- <div id="dfrn-request-submit-wrapper">
- <input type="submit" name="submit" id="dfrn-request-submit-button" value="{{$submit}}" />
- <input type="submit" name="cancel" id="dfrn-request-cancel-button" value="{{$cancel}}" />
- </div>
-</form>
diff --git a/view/tpl/smarty3/birthdays_reminder.tpl b/view/tpl/smarty3/birthdays_reminder.tpl
deleted file mode 100644
index 56749cd12..000000000
--- a/view/tpl/smarty3/birthdays_reminder.tpl
+++ /dev/null
@@ -1,15 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{if $count}}
-<div id="birthday-notice" class="birthday-notice fakelink {{$classtoday}}" onclick="openClose('birthday-wrapper');">{{$event_reminders}} ({{$count}})</div>
-<div id="birthday-wrapper" style="display: none;" ><div id="birthday-title">{{$event_title}}</div>
-<div id="birthday-title-end"></div>
-{{foreach $events as $event}}
-<div class="birthday-list" id="birthday-{{$event.id}}"></a> <a href="{{$event.link}}">{{$event.title}}</a> {{$event.date}} </div>
-{{/foreach}}
-</div>
-{{/if}}
-
diff --git a/view/tpl/smarty3/build_query.tpl b/view/tpl/smarty3/build_query.tpl
deleted file mode 100644
index 6df7f6589..000000000
--- a/view/tpl/smarty3/build_query.tpl
+++ /dev/null
@@ -1,57 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<script>
-
- var bParam_cmd = "{{$baseurl}}/update_{{$pgtype}}";
-
-
- var bParam_uid = {{$uid}};
- var bParam_gid = {{$gid}};
- var bParam_cid = {{$cid}};
- var bParam_cmin = {{$cmin}};
- var bParam_cmax = {{$cmax}};
- var bParam_star = {{$star}};
- var bParam_liked = {{$liked}};
- var bParam_conv = {{$conv}};
- var bParam_spam = {{$spam}};
- var bParam_new = {{$nouveau}};
- var bParam_page = {{$page}};
- var bParam_wall = {{$wall}};
-
- var bParam_search = "{{$search}}";
- var bParam_order = "{{$order}}";
- var bParam_file = "{{$file}}";
- var bParam_cats = "{{$cats}}";
- var bParam_dend = "{{$dend}}";
- var bParam_dbegin = "{{$dbegin}}";
- var bParam_uri = "{{$uri}}";
-
- function buildCmd() {
- var udargs = ((page_load) ? "/load" : "");
- var bCmd = bParam_cmd + udargs + "?f=" ;
- if(bParam_uid) bCmd = bCmd + "&p=" + bParam_uid;
- if(bParam_cmin != 0) bCmd = bCmd + "&cmin=" + bParam_cmin;
- if(bParam_cmax != 99) bCmd = bCmd + "&cmax=" + bParam_cmax;
- if(bParam_gid != 0) { bCmd = bCmd + "&gid=" + bParam_gid; } else
- if(bParam_cid != 0) { bCmd = bCmd + "&cid=" + bParam_cid; }
- if(bParam_star != 0) bCmd = bCmd + "&star=" + bParam_star;
- if(bParam_liked != 0) bCmd = bCmd + "&liked=" + bParam_liked;
- if(bParam_conv!= 0) bCmd = bCmd + "&conv=" + bParam_conv;
- if(bParam_spam != 0) bCmd = bCmd + "&spam=" + bParam_spam;
- if(bParam_new != 0) bCmd = bCmd + "&new=" + bParam_new;
- if(bParam_wall != 0) bCmd = bCmd + "&wall=" + bParam_wall;
- if(bParam_search != "") bCmd = bCmd + "&search=" + bParam_search;
- if(bParam_file != "") bCmd = bCmd + "&file=" + bParam_file;
- if(bParam_cats != "") bCmd = bCmd + "&cats=" + bParam_cats;
- if(bParam_dend != "") bCmd = bCmd + "&dend=" + bParam_dend;
- if(bParam_dbegin != "") bCmd = bCmd + "&dbegin=" + bParam_dbegin;
- if(bParam_uri != "") bCmd = bCmd + "&uri=" + bParam_uri;
- if(bParam_page != 1) bCmd = bCmd + "&page=" + bParam_page;
- return(bCmd);
- }
-
-</script>
-
diff --git a/view/tpl/smarty3/categories_widget.tpl b/view/tpl/smarty3/categories_widget.tpl
deleted file mode 100644
index 75da9fc43..000000000
--- a/view/tpl/smarty3/categories_widget.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="categories-sidebar" class="widget">
- <h3>{{$title}}</h3>
- <div id="categories-sidebar-desc">{{$desc}}</div>
-
- <ul class="categories-ul">
- <li class="tool"><a href="{{$base}}" class="categories-link categories-all{{if $sel_all}} categories-selected{{/if}}">{{$all}}</a></li>
- {{foreach $terms as $term}}
- <li class="tool"><a href="{{$base}}?f=&cat={{$term.name}}" class="categories-link{{if $term.selected}} categories-selected{{/if}}">{{$term.name}}</a></li>
- {{/foreach}}
- </ul>
-
-</div>
diff --git a/view/tpl/smarty3/channel.tpl b/view/tpl/smarty3/channel.tpl
deleted file mode 100644
index b49cf19cc..000000000
--- a/view/tpl/smarty3/channel.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="channel-selection">
-{{if $channel.default_links}}
-{{if $channel.default}}
-<div class="channel-selection-default default">{{$msg_default}}</div>
-{{else}}
-<div class="channel-selection-default"><a href="manage/{{$channel.channel_id}}/default">{{$msg_make_default}}</a></div>
-{{/if}}
-{{/if}}
-<a href="{{$channel.link}}" class="channel-selection-photo-link" title="{{$channel.channel_name}}"><img class="channel-photo" src="{{$channel.xchan_photo_m}}" alt="{{$channel.channel_name}}" /></a>
-<a href="{{$channel.link}}" class="channel-selection-name-link" title="{{$channel.channel_name}}"><div class="channel-name">{{$channel.channel_name}}</div></a>
-</div>
-<div class="channel-selection-end"></div>
diff --git a/view/tpl/smarty3/channel_import.tpl b/view/tpl/smarty3/channel_import.tpl
deleted file mode 100644
index 872f039b7..000000000
--- a/view/tpl/smarty3/channel_import.tpl
+++ /dev/null
@@ -1,40 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h2>{{$title}}</h2>
-
-<form action="import" method="post" id="import-channel-form">
-
- <div id="import-desc" class="descriptive-paragraph">{{$desc}}</div>
-
- <label for="import-filename" id="label-import-filename" class="import-label" >{{$label_filename}}</label>
- <input type="file" name="filename" id="import-filename" class="import-input" value="" />
- <div id="import-filename-end" class="import-field-end"></div>
-
- <div id="import-choice" class="descriptive-paragraph">{{$choice}}</div>
-
- <label for="import-old-address" id="label-import-old-address" class="import-label" >{{$label_old_address}}</label>
- <input type="text" name="old_address" id="import-old-address" class="import-input" value="" />
- <div id="import-old-address-end" class="import-field-end"></div>
-
- <label for="import-old-email" id="label-import-old-email" class="import-label" >{{$label_old_email}}</label>
- <input type="text" name="email" id="import-old-email" class="import-input" value="{{$email}}" />
- <div id="import-old-email-end" class="import-field-end"></div>
-
- <label for="import-old-pass" id="label-import-old-pass" class="import-label" >{{$label_old_pass}}</label>
- <input type="password" name="password" id="import-old-pass" class="import-input" value="{{$pass}}" />
- <div id="import-old-pass-end" class="import-field-end"></div>
-
- <div id="import-common-desc" class="descriptive-paragraph">{{$common}}</div>
-
- <input type="checkbox" name="make_primary" id="import-make-primary" value="1" />
- <label for="import-make-primary" id="label-import-make-primary">{{$label_import_primary}}</label>
- <div id="import-make-primary-end" class="import-field-end"></div>
-
- <input type="submit" name="submit" id="import-submit-button" value="{{$submit}}" />
- <div id="import-submit-end" class="import-field-end"></div>
-
-</form>
-
diff --git a/view/tpl/smarty3/channels.tpl b/view/tpl/smarty3/channels.tpl
deleted file mode 100644
index cfb66401b..000000000
--- a/view/tpl/smarty3/channels.tpl
+++ /dev/null
@@ -1,27 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$header}}</h3>
-
-
-{{if $links}}
-{{foreach $links as $l}}
-<a class="channels-links" href="{{$l.0}}" title="{{$l.1}}">{{$l.2}}</a>
-{{/foreach}}
-{{/if}}
-
-{{if $selected}}
-<div id="channels-selected">{{$msg_selected}}</div>
-{{include file="channel.tpl" channel=$selected}}
-<div class="channels-end selected"></div>
-{{/if}}
-
-<div id="channels-desc" class="descriptive-text">{{$desc}}</div>
-
-{{foreach $all_channels as $chn}}
-{{include file="channel.tpl" channel=$chn}}
-{{/foreach}}
-
-<div class="channels-end all"></div>
diff --git a/view/tpl/smarty3/chanview.tpl b/view/tpl/smarty3/chanview.tpl
deleted file mode 100644
index 4b0f29f6c..000000000
--- a/view/tpl/smarty3/chanview.tpl
+++ /dev/null
@@ -1,7 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="chanview-iframe-border" class="fakelink" onclick="chanviewFull(); return true;" title="{{$full}}" >&#x2610;</div>
-<iframe id="remote-channel" width="100%" src="{{$url}}" onload="resize_iframe()"></iframe>
diff --git a/view/tpl/smarty3/comment_item.tpl b/view/tpl/smarty3/comment_item.tpl
deleted file mode 100644
index cde6466f0..000000000
--- a/view/tpl/smarty3/comment_item.tpl
+++ /dev/null
@@ -1,73 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
- {{if $threaded}}
- <div class="comment-wwedit-wrapper threaded" id="comment-edit-wrapper-{{$id}}" style="display: block;">
- {{else}}
- <div class="comment-wwedit-wrapper" id="comment-edit-wrapper-{{$id}}" style="display: block;">
- {{/if}}
- <form class="comment-edit-form" style="display: block;" id="comment-edit-form-{{$id}}" action="item" method="post" onsubmit="post_comment({{$id}}); return false;">
- <input type="hidden" name="type" value="{{$type}}" />
- <input type="hidden" name="profile_uid" value="{{$profile_uid}}" />
- <input type="hidden" name="parent" value="{{$parent}}" />
- <input type="hidden" name="return" value="{{$return_path}}" />
- <input type="hidden" name="jsreload" value="{{$jsreload}}" />
- <input type="hidden" name="preview" id="comment-preview-inp-{{$id}}" value="0" />
- <input type="hidden" name="post_id_random" value="{{$rand_num}}" />
-
- <div class="comment-edit-photo" id="comment-edit-photo-{{$id}}" >
- <a class="comment-edit-photo-link" href="{{$mylink}}" title="{{$mytitle}}"><img class="my-comment-photo" src="{{$myphoto}}" alt="{{$mytitle}}" title="{{$mytitle}}" /></a>
- </div>
- <div class="comment-edit-photo-end"></div>
- <ul class="comment-edit-bb-{{$id}}">
- <li><a class="editicon boldbb shadow"
- style="cursor: pointer;" title="{{$edbold}}"
- onclick="insertFormatting('{{$comment}}','b', {{$id}});"></a></li>
- <li><a class="editicon italicbb shadow"
- style="cursor: pointer;" title="{{$editalic}}"
- onclick="insertFormatting('{{$comment}}','i', {{$id}});"></a></li>
- <li><a class="editicon underlinebb shadow"
- style="cursor: pointer;" title="{{$eduline}}"
- onclick="insertFormatting('{{$comment}}','u', {{$id}});"></a></li>
- <li><a class="editicon quotebb shadow"
- style="cursor: pointer;" title="{{$edquote}}"
- onclick="insertFormatting('{{$comment}}','quote', {{$id}});"></a></li>
- <li><a class="editicon codebb shadow"
- style="cursor: pointer;" title="{{$edcode}}"
- onclick="insertFormatting('{{$comment}}','code', {{$id}});"></a></li>
- <li><a class="editicon imagebb shadow"
- style="cursor: pointer;" title="{{$edimg}}"
- onclick="insertFormatting('{{$comment}}','img', {{$id}});"></a></li>
- <li><a class="editicon urlbb shadow"
- style="cursor: pointer;" title="{{$edurl}}"
- onclick="insertFormatting('{{$comment}}','url', {{$id}});"></a></li>
- <li><a class="editicon videobb shadow"
- style="cursor: pointer;" title="{{$edvideo}}"
- onclick="insertFormatting('{{$comment}}','video', {{$id}});"></a></li>
- </ul>
- <div class="comment-edit-bb-end"></div>
- <textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,{{$id}});cmtBbOpen(this, {{$id}});" onBlur="commentClose(this,{{$id}});cmtBbClose(this,{{$id}});" >{{$comment}}</textarea>
- {{if $qcomment}}
- <select id="qcomment-select-{{$id}}" name="qcomment-{{$id}}" class="qcomment" onchange="qCommentInsert(this,{{$id}});" >
- <option value=""></option>
- {{foreach $qcomment as $qc}}
- <option value="{{$qc}}">{{$qc}}</option>
- {{/foreach}}
- </select>
- {{/if}}
-
- <div class="comment-edit-text-end"></div>
- <div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-{{$id}}" style="display: none;" >
- <input type="submit" onclick="post_comment({{$id}}); return false;" id="comment-edit-submit-{{$id}}" class="comment-edit-submit" name="submit" value="{{$submit}}" />
- {{if $preview}}
- <span onclick="preview_comment({{$id}});" id="comment-edit-preview-link-{{$id}}" class="fakelink">{{$preview}}</span>
- <div id="comment-edit-preview-{{$id}}" class="comment-edit-preview" style="display:none;"></div>
- {{/if}}
- </div>
-
- <div class="comment-edit-end"></div>
- </form>
-
- </div>
diff --git a/view/tpl/smarty3/common_friends.tpl b/view/tpl/smarty3/common_friends.tpl
deleted file mode 100644
index 499cfe626..000000000
--- a/view/tpl/smarty3/common_friends.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="profile-match-wrapper">
- <div class="profile-match-photo">
- <a href="{{$url}}">
- <img src="{{$photo}}" alt="{{$name}}" width="80" height="80" title="{{$name}} [{{$url}}]" />
- </a>
- </div>
- <div class="profile-match-break"></div>
- <div class="profile-match-name">
- <a href="{{$url}}" title="{{$name}}[{{$tags}}]">{{$name}}</a>
- </div>
- <div class="profile-match-end"></div>
-</div> \ No newline at end of file
diff --git a/view/tpl/smarty3/common_tabs.tpl b/view/tpl/smarty3/common_tabs.tpl
deleted file mode 100644
index 07c501499..000000000
--- a/view/tpl/smarty3/common_tabs.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<ul class="tabs">
- {{foreach $tabs as $tab}}
- <li {{if $tab.id}}id="{{$tab.id}}"{{/if}}><a href="{{$tab.url}}" class="tab button {{$tab.sel}}"{{if $tab.title}} title="{{$tab.title}}"{{/if}}>{{$tab.label}}</a></li>
- {{/foreach}}
-</ul>
-<div class="tabs-end"></div> \ No newline at end of file
diff --git a/view/tpl/smarty3/contact_block.tpl b/view/tpl/smarty3/contact_block.tpl
deleted file mode 100644
index 3b07a1ea3..000000000
--- a/view/tpl/smarty3/contact_block.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="contact-block">
-<div id="contact-block-numcontacts">{{$contacts}}</div>
-{{if $micropro}}
- <a class="allcontact-link" href="viewconnections/{{$nickname}}">{{$viewconnections}}</a>
- <div class='contact-block-content'>
- {{foreach $micropro as $m}}
- {{$m}}
- {{/foreach}}
- </div>
-{{/if}}
-</div>
-<div class="clear"></div>
diff --git a/view/tpl/smarty3/contact_edit.tpl b/view/tpl/smarty3/contact_edit.tpl
deleted file mode 100644
index 28d067af1..000000000
--- a/view/tpl/smarty3/contact_edit.tpl
+++ /dev/null
@@ -1,94 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<h2>{{$header}}</h2>
-
-<div id="contact-edit-wrapper" >
-
- {{$tab_str}}
-
- <div id="contact-edit-drop-link" >
- <a href="contacts/{{$contact_id}}/drop" class="icon drophide" id="contact-edit-drop-link" onclick="return confirmDelete();" title="{{$delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);"></a>
- </div>
-
- <div id="contact-edit-drop-link-end"></div>
-
-
- <div id="contact-edit-nav-wrapper" >
- <div id="contact-edit-links">
- <ul>
- <li><div id="contact-edit-rel">{{$relation_text}}</div></li>
- <li><div id="contact-edit-nettype">{{$nettype}}</div></li>
- {{if $lost_contact}}
- <li><div id="lost-contact-message">{{$lost_contact}}</div></li>
- {{/if}}
- {{if $insecure}}
- <li><div id="insecure-message">{{$insecure}}</div></li>
- {{/if}}
- {{if $blocked}}
- <li><div id="block-message">{{$blocked}}</div></li>
- {{/if}}
- {{if $ignored}}
- <li><div id="ignore-message">{{$ignored}}</div></li>
- {{/if}}
- {{if $archived}}
- <li><div id="archive-message">{{$archived}}</div></li>
- {{/if}}
-
- <li>&nbsp;</li>
-
- {{if $common_text}}
- <li><div id="contact-edit-common"><a href="{{$common_link}}">{{$common_text}}</a></div></li>
- {{/if}}
- {{if $all_friends}}
- <li><div id="contact-edit-allfriends"><a href="allfriends/{{$contact_id}}">{{$all_friends}}</a></div></li>
- {{/if}}
-
-
- <li><a href="network/?cid={{$contact_id}}" id="contact-edit-view-recent">{{$lblrecent}}</a></li>
- {{if $lblsuggest}}
- <li><a href="fsuggest/{{$contact_id}}" id="contact-edit-suggest">{{$lblsuggest}}</a></li>
- {{/if}}
-
- </ul>
- </div>
- </div>
- <div id="contact-edit-nav-end"></div>
-
-
-<form action="contacts/{{$contact_id}}" method="post" >
-<input type="hidden" name="contact_id" value="{{$contact_id}}">
-<input id="contact-closeness-mirror" type="hidden" name="closeness" value="{{$close}}" />
-
- {{if $poll_enabled}}
- <div id="contact-edit-poll-wrapper">
- <div id="contact-edit-last-update-text">{{$lastupdtext}} <span id="contact-edit-last-updated">{{$last_update}}</span></div>
- <span id="contact-edit-poll-text">{{$updpub}}</span> {{$poll_interval}} <span id="contact-edit-update-now" class="button"><a href="contacts/{{$contact_id}}/update" >{{$udnow}}</a></span>
- </div>
- {{/if}}
- <div id="contact-edit-end" ></div>
-
- {{include file="field_checkbox.tpl" field=$hidden}}
-
-<div id="contact-edit-info-wrapper">
-<h4>{{$lbl_info1}}</h4>
- <textarea id="contact-edit-info" rows="8" cols="60" name="info">{{$info}}</textarea>
- <input class="contact-edit-submit" type="submit" name="submit" value="{{$submit}}" />
-</div>
-<div id="contact-edit-info-end"></div>
-
-
-<div id="contact-edit-profile-select-text">
-<h4>{{$lbl_vis1}}</h4>
-<p>{{$lbl_vis2}}</p>
-</div>
-{{$profile_select}}
-<div id="contact-edit-profile-select-end"></div>
-
-<input class="contact-edit-submit" type="submit" name="submit" value="{{$submit}}" />
-
-</form>
-</div>
diff --git a/view/tpl/smarty3/contact_head.tpl b/view/tpl/smarty3/contact_head.tpl
deleted file mode 100644
index 27bc286b1..000000000
--- a/view/tpl/smarty3/contact_head.tpl
+++ /dev/null
@@ -1,35 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<script language="javascript" type="text/javascript"
- src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
- <script language="javascript" type="text/javascript">
-
-tinyMCE.init({
- theme : "advanced",
- mode : "{{$editselect}}",
- elements: "contact-edit-info",
- plugins : "bbcode",
- theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",
- theme_advanced_buttons2 : "",
- theme_advanced_buttons3 : "",
- theme_advanced_toolbar_location : "top",
- theme_advanced_toolbar_align : "center",
- theme_advanced_styles : "blockquote,code",
- gecko_spellcheck : true,
- entity_encoding : "raw",
- add_unload_trigger : false,
- remove_linebreaks : false,
- force_p_newlines : false,
- force_br_newlines : true,
- forced_root_block : '',
- content_css: "{{$baseurl}}/view/custom_tinymce.css"
-
-
-});
-
-
-</script>
-
diff --git a/view/tpl/smarty3/contact_slider.tpl b/view/tpl/smarty3/contact_slider.tpl
deleted file mode 100644
index 80fa6f056..000000000
--- a/view/tpl/smarty3/contact_slider.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="contact-slider" class="slider" style="height: 32px; position: relative; left: 5%; width: 90%;"><input id="contact-range" type="text" name="fake-closeness" value="{{$val}}" /></div>
-<script>
- $("#contact-range").slider({ from: 0, to: 99, step: 1, scale: ['{{$me}}', '|', '{{$intimate}}', '|', '{{$friends}}', '|', '{{$oldfriends}}', '|', '{{$acquaintances}}', '|', '{{$world}}' ], onstatechange: function(v) { $("#contact-closeness-mirror").val(v); } });
-</script>
diff --git a/view/tpl/smarty3/contact_template.tpl b/view/tpl/smarty3/contact_template.tpl
deleted file mode 100644
index 496fb90ba..000000000
--- a/view/tpl/smarty3/contact_template.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<div class="contact-entry-wrapper" id="contact-entry-wrapper-{{$contact.id}}" >
- <div class="contact-entry-photo-wrapper" >
- <a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" alt="{{$contact.name}}" /></a>
- </div>
- <div class="contact-entry-photo-end" ></div>
- <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
- <div class="contact-entry-end" ></div>
-</div>
diff --git a/view/tpl/smarty3/contacts-template.tpl b/view/tpl/smarty3/contacts-template.tpl
deleted file mode 100644
index 66f3f5c87..000000000
--- a/view/tpl/smarty3/contacts-template.tpl
+++ /dev/null
@@ -1,31 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$header}}{{if $total}} ({{$total}}){{/if}}</h1>
-
-{{if $finding}}<h4>{{$finding}}</h4>{{/if}}
-
-<div id="contacts-search-wrapper">
-<form id="contacts-search-form" action="{{$cmd}}" method="get" >
-<span class="contacts-search-desc">{{$desc}}</span>
-<input type="text" name="search" id="contacts-search" class="search-input" onfocus="this.select();" value="{{$search}}" />
-<input type="submit" name="submit" id="contacts-search-submit" value="{{$submit}}" />
-</form>
-</div>
-<div id="contacts-search-end"></div>
-
-{{$tabs}}
-
-
-{{foreach $contacts as $contact}}
- {{include file="contact_template.tpl"}}
-{{/foreach}}
-<div id="contact-edit-end"></div>
-
-{{$paginate}}
-
-
-
-
diff --git a/view/tpl/smarty3/content.tpl b/view/tpl/smarty3/content.tpl
deleted file mode 100644
index 811f92dd5..000000000
--- a/view/tpl/smarty3/content.tpl
+++ /dev/null
@@ -1,7 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="content-begin"></div>
-<div id="content-end"></div>
diff --git a/view/tpl/smarty3/conv.tpl b/view/tpl/smarty3/conv.tpl
deleted file mode 100644
index c91ab635a..000000000
--- a/view/tpl/smarty3/conv.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{foreach $threads as $thread}}
-<div id="thread-wrapper-{{$thread.id}}" class="thread-wrapper">
- {{foreach $thread.items as $item}}
- {{if $item.comment_firstcollapsed}}
- <div class="hide-comments-outer">
- <span id="hide-comments-total-{{$thread.id}}" class="hide-comments-total">{{$thread.num_comments}}</span> <span id="hide-comments-{{$thread.id}}" class="hide-comments fakelink" onclick="showHideComments({{$thread.id}});">{{$thread.hide_text}}</span>
- </div>
- <div id="collapsed-comments-{{$thread.id}}" class="collapsed-comments" style="display: none;">
- {{/if}}
- {{if $item.comment_lastcollapsed}}</div>{{/if}}
-
- {{include file="{{$item.template}}"}}
-
-
- {{/foreach}}
-</div>
-{{/foreach}}
diff --git a/view/tpl/smarty3/conv_frame.tpl b/view/tpl/smarty3/conv_frame.tpl
deleted file mode 100644
index 81d655be2..000000000
--- a/view/tpl/smarty3/conv_frame.tpl
+++ /dev/null
@@ -1,19 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="threads-begin"></div>
-<div id="threads-end"></div>
-<div id="conversation-end"></div>
-
-{{if $dropping}}
-<div id="item-delete-selected" class="fakelink" onclick="deleteCheckedItems();">
- <div id="item-delete-selected-icon" class="icon drophide" title="{{$dropping}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
- <div id="item-delete-selected-desc" >{{$dropping}}</div>
-</div>
-<div id="item-delete-selected-end"></div>
-{{/if}}
-
-<img id="page-spinner" src="images/rotator.gif" alt="{{$wait}}" title="{{$wait}}" style="display: none;" />
-
diff --git a/view/tpl/smarty3/conv_item.tpl b/view/tpl/smarty3/conv_item.tpl
deleted file mode 100644
index 37baa81bf..000000000
--- a/view/tpl/smarty3/conv_item.tpl
+++ /dev/null
@@ -1,120 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{if $item.comment_firstcollapsed}}
- <div class="hide-comments-outer">
- <span id="hide-comments-total-{{$item.id}}" class="hide-comments-total">{{$item.num_comments}}</span> <span id="hide-comments-{{$item.id}}" class="hide-comments fakelink" onclick="showHideComments({{$item.id}});">{{$item.hide_text}}</span>
- </div>
- <div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: none;">
-{{/if}}
-<div id="thread-wrapper-{{$item.id}}" class="thread-wrapper {{$item.toplevel}}">
-<a name="{{$item.id}}" ></a>
-<div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}{{if $item.owner_url}} wallwall{{/if}}" id="wall-item-outside-wrapper-{{$item.id}}" >
- <div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" >
- <div class="wall-item-info{{if $item.owner_url}} wallwall{{/if}}" id="wall-item-info-{{$item.id}}">
- {{if $item.owner_url}}
- <div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-{{$item.id}}" >
- <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-photo-link" id="wall-item-ownerphoto-link-{{$item.id}}">
- <img src="{{$item.owner_photo}}" class="wall-item-photo{{$item.osparkle}}" id="wall-item-ownerphoto-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.owner_name}}" /></a>
- </div>
- <div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="{{$item.wall}}" /></div>
- {{/if}}
- <div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}}" id="wall-item-photo-wrapper-{{$item.id}}"
- onmouseover="if (typeof t{{$item.id}} != 'undefined') clearTimeout(t{{$item.id}}); openMenu('wall-item-photo-menu-button-{{$item.id}}')"
- onmouseout="t{{$item.id}}=setTimeout('closeMenu(\'wall-item-photo-menu-button-{{$item.id}}\'); closeMenu(\'wall-item-photo-menu-{{$item.id}}\');',200)">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}">
- <img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.name}}" /></a>
- <span onclick="openClose('wall-item-photo-menu-{{$item.id}}');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-{{$item.id}}">menu</span>
- <div class="wall-item-photo-menu" id="wall-item-photo-menu-{{$item.id}}">
- <ul>
- {{$item.item_photo_menu}}
- </ul>
- </div>
-
- </div>
- <div class="wall-item-photo-end"></div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-{{$item.id}}" >
- {{if $item.lock}}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="{{$item.lock}}" onclick="lockview(event,{{$item.id}});" /></div>
- {{else}}<div class="wall-item-lock"></div>{{/if}}
- <div class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}}</div>
- </div>
- </div>
- <div class="wall-item-author">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}} {{$item.to}} <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a> {{$item.vwall}}{{/if}}<br />
- <div class="wall-item-ago" id="wall-item-ago-{{$item.id}}" title="{{$item.localtime}}">{{$item.ago}}</div>
- </div>
- <div class="wall-item-content" id="wall-item-content-{{$item.id}}" >
- <div class="wall-item-title" id="wall-item-title-{{$item.id}}">{{$item.title}}</div>
- <div class="wall-item-title-end"></div>
- <div class="wall-item-body" id="wall-item-body-{{$item.id}}" >{{$item.body}}
- <div class="body-tag">
- {{foreach $item.tags as $tag}}
- <span class='tag'>{{$tag}}</span>
- {{/foreach}}
- </div>
- {{if $item.has_cats}}
- <div class="categorytags"><span>{{$item.txt_cats}} {{foreach $item.categories as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
- </div>
- {{/if}}
-
- {{if $item.has_folders}}
- <div class="filesavetags"><span>{{$item.txt_folders}} {{foreach $item.folders as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
- </div>
- {{/if}}
- </div>
- </div>
- <div class="wall-item-tools" id="wall-item-tools-{{$item.id}}">
- {{if $item.like}}
- <a href="#" class="icon like item-tool" title="{{$item.like.0}}" onclick="dolike({{$item.id}},'like'); return false"></a>
- {{/if}}
- {{if $item.dislike}}
- <a href="#" class="icon dislike item-tool" title="{{$item.dislike.0}}" onclick="dolike({{$item.id}},'dislike'); return false"></a>
- {{/if}}
- {{if $item.share}}
- <a href="#" class="icon recycle item-tool" title="{{$item.share.0}}" onclick="jotShare({{$item.id}}); return false"></a>
- {{/if}}
- {{if $item.plink}}
- <a href="{{$item.plink.href}}" title="{{$item.plink.title}}" target="external-link" class="icon item-tool remote-link{{$item.sparkle}}"></a>
- {{/if}}
- {{if $item.edpost}}
- <a class="editpost icon pencil item-tool" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"></a>
- {{/if}}
- {{if $item.star}}
- <a href="#" id="starred-{{$item.id}}" onclick="dostar({{$item.id}}); return false;" class="star-item icon item-tool {{$item.star.isstarred}}" title="{{$item.star.toggle}}"></a>
- {{/if}}
- {{if $item.tagger}}
- <a href="#" id="tagger-{{$item.id}}" onclick="itemTag({{$item.id}}); return false;" class="tag-item icon item-tool tagged" title="{{$item.tagger.tagit}}"></a>
- {{/if}}
- {{if $item.filer}}
- <a href="#" id="filer-{{$item.id}}" onclick="itemFiler({{$item.id}}); return false;" class="filer-item filer-icon item-tool" title="{{$item.filer}}"></a>
- {{/if}}
- <img id="like-rotator-{{$item.id}}" class="like-rotator" src="images/rotator.gif" alt="{{$item.wait}}" title="{{$item.wait}}" style="display: none;" />
-
- <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-{{$item.id}}" >
- {{if $item.drop.dropping}}<a href="item/drop/{{$item.id}}" onclick="return confirmDelete();" class="icon drophide" title="{{$item.drop.delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{/if}}
- </div>
- {{if $item.drop.pagedrop}}<input type="checkbox" onclick="checkboxhighlight(this);" title="{{$item.drop.select}}" class="item-select" name="itemselected[]" value="{{$item.id}}" />{{/if}}
- <div class="wall-item-delete-end"></div>
- </div>
- </div>
- <div class="wall-item-wrapper-end"></div>
- <div class="wall-item-like {{$item.indent}}" id="wall-item-like-{{$item.id}}">{{$item.showlike}}</div>
- <div class="wall-item-dislike {{$item.indent}}" id="wall-item-dislike-{{$item.id}}">{{$item.showdislike}}</div>
-
-<div class="wall-item-outside-wrapper-end {{$item.indent}}" ></div>
-</div>
-{{if $item.toplevel}}
-{{foreach $item.children as $child}}
- {{include file="{{$child.template}}" item=$child}}
-{{/foreach}}
-{{/if}}
-
-<div class="wall-item-comment-wrapper" >
- {{$item.comment}}
-</div>
-
-
-</div>
-{{if $item.comment_lastcollapsed}}</div>{{/if}}
diff --git a/view/tpl/smarty3/conversation.tpl b/view/tpl/smarty3/conversation.tpl
deleted file mode 100644
index 837fbc11f..000000000
--- a/view/tpl/smarty3/conversation.tpl
+++ /dev/null
@@ -1,33 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="threads-begin"></div>
-{{foreach $threads as $thread}}
-<div id="thread-wrapper-{{$thread.id}}" class="thread-wrapper">
- {{foreach $thread.items as $item}}
- {{if $item.comment_firstcollapsed}}
- <div class="hide-comments-outer">
- <span id="hide-comments-total-{{$thread.id}}" class="hide-comments-total">{{$thread.num_comments}}</span> <span id="hide-comments-{{$thread.id}}" class="hide-comments fakelink" onclick="showHideComments({{$thread.id}});">{{$thread.hide_text}}</span>
- </div>
- <div id="collapsed-comments-{{$thread.id}}" class="collapsed-comments" style="display: none;">
- {{/if}}
- {{if $item.comment_lastcollapsed}}</div>{{/if}}
-
- {{include file="{{$item.template}}"}}
-
-
- {{/foreach}}
-</div>
-{{/foreach}}
-<div id="threads-end"></div>
-<div id="conversation-end"></div>
-
-{{if $dropping}}
-<div id="item-delete-selected" class="fakelink" onclick="deleteCheckedItems();">
- <div id="item-delete-selected-icon" class="icon drophide" title="{{$dropping}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
- <div id="item-delete-selected-desc" >{{$dropping}}</div>
-</div>
-<div id="item-delete-selected-end"></div>
-{{/if}}
diff --git a/view/tpl/smarty3/convobj.tpl b/view/tpl/smarty3/convobj.tpl
deleted file mode 100644
index 2a714c100..000000000
--- a/view/tpl/smarty3/convobj.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{foreach $threads as $item}}
-{{include file="{{$item.template}}"}}
-{{/foreach}}
-
diff --git a/view/tpl/smarty3/crepair.tpl b/view/tpl/smarty3/crepair.tpl
deleted file mode 100644
index 8d3ed7df8..000000000
--- a/view/tpl/smarty3/crepair.tpl
+++ /dev/null
@@ -1,51 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<form id="crepair-form" action="crepair/{{$contact_id}}" method="post" >
-
-<h4>{{$contact_name}}</h4>
-
-<label id="crepair-name-label" class="crepair-label" for="crepair-name">{{$label_name}}</label>
-<input type="text" id="crepair-name" class="crepair-input" name="name" value="{{$contact_name}}" />
-<div class="clear"></div>
-
-<label id="crepair-nick-label" class="crepair-label" for="crepair-nick">{{$label_nick}}</label>
-<input type="text" id="crepair-nick" class="crepair-input" name="nick" value="{{$contact_nick}}" />
-<div class="clear"></div>
-
-<label id="crepair-attag-label" class="crepair-label" for="crepair-attag">{{$label_attag}}</label>
-<input type="text" id="crepair-attag" class="crepair-input" name="attag" value="{{$contact_attag}}" />
-<div class="clear"></div>
-
-<label id="crepair-url-label" class="crepair-label" for="crepair-url">{{$label_url}}</label>
-<input type="text" id="crepair-url" class="crepair-input" name="url" value="{{$contact_url}}" />
-<div class="clear"></div>
-
-<label id="crepair-request-label" class="crepair-label" for="crepair-request">{{$label_request}}</label>
-<input type="text" id="crepair-request" class="crepair-input" name="request" value="{{$request}}" />
-<div class="clear"></div>
-
-<label id="crepair-confirm-label" class="crepair-label" for="crepair-confirm">{{$label_confirm}}</label>
-<input type="text" id="crepair-confirm" class="crepair-input" name="confirm" value="{{$confirm}}" />
-<div class="clear"></div>
-
-<label id="crepair-notify-label" class="crepair-label" for="crepair-notify">{{$label_notify}}</label>
-<input type="text" id="crepair-notify" class="crepair-input" name="notify" value="{{$notify}}" />
-<div class="clear"></div>
-
-<label id="crepair-poll-label" class="crepair-label" for="crepair-poll">{{$label_poll}}</label>
-<input type="text" id="crepair-poll" class="crepair-input" name="poll" value="{{$poll}}" />
-<div class="clear"></div>
-
-<label id="crepair-photo-label" class="crepair-label" for="crepair-photo">{{$label_photo}}</label>
-<input type="text" id="crepair-photo" class="crepair-input" name="photo" value="" />
-<div class="clear"></div>
-
-<input type="submit" name="submit" value="{{$lbl_submit}}" />
-
-</form>
-
-
diff --git a/view/tpl/smarty3/cropbody.tpl b/view/tpl/smarty3/cropbody.tpl
deleted file mode 100644
index e6fcd355f..000000000
--- a/view/tpl/smarty3/cropbody.tpl
+++ /dev/null
@@ -1,63 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$title}}</h1>
-<p id="cropimage-desc">
-{{$desc}}
-</p>
-<div id="cropimage-wrapper">
-<img src="{{$image_url}}" id="croppa" class="imgCrop" alt="{{$title}}" />
-</div>
-<div id="cropimage-preview-wrapper" >
-<div id="previewWrap" ></div>
-</div>
-
-<script type="text/javascript" language="javascript">
-
- function onEndCrop( coords, dimensions ) {
- $( 'x1' ).value = coords.x1;
- $( 'y1' ).value = coords.y1;
- $( 'x2' ).value = coords.x2;
- $( 'y2' ).value = coords.y2;
- $( 'width' ).value = dimensions.width;
- $( 'height' ).value = dimensions.height;
- }
-
- Event.observe( window, 'load', function() {
- new Cropper.ImgWithPreview(
- 'croppa',
- {
- previewWrap: 'previewWrap',
- minWidth: 175,
- minHeight: 175,
- maxWidth: 640,
- maxHeight: 640,
- ratioDim: { x: 100, y:100 },
- displayOnInit: true,
- onEndCrop: onEndCrop
- }
- );
- }
- );
-
-</script>
-
-<form action="profile_photo/{{$resource}}" id="crop-image-form" method="post" />
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
-<input type='hidden' name='profile' value='{{$profile}}'>
-<input type="hidden" name="cropfinal" value="1" />
-<input type="hidden" name="xstart" id="x1" />
-<input type="hidden" name="ystart" id="y1" />
-<input type="hidden" name="xfinal" id="x2" />
-<input type="hidden" name="yfinal" id="y2" />
-<input type="hidden" name="height" id="height" />
-<input type="hidden" name="width" id="width" />
-
-<div id="crop-image-submit-wrapper" >
-<input type="submit" name="submit" value="{{$done}}" />
-</div>
-
-</form>
diff --git a/view/tpl/smarty3/crophead.tpl b/view/tpl/smarty3/crophead.tpl
deleted file mode 100644
index d51b87d12..000000000
--- a/view/tpl/smarty3/crophead.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
- <script type="text/javascript" src="library/cropper/lib/prototype.js" language="javascript"></script>
- <script type="text/javascript" src="library/cropper/lib/scriptaculous.js?load=effects,builder,dragdrop" language="javascript"></script>
- <script type="text/javascript" src="library/cropper/cropper.js" language="javascript"></script>
- <link rel="stylesheet" href="library/cropper/cropper.css" type="text/css" />
diff --git a/view/tpl/smarty3/delegate.tpl b/view/tpl/smarty3/delegate.tpl
deleted file mode 100644
index 7aa85cf39..000000000
--- a/view/tpl/smarty3/delegate.tpl
+++ /dev/null
@@ -1,62 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$header}}</h3>
-
-<div id="delegate-desc" class="delegate-desc">{{$desc}}</div>
-
-{{if $managers}}
-<h3>{{$head_managers}}</h3>
-
-{{foreach $managers as $x}}
-
-<div class="contact-block-div">
-<a class="contact-block-link" href="#" >
-<img class="contact-block-img" src="{{$base}}/photo/thumb/{{$x.uid}}" title="{{$x.username}} ({{$x.nickname}})" />
-</a>
-</div>
-
-{{/foreach}}
-<div class="clear"></div>
-<hr />
-{{/if}}
-
-
-<h3>{{$head_delegates}}</h3>
-
-{{if $delegates}}
-{{foreach $delegates as $x}}
-
-<div class="contact-block-div">
-<a class="contact-block-link" href="{{$base}}/delegate/remove/{{$x.uid}}" >
-<img class="contact-block-img" src="{{$base}}/photo/thumb/{{$x.uid}}" title="{{$x.username}} ({{$x.nickname}})" />
-</a>
-</div>
-
-{{/foreach}}
-<div class="clear"></div>
-{{else}}
-{{$none}}
-{{/if}}
-<hr />
-
-
-<h3>{{$head_potentials}}</h3>
-{{if $potentials}}
-{{foreach $potentials as $x}}
-
-<div class="contact-block-div">
-<a class="contact-block-link" href="{{$base}}/delegate/add/{{$x.uid}}" >
-<img class="contact-block-img" src="{{$base}}/photo/thumb/{{$x.uid}}" title="{{$x.username}} ({{$x.nickname}})" />
-</a>
-</div>
-
-{{/foreach}}
-<div class="clear"></div>
-{{else}}
-{{$none}}
-{{/if}}
-<hr />
-
diff --git a/view/tpl/smarty3/dfrn_req_confirm.tpl b/view/tpl/smarty3/dfrn_req_confirm.tpl
deleted file mode 100644
index c941a201d..000000000
--- a/view/tpl/smarty3/dfrn_req_confirm.tpl
+++ /dev/null
@@ -1,26 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<p id="dfrn-request-homecoming" >
-{{$welcome}}
-<br />
-{{$please}}
-
-</p>
-<form id="dfrn-request-homecoming-form" action="dfrn_request/{{$nickname}}" method="post">
-<input type="hidden" name="dfrn_url" value="{{$dfrn_url}}" />
-<input type="hidden" name="confirm_key" value="{{$confirm_key}}" />
-<input type="hidden" name="localconfirm" value="1" />
-{{$aes_allow}}
-
-<label id="dfrn-request-homecoming-hide-label" for="dfrn-request-homecoming-hide">{{$hidethem}}</label>
-<input type="checkbox" name="hidden-contact" value="1" {{if $hidechecked}}checked="checked" {{/if}} />
-
-
-<div id="dfrn-request-homecoming-submit-wrapper" >
-<input id="dfrn-request-homecoming-submit" type="submit" name="submit" value="{{$submit}}" />
-</div>
-</form> \ No newline at end of file
diff --git a/view/tpl/smarty3/dfrn_request.tpl b/view/tpl/smarty3/dfrn_request.tpl
deleted file mode 100644
index b08a0b731..000000000
--- a/view/tpl/smarty3/dfrn_request.tpl
+++ /dev/null
@@ -1,64 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<h1>{{$header}}</h1>
-
-<p id="dfrn-request-intro">
-{{$page_desc}}<br />
-{{$invite_desc}}
-</p>
-<p>
-{{$desc}}
-</p>
-
-<form action="dfrn_request/{{$nickname}}" method="post" />
-
-<div id="dfrn-request-url-wrapper" >
- <label id="dfrn-url-label" for="dfrn-url" >{{$your_address}}</label>
- <input type="text" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
- <div id="dfrn-request-url-end"></div>
-</div>
-
-<p id="dfrn-request-options">
-{{$pls_answer}}
-</p>
-
-<div id="dfrn-request-info-wrapper" >
-
-
-<p id="doiknowyou">
-{{$does_know}}
-</p>
-
- <div id="dfrn-request-know-yes-wrapper">
- <label id="dfrn-request-knowyou-yes-label" for="dfrn-request-knowyouyes">{{$yes}}</label>
- <input type="radio" name="knowyou" id="knowyouyes" value="1" />
-
- <div id="dfrn-request-knowyou-break" ></div>
- </div>
- <div id="dfrn-request-know-no-wrapper">
- <label id="dfrn-request-knowyou-no-label" for="dfrn-request-knowyouno">{{$no}}</label>
- <input type="radio" name="knowyou" id="knowyouno" value="0" checked="checked" />
-
- <div id="dfrn-request-knowyou-end"></div>
- </div>
-
-
-<p id="dfrn-request-message-desc">
-{{$add_note}}
-</p>
- <div id="dfrn-request-message-wrapper">
- <textarea name="dfrn-request-message" rows="4" cols="64" ></textarea>
- </div>
-
-
-</div>
-
- <div id="dfrn-request-submit-wrapper">
- <input type="submit" name="submit" id="dfrn-request-submit-button" value="{{$submit}}" />
- <input type="submit" name="cancel" id="dfrn-request-cancel-button" value="{{$cancel}}" />
- </div>
-</form>
diff --git a/view/tpl/smarty3/diasp_dec_hdr.tpl b/view/tpl/smarty3/diasp_dec_hdr.tpl
deleted file mode 100644
index c3305ecd0..000000000
--- a/view/tpl/smarty3/diasp_dec_hdr.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<decrypted_hdeader>
- <iv>{{$inner_iv}}</iv>
- <aes_key>{{$inner_key}}</aes_key>
- <author>
- <name>{{$author_name}}</name>
- <uri>{{$author_uri}}</uri>
- </author>
-</decrypted_header>
diff --git a/view/tpl/smarty3/directory_header.tpl b/view/tpl/smarty3/directory_header.tpl
deleted file mode 100644
index 293e65be2..000000000
--- a/view/tpl/smarty3/directory_header.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$dirlbl}}</h1>
-
-{{if $search}}
-<h4>{{$finddsc}} {{$safetxt}}</h4>
-{{/if}}
-
-{{foreach $entries as $entry}}
-
-{{include file="direntry.tpl"}}
-
-{{/foreach}}
-
-
-
-<div class="directory-end"></div>
-
diff --git a/view/tpl/smarty3/directory_item.tpl b/view/tpl/smarty3/directory_item.tpl
deleted file mode 100644
index ae52646b8..000000000
--- a/view/tpl/smarty3/directory_item.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<div class="directory-item lframe" id="directory-item-{{$id}}" >
- <div class="contact-photo-wrapper" id="directory-photo-wrapper-{{$id}}" >
- <div class="contact-photo" id="directory-photo-{{$id}}" >
- <a href="{{$profile_link}}" class="directory-profile-link" id="directory-profile-link-{{$id}}" ><img class="directory-photo-img" src="{{$photo}}" alt="{{$alt_text}}" title="{{$alt_text}}" /></a>
- </div>
- </div>
-
- <div class="contact-name" id="directory-name-{{$id}}">{{$name}}</div>
- <div class="contact-details">{{$details}}</div>
-</div>
diff --git a/view/tpl/smarty3/direntry.tpl b/view/tpl/smarty3/direntry.tpl
deleted file mode 100644
index c1009efc7..000000000
--- a/view/tpl/smarty3/direntry.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<div class="directory-item lframe" id="directory-item-{{$entry.id}}" >
- <div class="contact-photo-wrapper" id="directory-photo-wrapper-{{$entry.id}}" >
- <div class="contact-photo" id="directory-photo-{{$entry.id}}" >
- <a href="{{$entry.profile_link}}" class="directory-profile-link" id="directory-profile-link-{{$entry.id}}" ><img class="directory-photo-img" src="{{$entry.photo}}" alt="{{$entry.alttext}}" title="{{$entry.alttext}}" /></a>
- </div>
- </div>
-
- <div class="contact-name" id="directory-name-{{$entry.id}}">{{$entry.name}}</div>
- <div class="contact-details">{{$entry.details}}</div>
-</div>
diff --git a/view/tpl/smarty3/display-head.tpl b/view/tpl/smarty3/display-head.tpl
deleted file mode 100644
index 7750b655e..000000000
--- a/view/tpl/smarty3/display-head.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<script>
-$(document).ready(function() {
- $(".comment-edit-wrapper textarea").contact_autocomplete(baseurl+"/acl");
- // make auto-complete work in more places
- $(".wall-item-comment-wrapper textarea").contact_autocomplete(baseurl+"/acl");
-});
-</script>
-
diff --git a/view/tpl/smarty3/edpost_head.tpl b/view/tpl/smarty3/edpost_head.tpl
deleted file mode 100644
index 2bf28002d..000000000
--- a/view/tpl/smarty3/edpost_head.tpl
+++ /dev/null
@@ -1,6 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h2>{{$title}}</h2>
diff --git a/view/tpl/smarty3/email_notify_html.tpl b/view/tpl/smarty3/email_notify_html.tpl
deleted file mode 100644
index 47b476688..000000000
--- a/view/tpl/smarty3/email_notify_html.tpl
+++ /dev/null
@@ -1,32 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>{{$banner}}</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#ff0000; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='{{$siteurl}}/images/fred-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">{{$product}}</div><div style="clear: both;"></div></td></tr>
-
-
- <tr><td style="padding-top:22px;" colspan="2">{{$preamble}}</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="{{$source_link}}"><img style="border:0px;width:48px;height:48px;" src="{{$source_photo}}"></a></td>
- <td style="padding-top:22px;"><a href="{{$source_link}}">{{$source_name}}</a></td></tr>
- <tr><td style="font-weight:bold;padding-bottom:5px;">{{$title}}</td></tr>
- <tr><td style="padding-right:22px;">{{$htmlversion}}</td></tr>
- <tr><td style="padding-top:11px;" colspan="2">{{$hsitelink}}</td></tr>
- <tr><td style="padding-bottom:11px;" colspan="2">{{$hitemlink}}</td></tr>
- <tr><td></td><td>{{$thanks}}</td></tr>
- <tr><td></td><td>{{$site_admin}}</td></tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/view/tpl/smarty3/email_notify_text.tpl b/view/tpl/smarty3/email_notify_text.tpl
deleted file mode 100644
index e164f3023..000000000
--- a/view/tpl/smarty3/email_notify_text.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-{{$preamble}}
-
-{{$title}}
-
-{{$textversion}}
-
-{{$tsitelink}}
-{{$titemlink}}
-
-{{$thanks}}
-{{$site_admin}}
-
diff --git a/view/tpl/smarty3/event.tpl b/view/tpl/smarty3/event.tpl
deleted file mode 100644
index 1ba472377..000000000
--- a/view/tpl/smarty3/event.tpl
+++ /dev/null
@@ -1,15 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{foreach $events as $event}}
- <div class="event">
-
- {{if $event.item.author-name}}<a href="{{$event.item.author-link}}" ><img src="{{$event.item.author-avatar}}" height="32" width="32" />{{$event.item.author-name}}</a>{{/if}}
- {{$event.html}}
- {{if $event.item.plink}}<a href="{{$event.plink.0}}" title="{{$event.plink.1}}" class="plink-event-link icon s22 remote-link"></a>{{/if}}
- {{if $event.edit}}<a href="{{$event.edit.0}}" title="{{$event.edit.1}}" class="edit-event-link icon s22 pencil"></a>{{/if}}
- </div>
- <div class="clear"></div>
-{{/foreach}}
diff --git a/view/tpl/smarty3/event_form.tpl b/view/tpl/smarty3/event_form.tpl
deleted file mode 100644
index 335a9480b..000000000
--- a/view/tpl/smarty3/event_form.tpl
+++ /dev/null
@@ -1,54 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$title}}</h3>
-
-<p>
-{{$desc}}
-</p>
-
-<form action="{{$post}}" method="post" >
-
-<input type="hidden" name="event_id" value="{{$eid}}" />
-<input type="hidden" name="cid" value="{{$cid}}" />
-<input type="hidden" name="uri" value="{{$uri}}" />
-
-<div id="event-start-text">{{$s_text}}</div>
-{{$s_dsel}} {{$s_tsel}}
-
-<div id="event-finish-text">{{$f_text}}</div>
-{{$f_dsel}} {{$f_tsel}}
-
-<div id="event-datetime-break"></div>
-
-<input type="checkbox" name="nofinish" value="1" id="event-nofinish-checkbox" {{$n_checked}} /> <div id="event-nofinish-text">{{$n_text}}</div>
-
-<div id="event-nofinish-break"></div>
-
-<input type="checkbox" name="adjust" value="1" id="event-adjust-checkbox" {{$a_checked}} /> <div id="event-adjust-text">{{$a_text}}</div>
-
-<div id="event-adjust-break"></div>
-
-<div id="event-summary-text">{{$t_text}}</div>
-<input type="text" id="event-summary" name="summary" value="{{$t_orig}}" />
-
-
-<div id="event-desc-text">{{$d_text}}</div>
-<textarea id="event-desc-textarea" name="desc">{{$d_orig}}</textarea>
-
-
-<div id="event-location-text">{{$l_text}}</div>
-<textarea id="event-location-textarea" name="location">{{$l_orig}}</textarea>
-
-<input type="checkbox" name="share" value="1" id="event-share-checkbox" {{$sh_checked}} /> <div id="event-share-text">{{$sh_text}}</div>
-<div id="event-share-break"></div>
-
-{{$acl}}
-
-<div class="clear"></div>
-<input id="event-submit" type="submit" name="submit" value="{{$submit}}" />
-</form>
-
-
diff --git a/view/tpl/smarty3/event_head.tpl b/view/tpl/smarty3/event_head.tpl
deleted file mode 100644
index 32288b7ad..000000000
--- a/view/tpl/smarty3/event_head.tpl
+++ /dev/null
@@ -1,144 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<link rel='stylesheet' type='text/css' href='{{$baseurl}}/library/fullcalendar/fullcalendar.css' />
-<script language="javascript" type="text/javascript"
- src="{{$baseurl}}/library/fullcalendar/fullcalendar.min.js"></script>
-
-<script>
- function showEvent(eventid) {
- $.get(
- '{{$baseurl}}/events/?id='+eventid,
- function(data){
- $.fancybox(data);
- }
- );
- }
-
- $(document).ready(function() {
- $('#events-calendar').fullCalendar({
- events: '{{$baseurl}}/events/json/',
- header: {
- left: 'prev,next today',
- center: 'title',
- right: 'month,agendaWeek,agendaDay'
- },
- timeFormat: 'H(:mm)',
- eventClick: function(calEvent, jsEvent, view) {
- showEvent(calEvent.id);
- },
-
- eventRender: function(event, element, view) {
- //console.log(view.name);
- if (event.item['author-name']==null) return;
- switch(view.name){
- case "month":
- element.find(".fc-event-title").html(
- "<img src='{0}' style='height:10px;width:10px'>{1} : {2}".format(
- event.item['author-avatar'],
- event.item['author-name'],
- event.title
- ));
- break;
- case "agendaWeek":
- element.find(".fc-event-title").html(
- "<img src='{0}' style='height:12px; width:12px'>{1}<p>{2}</p><p>{3}</p>".format(
- event.item['author-avatar'],
- event.item['author-name'],
- event.item.desc,
- event.item.location
- ));
- break;
- case "agendaDay":
- element.find(".fc-event-title").html(
- "<img src='{0}' style='height:24px;width:24px'>{1}<p>{2}</p><p>{3}</p>".format(
- event.item['author-avatar'],
- event.item['author-name'],
- event.item.desc,
- event.item.location
- ));
- break;
- }
- }
-
- })
-
- // center on date
- var args=location.href.replace(baseurl,"").split("/");
- if (args.length>=4) {
- $("#events-calendar").fullCalendar('gotoDate',args[2] , args[3]-1);
- }
-
- // show event popup
- var hash = location.hash.split("-")
- if (hash.length==2 && hash[0]=="#link") showEvent(hash[1]);
-
- });
-</script>
-
-
-<script language="javascript" type="text/javascript"
- src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
-<script language="javascript" type="text/javascript">
-
-
- tinyMCE.init({
- theme : "advanced",
- mode : "textareas",
- plugins : "bbcode,paste",
- theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
- theme_advanced_buttons2 : "",
- theme_advanced_buttons3 : "",
- theme_advanced_toolbar_location : "top",
- theme_advanced_toolbar_align : "center",
- theme_advanced_blockformats : "blockquote,code",
- gecko_spellcheck : true,
- paste_text_sticky : true,
- entity_encoding : "raw",
- add_unload_trigger : false,
- remove_linebreaks : false,
- force_p_newlines : false,
- force_br_newlines : true,
- forced_root_block : '',
- content_css: "{{$baseurl}}/view/custom_tinymce.css",
- theme_advanced_path : false,
- setup : function(ed) {
- ed.onInit.add(function(ed) {
- ed.pasteAsPlainText = true;
- });
- }
-
- });
-
-
- $(document).ready(function() {
-
- $('#event-share-checkbox').change(function() {
-
- if ($('#event-share-checkbox').is(':checked')) {
- $('#acl-wrapper').show();
- }
- else {
- $('#acl-wrapper').hide();
- }
- }).trigger('change');
-
-
- $('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
- var selstr;
- $('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
- selstr = $(this).text();
- $('#jot-public').hide();
- });
- if(selstr == null) {
- $('#jot-public').show();
- }
-
- }).trigger('change');
-
- });
-
-</script>
-
diff --git a/view/tpl/smarty3/events-js.tpl b/view/tpl/smarty3/events-js.tpl
deleted file mode 100644
index 5fa046f5a..000000000
--- a/view/tpl/smarty3/events-js.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{$tabs}}
-<h2>{{$title}}</h2>
-
-<div id="new-event-link"><a href="{{$new_event.0}}" >{{$new_event.1}}</a></div>
-
-<div id="events-calendar"></div>
diff --git a/view/tpl/smarty3/events.tpl b/view/tpl/smarty3/events.tpl
deleted file mode 100644
index 45366a77d..000000000
--- a/view/tpl/smarty3/events.tpl
+++ /dev/null
@@ -1,29 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{$tabs}}
-<h2>{{$title}}</h2>
-
-<div id="new-event-link"><a href="{{$new_event.0}}" >{{$new_event.1}}</a></div>
-
-<div id="event-calendar-wrapper">
- <a href="{{$previus.0}}" class="prevcal {{$previus.2}}"><div id="event-calendar-prev" class="icon s22 prev" title="{{$previus.1}}"></div></a>
- {{$calendar}}
- <a href="{{$next.0}}" class="nextcal {{$next.2}}"><div id="event-calendar-prev" class="icon s22 next" title="{{$next.1}}"></div></a>
-</div>
-<div class="event-calendar-end"></div>
-
-
-{{foreach $events as $event}}
- <div class="event">
- {{if $event.is_first}}<hr /><a name="link-{{$event.j}}" ><div class="event-list-date">{{$event.d}}</div></a>{{/if}}
- {{if $event.item.author-name}}<a href="{{$event.item.author-link}}" ><img src="{{$event.item.author-avatar}}" height="32" width="32" />{{$event.item.author-name}}</a>{{/if}}
- {{$event.html}}
- {{if $event.item.plink}}<a href="{{$event.plink.0}}" title="{{$event.plink.1}}" class="plink-event-link icon s22 remote-link"></a>{{/if}}
- {{if $event.edit}}<a href="{{$event.edit.0}}" title="{{$event.edit.1}}" class="edit-event-link icon s22 pencil"></a>{{/if}}
- </div>
- <div class="clear"></div>
-
-{{/foreach}}
diff --git a/view/tpl/smarty3/events_reminder.tpl b/view/tpl/smarty3/events_reminder.tpl
deleted file mode 100644
index d8e8ceb2a..000000000
--- a/view/tpl/smarty3/events_reminder.tpl
+++ /dev/null
@@ -1,15 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{if $count}}
-<div id="event-notice" class="birthday-notice fakelink {{$classtoday}}" onclick="openClose('event-wrapper');">{{$event_reminders}} ({{$count}})</div>
-<div id="event-wrapper" style="display: none;" ><div id="event-title">{{$event_title}}</div>
-<div id="event-title-end"></div>
-{{foreach $events as $event}}
-<div class="event-list" id="event-{{$event.id}}"></a> <a href="events/{{$event.link}}">{{$event.title}}</a> {{$event.date}} </div>
-{{/foreach}}
-</div>
-{{/if}}
-
diff --git a/view/tpl/smarty3/failed_updates.tpl b/view/tpl/smarty3/failed_updates.tpl
deleted file mode 100644
index 8161ff2ef..000000000
--- a/view/tpl/smarty3/failed_updates.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h2>{{$banner}}</h2>
-
-<div id="failed_updates_desc">{{$desc}}</div>
-
-{{if $failed}}
-{{foreach $failed as $f}}
-
-<h4>{{$f}}</h4>
-<ul>
-<li><a href="{{$base}}/admin/dbsync/mark/{{$f}}">{{$mark}}</a></li>
-<li><a href="{{$base}}/admin/dbsync/{{$f}}">{{$apply}}</a></li>
-</ul>
-
-<hr />
-{{/foreach}}
-{{/if}}
-
diff --git a/view/tpl/smarty3/fake_feed.tpl b/view/tpl/smarty3/fake_feed.tpl
deleted file mode 100644
index fd875de71..000000000
--- a/view/tpl/smarty3/fake_feed.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<?xml version="1.0" encoding="utf-8" ?>
-<feed xmlns="http://www.w3.org/2005/Atom" >
-
- <id>fake feed</id>
- <title>fake title</title>
-
- <updated>1970-01-01T00:00:00Z</updated>
-
- <author>
- <name>Fake Name</name>
- <uri>http://example.com</uri>
- </author>
-
diff --git a/view/tpl/smarty3/field.tpl b/view/tpl/smarty3/field.tpl
deleted file mode 100644
index 1bf36d84e..000000000
--- a/view/tpl/smarty3/field.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- {{if $field.0==select}}
- {{include file="field_select.tpl"}}
- {{/if}}
diff --git a/view/tpl/smarty3/field_acheckbox.tpl b/view/tpl/smarty3/field_acheckbox.tpl
deleted file mode 100644
index da0d44ea6..000000000
--- a/view/tpl/smarty3/field_acheckbox.tpl
+++ /dev/null
@@ -1,12 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- <div class='field acheckbox'>
- <label for='id_{{$field.0}}'>{{$field.1}}</label>
- <input type="checkbox" class="abook-edit-them" name='{{$field.0}}' id='them_id_{{$field.0}}' value="1" disabled="disabled" {{if $field.2}}checked="checked"{{/if}} />
- <input type="checkbox" class="abook-edit-me" name='{{$field.0}}' id='me_id_{{$field.0}}' value="{{$field.4}}" {{if $field.3}}checked="checked"{{/if}} {{if $field.5}} disabled="disabled" {{/if}}/>
- <span class='field_abook_help'>{{$field.6}}</span>
- </div>
diff --git a/view/tpl/smarty3/field_checkbox.tpl b/view/tpl/smarty3/field_checkbox.tpl
deleted file mode 100644
index a4ec3dbba..000000000
--- a/view/tpl/smarty3/field_checkbox.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- <div class='field checkbox'>
- <label for='id_{{$field.0}}'>{{$field.1}}</label>
- <input type="checkbox" name='{{$field.0}}' id='id_{{$field.0}}' value="1" {{if $field.2}}checked="checked"{{/if}}>
- <span class='field_help'>{{$field.3}}</span>
- </div>
diff --git a/view/tpl/smarty3/field_combobox.tpl b/view/tpl/smarty3/field_combobox.tpl
deleted file mode 100644
index d3cc75635..000000000
--- a/view/tpl/smarty3/field_combobox.tpl
+++ /dev/null
@@ -1,23 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- <div class='field combobox'>
- <label for='id_{{$field.0}}' id='id_{{$field.0}}_label'>{{$field.1}}</label>
- {{* html5 don't work on Chrome, Safari and IE9
- <input id="id_{{$field.0}}" type="text" list="data_{{$field.0}}" >
- <datalist id="data_{{$field.0}}" >
- {{foreach $field.4 as $opt=>$val}}<option value="{{$val}}">{{/foreach}}
- </datalist> *}}
-
- <input id="id_{{$field.0}}" type="text" value="{{$field.2}}">
- <select id="select_{{$field.0}}" onChange="$('#id_{{$field.0}}').val($(this).val())">
- <option value="">{{$field.5}}</option>
- {{foreach $field.4 as $opt=>$val}}<option value="{{$val}}">{{$val}}</option>{{/foreach}}
- </select>
-
- <span class='field_help'>{{$field.3}}</span>
- </div>
-
diff --git a/view/tpl/smarty3/field_custom.tpl b/view/tpl/smarty3/field_custom.tpl
deleted file mode 100644
index c2d73275c..000000000
--- a/view/tpl/smarty3/field_custom.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- <div class='field custom'>
- <label for='{{$field.0}}'>{{$field.1}}</label>
- {{$field.2}}
- <span class='field_help'>{{$field.3}}</span>
- </div>
diff --git a/view/tpl/smarty3/field_input.tpl b/view/tpl/smarty3/field_input.tpl
deleted file mode 100644
index 696ebbad7..000000000
--- a/view/tpl/smarty3/field_input.tpl
+++ /dev/null
@@ -1,12 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- <div class='field input'>
- <label for='id_{{$field.0}}' id='label_{{$field.0}}'>{{$field.1}}</label>
- <input name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.2}}">
- <span id='help_{{$field.0}}' class='field_help'>{{$field.3}}</span>
- <div id='end_{{$field.0}}' class='field_end'></div>
- </div>
diff --git a/view/tpl/smarty3/field_intcheckbox.tpl b/view/tpl/smarty3/field_intcheckbox.tpl
deleted file mode 100644
index 54967feab..000000000
--- a/view/tpl/smarty3/field_intcheckbox.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- <div class='field checkbox'>
- <label for='id_{{$field.0}}'>{{$field.1}}</label>
- <input type="checkbox" name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.3}}" {{if $field.2}}checked="true"{{/if}}>
- <span class='field_help'>{{$field.4}}</span>
- </div>
diff --git a/view/tpl/smarty3/field_openid.tpl b/view/tpl/smarty3/field_openid.tpl
deleted file mode 100644
index b00ddabcd..000000000
--- a/view/tpl/smarty3/field_openid.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- <div class='field input openid'>
- <label for='id_{{$field.0}}'>{{$field.1}}</label>
- <input name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.2}}">
- <span class='field_help'>{{$field.3}}</span>
- </div>
diff --git a/view/tpl/smarty3/field_password.tpl b/view/tpl/smarty3/field_password.tpl
deleted file mode 100644
index 5889d2e9c..000000000
--- a/view/tpl/smarty3/field_password.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- <div class='field password'>
- <label for='id_{{$field.0}}'>{{$field.1}}</label>
- <input type='password' name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.2}}">
- <span class='field_help'>{{$field.3}}</span>
- </div>
diff --git a/view/tpl/smarty3/field_radio.tpl b/view/tpl/smarty3/field_radio.tpl
deleted file mode 100644
index 1d7b56ec6..000000000
--- a/view/tpl/smarty3/field_radio.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- <div class='field radio'>
- <label for='id_{{$field.0}}_{{$field.2}}'>{{$field.1}}</label>
- <input type="radio" name='{{$field.0}}' id='id_{{$field.0}}_{{$field.2}}' value="{{$field.2}}" {{if $field.4}}checked="true"{{/if}}>
- <span class='field_help'>{{$field.3}}</span>
- </div>
diff --git a/view/tpl/smarty3/field_richtext.tpl b/view/tpl/smarty3/field_richtext.tpl
deleted file mode 100644
index 38992f0f8..000000000
--- a/view/tpl/smarty3/field_richtext.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- <div class='field richtext'>
- <label for='id_{{$field.0}}'>{{$field.1}}</label>
- <textarea name='{{$field.0}}' id='id_{{$field.0}}' class="fieldRichtext">{{$field.2}}</textarea>
- <span class='field_help'>{{$field.3}}</span>
- </div>
diff --git a/view/tpl/smarty3/field_select.tpl b/view/tpl/smarty3/field_select.tpl
deleted file mode 100644
index 2a4117a70..000000000
--- a/view/tpl/smarty3/field_select.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- <div class='field select'>
- <label for='id_{{$field.0}}'>{{$field.1}}</label>
- <select name='{{$field.0}}' id='id_{{$field.0}}'>
- {{foreach $field.4 as $opt=>$val}}<option value="{{$opt}}" {{if $opt==$field.2}}selected="selected"{{/if}}>{{$val}}</option>{{/foreach}}
- </select>
- <span class='field_help'>{{$field.3}}</span>
- </div>
diff --git a/view/tpl/smarty3/field_select_raw.tpl b/view/tpl/smarty3/field_select_raw.tpl
deleted file mode 100644
index 50e34985f..000000000
--- a/view/tpl/smarty3/field_select_raw.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- <div class='field select'>
- <label for='id_{{$field.0}}'>{{$field.1}}</label>
- <select name='{{$field.0}}' id='id_{{$field.0}}'>
- {{$field.4}}
- </select>
- <span class='field_help'>{{$field.3}}</span>
- </div>
diff --git a/view/tpl/smarty3/field_textarea.tpl b/view/tpl/smarty3/field_textarea.tpl
deleted file mode 100644
index 5d71999d4..000000000
--- a/view/tpl/smarty3/field_textarea.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- <div class='field textarea'>
- <label for='id_{{$field.0}}'>{{$field.1}}</label>
- <textarea name='{{$field.0}}' id='id_{{$field.0}}'>{{$field.2}}</textarea>
- <span class='field_help'>{{$field.3}}</span>
- </div>
diff --git a/view/tpl/smarty3/field_themeselect.tpl b/view/tpl/smarty3/field_themeselect.tpl
deleted file mode 100644
index be24ff2c6..000000000
--- a/view/tpl/smarty3/field_themeselect.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
- <script>$(function(){ previewTheme($("#id_{{$field.0}}")[0]); });</script>
- <div class='field select'>
- <label for='id_{{$field.0}}'>{{$field.1}}</label>
- <select name='{{$field.0}}' id='id_{{$field.0}}' {{if $field.5=='preview'}}onchange="previewTheme(this);"{{/if}} >
- {{foreach $field.4 as $opt=>$val}}<option value="{{$opt}}" {{if $opt==$field.2}}selected="selected"{{/if}}>{{$val}}</option>{{/foreach}}
- </select>
- <span class='field_help'>{{$field.3}}</span>
- <div id="theme-preview"></div>
- </div>
diff --git a/view/tpl/smarty3/field_yesno.tpl b/view/tpl/smarty3/field_yesno.tpl
deleted file mode 100644
index e982c2f05..000000000
--- a/view/tpl/smarty3/field_yesno.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
- <div class='field yesno'>
- <label for='id_{{$field.0}}'>{{$field.1}}</label>
- <div class='onoff' id="id_{{$field.0}}_onoff">
- <input type="hidden" name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.2}}">
- <a href="#" class='off'>
- {{if $field.4}}{{$field.4.0}}{{else}}OFF{{/if}}
- </a>
- <a href="#" class='on'>
- {{if $field.4}}{{$field.4.1}}{{else}}ON{{/if}}
- </a>
- </div>
- <span class='field_help'>{{$field.3}}</span>
- </div>
diff --git a/view/tpl/smarty3/fileas_widget.tpl b/view/tpl/smarty3/fileas_widget.tpl
deleted file mode 100644
index f03f169a2..000000000
--- a/view/tpl/smarty3/fileas_widget.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="fileas-sidebar" class="widget">
- <h3>{{$title}}</h3>
- <div id="nets-desc">{{$desc}}</div>
-
- <ul class="fileas-ul">
- <li class="tool"><a href="{{$base}}" class="fileas-link fileas-all{{if $sel_all}} fileas-selected{{/if}}">{{$all}}</a></li>
- {{foreach $terms as $term}}
- <li class="tool"><a href="{{$base}}?f=&file={{$term.name}}" class="fileas-link{{if $term.selected}} fileas-selected{{/if}}">{{$term.name}}</a></li>
- {{/foreach}}
- </ul>
-
-</div>
diff --git a/view/tpl/smarty3/filebrowser.tpl b/view/tpl/smarty3/filebrowser.tpl
deleted file mode 100644
index b408ca687..000000000
--- a/view/tpl/smarty3/filebrowser.tpl
+++ /dev/null
@@ -1,89 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<!DOCTYPE html>
-<html>
- <head>
- <script type="text/javascript" src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_popup.js"></script>
- <style>
- .panel_wrapper div.current{.overflow: auto; height: auto!important; }
- .filebrowser.path { font-family: fixed; font-size: 10px; background-color: #f0f0ee; height:auto; overflow:auto;}
- .filebrowser.path a { border-left: 1px solid #C0C0AA; background-color: #E0E0DD; display: block; float:left; padding: 0.3em 1em;}
- .filebrowser ul{ list-style-type: none; padding:0px; }
- .filebrowser.folders a { display: block; padding: 0.3em }
- .filebrowser.folders a:hover { background-color: #f0f0ee; }
- .filebrowser.files.image { overflow: auto; height: auto; }
- .filebrowser.files.image img { height:50px;}
- .filebrowser.files.image li { display: block; padding: 5px; float: left; }
- .filebrowser.files.image span { display: none;}
- .filebrowser.files.file img { height:16px; vertical-align: bottom;}
- .filebrowser.files a { display: block; padding: 0.3em}
- .filebrowser.files a:hover { background-color: #f0f0ee; }
- .filebrowser a { text-decoration: none; }
- </style>
- <script>
- var FileBrowserDialogue = {
- init : function () {
- // Here goes your code for setting your custom things onLoad.
- },
- mySubmit : function (URL) {
- //var URL = document.my_form.my_field.value;
- var win = tinyMCEPopup.getWindowArg("window");
-
- // insert information now
- win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value = URL;
-
- // are we an image browser
- if (typeof(win.ImageDialog) != "undefined") {
- // we are, so update image dimensions...
- if (win.ImageDialog.getImageData)
- win.ImageDialog.getImageData();
-
- // ... and preview if necessary
- if (win.ImageDialog.showPreviewImage)
- win.ImageDialog.showPreviewImage(URL);
- }
-
- // close popup window
- tinyMCEPopup.close();
- }
- }
-
- tinyMCEPopup.onInit.add(FileBrowserDialogue.init, FileBrowserDialogue);
- </script>
- </head>
- <body>
-
- <div class="tabs">
- <ul >
- <li class="current"><span>FileBrowser</span></li>
- </ul>
- </div>
- <div class="panel_wrapper">
-
- <div id="general_panel" class="panel current">
- <div class="filebrowser path">
- {{foreach $path as $p}}<a href="{{$p.0}}">{{$p.1}}</a>{{/foreach}}
- </div>
- <div class="filebrowser folders">
- <ul>
- {{foreach $folders as $f}}<li><a href="{{$f.0}}/">{{$f.1}}</a></li>{{/foreach}}
- </ul>
- </div>
- <div class="filebrowser files {{$type}}">
- <ul>
- {{foreach $files as $f}}
- <li><a href="#" onclick="FileBrowserDialogue.mySubmit('{{$f.0}}'); return false;"><img src="{{$f.2}}"><span>{{$f.1}}</span></a></li>
- {{/foreach}}
- </ul>
- </div>
- </div>
- </div>
- <div class="mceActionPanel">
- <input type="button" id="cancel" name="cancel" value="{{$cancel}}" onclick="tinyMCEPopup.close();" />
- </div>
- </body>
-
-</html>
diff --git a/view/tpl/smarty3/filer_dialog.tpl b/view/tpl/smarty3/filer_dialog.tpl
deleted file mode 100644
index f17a06766..000000000
--- a/view/tpl/smarty3/filer_dialog.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{include file="field_combobox.tpl"}}
-<div class="settings-submit-wrapper" >
- <input id="filer_save" type="button" class="settings-submit" value="{{$submit}}" />
-</div>
diff --git a/view/tpl/smarty3/follow.tpl b/view/tpl/smarty3/follow.tpl
deleted file mode 100644
index 2c3b451b3..000000000
--- a/view/tpl/smarty3/follow.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="follow-sidebar" class="widget">
- <h3>{{$connect}}</h3>
- <div id="connect-desc">{{$desc}}</div>
- <form action="follow" method="post" />
- <input id="side-follow-url" type="text" name="url" size="24" title="{{$hint}}" /><input id="side-follow-submit" type="submit" name="submit" value="{{$follow}}" />
- </form>
-</div>
-
diff --git a/view/tpl/smarty3/follow_slap.tpl b/view/tpl/smarty3/follow_slap.tpl
deleted file mode 100644
index b31b4ef95..000000000
--- a/view/tpl/smarty3/follow_slap.tpl
+++ /dev/null
@@ -1,30 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
- <entry>
- <author>
- <name>{{$name}}</name>
- <uri>{{$profile_page}}</uri>
- <link rel="photo" type="image/jpeg" media:width="80" media:height="80" href="{{$thumb}}" />
- <link rel="avatar" type="image/jpeg" media:width="80" media:height="80" href="{{$thumb}}" />
- </author>
-
- <id>{{$item_id}}</id>
- <title>{{$title}}</title>
- <published>{{$published}}</published>
- <content type="{{$type}}" >{{$content}}</content>
-
- <as:actor>
- <as:obj_type>http://activitystrea.ms/schema/1.0/person</as:obj_type>
- <id>{{$profile_page}}</id>
- <title></title>
- <link rel="avatar" type="image/jpeg" media:width="175" media:height="175" href="{{$photo}}"/>
- <link rel="avatar" type="image/jpeg" media:width="80" media:height="80" href="{{$thumb}}"/>
- <poco:preferredUsername>{{$nick}}</poco:preferredUsername>
- <poco:displayName>{{$name}}</poco:displayName>
- </as:actor>
- <as:verb>{{$verb}}</as:verb>
- {{$ostat_follow}}
- </entry>
diff --git a/view/tpl/smarty3/generic_links_widget.tpl b/view/tpl/smarty3/generic_links_widget.tpl
deleted file mode 100644
index c12273c7b..000000000
--- a/view/tpl/smarty3/generic_links_widget.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="widget{{if $class}} {{$class}}{{/if}}">
- {{if $title}}<h3>{{$title}}</h3>{{/if}}
- {{if $desc}}<div class="desc">{{$desc}}</div>{{/if}}
-
- <ul>
- {{foreach $items as $item}}
- <li class="tool"><a href="{{$item.url}}" class="{{if $item.selected}}selected{{/if}}">{{$item.label}}</a></li>
- {{/foreach}}
- </ul>
-
-</div>
diff --git a/view/tpl/smarty3/group_drop.tpl b/view/tpl/smarty3/group_drop.tpl
deleted file mode 100644
index 84d380e30..000000000
--- a/view/tpl/smarty3/group_drop.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="group-delete-wrapper button" id="group-delete-wrapper-{{$id}}" >
- <a href="group/drop/{{$id}}?t={{$form_security_token}}"
- onclick="return confirmDelete();"
- id="group-delete-icon-{{$id}}"
- class="icon drophide group-delete-icon"
- onmouseover="imgbright(this);"
- onmouseout="imgdull(this);" ></a>
-</div>
-<div class="group-delete-end"></div>
diff --git a/view/tpl/smarty3/group_edit.tpl b/view/tpl/smarty3/group_edit.tpl
deleted file mode 100644
index b7b14eba3..000000000
--- a/view/tpl/smarty3/group_edit.tpl
+++ /dev/null
@@ -1,28 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h2>{{$title}}</h2>
-
-
-<div id="group-edit-wrapper" >
- <form action="group/{{$gid}}" id="group-edit-form" method="post" >
- <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
- {{include file="field_input.tpl" field=$gname}}
- {{if $drop}}{{$drop}}{{/if}}
- <div id="group-edit-submit-wrapper" >
- <input type="submit" name="submit" value="{{$submit}}" >
- </div>
- <div id="group-edit-select-end" ></div>
- </form>
-</div>
-
-
-{{if $groupeditor}}
- <div id="group-update-wrapper">
- {{include file="groupeditor.tpl"}}
- </div>
-{{/if}}
-{{if $desc}}<div id="group-edit-desc">{{$desc}}</div>{{/if}}
diff --git a/view/tpl/smarty3/group_selection.tpl b/view/tpl/smarty3/group_selection.tpl
deleted file mode 100644
index f16bb5159..000000000
--- a/view/tpl/smarty3/group_selection.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="field custom">
-<label for="group-selection" id="group-selection-lbl">{{$label}}</label>
-<select name="group-selection" id="group-selection" >
-{{foreach $groups as $group}}
-<option value="{{$group.id}}" {{if $group.selected}}selected="selected"{{/if}} >{{$group.name}}</option>
-{{/foreach}}
-</select>
-</div>
diff --git a/view/tpl/smarty3/group_side.tpl b/view/tpl/smarty3/group_side.tpl
deleted file mode 100644
index b6532fb6d..000000000
--- a/view/tpl/smarty3/group_side.tpl
+++ /dev/null
@@ -1,38 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="widget" id="group-sidebar">
-<h3>{{$title}}</h3>
-
-<div id="sidebar-group-list">
- <ul id="sidebar-group-ul">
- {{foreach $groups as $group}}
- <li class="sidebar-group-li">
- {{if $group.cid}}
- <input type="checkbox"
- class="{{if $group.selected}}ticked{{else}}unticked {{/if}} action"
- onclick="contactgroupChangeMember('{{$group.id}}','{{$group.cid}}');return true;"
- {{if $group.ismember}}checked="checked"{{/if}}
- />
- {{/if}}
- {{if $group.edit}}
- <a class="groupsideedit" href="{{$group.edit.href}}" title="{{$edittext}}"><span id="edit-sidebar-group-element-{{$group.id}}" class="group-edit-icon iconspacer small-pencil"></span></a>
- {{/if}}
- <a id="sidebar-group-element-{{$group.id}}" class="sidebar-group-element {{if $group.selected}}group-selected{{/if}}" href="{{$group.href}}">{{$group.text}}</a>
- </li>
- {{/foreach}}
- </ul>
- </div>
- <div id="sidebar-new-group">
- <a href="group/new">{{$createtext}}</a>
- </div>
- {{if $ungrouped}}
- <div id="sidebar-ungrouped">
- <a href="nogroup">{{$ungrouped}}</a>
- </div>
- {{/if}}
-</div>
-
-
diff --git a/view/tpl/smarty3/groupeditor.tpl b/view/tpl/smarty3/groupeditor.tpl
deleted file mode 100644
index 4fad30d5a..000000000
--- a/view/tpl/smarty3/groupeditor.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="group">
-<h3>{{$groupeditor.label_members}}</h3>
-<div id="group-members" class="contact_list">
-{{foreach $groupeditor.members as $c}} {{$c}} {{/foreach}}
-</div>
-<div id="group-members-end"></div>
-<hr id="group-separator" />
-</div>
-
-<div id="contacts">
-<h3>{{$groupeditor.label_contacts}}</h3>
-<div id="group-all-contacts" class="contact_list">
-{{foreach $groupeditor.contacts as $m}} {{$m}} {{/foreach}}
-</div>
-<div id="group-all-contacts-end"></div>
-</div>
diff --git a/view/tpl/smarty3/head.tpl b/view/tpl/smarty3/head.tpl
deleted file mode 100644
index 314d159d6..000000000
--- a/view/tpl/smarty3/head.tpl
+++ /dev/null
@@ -1,35 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-<base href="{{$baseurl}}/" />
-<meta name="generator" content="{{$generator}}" />
-
-<!--[if IE]>
-<script src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
-<![endif]-->
-
-{{$head_css}}
-
-{{$js_strings}}
-
-{{$head_js}}
-
-<link rel="shortcut icon" href="{{$baseurl}}/images/red.png" />
-<link rel="search"
- href="{{$baseurl}}/opensearch"
- type="application/opensearchdescription+xml"
- title="Search in Friendica" />
-
-
-<script>
-
- var updateInterval = {{$update_interval}};
- var localUser = {{if $local_user}}{{$local_user}}{{else}}false{{/if}};
-
-</script>
-
-
-
diff --git a/view/tpl/smarty3/hide_comments.tpl b/view/tpl/smarty3/hide_comments.tpl
deleted file mode 100644
index 50a354122..000000000
--- a/view/tpl/smarty3/hide_comments.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="hide-comments-outer">
-<span id="hide-comments-total-{{$id}}" class="hide-comments-total">{{$num_comments}}</span> <span id="hide-comments-{{$id}}" class="hide-comments fakelink" onclick="showHideComments({{$id}});">{{$hide_text}}</span>
-</div>
-<div id="collapsed-comments-{{$id}}" class="collapsed-comments" style="display: {{$display}};">
diff --git a/view/tpl/smarty3/install.tpl b/view/tpl/smarty3/install.tpl
deleted file mode 100644
index cfb90e61f..000000000
--- a/view/tpl/smarty3/install.tpl
+++ /dev/null
@@ -1,15 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<h1>{{$title}}</h1>
-<h2>{{$pass}}</h2>
-
-
-{{if $status}}
-<h3 class="error-message">{{$status}}</h3>
-{{/if}}
-
-{{$text}}
diff --git a/view/tpl/smarty3/install_checks.tpl b/view/tpl/smarty3/install_checks.tpl
deleted file mode 100644
index 9d5ce0eeb..000000000
--- a/view/tpl/smarty3/install_checks.tpl
+++ /dev/null
@@ -1,29 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$title}}</h1>
-<h2>{{$pass}}</h2>
-<form action="{{$baseurl}}/index.php?q=setup" method="post">
-<table>
-{{foreach $checks as $check}}
- <tr><td>{{$check.title}} </td><td><span class="icon s22 {{if $check.status}}on{{else}}{{if $check.required}}off{{else}}yellow{{/if}}{{/if}}"></td><td>{{if $check.required}}(required){{/if}}</td></tr>
- {{if $check.help}}
- <tr><td colspan="3"><blockquote>{{$check.help}}</blockquote></td></tr>
- {{/if}}
-{{/foreach}}
-</table>
-
-{{if $phpath}}
- <input type="hidden" name="phpath" value="{{$phpath}}">
-{{/if}}
-
-{{if $passed}}
- <input type="hidden" name="pass" value="2">
- <input type="submit" value="{{$next}}">
-{{else}}
- <input type="hidden" name="pass" value="1">
- <input type="submit" value="{{$reload}}">
-{{/if}}
-</form>
diff --git a/view/tpl/smarty3/install_db.tpl b/view/tpl/smarty3/install_db.tpl
deleted file mode 100644
index fe8aee85b..000000000
--- a/view/tpl/smarty3/install_db.tpl
+++ /dev/null
@@ -1,35 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<h1>{{$title}}</h1>
-<h2>{{$pass}}</h2>
-
-
-<p>
-{{$info_01}}<br>
-{{$info_02}}<br>
-{{$info_03}}
-</p>
-
-{{if $status}}
-<h3 class="error-message">{{$status}}</h3>
-{{/if}}
-
-<form id="install-form" action="{{$baseurl}}/setup" method="post">
-
-<input type="hidden" name="phpath" value="{{$phpath}}" />
-<input type="hidden" name="pass" value="3" />
-
-{{include file="field_input.tpl" field=$dbhost}}
-{{include file="field_input.tpl" field=$dbuser}}
-{{include file="field_password.tpl" field=$dbpass}}
-{{include file="field_input.tpl" field=$dbdata}}
-
-
-<input id="install-submit" type="submit" name="submit" value="{{$submit}}" />
-
-</form>
-
diff --git a/view/tpl/smarty3/install_settings.tpl b/view/tpl/smarty3/install_settings.tpl
deleted file mode 100644
index f91122737..000000000
--- a/view/tpl/smarty3/install_settings.tpl
+++ /dev/null
@@ -1,32 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<h1>{{$title}}</h1>
-<h2>{{$pass}}</h2>
-
-
-{{if $status}}
-<h3 class="error-message">{{$status}}</h3>
-{{/if}}
-
-<form id="install-form" action="{{$baseurl}}/setup" method="post">
-
-<input type="hidden" name="phpath" value="{{$phpath}}" />
-<input type="hidden" name="dbhost" value="{{$dbhost}}" />
-<input type="hidden" name="dbuser" value="{{$dbuser}}" />
-<input type="hidden" name="dbpass" value="{{$dbpass}}" />
-<input type="hidden" name="dbdata" value="{{$dbdata}}" />
-<input type="hidden" name="pass" value="4" />
-
-{{include file="field_input.tpl" field=$adminmail}}
-{{include file="field_input.tpl" field=$siteurl}}
-
-{{$timezone}}
-
-<input id="install-submit" type="submit" name="submit" value="{{$submit}}" />
-
-</form>
-
diff --git a/view/tpl/smarty3/intros.tpl b/view/tpl/smarty3/intros.tpl
deleted file mode 100644
index 4fd27d370..000000000
--- a/view/tpl/smarty3/intros.tpl
+++ /dev/null
@@ -1,23 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<div class="intro-wrapper" id="intro-{{$contact_id}}" >
-
-<div class="intro-fullname" id="intro-fullname-{{$contact_id}}" >{{$fullname}}</div>
-<a class="intro-url-link" id="intro-url-link-{{$contact_id}}" href="{{$url}}" ><img id="photo-{{$contact_id}}" class="intro-photo" src="{{$photo}}" width="175" height=175" title="{{$fullname}}" alt="{{$fullname}}" /></a>
-<div class="intro-wrapper-end" id="intro-wrapper-end-{{$contact_id}}"></div>
-<form class="intro-form" action="intro" method="post">
-<input class="intro-submit-ignore" type="submit" name="submit" value="{{$ignore}}" />
-<input class="intro-submit-block" type="submit" name="submit" value="{{$block}}" />
-<input class="intro-submit-discard" type="submit" name="submit" value="{{$discard}}" />
-{{include file="field_checkbox.tpl" field=$hidden}}
-{{* {{include file="field_checkbox.tpl" field=$activity}} *}}
-<input type="hidden" name="contact_id" value="{{$contact_id}}" >
-
-<input class="intro-submit-approve" type="submit" name="submit" value="{{$approve}}" />
-</form>
-</div>
-<div class="intro-end"></div>
diff --git a/view/tpl/smarty3/intros_header.tpl b/view/tpl/smarty3/intros_header.tpl
deleted file mode 100644
index 2dbf065d7..000000000
--- a/view/tpl/smarty3/intros_header.tpl
+++ /dev/null
@@ -1,6 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$title}}</h3>
diff --git a/view/tpl/smarty3/invite.tpl b/view/tpl/smarty3/invite.tpl
deleted file mode 100644
index e699f1f0e..000000000
--- a/view/tpl/smarty3/invite.tpl
+++ /dev/null
@@ -1,35 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<form action="invite" method="post" id="invite-form" >
-
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
-<div id="invite-wrapper">
-
-<h3>{{$invite}}</h3>
-
-<div id="invite-recipient-text">
-{{$addr_text}}
-</div>
-
-<div id="invite-recipient-textarea">
-<textarea id="invite-recipients" name="recipients" rows="8" cols="32" ></textarea>
-</div>
-
-<div id="invite-message-text">
-{{$msg_text}}
-</div>
-
-<div id="invite-message-textarea">
-<textarea id="invite-message" name="message" rows="10" cols="72" >{{$default_message}}</textarea>
-</div>
-
-<div id="invite-submit-wrapper">
-<input type="submit" name="submit" value="{{$submit}}" />
-</div>
-
-</div>
-</form>
diff --git a/view/tpl/smarty3/jot-header.tpl b/view/tpl/smarty3/jot-header.tpl
deleted file mode 100644
index c20c7c10d..000000000
--- a/view/tpl/smarty3/jot-header.tpl
+++ /dev/null
@@ -1,323 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<script language="javascript" type="text/javascript">
-
-var editor=false;
-var textlen = 0;
-var plaintext = '{{$editselect}}';
-
-function initEditor(cb){
- if (editor==false){
- $("#profile-jot-text-loading").show();
- if(plaintext == 'none') {
- $("#profile-jot-text-loading").hide();
- $("#profile-jot-text").css({ 'height': 200, 'color': '#000' });
- $("#profile-jot-text").contact_autocomplete(baseurl+"/acl");
- editor = true;
- $("a#jot-perms-icon").fancybox({
- 'transitionIn' : 'elastic',
- 'transitionOut' : 'elastic'
- });
- $(".jothidden").show();
- if (typeof cb!="undefined") cb();
- return;
- }
- tinyMCE.init({
- theme : "advanced",
- mode : "specific_textareas",
- editor_selector: {{$editselect}},
- auto_focus: "profile-jot-text",
- plugins : "bbcode,paste,autoresize, inlinepopups",
- theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
- theme_advanced_buttons2 : "",
- theme_advanced_buttons3 : "",
- theme_advanced_toolbar_location : "top",
- theme_advanced_toolbar_align : "center",
- theme_advanced_blockformats : "blockquote,code",
- gecko_spellcheck : true,
- paste_text_sticky : true,
- entity_encoding : "raw",
- add_unload_trigger : false,
- remove_linebreaks : false,
- force_p_newlines : false,
- force_br_newlines : true,
- forced_root_block : '',
- convert_urls: false,
- content_css: "{{$baseurl}}/view/custom_tinymce.css",
- theme_advanced_path : false,
- file_browser_callback : "fcFileBrowser",
- setup : function(ed) {
- cPopup = null;
- ed.onKeyDown.add(function(ed,e) {
- if(cPopup !== null)
- cPopup.onkey(e);
- });
-
- ed.onKeyUp.add(function(ed, e) {
- var txt = tinyMCE.activeEditor.getContent();
- match = txt.match(/@([^ \n]+)$/);
- if(match!==null) {
- if(cPopup === null) {
- cPopup = new ACPopup(this,baseurl+"/acl");
- }
- if(cPopup.ready && match[1]!==cPopup.searchText) cPopup.search(match[1]);
- if(! cPopup.ready) cPopup = null;
- }
- else {
- if(cPopup !== null) { cPopup.close(); cPopup = null; }
- }
-
- textlen = txt.length;
- if(textlen != 0 && $('#jot-perms-icon').is('.unlock')) {
- $('#profile-jot-desc').html(ispublic);
- }
- else {
- $('#profile-jot-desc').html('&nbsp;');
- }
-
- //Character count
-
- if(textlen <= 140) {
- $('#character-counter').removeClass('red');
- $('#character-counter').removeClass('orange');
- $('#character-counter').addClass('grey');
- }
- if((textlen > 140) && (textlen <= 420)) {
- $('#character-counter').removeClass('grey');
- $('#character-counter').removeClass('red');
- $('#character-counter').addClass('orange');
- }
- if(textlen > 420) {
- $('#character-counter').removeClass('grey');
- $('#character-counter').removeClass('orange');
- $('#character-counter').addClass('red');
- }
- $('#character-counter').text(textlen);
- });
-
- ed.onInit.add(function(ed) {
- ed.pasteAsPlainText = true;
- $("#profile-jot-text-loading").hide();
- $(".jothidden").show();
- if (typeof cb!="undefined") cb();
- });
-
- }
- });
-
- editor = true;
- // setup acl popup
- $("a#jot-perms-icon").fancybox({
- 'transitionIn' : 'elastic',
- 'transitionOut' : 'elastic'
- });
- } else {
- if (typeof cb!="undefined") cb();
- }
-}
-
-function enableOnUser(){
- if (editor) return;
- $(this).val("");
- initEditor();
-}
-
-</script>
-<script type="text/javascript" src="{{$baseurl}}/js/ajaxupload.js" ></script>
-<script>
- var ispublic = '{{$ispublic}}';
-
- $(document).ready(function() {
-
- /* enable tinymce on focus and click */
- $("#profile-jot-text").focus(enableOnUser);
- $("#profile-jot-text").click(enableOnUser);
-
- var uploader = new window.AjaxUpload(
- 'wall-image-upload',
- { action: '{{$baseurl}}/wall_upload/{{$nickname}}',
- name: 'userfile',
- onSubmit: function(file,ext) { $('#profile-rotator').show(); },
- onComplete: function(file,response) {
- addeditortext(response);
- $('#profile-rotator').hide();
- }
- }
- );
- var file_uploader = new window.AjaxUpload(
- 'wall-file-upload',
- { action: '{{$baseurl}}/wall_attach/{{$nickname}}',
- name: 'userfile',
- onSubmit: function(file,ext) { $('#profile-rotator').show(); },
- onComplete: function(file,response) {
- addeditortext(response);
- $('#profile-rotator').hide();
- }
- }
- );
-
-
- });
-
- function deleteCheckedItems() {
- var checkedstr = '';
-
- $('.item-select').each( function() {
- if($(this).is(':checked')) {
- if(checkedstr.length != 0) {
- checkedstr = checkedstr + ',' + $(this).val();
- }
- else {
- checkedstr = $(this).val();
- }
- }
- });
- $.post('item', { dropitems: checkedstr }, function(data) {
- window.location.reload();
- });
- }
-
- function jotGetLink() {
- reply = prompt("{{$linkurl}}");
- if(reply && reply.length) {
- reply = bin2hex(reply);
- $('#profile-rotator').show();
- $.get('{{$baseurl}}/parse_url?binurl=' + reply, function(data) {
- addeditortext(data);
- $('#profile-rotator').hide();
- });
- }
- }
-
- function jotVideoURL() {
- reply = prompt("{{$vidurl}}");
- if(reply && reply.length) {
- addeditortext('[video]' + reply + '[/video]');
- }
- }
-
- function jotAudioURL() {
- reply = prompt("{{$audurl}}");
- if(reply && reply.length) {
- addeditortext('[audio]' + reply + '[/audio]');
- }
- }
-
-
- function jotGetLocation() {
- reply = prompt("{{$whereareu}}", $('#jot-location').val());
- if(reply && reply.length) {
- $('#jot-location').val(reply);
- }
- }
-
- function jotShare(id) {
- if ($('#jot-popup').length != 0) $('#jot-popup').show();
-
- $('#like-rotator-' + id).show();
- $.get('{{$baseurl}}/share/' + id, function(data) {
- if (!editor) $("#profile-jot-text").val("");
- initEditor(function(){
- addeditortext(data);
- $('#like-rotator-' + id).hide();
- $(window).scrollTop(0);
- });
-
- });
- }
-
- function linkdropper(event) {
- var linkFound = event.dataTransfer.types.contains("text/uri-list");
- if(linkFound)
- event.preventDefault();
- }
-
- function linkdrop(event) {
- var reply = event.dataTransfer.getData("text/uri-list");
- event.target.textContent = reply;
- event.preventDefault();
- if(reply && reply.length) {
- reply = bin2hex(reply);
- $('#profile-rotator').show();
- $.get('{{$baseurl}}/parse_url?binurl=' + reply, function(data) {
- if (!editor) $("#profile-jot-text").val("");
- initEditor(function(){
- addeditortext(data);
- $('#profile-rotator').hide();
- });
- });
- }
- }
-
- function itemTag(id) {
- reply = prompt("{{$term}}");
- if(reply && reply.length) {
- reply = reply.replace('#','');
- if(reply.length) {
-
- commentBusy = true;
- $('body').css('cursor', 'wait');
-
- $.get('{{$baseurl}}/tagger/' + id + '?term=' + reply);
- if(timer) clearTimeout(timer);
- timer = setTimeout(NavUpdate,3000);
- liking = 1;
- }
- }
- }
-
- function itemFiler(id) {
-
- var bordercolor = $("input").css("border-color");
-
- $.get('filer/', function(data){
- $.fancybox(data);
- $("#id_term").keypress(function(){
- $(this).css("border-color",bordercolor);
- })
- $("#select_term").change(function(){
- $("#id_term").css("border-color",bordercolor);
- })
-
- $("#filer_save").click(function(e){
- e.preventDefault();
- reply = $("#id_term").val();
- if(reply && reply.length) {
- commentBusy = true;
- $('body').css('cursor', 'wait');
- $.get('{{$baseurl}}/filer/' + id + '?term=' + reply, NavUpdate);
-// if(timer) clearTimeout(timer);
-// timer = setTimeout(NavUpdate,3000);
- liking = 1;
- $.fancybox.close();
- } else {
- $("#id_term").css("border-color","#FF0000");
- }
- return false;
- });
- });
-
- }
-
- function jotClearLocation() {
- $('#jot-coord').val('');
- $('#profile-nolocation-wrapper').hide();
- }
-
- function addeditortext(data) {
- if(plaintext == 'none') {
- var currentText = $("#profile-jot-text").val();
- $("#profile-jot-text").val(currentText + data);
- }
- else
- tinyMCE.execCommand('mceInsertRawHTML',false,data);
- }
-
- {{$geotag}}
-
-</script>
-
diff --git a/view/tpl/smarty3/jot.tpl b/view/tpl/smarty3/jot.tpl
deleted file mode 100644
index 87e00413c..000000000
--- a/view/tpl/smarty3/jot.tpl
+++ /dev/null
@@ -1,91 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<div id="profile-jot-wrapper" >
- <div id="profile-jot-banner-wrapper">
- <div id="profile-jot-desc" >&nbsp;</div>
- <div id="character-counter" class="grey"></div>
- </div>
- <div id="profile-jot-banner-end"></div>
-
- <form id="profile-jot-form" action="{{$action}}" method="post" >
- <input type="hidden" name="type" value="{{$ptyp}}" />
- <input type="hidden" name="profile_uid" value="{{$profile_uid}}" />
- <input type="hidden" name="return" value="{{$return_path}}" />
- <input type="hidden" name="location" id="jot-location" value="{{$defloc}}" />
- <input type="hidden" name="coord" id="jot-coord" value="" />
- <input type="hidden" name="post_id" value="{{$post_id}}" />
- <input type="hidden" name="preview" id="jot-preview" value="0" />
- <div id="jot-title-wrap"><input name="title" id="jot-title" type="text" placeholder="{{$placeholdertitle}}" value="{{$title}}" class="jothidden" style="display:none"></div>
- {{if $catsenabled}}
- <div id="jot-category-wrap"><input name="category" id="jot-category" type="text" placeholder="{{$placeholdercategory}}" value="{{$category}}" class="jothidden" style="display:none" /></div>
- {{/if}}
- <div id="jot-text-wrap">
- <img id="profile-jot-text-loading" src="images/rotator.gif" alt="{{$wait}}" title="{{$wait}}" style="display: none;" />
- <textarea rows="5" cols="64" class="profile-jot-text" id="profile-jot-text" name="body" >{{if $content}}{{$content}}{{else}}{{$share}}{{/if}}</textarea>
- </div>
-
-<div id="profile-jot-submit-wrapper" class="jothidden">
- <input type="submit" id="profile-jot-submit" name="submit" value="{{$share}}" />
-
- <div id="profile-upload-wrapper" style="display: {{$visitor}};" >
- <div id="wall-image-upload-div" ><a href="#" onclick="return false;" id="wall-image-upload" class="icon camera" title="{{$upload}}"></a></div>
- </div>
- <div id="profile-attach-wrapper" style="display: {{$visitor}};" >
- <div id="wall-file-upload-div" ><a href="#" onclick="return false;" id="wall-file-upload" class="icon attach" title="{{$attach}}"></a></div>
- </div>
-
- <div id="profile-link-wrapper" style="display: {{$visitor}};" ondragenter="linkdropper(event);" ondragover="linkdropper(event);" ondrop="linkdrop(event);" >
- <a id="profile-link" class="icon link" title="{{$weblink}}" ondragenter="return linkdropper(event);" ondragover="return linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;"></a>
- </div>
- <div id="profile-video-wrapper" style="display: {{$visitor}};" >
- <a id="profile-video" class="icon video" title="{{$video}}" onclick="jotVideoURL();return false;"></a>
- </div>
- <div id="profile-audio-wrapper" style="display: {{$visitor}};" >
- <a id="profile-audio" class="icon audio" title="{{$audio}}" onclick="jotAudioURL();return false;"></a>
- </div>
- <div id="profile-location-wrapper" style="display: {{$visitor}};" >
- <a id="profile-location" class="icon globe" title="{{$setloc}}" onclick="jotGetLocation();return false;"></a>
- </div>
- <div id="profile-nolocation-wrapper" style="display: none;" >
- <a id="profile-nolocation" class="icon noglobe" title="{{$noloc}}" onclick="jotClearLocation();return false;"></a>
- </div>
-
- <div id="profile-jot-perms" class="profile-jot-perms" style="display: {{$pvisit}};" >
- <a href="#profile-jot-acl-wrapper" id="jot-perms-icon" class="icon {{$lockstate}}" title="{{$permset}}" ></a>{{$bang}}
- </div>
-
- {{if $preview}}<span onclick="preview_post();" id="jot-preview-link" class="fakelink">{{$preview}}</span>{{/if}}
-
-
- <div id="profile-jot-perms-end"></div>
-
-
- <div id="profile-jot-plugin-wrapper">
- {{$jotplugins}}
- </div>
-
- <div id="profile-rotator-wrapper" style="display: {{$visitor}};" >
- <img id="profile-rotator" src="images/rotator.gif" alt="{{$wait}}" title="{{$wait}}" style="display: none;" />
- </div>
-
- <div id="jot-preview-content" style="display:none;"></div>
-
- <div style="display: none;">
- <div id="profile-jot-acl-wrapper" style="width:auto;height:auto;overflow:auto;">
- {{$acl}}
- <hr style="clear:both"/>
- {{$jotnets}}
- </div>
- </div>
-
-
-</div>
-
-<div id="profile-jot-end"></div>
-</form>
-</div>
- {{if $content}}<script>initEditor();</script>{{/if}}
diff --git a/view/tpl/smarty3/jot_geotag.tpl b/view/tpl/smarty3/jot_geotag.tpl
deleted file mode 100644
index 1ed2367aa..000000000
--- a/view/tpl/smarty3/jot_geotag.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
- if(navigator.geolocation) {
- navigator.geolocation.getCurrentPosition(function(position) {
- $('#jot-coord').val(position.coords.latitude + ' ' + position.coords.longitude);
- $('#profile-nolocation-wrapper').show();
- });
- }
-
diff --git a/view/tpl/smarty3/js_strings.tpl b/view/tpl/smarty3/js_strings.tpl
deleted file mode 100644
index 34337e5bb..000000000
--- a/view/tpl/smarty3/js_strings.tpl
+++ /dev/null
@@ -1,39 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<script>
-
- var aStr = {
-
- 'delitem' : '{{$delitem}}',
- 'comment' : '{{$comment}}',
- 'showmore' : '{{$showmore}}',
- 'showfewer' : '{{$showfewer}}',
- 'pwshort' : '{{$pwshort}}',
- 'pwnomatch' : '{{$pwnomatch}}',
- 'everybody' : '{{$everybody}}',
-
- 't01' : {{$t01}},
- 't02' : {{$t02}},
- 't03' : '{{$t03}}',
- 't04' : '{{$t04}}',
- 't05' : '{{$t05}}',
- 't06' : '{{$t06}}',
- 't07' : '{{$t07}}',
- 't08' : '{{$t08}}',
- 't09' : '{{$t09}}',
- 't10' : '{{$t10}}',
- 't11' : '{{$t11}}',
- 't12' : '{{$t12}}',
- 't13' : '{{$t13}}',
- 't14' : '{{$t14}}',
- 't15' : '{{$t15}}',
- 't16' : '{{$t16}}',
- 't17' : '{{$t17}}',
- };
-
-</script>
-
diff --git a/view/tpl/smarty3/lang_selector.tpl b/view/tpl/smarty3/lang_selector.tpl
deleted file mode 100644
index a1aee8277..000000000
--- a/view/tpl/smarty3/lang_selector.tpl
+++ /dev/null
@@ -1,15 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="lang-select-icon" class="icon s22 language" title="{{$title}}" onclick="openClose('language-selector');" ></div>
-<div id="language-selector" style="display: none;" >
- <form action="#" method="post" >
- <select name="system_language" onchange="this.form.submit();" >
- {{foreach $langs.0 as $v=>$l}}
- <option value="{{$v}}" {{if $v==$langs.1}}selected="selected"{{/if}}>{{$l}}</option>
- {{/foreach}}
- </select>
- </form>
-</div>
diff --git a/view/tpl/smarty3/like_noshare.tpl b/view/tpl/smarty3/like_noshare.tpl
deleted file mode 100644
index b8258d64a..000000000
--- a/view/tpl/smarty3/like_noshare.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="wall-item-like-buttons" id="wall-item-like-buttons-{{$id}}">
- <a href="#" class="icon like" title="{{$likethis}}" onclick="dolike({{$id}},'like'); return false"></a>
- <a href="#" class="icon dislike" title="{{$nolike}}" onclick="dolike({{$id}},'dislike'); return false"></a>
- <img id="like-rotator-{{$id}}" class="like-rotator" src="images/rotator.gif" alt="{{$wait}}" title="{{$wait}}" style="display: none;" />
-</div>
diff --git a/view/tpl/smarty3/login.tpl b/view/tpl/smarty3/login.tpl
deleted file mode 100644
index e530429b2..000000000
--- a/view/tpl/smarty3/login.tpl
+++ /dev/null
@@ -1,36 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<form action="{{$dest_url}}" id="{{$form_id}}" method="post" >
- <input type="hidden" name="auth-params" value="login" />
-
- <div id="login_standard">
- {{include file="field_input.tpl" field=$lname}}
- {{include file="field_password.tpl" field=$lpassword}}
- </div>
-
- <div id="login-extra-links">
- {{if $register}}<a href="{{$register.link}}" title="{{$register.title}}" id="register-link">{{$register.desc}}</a>{{/if}}
- <a href="lostpass" title="{{$lostpass}}" id="lost-password-link" >{{$lostlink}}</a>
- </div>
-
- {{include file="field_checkbox.tpl" field=$remember}}
-
- <div id="login-standard-end"></div>
-
- <div id="login-submit-wrapper" >
- <input type="submit" name="submit" id="login-submit-button" value="{{$login}}" />
- </div>
-
- {{foreach $hiddens as $k=>$v}}
- <input type="hidden" name="{{$k}}" value="{{$v}}" />
- {{/foreach}}
-
-
-</form>
-
-
-<script type="text/javascript"> $(document).ready(function() { $("#id_{{$lname.0}}").focus();} );</script>
diff --git a/view/tpl/smarty3/logout.tpl b/view/tpl/smarty3/logout.tpl
deleted file mode 100644
index 582d77ed6..000000000
--- a/view/tpl/smarty3/logout.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<form action="{{$dest_url}}" method="post" >
-<div class="logout-wrapper">
-<input type="hidden" name="auth-params" value="logout" />
-<input type="submit" name="submit" id="logout-button" value="{{$logout}}" />
-</div>
-</form>
diff --git a/view/tpl/smarty3/lostpass.tpl b/view/tpl/smarty3/lostpass.tpl
deleted file mode 100644
index 0e437ca48..000000000
--- a/view/tpl/smarty3/lostpass.tpl
+++ /dev/null
@@ -1,23 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$title}}</h3>
-
-<p id="lostpass-desc">
-{{$desc}}
-</p>
-
-<form action="lostpass" method="post" >
-<div id="login-name-wrapper">
- <label for="login-name" id="label-login-name">{{$name}}</label>
- <input type="text" maxlength="60" name="login-name" id="login-name" value="" />
-</div>
-<div id="login-extra-end"></div>
-<div id="login-submit-wrapper" >
- <input type="submit" name="submit" id="lostpass-submit-button" value="{{$submit}}" />
-</div>
-<div id="login-submit-end"></div>
-</form>
-
diff --git a/view/tpl/smarty3/magicsig.tpl b/view/tpl/smarty3/magicsig.tpl
deleted file mode 100644
index af8dbb5bc..000000000
--- a/view/tpl/smarty3/magicsig.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<?xml version="1.0" encoding="UTF-8"?>
-<me:env xmlns:me="http://salmon-protocol.org/ns/magic-env">
-<me:data type="application/atom+xml">
-{{$data}}
-</me:data>
-<me:encoding>{{$encoding}}</me:encoding>
-<me:alg>{{$algorithm}}</me:alg>
-<me:sig key_id="{{$keyhash}}">{{$signature}}</me:sig>
-</me:env>
diff --git a/view/tpl/smarty3/mail_conv.tpl b/view/tpl/smarty3/mail_conv.tpl
deleted file mode 100644
index 8587efbb5..000000000
--- a/view/tpl/smarty3/mail_conv.tpl
+++ /dev/null
@@ -1,19 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="mail-conv-outside-wrapper">
- <div class="mail-conv-sender" >
- <a href="{{$mail.from_url}}" class="mail-conv-sender-url" ><img class="mframe mail-conv-sender-photo{{$mail.sparkle}}" src="{{$mail.from_photo}}" heigth="80" width="80" alt="{{$mail.from_name}}" /></a>
- <div class="mail-conv-sender-name" >{{$mail.from_name}}</div>
- </div>
- <div class="mail-conv-detail" >
- <div class="mail-conv-date">{{$mail.date}}</div>
- <div class="mail-conv-subject">{{$mail.subject}}</div>
- <div class="mail-conv-body">{{$mail.body}}</div>
- <div class="mail-conv-delete-wrapper" id="mail-conv-delete-wrapper-{{$mail.id}}" ><a href="message/drop/{{$mail.id}}" class="icon drophide delete-icon mail-list-delete-icon" onclick="return confirmDelete();" title="{{$mail.delete}}" id="mail-conv-delete-icon-{{$mail.id}}" class="mail-conv-delete-icon" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a></div><div class="mail-conv-delete-end"></div>
- <div class="mail-conv-outside-wrapper-end"></div>
-</div>
-</div>
-<hr class="mail-conv-break" />
diff --git a/view/tpl/smarty3/mail_display.tpl b/view/tpl/smarty3/mail_display.tpl
deleted file mode 100644
index e14d55478..000000000
--- a/view/tpl/smarty3/mail_display.tpl
+++ /dev/null
@@ -1,15 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-{{foreach $mails as $mail}}
- {{include file="mail_conv.tpl"}}
-{{/foreach}}
-
-{{if $canreply}}
-{{include file="prv_message.tpl"}}
-{{else}}
-{{$unknown_text}}
-{{/if}} \ No newline at end of file
diff --git a/view/tpl/smarty3/mail_head.tpl b/view/tpl/smarty3/mail_head.tpl
deleted file mode 100644
index f7a39fa8b..000000000
--- a/view/tpl/smarty3/mail_head.tpl
+++ /dev/null
@@ -1,8 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$messages}}</h3>
-
-{{$tab_content}}
diff --git a/view/tpl/smarty3/mail_list.tpl b/view/tpl/smarty3/mail_list.tpl
deleted file mode 100644
index ffc75b794..000000000
--- a/view/tpl/smarty3/mail_list.tpl
+++ /dev/null
@@ -1,24 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="mail-list-outside-wrapper">
- <div class="mail-list-sender" >
- <a href="{{$from_url}}" class="mail-list-sender-url" ><img class="mail-list-sender-photo" src="{{$from_photo}}" height="32" width="32" alt="{{$from_name}}" /></a>
- <div class="mail-list-sender-name" >{{$from_name}}</div>
- </div>
- <div class="mail-list-recip" >
- <a href="{{$to_url}}" class="mail-list-recip-url" ><img class="mail-list-recip-photo" src="{{$to_photo}}" height="32" width="32" alt="{{$to_name}}" /></a>
- <div class="mail-list-recip-name" >{{$to_name}}</div>
- </div>
- <div class="mail-list-date">{{$date}}</div>
- <div class="mail-list-subject"><a href="message/{{$id}}" class="mail-list-link">{{$subject}}</a></div>
- <div class="mail-list-delete-wrapper" id="mail-list-delete-wrapper-{{$id}}" >
- <a href="message/dropconv/{{$id}}" onclick="return confirmDelete();" title="{{$delete}}" class="icon drophide mail-list-delete delete-icon" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>
- </div>
-</div>
-</div>
-<div class="mail-list-delete-end"></div>
-
-<div class="mail-list-outside-wrapper-end"></div>
diff --git a/view/tpl/smarty3/main_slider.tpl b/view/tpl/smarty3/main_slider.tpl
deleted file mode 100644
index 481e23077..000000000
--- a/view/tpl/smarty3/main_slider.tpl
+++ /dev/null
@@ -1,28 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="main-slider" class="slider" ><input id="main-range" type="text" name="cminmax" value="{{$val}}" /></div>
-<script>
- $("#main-range").slider({ from: 0, to: 99, step: 1, scale: ['{{$me}}', '|', '{{$intimate}}', '|', '{{$friends}}', '|', '{{$oldfriends}}', '|', '{{$acquaintances}}', '|', '{{$world}}' ], onstatechange: function(v) {
- var carr = v.split(";");
- bParam_cmin = carr[0];
- bParam_cmax = carr[1];
- networkRefresh();
- } });
-
- var slideTimer = null;
- function networkRefresh() {
- if((document.readyState !== "complete") || (slideTimer !== null))
- return;
- setTimeout(function() { $("#profile-jot-text-loading").show(); }, 1000 );
- slideTimer = setTimeout(networkTimerRefresh,2000);
- }
-
- function networkTimerRefresh() {
- slideTimer = null;
- page_load = true;
- liveUpdate();
- }
-</script>
diff --git a/view/tpl/smarty3/match.tpl b/view/tpl/smarty3/match.tpl
deleted file mode 100644
index 14b725466..000000000
--- a/view/tpl/smarty3/match.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="profile-match-wrapper">
- <div class="profile-match-photo">
- <a href="{{$url}}">
- <img src="{{$photo}}" alt="{{$name}}" title="{{$name}}[{{$tags}}]" />
- </a>
- </div>
- <div class="profile-match-break"></div>
- <div class="profile-match-name">
- <a href="{{$url}}" title="{{$name}}[{{$tags}}]">{{$name}}</a>
- </div>
- <div class="profile-match-end"></div>
- {{if $connlnk}}
- <div class="profile-match-connect"><a href="{{$connlnk}}" title="{{$conntxt}}">{{$conntxt}}</a></div>
- {{/if}}
-
-</div>
diff --git a/view/tpl/smarty3/message_side.tpl b/view/tpl/smarty3/message_side.tpl
deleted file mode 100644
index 7da22ee3e..000000000
--- a/view/tpl/smarty3/message_side.tpl
+++ /dev/null
@@ -1,15 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="message-sidebar" class="widget">
- <div id="message-new"><a href="{{$new.url}}" class="{{if $new.sel}}newmessage-selected{{/if}}">{{$new.label}}</a> </div>
-
- <ul class="message-ul">
- {{foreach $tabs as $t}}
- <li class="tool"><a href="{{$t.url}}" class="message-link{{if $t.sel}}message-selected{{/if}}">{{$t.label}}</a></li>
- {{/foreach}}
- </ul>
-
-</div>
diff --git a/view/tpl/smarty3/micropro_img.tpl b/view/tpl/smarty3/micropro_img.tpl
deleted file mode 100644
index de134adba..000000000
--- a/view/tpl/smarty3/micropro_img.tpl
+++ /dev/null
@@ -1,6 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="contact-block-div{{if $class}} {{$class}}{{/if}}"><a class="contact-block-link{{if $class}} {{$class}}{{/if}}{{if $click}} fakelink{{/if}}" href="{{if $click}}#{{else}}{{$url}}{{/if}}" {{if $click}}onclick="{{$click}}"{{/if}}><img class="contact-block-img{{if $class}} {{$class}}{{/if}}" src="{{$photo}}" title="{{$title}}" alt="{{$name}}" /></a></div>
diff --git a/view/tpl/smarty3/micropro_txt.tpl b/view/tpl/smarty3/micropro_txt.tpl
deleted file mode 100644
index a6438812b..000000000
--- a/view/tpl/smarty3/micropro_txt.tpl
+++ /dev/null
@@ -1,6 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="contact-block-textdiv{{if $class}} {{$class}}{{/if}}"><a class="contact-block-link{{if $class}} {{$class}}{{/if}}{{if $click}} fakelink{{/if}}" href="{{if $click}}#{{else}}{{$url}}{{/if}}" {{if $click}}onclick="{{$click}}"{{/if}} title="{{$title}}">{{$name}}</a></div>
diff --git a/view/tpl/smarty3/moderated_comment.tpl b/view/tpl/smarty3/moderated_comment.tpl
deleted file mode 100644
index 1e4e9b6d4..000000000
--- a/view/tpl/smarty3/moderated_comment.tpl
+++ /dev/null
@@ -1,39 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
- <div class="comment-wwedit-wrapper" id="comment-edit-wrapper-{{$id}}" style="display: block;">
- <form class="comment-edit-form" id="comment-edit-form-{{$id}}" action="item" method="post" onsubmit="post_comment({{$id}}); return false;">
- <input type="hidden" name="type" value="{{$type}}" />
- <input type="hidden" name="profile_uid" value="{{$profile_uid}}" />
- <input type="hidden" name="parent" value="{{$parent}}" />
- <input type="hidden" name="return" value="{{$return_path}}" />
- <input type="hidden" name="jsreload" value="{{$jsreload}}" />
- <input type="hidden" name="preview" id="comment-preview-inp-{{$id}}" value="0" />
-
- <div class="comment-edit-photo" id="comment-edit-photo-{{$id}}" >
- <a class="comment-edit-photo-link" href="{{$mylink}}" title="{{$mytitle}}"><img class="my-comment-photo" src="{{$myphoto}}" alt="{{$mytitle}}" title="{{$mytitle}}" /></a>
- </div>
- <div class="comment-edit-photo-end"></div>
- <div id="mod-cmnt-wrap-{{$id}}" class="mod-cmnt-wrap" style="display:none">
- <div id="mod-cmnt-name-lbl-{{$id}}" class="mod-cmnt-name-lbl">{{$lbl_modname}}</div>
- <input type="text" id="mod-cmnt-name-{{$id}}" class="mod-cmnt-name" name="mod-cmnt-name" value="{{$modname}}" />
- <div id="mod-cmnt-email-lbl-{{$id}}" class="mod-cmnt-email-lbl">{{$lbl_modemail}}</div>
- <input type="text" id="mod-cmnt-email-{{$id}}" class="mod-cmnt-email" name="mod-cmnt-email" value="{{$modemail}}" />
- <div id="mod-cmnt-url-lbl-{{$id}}" class="mod-cmnt-url-lbl">{{$lbl_modurl}}</div>
- <input type="text" id="mod-cmnt-url-{{$id}}" class="mod-cmnt-url" name="mod-cmnt-url" value="{{$modurl}}" />
- </div>
- <textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,{{$id}});" onBlur="commentClose(this,{{$id}});" >{{$comment}}</textarea>
-
- <div class="comment-edit-text-end"></div>
- <div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-{{$id}}" style="display: none;" >
- <input type="submit" onclick="post_comment({{$id}}); return false;" id="comment-edit-submit-{{$id}}" class="comment-edit-submit" name="submit" value="{{$submit}}" />
- <span onclick="preview_comment({{$id}});" id="comment-edit-preview-link-{{$id}}" class="fakelink">{{$preview}}</span>
- <div id="comment-edit-preview-{{$id}}" class="comment-edit-preview" style="display:none;"></div>
- </div>
-
- <div class="comment-edit-end"></div>
- </form>
-
- </div>
diff --git a/view/tpl/smarty3/mood_content.tpl b/view/tpl/smarty3/mood_content.tpl
deleted file mode 100644
index 461303318..000000000
--- a/view/tpl/smarty3/mood_content.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$title}}</h3>
-
-<div id="mood-desc">{{$desc}}</div>
-
-<form action="mood" method="get">
-<br />
-<br />
-
-<input id="mood-parent" type="hidden" value="{{$parent}}" name="parent" />
-
-<select name="verb" id="mood-verb-select" >
-{{foreach $verbs as $v}}
-<option value="{{$v.0}}">{{$v.1}}</option>
-{{/foreach}}
-</select>
-<br />
-<br />
-<input type="submit" name="submit" value="{{$submit}}" />
-</form>
-
diff --git a/view/tpl/smarty3/msg-header.tpl b/view/tpl/smarty3/msg-header.tpl
deleted file mode 100644
index 4c47e1d6d..000000000
--- a/view/tpl/smarty3/msg-header.tpl
+++ /dev/null
@@ -1,102 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
-<script language="javascript" type="text/javascript">
-
-var plaintext = '{{$editselect}}';
-
-if(plaintext != 'none') {
- tinyMCE.init({
- theme : "advanced",
- mode : "specific_textareas",
- editor_selector: /(profile-jot-text|prvmail-text)/,
- plugins : "bbcode,paste",
- theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",
- theme_advanced_buttons2 : "",
- theme_advanced_buttons3 : "",
- theme_advanced_toolbar_location : "top",
- theme_advanced_toolbar_align : "center",
- theme_advanced_blockformats : "blockquote,code",
- gecko_spellcheck : true,
- paste_text_sticky : true,
- entity_encoding : "raw",
- add_unload_trigger : false,
- remove_linebreaks : false,
- force_p_newlines : false,
- force_br_newlines : true,
- forced_root_block : '',
- convert_urls: false,
- content_css: "{{$baseurl}}/view/custom_tinymce.css",
- //Character count
- theme_advanced_path : false,
- setup : function(ed) {
- ed.onInit.add(function(ed) {
- ed.pasteAsPlainText = true;
- var editorId = ed.editorId;
- var textarea = $('#'+editorId);
- if (typeof(textarea.attr('tabindex')) != "undefined") {
- $('#'+editorId+'_ifr').attr('tabindex', textarea.attr('tabindex'));
- textarea.attr('tabindex', null);
- }
- });
- }
- });
-}
-else
- $("#prvmail-text").contact_autocomplete(baseurl+"/acl");
-
-
-</script>
-<script type="text/javascript" src="js/ajaxupload.js" ></script>
-<script>
- $(document).ready(function() {
- var uploader = new window.AjaxUpload(
- 'prvmail-upload',
- { action: 'wall_upload/{{$nickname}}',
- name: 'userfile',
- onSubmit: function(file,ext) { $('#profile-rotator').show(); },
- onComplete: function(file,response) {
- tinyMCE.execCommand('mceInsertRawHTML',false,response);
- $('#profile-rotator').hide();
- }
- }
- );
-
- });
-
- function jotGetLink() {
- reply = prompt("{{$linkurl}}");
- if(reply && reply.length) {
- $('#profile-rotator').show();
- $.get('parse_url?url=' + reply, function(data) {
- tinyMCE.execCommand('mceInsertRawHTML',false,data);
- $('#profile-rotator').hide();
- });
- }
- }
-
- function linkdropper(event) {
- var linkFound = event.dataTransfer.types.contains("text/uri-list");
- if(linkFound)
- event.preventDefault();
- }
-
- function linkdrop(event) {
- var reply = event.dataTransfer.getData("text/uri-list");
- event.target.textContent = reply;
- event.preventDefault();
- if(reply && reply.length) {
- $('#profile-rotator').show();
- $.get('parse_url?url=' + reply, function(data) {
- tinyMCE.execCommand('mceInsertRawHTML',false,data);
- $('#profile-rotator').hide();
- });
- }
- }
-
-</script>
-
diff --git a/view/tpl/smarty3/nav.tpl b/view/tpl/smarty3/nav.tpl
deleted file mode 100644
index 261607e5b..000000000
--- a/view/tpl/smarty3/nav.tpl
+++ /dev/null
@@ -1,153 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<header>
- <div id="site-location">{{$sitelocation}}</div>
- <div id="banner">{{$banner}}</div>
-</header>
-<nav>
- <ul>
- {{if $nav.lock}}
- <li id="nav-rmagic-link" class="nav-menu-icon" >
- <a class="icon {{$nav.lock.2}}" href="{{$nav.lock.0}}" title="{{$nav.lock.3}}" >{{$nav.lock.1}}</a>
- </li>
- {{/if}}
-
-
- {{if $nav.network}}
- <li id="nav-network-link" class="nav-menu {{$sel.network}}">
- <a class="{{$nav.network.2}}" href="{{$nav.network.0}}" title="{{$nav.network.3}}" ><span class="icon network">{{$nav.network.1}}</span></a>
- <span id="net-update" class="nav-notify fakelink" rel="#nav-network-menu"></span>
- <ul id="nav-network-menu" class="menu-popup notify-menus" rel="network">
- <li id="nav-network-see-all"><a href="{{$nav.network.all.0}}">{{$nav.network.all.1}}</a></li>
- <li id="nav-network-mark-all"><a href="#" onclick="markRead('network'); return false;">{{$nav.network.mark.1}}</a></li>
- <li class="empty">{{$emptynotifications}}</li>
- </ul>
- </li>
- {{/if}}
-
- {{if $nav.home}}
- <li id="nav-home-link" class="nav-menu {{$sel.home}}">
- <a class="{{$nav.home.2}}" href="{{$nav.home.0}}" title="{{$nav.home.3}}" ><span class="icon home">{{$nav.home.1}}</span></a>
- <span id="home-update" class="nav-notify fakelink" rel="#nav-home-menu"></span>
- <ul id="nav-home-menu" class="menu-popup notify-menus" rel="home">
- <li id="nav-home-see-all"><a href="{{$nav.home.all.0}}">{{$nav.home.all.1}}</a></li>
- <li id="nav-home-mark-all"><a href="#" onclick="markRead('home'); return false;">{{$nav.home.mark.1}}</a></li>
- <li class="empty">{{$emptynotifications}}</li>
- </ul>
- </li>
- {{/if}}
-
- {{if $nav.messages}}
- <li id="nav-mail-link" class="nav-menu {{$sel.messages}}">
- <a class="{{$nav.messages.2}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" ><span class="icon mail">{{$nav.messages.1}}</span></a>
- <span id="mail-update" class="nav-notify fakelink" rel="#nav-messages-menu"></span>
- <ul id="nav-messages-menu" class="menu-popup notify-menus" rel="messages">
- <li id="nav-messages-see-all"><a href="{{$nav.messages.all.0}}">{{$nav.messages.all.1}}</a></li>
- <li id="nav-messages-mark-all"><a href="#" onclick="markRead('messages'); return false;">{{$nav.messages.mark.1}}</a></li>
- <li class="empty">{{$emptynotifications}}</li>
- </ul>
- </li>
- {{/if}}
-
- {{if $nav.all_events}}
- <li id="nav-all_events-link" class="nav-menu {{$sel.all_events}}">
- <a class="{{$nav.all_events.2}}" href="{{$nav.all_events.0}}" title="{{$nav.all_events.3}}" ><span class="icon events">{{$nav.all_events.1}}</span></a>
- <span id="all_events-update" class="nav-notify fakelink" rel="#nav-all_events-menu"></span>
- <ul id="nav-all_events-menu" class="menu-popup notify-menus" rel="all_events">
- <li id="nav-all_events-see-all"><a href="{{$nav.all_events.all.0}}">{{$nav.all_events.all.1}}</a></li>
- <li id="nav-all_events-mark-all"><a href="#" onclick="markRead('all_events'); return false;">{{$nav.all_events.mark.1}}</a></li>
- <li class="empty">{{$emptynotifications}}</li>
- </ul>
- </li>
- {{/if}}
-
- {{if $nav.intros}}
- <li id="nav-intros-link" class="nav-menu {{$sel.intros}}">
- <a class="{{$nav.intros.2}}" href="{{$nav.intros.0}}" title="{{$nav.intros.3}}" ><span class="icon introductions">{{$nav.intros.1}}</span></a>
- <span id="intro-update" class="nav-notify fakelink" rel="#nav-intros-menu"></span>
- <ul id="nav-intros-menu" class="menu-popup notify-menus" rel="intros">
- <li id="nav-intros-see-all"><a href="{{$nav.intros.all.0}}">{{$nav.intros.all.1}}</a></li>
- <li class="empty">{{$emptynotifications}}</li>
- </ul>
- </li>
- {{/if}}
-
- {{if $nav.notifications}}
- <li id="nav-notify-linkmenu" class="nav-menu fakelink">
- <a href="{{$nav.notifications.0}}" title="{{$nav.notifications.1}}"><span class="icon s22 notify">{{$nav.notifications.1}}</span></a>
- <span id="notify-update" class="nav-notify fakelink" rel="#nav-notify-menu"></span>
- <ul id="nav-notify-menu" class="menu-popup notify-menus" rel="notify">
- <li id="nav-notify-see-all"><a href="{{$nav.notifications.all.0}}">{{$nav.notifications.all.1}}</a></li>
- <li id="nav-notify-mark-all"><a href="#" onclick="markRead('notify'); return false;">{{$nav.notifications.mark.1}}</a></li>
- <li class="empty">{{$emptynotifications}}</li>
- </ul>
- </li>
- {{/if}}
-
- {{if $nav.settings}}
- <li id="nav-site-linkmenu" class="nav-menu-icon"><a href="#" rel="#nav-site-menu"><span class="icon s22 gear">{{$nav.settings.1}}</span></a>
- <ul id="nav-site-menu" class="menu-popup">
- {{if $nav.settings}}<li><a class="{{$nav.settings.2}}" href="{{$nav.settings.0}}" title="{{$nav.settings.3}}">{{$nav.settings.1}}</a></li>{{/if}}
- {{if $nav.directory}}<li><a class="{{$nav.directory.2}}" href="{{$nav.directory.0}}" title="{{$nav.directory.3}}">{{$nav.directory.1}}</a></li>{{/if}}
-
- {{if $nav.admin}}<li><a class="{{$nav.admin.2}}" href="{{$nav.admin.0}}" title="{{$nav.admin.3}}" >{{$nav.admin.1}}</a></li>{{/if}}
-
- </ul>
- </li>
- {{/if}}
-
- {{if $userinfo}}
- <li id="nav-user-linkmenu" class="nav-menu-icon"><a href="#" rel="#nav-user-menu" title="{{$userinfo.name}}"><img src="{{$userinfo.icon}}" alt="{{$userinfo.name}}"></a>
- {{if $localuser}}
- <ul id="nav-user-menu" class="menu-popup">
- {{foreach $nav.usermenu as $usermenu}}
- <li><a class="{{$usermenu.2}}" href="{{$usermenu.0}}" title="{{$usermenu.3}}">{{$usermenu.1}}</a></li>
- {{/foreach}}
- {{if $nav.profiles}}<li><a class="{{$nav.profiles.2}}" href="{{$nav.profiles.0}}" title="{{$nav.profiles.3}}">{{$nav.profiles.1}}</a></li>{{/if}}
- {{if $nav.manage}}<li><a class="{{$nav.manage.2}}" href="{{$nav.manage.0}}" title="{{$nav.manage.3}}">{{$nav.manage.1}}</a></li>{{/if}}
- {{if $nav.contacts}}<li><a class="{{$nav.contacts.2}}" href="{{$nav.contacts.0}}" title="{{$nav.contacts.3}}" >{{$nav.contacts.1}}</a></li>{{/if}}
- {{if $nav.logout}}<li><a class="menu-sep {{$nav.logout.2}}" href="{{$nav.logout.0}}" title="{{$nav.logout.3}}" >{{$nav.logout.1}}</a></li>{{/if}}
-
- </ul>
- {{/if}}
- </li>
- {{/if}}
-
- {{if $nav.login}}<li id="nav-login-link" class="nav-menu {{$nav.login.2}}"><a href="{{$nav.login.0}}" title="{{$nav.login.3}}" >{{$nav.login.1}}</a><li>{{/if}}
- {{if $nav.alogout}}<li id=nav-alogout-link" class="nav-menu {{$nav}}-alogout.2"><a href="{{$nav.alogout.0}}" title="{{$nav.alogout.3}}" >{{$nav.alogout.1}}</a></li>{{/if}}
- {{if $nav.help}}
- <li id="nav-help-link" class="nav-menu {{$sel.help}}">
- <a class="{{$nav.help.2}}" target="friendika-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" >{{$nav.help.1}}</a>
- </li>
- {{/if}}
-
- {{if $nav.apps}}
- <li id="nav-apps-link" class="nav-menu {{$sel.apps}}">
- <a class=" {{$nav.apps.2}}" href="#" rel="#nav-apps-menu" title="{{$nav.apps.3}}" >{{$nav.apps.1}}</a>
- <ul id="nav-apps-menu" class="menu-popup">
- {{foreach $apps as $ap}}
- <li>{{$ap}}</li>
- {{/foreach}}
- </ul>
- </li>
- {{/if}}
-
- <li id="nav-searchbar">
- <form method="get" action="search">
- <input id="nav-search-text" type="text" value="" placeholder="{{$nav.search.1}}" name="search" title="{{$nav.search.3}}" onclick="this.submit();" />
- </form>
- </li>
- <img src="images/rotator.gif" id="nav-search-spinner" style="display: none;" alt="{{$pleasewait}}" />
-
- </ul>
-</nav>
-
-<ul id="nav-notifications-template" style="display:none;" rel="template">
- <li class="{4}"><a href="{0}"><img src="{1}">{2} <span class="notif-when">{3}</span></a></li>
-</ul>
-
-<div id="langselector" >{{$langselector}}</div>
-<div id="panel" style="display: none;"></div>
diff --git a/view/tpl/smarty3/netfriend.tpl b/view/tpl/smarty3/netfriend.tpl
deleted file mode 100644
index e8658e0bc..000000000
--- a/view/tpl/smarty3/netfriend.tpl
+++ /dev/null
@@ -1,19 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="intro-approve-as-friend-desc">{{$approve_as}}</div>
-
-<div class="intro-approve-as-friend-wrapper">
- <label class="intro-approve-as-friend-label" for="intro-approve-as-friend-{{$intro_id}}">{{$as_friend}}</label>
- <input type="radio" name="duplex" id="intro-approve-as-friend-{{$intro_id}}" class="intro-approve-as-friend" {{$friend_selected}} value="1" />
- <div class="intro-approve-friend-break" ></div>
-</div>
-<div class="intro-approve-as-friend-end"></div>
-<div class="intro-approve-as-fan-wrapper">
- <label class="intro-approve-as-fan-label" for="intro-approve-as-fan-{{$intro_id}}">{{$as_fan}}</label>
- <input type="radio" name="duplex" id="intro-approve-as-fan-{{$intro_id}}" class="intro-approve-as-fan" {{$fan_selected}} value="0" />
- <div class="intro-approve-fan-break"></div>
-</div>
-<div class="intro-approve-as-end"></div>
diff --git a/view/tpl/smarty3/new_channel.tpl b/view/tpl/smarty3/new_channel.tpl
deleted file mode 100644
index a7aa44991..000000000
--- a/view/tpl/smarty3/new_channel.tpl
+++ /dev/null
@@ -1,34 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h2>{{$title}}</h2>
-
-<form action="new_channel" method="post" id="newchannel-form">
-
- <div id="newchannel-desc" class="descriptive-paragraph">{{$desc}}</div>
-
- <label for="newchannel-name" id="label-newchannel-name" class="newchannel-label" >{{$label_name}}</label>
- <input type="text" name="name" id="newchannel-name" class="newchannel-input" value="{{$name}}" />
- <div id="newchannel-name-feedback" class="newchannel-feedback"></div>
- <div id="newchannel-name-end" class="newchannel-field-end"></div>
-
- <div id="newchannel-name-help" class="descriptive-paragraph">{{$help_name}}</div>
-
- <label for="newchannel-nickname" id="label-newchannel-nickname" class="newchannel-label" >{{$label_nick}}</label>
- <input type="text" name="nickname" id="newchannel-nickname" class="newchannel-input" value="{{$nickname}}" />
- <div id="newchannel-nickname-feedback" class="newchannel-feedback"></div>
- <div id="newchannel-nickname-end" class="newchannel-field-end"></div>
-
- <div id="newchannel-nick-desc" class="descriptive-paragraph">{{$nick_desc}}</div>
-
-
- <div id="newchannel-import-link" class="descriptive-paragraph" >{{$label_import}}</div>
-
- <div id="newchannel-import-end" class="newchannel-field-end"></div>
-
- <input type="submit" name="submit" id="newchannel-submit-button" value="{{$submit}}" />
- <div id="newchannel-submit-end" class="newchannel-field-end"></div>
-
-</form>
diff --git a/view/tpl/smarty3/nogroup-template.tpl b/view/tpl/smarty3/nogroup-template.tpl
deleted file mode 100644
index 7d103a655..000000000
--- a/view/tpl/smarty3/nogroup-template.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$header}}</h1>
-
-{{foreach $contacts as $contact}}
- {{include file="contact_template.tpl"}}
-{{/foreach}}
-<div id="contact-edit-end"></div>
-
-{{$paginate}}
-
-
-
-
diff --git a/view/tpl/smarty3/notifications.tpl b/view/tpl/smarty3/notifications.tpl
deleted file mode 100644
index 834a7a016..000000000
--- a/view/tpl/smarty3/notifications.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<h1>{{$notif_header}}</h1>
-
-{{include file="common_tabs.tpl"}}
-
-<div class="notif-network-wrapper">
- {{$notif_content}}
-</div>
diff --git a/view/tpl/smarty3/notifications_comments_item.tpl b/view/tpl/smarty3/notifications_comments_item.tpl
deleted file mode 100644
index 9913e6cf7..000000000
--- a/view/tpl/smarty3/notifications_comments_item.tpl
+++ /dev/null
@@ -1,8 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="notif-item">
- <a href="{{$item_link}}" target="friendica-notifications"><img src="{{$item_image}}" class="notif-image">{{$item_text}} <span class="notif-when">{{$item_when}}</span></a>
-</div> \ No newline at end of file
diff --git a/view/tpl/smarty3/notifications_dislikes_item.tpl b/view/tpl/smarty3/notifications_dislikes_item.tpl
deleted file mode 100644
index 9913e6cf7..000000000
--- a/view/tpl/smarty3/notifications_dislikes_item.tpl
+++ /dev/null
@@ -1,8 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="notif-item">
- <a href="{{$item_link}}" target="friendica-notifications"><img src="{{$item_image}}" class="notif-image">{{$item_text}} <span class="notif-when">{{$item_when}}</span></a>
-</div> \ No newline at end of file
diff --git a/view/tpl/smarty3/notifications_friends_item.tpl b/view/tpl/smarty3/notifications_friends_item.tpl
deleted file mode 100644
index 9913e6cf7..000000000
--- a/view/tpl/smarty3/notifications_friends_item.tpl
+++ /dev/null
@@ -1,8 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="notif-item">
- <a href="{{$item_link}}" target="friendica-notifications"><img src="{{$item_image}}" class="notif-image">{{$item_text}} <span class="notif-when">{{$item_when}}</span></a>
-</div> \ No newline at end of file
diff --git a/view/tpl/smarty3/notifications_likes_item.tpl b/view/tpl/smarty3/notifications_likes_item.tpl
deleted file mode 100644
index 792b285bc..000000000
--- a/view/tpl/smarty3/notifications_likes_item.tpl
+++ /dev/null
@@ -1,8 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="notif-item">
- <a href="{{$item_link}}" target="friendica-notification"><img src="{{$item_image}}" class="notif-image">{{$item_text}} <span class="notif-when">{{$item_when}}</span></a>
-</div> \ No newline at end of file
diff --git a/view/tpl/smarty3/notifications_network_item.tpl b/view/tpl/smarty3/notifications_network_item.tpl
deleted file mode 100644
index c3381d682..000000000
--- a/view/tpl/smarty3/notifications_network_item.tpl
+++ /dev/null
@@ -1,8 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="notif-item">
- <a href="{{$item_link}}" target="friendica-notifications"><img src="{{$item_image}}" class="notif-image">{{$item_text}} <span class="notif-when">{{$item_when}}</span></a>
-</div>
diff --git a/view/tpl/smarty3/notifications_posts_item.tpl b/view/tpl/smarty3/notifications_posts_item.tpl
deleted file mode 100644
index 9913e6cf7..000000000
--- a/view/tpl/smarty3/notifications_posts_item.tpl
+++ /dev/null
@@ -1,8 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="notif-item">
- <a href="{{$item_link}}" target="friendica-notifications"><img src="{{$item_image}}" class="notif-image">{{$item_text}} <span class="notif-when">{{$item_when}}</span></a>
-</div> \ No newline at end of file
diff --git a/view/tpl/smarty3/notify.tpl b/view/tpl/smarty3/notify.tpl
deleted file mode 100644
index 9913e6cf7..000000000
--- a/view/tpl/smarty3/notify.tpl
+++ /dev/null
@@ -1,8 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="notif-item">
- <a href="{{$item_link}}" target="friendica-notifications"><img src="{{$item_image}}" class="notif-image">{{$item_text}} <span class="notif-when">{{$item_when}}</span></a>
-</div> \ No newline at end of file
diff --git a/view/tpl/smarty3/oauth_authorize.tpl b/view/tpl/smarty3/oauth_authorize.tpl
deleted file mode 100644
index d7f1963d2..000000000
--- a/view/tpl/smarty3/oauth_authorize.tpl
+++ /dev/null
@@ -1,15 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$title}}</h1>
-
-<div class='oauthapp'>
- <img src='{{$app.icon}}'>
- <h4>{{$app.name}}</h4>
-</div>
-<h3>{{$authorize}}</h3>
-<form method="POST">
-<div class="settings-submit-wrapper"><input class="settings-submit" type="submit" name="oauth_yes" value="{{$yes}}" /></div>
-</form>
diff --git a/view/tpl/smarty3/oauth_authorize_done.tpl b/view/tpl/smarty3/oauth_authorize_done.tpl
deleted file mode 100644
index 12d4c6f48..000000000
--- a/view/tpl/smarty3/oauth_authorize_done.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$title}}</h1>
-
-<p>{{$info}}</p>
-<code>{{$code}}</code>
diff --git a/view/tpl/smarty3/oembed_video.tpl b/view/tpl/smarty3/oembed_video.tpl
deleted file mode 100644
index bdfa11509..000000000
--- a/view/tpl/smarty3/oembed_video.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<a href='{{$embedurl}}' onclick='this.innerHTML=Base64.decode("{{$escapedhtml}}"); return false;' style='float:left; margin: 1em; position: relative;'>
- <img width='{{$tw}}' height='{{$th}}' src='{{$turl}}' >
- <div style='position: absolute; top: 0px; left: 0px; width: {{$twpx}}; height: {{$thpx}}; background: url({{$baseurl}}/images/icons/48/play.png) no-repeat center center;'></div>
-</a>
diff --git a/view/tpl/smarty3/oexchange_xrd.tpl b/view/tpl/smarty3/oexchange_xrd.tpl
deleted file mode 100644
index 04a8e1847..000000000
--- a/view/tpl/smarty3/oexchange_xrd.tpl
+++ /dev/null
@@ -1,38 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<?xml version='1.0' encoding='UTF-8'?>
-<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
-
- <Subject>{{$base}}</Subject>
-
- <Property
- type="http://www.oexchange.org/spec/0.8/prop/vendor">Friendika</Property>
- <Property
- type="http://www.oexchange.org/spec/0.8/prop/title">Friendika Social Network</Property>
- <Property
- type="http://www.oexchange.org/spec/0.8/prop/name">Friendika</Property>
- <Property
- type="http://www.oexchange.org/spec/0.8/prop/prompt">Send to Friendika</Property>
-
- <Link
- rel="icon"
- href="{{$base}}/images/friendika-16.png"
- type="image/png"
- />
-
- <Link
- rel="icon32"
- href="{{$base}}/images/friendika-32.png"
- type="image/png"
- />
-
- <Link
- rel= "http://www.oexchange.org/spec/0.8/rel/offer"
- href="{{$base}}/oexchange"
- type="text/html"
- />
-</XRD>
-
diff --git a/view/tpl/smarty3/opensearch.tpl b/view/tpl/smarty3/opensearch.tpl
deleted file mode 100644
index 63d2a1752..000000000
--- a/view/tpl/smarty3/opensearch.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
- <ShortName>Friendika@{{$nodename}}</ShortName>
- <Description>Search in Friendika@{{$nodename}}</Description>
- <Contact>http://bugs.friendika.com/</Contact>
- <Image height="16" width="16" type="image/png">{{$baseurl}}/images/friendika-16.png</Image>
- <Image height="64" width="64" type="image/png">{{$baseurl}}/images/friendika-64.png</Image>
- <Url type="text/html"
- template="{{$baseurl}}/search?search={searchTerms}"/>
- <Url type="application/opensearchdescription+xml"
- rel="self"
- template="{{$baseurl}}/opensearch" />
-</OpenSearchDescription> \ No newline at end of file
diff --git a/view/tpl/smarty3/page_display.tpl b/view/tpl/smarty3/page_display.tpl
deleted file mode 100644
index 0f02086f2..000000000
--- a/view/tpl/smarty3/page_display.tpl
+++ /dev/null
@@ -1,12 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class=page">
- <h3 class="page-title">{{$title}}</h3>
-
- <div class="page-author"><a class=="page-author-link" href="{{$auth_url}}">{{$author}}</a></div>
- <div class="page-date">{{$date}}</div>
- <div class="page-body">body</div>
-</div>
diff --git a/view/tpl/smarty3/pagetypes.tpl b/view/tpl/smarty3/pagetypes.tpl
deleted file mode 100644
index 15cd3047a..000000000
--- a/view/tpl/smarty3/pagetypes.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
- {{include file="field_radio.tpl" field=$page_normal}}
- {{include file="field_radio.tpl" field=$page_community}}
- {{include file="field_radio.tpl" field=$page_prvgroup}}
- {{include file="field_radio.tpl" field=$page_soapbox}}
- {{include file="field_radio.tpl" field=$page_freelove}}
diff --git a/view/tpl/smarty3/peoplefind.tpl b/view/tpl/smarty3/peoplefind.tpl
deleted file mode 100644
index 5417ee0ed..000000000
--- a/view/tpl/smarty3/peoplefind.tpl
+++ /dev/null
@@ -1,19 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="peoplefind-sidebar" class="widget">
- <h3>{{$findpeople}}</h3>
- <div id="peoplefind-desc">{{$desc}}</div>
- <form action="dirfind" method="post" />
- <input id="side-peoplefind-url" type="text" name="search" size="24" title="{{$hint}}" /><input id="side-peoplefind-submit" type="submit" name="submit" value="{{$findthem}}" />
- </form>
- <div class="side-link" id="side-match-link"><a href="match" >{{$similar}}</a></div>
- <div class="side-link" id="side-suggest-link"><a href="suggest" >{{$suggest}}</a></div>
- <div class="side-link" id="side-random-profile-link" ><a href="randprof" target="extlink" >{{$random}}</a></div>
- {{if $inv}}
- <div class="side-link" id="side-invite-link" ><a href="invite" >{{$inv}}</a></div>
- {{/if}}
-</div>
-
diff --git a/view/tpl/smarty3/photo_album.tpl b/view/tpl/smarty3/photo_album.tpl
deleted file mode 100644
index 56ee6b61c..000000000
--- a/view/tpl/smarty3/photo_album.tpl
+++ /dev/null
@@ -1,12 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="photo-album-image-wrapper" id="photo-album-image-wrapper-{{$id}}">
- <a href="{{$photolink}}" class="photo-album-photo-link" id="photo-album-photo-link-{{$id}}" title="{{$phototitle}}">
- <img src="{{$imgsrc}}" alt="{{$imgalt}}" title="{{$phototitle}}" class="photo-album-photo lframe resize{{$twist}}" id="photo-album-photo-{{$id}}" />
- <p class='caption'>{{$desc}}</p>
- </a>
-</div>
-<div class="photo-album-image-wrapper-end"></div>
diff --git a/view/tpl/smarty3/photo_albums.tpl b/view/tpl/smarty3/photo_albums.tpl
deleted file mode 100644
index 8a31e030c..000000000
--- a/view/tpl/smarty3/photo_albums.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="side-bar-photos-albums" class="widget">
-<h3><a href="{{$baseurl}}/photos/{{$nick}}" title="{{$title}}" >{{$title}}</a></h3>
-{{if $albums}}
-<ul>
-{{foreach $albums as $al}}
-<li><a href="{{$baseurl}}/photos/{{$nick}}/{{$al.bin2hex}}">{{$al.album}}</a></li>
-{{/foreach}}
-</ul>
-{{/if}}
-{{if $upload}}
-<div id="photo-albums-upload-link"><a href="{{$baseurl}}/photos/{{$nick}}/upload" title="{{$upload}}">{{$upload}}</a></div>
-{{/if}}
-</div>
diff --git a/view/tpl/smarty3/photo_drop.tpl b/view/tpl/smarty3/photo_drop.tpl
deleted file mode 100644
index ed500fd0a..000000000
--- a/view/tpl/smarty3/photo_drop.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-{{$id}}" >
- <a href="item/drop/{{$id}}" onclick="return confirmDelete();" class="icon drophide" title="{{$delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>
-</div>
-<div class="wall-item-delete-end"></div>
diff --git a/view/tpl/smarty3/photo_edit.tpl b/view/tpl/smarty3/photo_edit.tpl
deleted file mode 100644
index fefe7f10b..000000000
--- a/view/tpl/smarty3/photo_edit.tpl
+++ /dev/null
@@ -1,55 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<form action="photos/{{$nickname}}/{{$resource_id}}" method="post" id="photo_edit_form" >
-
- <input type="hidden" name="item_id" value="{{$item_id}}" />
-
- <label id="photo-edit-albumname-label" for="photo-edit-albumname">{{$newalbum}}</label>
- <input id="photo-edit-albumname" type="text" size="32" name="albname" value="{{$album}}" />
-
- <div id="photo-edit-albumname-end"></div>
-
- <label id="photo-edit-caption-label" for="photo-edit-caption">{{$capt_label}}</label>
- <input id="photo-edit-caption" type="text" size="84" name="desc" value="{{$caption}}" />
-
- <div id="photo-edit-caption-end"></div>
-
- <label id="photo-edit-tags-label" for="photo-edit-newtag" >{{$tag_label}}</label>
- <input name="newtag" id="photo-edit-newtag" size="84" title="{{$help_tags}}" type="text" />
-
- <div id="photo-edit-tags-end"></div>
- <div id="photo-edit-rotate-wrapper">
- <div id="photo-edit-rotate-label">
- {{$rotatecw}}<br>
- {{$rotateccw}}
- </div>
- <input type="radio" name="rotate" value="1" /><br>
- <input type="radio" name="rotate" value="2" />
- </div>
- <div id="photo-edit-rotate-end"></div>
-
- <div id="photo-edit-perms" class="photo-edit-perms" >
- <a href="#photo-edit-perms-select" id="photo-edit-perms-menu" class="button popupbox" title="{{$permissions}}"/>
- <span id="jot-perms-icon" class="icon {{$lockstate}}" ></span>{{$permissions}}
- </a>
- <div id="photo-edit-perms-menu-end"></div>
-
- <div style="display: none;">
- <div id="photo-edit-perms-select" >
- {{$aclselect}}
- </div>
- </div>
- </div>
- <div id="photo-edit-perms-end"></div>
-
- <input id="photo-edit-submit-button" type="submit" name="submit" value="{{$submit}}" />
- <input id="photo-edit-delete-button" type="submit" name="delete" value="{{$delete}}" onclick="return confirmDelete()"; />
-
- <div id="photo-edit-end"></div>
-</form>
-
-
diff --git a/view/tpl/smarty3/photo_item.tpl b/view/tpl/smarty3/photo_item.tpl
deleted file mode 100644
index 7d6ac96ee..000000000
--- a/view/tpl/smarty3/photo_item.tpl
+++ /dev/null
@@ -1,27 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="wall-item-outside-wrapper{{$indent}}" id="wall-item-outside-wrapper-{{$id}}" >
- <div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-{{$id}}" >
- <a href="{{$profile_url}}" title="View {{$name}}'s profile" class="wall-item-photo-link" id="wall-item-photo-link-{{$id}}">
- <img src="{{$thumb}}" class="wall-item-photo" id="wall-item-photo-{{$id}}" style="height: 80px; width: 80px;" alt="{{$name}}" /></a>
- </div>
-
- <div class="wall-item-wrapper" id="wall-item-wrapper-{{$id}}" >
- <a href="{{$profile_url}}" title="View {{$name}}'s profile" class="wall-item-name-link"><span class="wall-item-name" id="wall-item-name-{{$id}}" >{{$name}}</span></a>
- <div class="wall-item-ago" id="wall-item-ago-{{$id}}">{{$ago}}</div>
- </div>
- <div class="wall-item-content" id="wall-item-content-{{$id}}" >
- <div class="wall-item-title" id="wall-item-title-{{$id}}">{{$title}}</div>
- <div class="wall-item-body" id="wall-item-body-{{$id}}" >{{$body}}</div>
- </div>
- {{$drop}}
- <div class="wall-item-wrapper-end"></div>
- <div class="wall-item-comment-separator"></div>
- {{$comment}}
-
-<div class="wall-item-outside-wrapper-end{{$indent}}" ></div>
-</div>
-
diff --git a/view/tpl/smarty3/photo_top.tpl b/view/tpl/smarty3/photo_top.tpl
deleted file mode 100644
index b34e1e639..000000000
--- a/view/tpl/smarty3/photo_top.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<div class="photo-top-image-wrapper lframe" id="photo-top-image-wrapper-{{$photo.id}}">
- <a href="{{$photo.link}}" class="photo-top-photo-link" id="photo-top-photo-link-{{$photo.id}}" title="{{$photo.title}}">
- <img src="{{$photo.src}}" alt="{{$photo.alt}}" title="{{$photo.title}}" class="photo-top-photo{{$photo.twist}}" id="photo-top-photo-{{$photo.id}}" />
- </a>
- <div class="photo-top-album-name"><a href="{{$photo.album.link}}" class="photo-top-album-link" title="{{$photo.album.alt}}" >{{$photo.album.name}}</a></div>
-</div>
-
diff --git a/view/tpl/smarty3/photo_view.tpl b/view/tpl/smarty3/photo_view.tpl
deleted file mode 100644
index 94f71bdd8..000000000
--- a/view/tpl/smarty3/photo_view.tpl
+++ /dev/null
@@ -1,42 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="live-display"></div>
-<h3><a href="{{$album.0}}">{{$album.1}}</a></h3>
-
-<div id="photo-edit-link-wrap">
-{{if $tools}}
-<a id="photo-edit-link" href="{{$tools.edit.0}}">{{$tools.edit.1}}</a>
-|
-<a id="photo-toprofile-link" href="{{$tools.profile.0}}">{{$tools.profile.1}}</a>
-{{/if}}
-{{if $lock}} | <img src="images/lock_icon.gif" class="lockview" alt="{{$lock}}" onclick="lockview(event,'photo/{{$id}}');" /> {{/if}}
-</div>
-
-{{if $prevlink}}<div id="photo-prev-link"><a href="{{$prevlink.0}}">{{$prevlink.1}}</a></div>{{/if}}
-<div id="photo-photo"><a href="{{$photo.href}}" title="{{$photo.title}}"><img src="{{$photo.src}}" /></a></div>
-{{if $nextlink}}<div id="photo-next-link"><a href="{{$nextlink.0}}">{{$nextlink.1}}</a></div>{{/if}}
-<div id="photo-photo-end"></div>
-<div id="photo-caption">{{$desc}}</div>
-{{if $tags}}
-<div id="in-this-photo-text">{{$tags.0}}</div>
-<div id="in-this-photo">{{$tags.1}}</div>
-{{/if}}
-{{if $tags.2}}<div id="tag-remove"><a href="{{$tags.2}}">{{$tags.3}}</a></div>{{/if}}
-
-{{if $edit}}{{$edit}}{{/if}}
-
-{{if $likebuttons}}
-<div id="photo-like-div">
- {{$likebuttons}}
- {{$like}}
- {{$dislike}}
-</div>
-{{/if}}
-
-{{$comments}}
-
-{{$paginate}}
-
diff --git a/view/tpl/smarty3/photos_recent.tpl b/view/tpl/smarty3/photos_recent.tpl
deleted file mode 100644
index cb2411df3..000000000
--- a/view/tpl/smarty3/photos_recent.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$title}}</h3>
-{{if $can_post}}
-<a id="photo-top-upload-link" href="{{$upload.1}}">{{$upload.0}}</a>
-{{/if}}
-
-<div class="photos">
-{{foreach $photos as $photo}}
- {{include file="photo_top.tpl"}}
-{{/foreach}}
-</div>
-<div class="photos-end"></div>
diff --git a/view/tpl/smarty3/photos_upload.tpl b/view/tpl/smarty3/photos_upload.tpl
deleted file mode 100644
index 713e1169d..000000000
--- a/view/tpl/smarty3/photos_upload.tpl
+++ /dev/null
@@ -1,51 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$pagename}}</h3>
-
-<div id="photos-usage-message">{{$usage}}</div>
-
-<form action="photos/{{$nickname}}" enctype="multipart/form-data" method="post" name="photos-upload-form" id="photos-upload-form" >
- <div id="photos-upload-new-wrapper" >
- <div id="photos-upload-newalbum-div">
- <label id="photos-upload-newalbum-text" for="photos-upload-newalbum" >{{$newalbum}}</label>
- </div>
- <input id="photos-upload-newalbum" type="text" name="newalbum" />
- </div>
- <div id="photos-upload-new-end"></div>
- <div id="photos-upload-exist-wrapper">
- <div id="photos-upload-existing-album-text">{{$existalbumtext}}</div>
- {{$albumselect}}
- </div>
- <div id="photos-upload-exist-end"></div>
-
- <div id="photos-upload-noshare-div" class="photos-upload-noshare-div" >
- <input id="photos-upload-noshare" type="checkbox" name="not_visible" value="1" />
- <label id="photos-upload-noshare-text" for="photos-upload-noshare" >{{$nosharetext}}</label>
- </div>
-
-
- <div id="photos-upload-perms" class="photos-upload-perms" >
- <a href="#photos-upload-permissions-wrapper" id="photos-upload-perms-menu" class="button popupbox" />
- <span id="jot-perms-icon" class="icon {{$lockstate}}" ></span>{{$permissions}}
- </a>
- </div>
- <div id="photos-upload-perms-end"></div>
-
- <div style="display: none;">
- <div id="photos-upload-permissions-wrapper">
- {{$aclselect}}
- </div>
- </div>
-
- <div id="photos-upload-spacer"></div>
-
- {{$uploader}}
-
- {{$default}}
-
- <div class="photos-upload-end" ></div>
-</form>
-
diff --git a/view/tpl/smarty3/poco_entry_xml.tpl b/view/tpl/smarty3/poco_entry_xml.tpl
deleted file mode 100644
index d6e139cb5..000000000
--- a/view/tpl/smarty3/poco_entry_xml.tpl
+++ /dev/null
@@ -1,12 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<entry>
-{{if $entry.id}}<id>{{$entry.id}}</id>{{/if}}
-{{if $entry.displayName}}<displayName>{{$entry.displayName}}</displayName>{{/if}}
-{{if $entry.preferredUsername}}<preferredUsername>{{$entry.preferredUsername}}</preferredUsername>{{/if}}
-{{if $entry.urls}}{{foreach $entry.urls as $url}}<urls><value>{{$url.value}}</value><type>{{$url.type}}</type></urls>{{/foreach}}{{/if}}
-{{if $entry.photos}}{{foreach $entry.photos as $photo}}<photos><value>{{$photo.value}}</value><type>{{$photo.type}}</type></photos>{{/foreach}}{{/if}}
-</entry>
diff --git a/view/tpl/smarty3/poco_xml.tpl b/view/tpl/smarty3/poco_xml.tpl
deleted file mode 100644
index b8cd8fc08..000000000
--- a/view/tpl/smarty3/poco_xml.tpl
+++ /dev/null
@@ -1,23 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<?xml version="1.0" encoding="utf-8"?>
-<response>
-{{if $response.sorted}}<sorted>{{$response.sorted}}</sorted>{{/if}}
-{{if $response.filtered}}<filtered>{{$response.filtered}}</filtered>{{/if}}
-{{if $response.updatedSince}}<updatedSince>{{$response.updatedSince}}</updatedSince>{{/if}}
-<startIndex>{{$response.startIndex}}</startIndex>
-<itemsPerPage>{{$response.itemsPerPage}}</itemsPerPage>
-<totalResults>{{$response.totalResults}}</totalResults>
-
-
-{{if $response.totalResults}}
-{{foreach $response.entry as $entry}}
-{{include file="poco_entry_xml.tpl"}}
-{{/foreach}}
-{{else}}
-<entry></entry>
-{{/if}}
-</response>
diff --git a/view/tpl/smarty3/poke_content.tpl b/view/tpl/smarty3/poke_content.tpl
deleted file mode 100644
index 6235aca0c..000000000
--- a/view/tpl/smarty3/poke_content.tpl
+++ /dev/null
@@ -1,37 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$title}}</h3>
-
-<div id="poke-desc">{{$desc}}</div>
-
-<form action="poke" method="get">
-<br />
-<br />
-
-<div id="poke-recip-label">{{$clabel}}</div>
-<br />
-<input id="poke-recip" type="text" size="64" maxlength="255" value="{{$name}}" name="pokename" autocomplete="off" />
-<input id="poke-recip-complete" type="hidden" value="{{$id}}" name="cid" />
-<input id="poke-parent" type="hidden" value="{{$parent}}" name="parent" />
-<br />
-<br />
-<div id="poke-action-label">{{$choice}}</div>
-<br />
-<br />
-<select name="verb" id="poke-verb-select" >
-{{foreach $verbs as $v}}
-<option value="{{$v.0}}">{{$v.1}}</option>
-{{/foreach}}
-</select>
-<br />
-<br />
-<div id="poke-private-desc">{{$prv_desc}}</div>
-<input type="checkbox" name="private" {{if $parent}}disabled="disabled"{{/if}} value="1" />
-<br />
-<br />
-<input type="submit" name="submit" value="{{$submit}}" />
-</form>
-
diff --git a/view/tpl/smarty3/posted_date_widget.tpl b/view/tpl/smarty3/posted_date_widget.tpl
deleted file mode 100644
index 2f5838edb..000000000
--- a/view/tpl/smarty3/posted_date_widget.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="datebrowse-sidebar" class="widget">
- <h3>{{$title}}</h3>
-<script>function dateSubmit(dateurl) { window.location.href = dateurl; } </script>
-<select id="posted-date-selector" name="posted-date-select" onchange="dateSubmit($(this).val());" size="{{$size}}">
-{{foreach $dates as $d}}
-<option value="{{$url}}/{{$d.1}}/{{$d.2}}" >{{$d.0}}</option>
-{{/foreach}}
-</select>
-</div>
diff --git a/view/tpl/smarty3/profed_head.tpl b/view/tpl/smarty3/profed_head.tpl
deleted file mode 100644
index 37a038d4f..000000000
--- a/view/tpl/smarty3/profed_head.tpl
+++ /dev/null
@@ -1,41 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<script language="javascript" type="text/javascript"
- src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
- <script language="javascript" type="text/javascript">
-
-
-tinyMCE.init({
- theme : "advanced",
- mode : "{{$editselect}}",
- plugins : "bbcode,paste",
- theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
- theme_advanced_buttons2 : "",
- theme_advanced_buttons3 : "",
- theme_advanced_toolbar_location : "top",
- theme_advanced_toolbar_align : "center",
- theme_advanced_blockformats : "blockquote,code",
- gecko_spellcheck : true,
- paste_text_sticky : true,
- entity_encoding : "raw",
- add_unload_trigger : false,
- remove_linebreaks : false,
- force_p_newlines : false,
- force_br_newlines : true,
- forced_root_block : '',
- content_css: "{{$baseurl}}/view/custom_tinymce.css",
- theme_advanced_path : false,
- setup : function(ed) {
- ed.onInit.add(function(ed) {
- ed.pasteAsPlainText = true;
- });
- }
-
-});
-
-
-</script>
-
diff --git a/view/tpl/smarty3/profile-hide-friends.tpl b/view/tpl/smarty3/profile-hide-friends.tpl
deleted file mode 100644
index 6e3d395d0..000000000
--- a/view/tpl/smarty3/profile-hide-friends.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<p id="hide-friends-text">
-{{$desc}}
-</p>
-
- <div id="hide-friends-yes-wrapper">
- <label id="hide-friends-yes-label" for="hide-friends-yes">{{$yes_str}}</label>
- <input type="radio" name="hide-friends" id="hide-friends-yes" {{$yes_selected}} value="1" />
-
- <div id="hide-friends-break" ></div>
- </div>
- <div id="hide-friends-no-wrapper">
- <label id="hide-friends-no-label" for="hide-friends-no">{{$no_str}}</label>
- <input type="radio" name="hide-friends" id="hide-friends-no" {{$no_selected}} value="0" />
-
- <div id="hide-friends-end"></div>
- </div>
diff --git a/view/tpl/smarty3/profile-hide-wall.tpl b/view/tpl/smarty3/profile-hide-wall.tpl
deleted file mode 100644
index 755908d17..000000000
--- a/view/tpl/smarty3/profile-hide-wall.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<p id="hide-wall-text">
-{{$desc}}
-</p>
-
- <div id="hide-wall-yes-wrapper">
- <label id="hide-wall-yes-label" for="hide-wall-yes">{{$yes_str}}</label>
- <input type="radio" name="hidewall" id="hide-wall-yes" {{$yes_selected}} value="1" />
-
- <div id="hide-wall-break" ></div>
- </div>
- <div id="hide-wall-no-wrapper">
- <label id="hide-wall-no-label" for="hide-wall-no">{{$no_str}}</label>
- <input type="radio" name="hidewall" id="hide-wall-no" {{$no_selected}} value="0" />
-
- <div id="hide-wall-end"></div>
- </div>
diff --git a/view/tpl/smarty3/profile-in-directory.tpl b/view/tpl/smarty3/profile-in-directory.tpl
deleted file mode 100644
index 0efd1bf5c..000000000
--- a/view/tpl/smarty3/profile-in-directory.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<p id="profile-in-directory">
-{{$desc}}
-</p>
-
- <div id="profile-in-dir-yes-wrapper">
- <label id="profile-in-dir-yes-label" for="profile-in-dir-yes">{{$yes_str}}</label>
- <input type="radio" name="profile_in_directory" id="profile-in-dir-yes" {{$yes_selected}} value="1" />
-
- <div id="profile-in-dir-break" ></div>
- </div>
- <div id="profile-in-dir-no-wrapper">
- <label id="profile-in-dir-no-label" for="profile-in-dir-no">{{$no_str}}</label>
- <input type="radio" name="profile_in_directory" id="profile-in-dir-no" {{$no_selected}} value="0" />
-
- <div id="profile-in-dir-end"></div>
- </div>
diff --git a/view/tpl/smarty3/profile-in-netdir.tpl b/view/tpl/smarty3/profile-in-netdir.tpl
deleted file mode 100644
index b9cb456ea..000000000
--- a/view/tpl/smarty3/profile-in-netdir.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<p id="profile-in-directory">
-{{$desc}}
-</p>
-
- <div id="profile-in-netdir-yes-wrapper">
- <label id="profile-in-netdir-yes-label" for="profile-in-netdir-yes">{{$yes_str}}</label>
- <input type="radio" name="profile_in_netdirectory" id="profile-in-netdir-yes" {{$yes_selected}} value="1" />
-
- <div id="profile-in-netdir-break" ></div>
- </div>
- <div id="profile-in-netdir-no-wrapper">
- <label id="profile-in-netdir-no-label" for="profile-in-netdir-no">{{$no_str}}</label>
- <input type="radio" name="profile_in_netdirectory" id="profile-in-netdir-no" {{$no_selected}} value="0" />
-
- <div id="profile-in-netdir-end"></div>
- </div>
diff --git a/view/tpl/smarty3/profile_advanced.tpl b/view/tpl/smarty3/profile_advanced.tpl
deleted file mode 100644
index f8743c011..000000000
--- a/view/tpl/smarty3/profile_advanced.tpl
+++ /dev/null
@@ -1,175 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h2>{{$title}}</h2>
-
-<dl id="aprofile-fullname" class="aprofile">
- <dt>{{$profile.fullname.0}}</dt>
- <dd>{{$profile.fullname.1}}</dd>
-</dl>
-
-{{if $profile.gender}}
-<dl id="aprofile-gender" class="aprofile">
- <dt>{{$profile.gender.0}}</dt>
- <dd>{{$profile.gender.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.birthday}}
-<dl id="aprofile-birthday" class="aprofile">
- <dt>{{$profile.birthday.0}}</dt>
- <dd>{{$profile.birthday.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.age}}
-<dl id="aprofile-age" class="aprofile">
- <dt>{{$profile.age.0}}</dt>
- <dd>{{$profile.age.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.marital}}
-<dl id="aprofile-marital" class="aprofile">
- <dt><span class="heart">&hearts;</span> {{$profile.marital.0}}</dt>
- <dd>{{$profile.marital.1}}{{if $profile.marital.with}} ({{$profile.marital.with}}){{/if}}{{if $profile.howlong}} {{$profile.howlong}}{{/if}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.sexual}}
-<dl id="aprofile-sexual" class="aprofile">
- <dt>{{$profile.sexual.0}}</dt>
- <dd>{{$profile.sexual.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.keywords}}
-<dl id="aprofile-tags" class="aprofile">
- <dt>{{$profile.keywords.0}}</dt>
- <dd>{{$profile.keywords.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.homepage}}
-<dl id="aprofile-homepage" class="aprofile">
- <dt>{{$profile.homepage.0}}</dt>
- <dd>{{$profile.homepage.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.hometown}}
-<dl id="aprofile-hometown" class="aprofile">
- <dt>{{$profile.hometown.0}}</dt>
- <dd>{{$profile.hometown.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.politic}}
-<dl id="aprofile-politic" class="aprofile">
- <dt>{{$profile.politic.0}}</dt>
- <dd>{{$profile.politic.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.religion}}
-<dl id="aprofile-religion" class="aprofile">
- <dt>{{$profile.religion.0}}</dt>
- <dd>{{$profile.religion.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.about}}
-<dl id="aprofile-about" class="aprofile">
- <dt>{{$profile.about.0}}</dt>
- <dd>{{$profile.about.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.interest}}
-<dl id="aprofile-interest" class="aprofile">
- <dt>{{$profile.interest.0}}</dt>
- <dd>{{$profile.interest.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.likes}}
-<dl id="aprofile-likes" class="aprofile">
- <dt>{{$profile.likes.0}}</dt>
- <dd>{{$profile.likes.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.dislikes}}
-<dl id="aprofile-dislikes" class="aprofile">
- <dt>{{$profile.dislikes.0}}</dt>
- <dd>{{$profile.dislikes.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.contact}}
-<dl id="aprofile-contact" class="aprofile">
- <dt>{{$profile.contact.0}}</dt>
- <dd>{{$profile.contact.1}}</dd>
-</dl>
-{{/if}}
-
-
-{{if $profile.music}}
-<dl id="aprofile-music" class="aprofile">
- <dt>{{$profile.music.0}}</dt>
- <dd>{{$profile.music.1}}</dd>
-</dl>
-{{/if}}
-
-
-{{if $profile.book}}
-<dl id="aprofile-book" class="aprofile">
- <dt>{{$profile.book.0}}</dt>
- <dd>{{$profile.book.1}}</dd>
-</dl>
-{{/if}}
-
-
-{{if $profile.tv}}
-<dl id="aprofile-tv" class="aprofile">
- <dt>{{$profile.tv.0}}</dt>
- <dd>{{$profile.tv.1}}</dd>
-</dl>
-{{/if}}
-
-
-{{if $profile.film}}
-<dl id="aprofile-film" class="aprofile">
- <dt>{{$profile.film.0}}</dt>
- <dd>{{$profile.film.1}}</dd>
-</dl>
-{{/if}}
-
-
-{{if $profile.romance}}
-<dl id="aprofile-romance" class="aprofile">
- <dt>{{$profile.romance.0}}</dt>
- <dd>{{$profile.romance.1}}</dd>
-</dl>
-{{/if}}
-
-
-{{if $profile.work}}
-<dl id="aprofile-work" class="aprofile">
- <dt>{{$profile.work.0}}</dt>
- <dd>{{$profile.work.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.education}}
-<dl id="aprofile-education" class="aprofile">
- <dt>{{$profile.education.0}}</dt>
- <dd>{{$profile.education.1}}</dd>
-</dl>
-{{/if}}
-
-
-
-
diff --git a/view/tpl/smarty3/profile_edit.tpl b/view/tpl/smarty3/profile_edit.tpl
deleted file mode 100644
index 3a2652a68..000000000
--- a/view/tpl/smarty3/profile_edit.tpl
+++ /dev/null
@@ -1,316 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{$default}}
-
-<h1>{{$banner}}</h1>
-
-<div id="profile-edit-links">
-<ul>
-<li><a href="profile_photo" id="profile-photo_upload-link" title="{{$profpic}}">{{$profpic}}</a></li>
-<li><a href="profile/{{$profile_id}}/view?tab=profile" id="profile-edit-view-link" title="{{$viewprof}}">{{$viewprof}}</a></li>
-<li><a href="{{$profile_clone_link}}" id="profile-edit-clone-link" title="{{$cr_prof}}">{{$cl_prof}}</a></li>
-<li></li>
-<li><a href="{{$profile_drop_link}}" id="profile-edit-drop-link" title="{{$del_prof}}" {{$disabled}} >{{$del_prof}}</a></li>
-
-</ul>
-</div>
-
-<div id="profile-edit-links-end"></div>
-
-
-<div id="profile-edit-wrapper" >
-<form id="profile-edit-form" name="form1" action="profiles/{{$profile_id}}" method="post" >
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
-<div id="profile-edit-profile-name-wrapper" >
-<label id="profile-edit-profile-name-label" for="profile-edit-profile-name" >{{$lbl_profname}} </label>
-<input type="text" size="32" name="profile_name" id="profile-edit-profile-name" value="{{$profile_name}}" /><div class="required">*</div>
-</div>
-<div id="profile-edit-profile-name-end"></div>
-
-<div id="profile-edit-name-wrapper" >
-<label id="profile-edit-name-label" for="profile-edit-name" >{{$lbl_fullname}} </label>
-<input type="text" size="32" name="name" id="profile-edit-name" value="{{$name}}" />
-</div>
-<div id="profile-edit-name-end"></div>
-
-<div id="profile-edit-pdesc-wrapper" >
-<label id="profile-edit-pdesc-label" for="profile-edit-pdesc" >{{$lbl_title}} </label>
-<input type="text" size="32" name="pdesc" id="profile-edit-pdesc" value="{{$pdesc}}" />
-</div>
-<div id="profile-edit-pdesc-end"></div>
-
-
-<div id="profile-edit-gender-wrapper" >
-<label id="profile-edit-gender-label" for="gender-select" >{{$lbl_gender}} </label>
-{{$gender}}
-</div>
-<div id="profile-edit-gender-end"></div>
-
-<div id="profile-edit-dob-wrapper" >
-<label id="profile-edit-dob-label" for="dob-select" >{{$lbl_bd}} </label>
-<div id="profile-edit-dob" >
-{{$dob}} {{$age}}
-</div>
-</div>
-<div id="profile-edit-dob-end"></div>
-
-{{$hide_friends}}
-
-<div class="profile-edit-submit-wrapper" >
-<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
-</div>
-<div class="profile-edit-submit-end"></div>
-
-
-<div id="profile-edit-address-wrapper" >
-<label id="profile-edit-address-label" for="profile-edit-address" >{{$lbl_address}} </label>
-<input type="text" size="32" name="address" id="profile-edit-address" value="{{$address}}" />
-</div>
-<div id="profile-edit-address-end"></div>
-
-<div id="profile-edit-locality-wrapper" >
-<label id="profile-edit-locality-label" for="profile-edit-locality" >{{$lbl_city}} </label>
-<input type="text" size="32" name="locality" id="profile-edit-locality" value="{{$locality}}" />
-</div>
-<div id="profile-edit-locality-end"></div>
-
-
-<div id="profile-edit-postal-code-wrapper" >
-<label id="profile-edit-postal-code-label" for="profile-edit-postal-code" >{{$lbl_zip}} </label>
-<input type="text" size="32" name="postal_code" id="profile-edit-postal-code" value="{{$postal_code}}" />
-</div>
-<div id="profile-edit-postal-code-end"></div>
-
-
-<div id="profile-edit-region-wrapper" >
-<label id="profile-edit-region-label" for="profile-edit-region" >{{$lbl_region}} </label>
-<input type="text" size="32" name="region" id="profile-edit-region" value="{{$region}}" />
-</div>
-<div id="profile-edit-region-end"></div>
-
-<div id="profile-edit-country-name-wrapper" >
-<label id="profile-edit-country-name-label" for="profile-edit-country-name" >{{$lbl_country}} </label>
-<input type="text" size="32" name="country_name" id="profile-edit-country-name" value="{{$country_name}}" />
-</div>
-<div id="profile-edit-country-name-end"></div>
-
-<div id="profile-edit-hometown-wrapper" >
-<label id="profile-edit-hometown-label" for="profile-edit-hometown" >{{$lbl_hometown}} </label>
-<input type="text" size="32" name="hometown" id="profile-edit-hometown" value="{{$hometown}}" />
-</div>
-<div id="profile-edit-hometown-end"></div>
-
-<div class="profile-edit-submit-wrapper" >
-<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
-</div>
-<div class="profile-edit-submit-end"></div>
-
-<div id="profile-edit-marital-wrapper" >
-<label id="profile-edit-marital-label" for="profile-edit-marital" >{{$lbl_marital}} </label>
-{{$marital}}
-</div>
-<label id="profile-edit-with-label" for="profile-edit-with" > {{$lbl_with}} </label>
-<input type="text" size="32" name="with" id="profile-edit-with" title="{{$lbl_ex1}}" value="{{$with}}" />
-<label id="profile-edit-howlong-label" for="profile-edit-howlong" > {{$lbl_howlong}} </label>
-<input type="text" size="32" name="howlong" id="profile-edit-howlong" title="{{$lbl_howlong}}" value="{{$howlong}}" />
-
-<div id="profile-edit-marital-end"></div>
-
-<div id="profile-edit-sexual-wrapper" >
-<label id="profile-edit-sexual-label" for="sexual-select" >{{$lbl_sexual}} </label>
-{{$sexual}}
-</div>
-<div id="profile-edit-sexual-end"></div>
-
-
-
-<div id="profile-edit-homepage-wrapper" >
-<label id="profile-edit-homepage-label" for="profile-edit-homepage" >{{$lbl_homepage}} </label>
-<input type="text" size="32" name="homepage" id="profile-edit-homepage" value="{{$homepage}}" />
-</div>
-<div id="profile-edit-homepage-end"></div>
-
-<div id="profile-edit-politic-wrapper" >
-<label id="profile-edit-politic-label" for="profile-edit-politic" >{{$lbl_politic}} </label>
-<input type="text" size="32" name="politic" id="profile-edit-politic" value="{{$politic}}" />
-</div>
-<div id="profile-edit-politic-end"></div>
-
-<div id="profile-edit-religion-wrapper" >
-<label id="profile-edit-religion-label" for="profile-edit-religion" >{{$lbl_religion}} </label>
-<input type="text" size="32" name="religion" id="profile-edit-religion" value="{{$religion}}" />
-</div>
-<div id="profile-edit-religion-end"></div>
-
-<div id="profile-edit-pubkeywords-wrapper" >
-<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords" >{{$lbl_pubkey}} </label>
-<input type="text" size="32" name="keywords" id="profile-edit-pubkeywords" title="{{$lbl_ex2}}" value="{{$keywords}}" />
-</div><div id="profile-edit-pubkeywords-desc">{{$lbl_pubdsc}}</div>
-<div id="profile-edit-pubkeywords-end"></div>
-
-<div class="profile-edit-submit-wrapper" >
-<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
-</div>
-<div class="profile-edit-submit-end"></div>
-
-<div id="about-jot-wrapper" >
-<p id="about-jot-desc" >
-{{$lbl_about}}
-</p>
-
-<textarea rows="10" cols="72" id="profile-about-text" name="about" >{{$about}}</textarea>
-
-</div>
-<div id="about-jot-end"></div>
-
-
-<div id="interest-jot-wrapper" >
-<p id="interest-jot-desc" >
-{{$lbl_hobbies}}
-</p>
-
-<textarea rows="10" cols="72" id="interest-jot-text" name="interest" >{{$interest}}</textarea>
-
-</div>
-<div id="interest-jot-end"></div>
-
-
-<div id="likes-jot-wrapper" >
-<p id="likes-jot-desc" >
-{{$lbl_likes}}
-</p>
-
-<textarea rows="10" cols="72" id="likes-jot-text" name="likes" >{{$likes}}</textarea>
-
-</div>
-<div id="likes-jot-end"></div>
-
-
-<div id="dislikes-jot-wrapper" >
-<p id="dislikes-jot-desc" >
-{{$lbl_dislikes}}
-</p>
-
-<textarea rows="10" cols="72" id="dislikes-jot-text" name="dislikes" >{{$dislikes}}</textarea>
-
-</div>
-<div id="dislikes-jot-end"></div>
-
-
-<div id="contact-jot-wrapper" >
-<p id="contact-jot-desc" >
-{{$lbl_social}}
-</p>
-
-<textarea rows="10" cols="72" id="contact-jot-text" name="contact" >{{$contact}}</textarea>
-
-</div>
-<div id="contact-jot-end"></div>
-
-
-<div class="profile-edit-submit-wrapper" >
-<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
-</div>
-<div class="profile-edit-submit-end"></div>
-
-
-<div id="music-jot-wrapper" >
-<p id="music-jot-desc" >
-{{$lbl_music}}
-</p>
-
-<textarea rows="10" cols="72" id="music-jot-text" name="music" >{{$music}}</textarea>
-
-</div>
-<div id="music-jot-end"></div>
-
-<div id="book-jot-wrapper" >
-<p id="book-jot-desc" >
-{{$lbl_book}}
-</p>
-
-<textarea rows="10" cols="72" id="book-jot-text" name="book" >{{$book}}</textarea>
-
-</div>
-<div id="book-jot-end"></div>
-
-
-
-<div id="tv-jot-wrapper" >
-<p id="tv-jot-desc" >
-{{$lbl_tv}}
-</p>
-
-<textarea rows="10" cols="72" id="tv-jot-text" name="tv" >{{$tv}}</textarea>
-
-</div>
-<div id="tv-jot-end"></div>
-
-
-
-<div id="film-jot-wrapper" >
-<p id="film-jot-desc" >
-{{$lbl_film}}
-</p>
-
-<textarea rows="10" cols="72" id="film-jot-text" name="film" >{{$film}}</textarea>
-
-</div>
-<div id="film-jot-end"></div>
-
-
-<div class="profile-edit-submit-wrapper" >
-<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
-</div>
-<div class="profile-edit-submit-end"></div>
-
-
-<div id="romance-jot-wrapper" >
-<p id="romance-jot-desc" >
-{{$lbl_love}}
-</p>
-
-<textarea rows="10" cols="72" id="romance-jot-text" name="romance" >{{$romance}}</textarea>
-
-</div>
-<div id="romance-jot-end"></div>
-
-
-
-<div id="work-jot-wrapper" >
-<p id="work-jot-desc" >
-{{$lbl_work}}
-</p>
-
-<textarea rows="10" cols="72" id="work-jot-text" name="work" >{{$work}}</textarea>
-
-</div>
-<div id="work-jot-end"></div>
-
-
-
-<div id="education-jot-wrapper" >
-<p id="education-jot-desc" >
-{{$lbl_school}}
-</p>
-
-<textarea rows="10" cols="72" id="education-jot-text" name="education" >{{$education}}</textarea>
-
-</div>
-<div id="education-jot-end"></div>
-
-
-
-<div class="profile-edit-submit-wrapper" >
-<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
-</div>
-<div class="profile-edit-submit-end"></div>
-
-
-</form>
-</div>
-
diff --git a/view/tpl/smarty3/profile_edlink.tpl b/view/tpl/smarty3/profile_edlink.tpl
deleted file mode 100644
index 9424bcc3d..000000000
--- a/view/tpl/smarty3/profile_edlink.tpl
+++ /dev/null
@@ -1,7 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="profile-edit-side-div"><a class="profile-edit-side-link icon edit" title="{{$editprofile}}" href="profiles/{{$profid}}" ></a></div>
-<div class="clear"></div> \ No newline at end of file
diff --git a/view/tpl/smarty3/profile_entry.tpl b/view/tpl/smarty3/profile_entry.tpl
deleted file mode 100644
index 4774fd11b..000000000
--- a/view/tpl/smarty3/profile_entry.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<div class="profile-listing" >
-<div class="profile-listing-photo-wrapper" >
-<a href="profiles/{{$id}}" class="profile-listing-edit-link"><img class="profile-listing-photo" id="profile-listing-photo-{{$id}}" src="{{$photo}}" alt="{{$alt}}" /></a>
-</div>
-<div class="profile-listing-photo-end"></div>
-<div class="profile-listing-name" id="profile-listing-name-{{$id}}"><a href="profiles/{{$id}}" class="profile-listing-edit-link" >{{$profile_name}}</a></div>
-<div class="profile-listing-visible">{{$visible}}</div>
-</div>
-<div class="profile-listing-end"></div>
-
diff --git a/view/tpl/smarty3/profile_listing_header.tpl b/view/tpl/smarty3/profile_listing_header.tpl
deleted file mode 100644
index f77bdcc80..000000000
--- a/view/tpl/smarty3/profile_listing_header.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$header}}</h1>
-<p id="profile-listing-desc" class="button" >
-<a href="profile_photo" >{{$chg_photo}}</a>
-</p>
-<div id="profile-listing-new-link-wrapper" class="button" >
-<a href="{{$cr_new_link}}" id="profile-listing-new-link" title="{{$cr_new}}" >{{$cr_new}}</a>
-</div>
-
diff --git a/view/tpl/smarty3/profile_photo.tpl b/view/tpl/smarty3/profile_photo.tpl
deleted file mode 100644
index 8c4fbfafa..000000000
--- a/view/tpl/smarty3/profile_photo.tpl
+++ /dev/null
@@ -1,34 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$title}}</h1>
-
-<form enctype="multipart/form-data" action="profile_photo" method="post">
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
-<div id="profile-photo-upload-wrapper">
-
-<label id="profile-photo-upload-label" class="form-label" for="profile-photo-upload">{{$lbl_upfile}}</label>
-<input name="userfile" class="form-input" type="file" id="profile-photo-upload" size="48" />
-<div class="clear"></div>
-
-<label id="profile-photo-profiles-label" class="form-label" for="profile-photo-profiles">{{$lbl_profiles}}</label>
-<select name="profile" id="profile-photo-profiles" class="form-input" >
-{{foreach $profiles as $p}}
-<option value="{{$p.id}}" {{if $p.is_default}}selected="selected"{{/if}}>{{$p.name}}</option>
-{{/foreach}}
-</select>
-<div class="clear"></div>
-
-<div id="profile-photo-submit-wrapper">
-<input type="submit" name="submit" id="profile-photo-submit" value="{{$submit}}">
-</div>
-</div>
-
-</form>
-
-<div id="profile-photo-link-select-wrapper">
-{{$select}}
-</div> \ No newline at end of file
diff --git a/view/tpl/smarty3/profile_publish.tpl b/view/tpl/smarty3/profile_publish.tpl
deleted file mode 100644
index 1dc9eb7fc..000000000
--- a/view/tpl/smarty3/profile_publish.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<p id="profile-publish-desc-{{$instance}}">
-{{$pubdesc}}
-</p>
-
- <div id="profile-publish-yes-wrapper-{{$instance}}">
- <label id="profile-publish-yes-label-{{$instance}}" for="profile-publish-yes-{{$instance}}">{{$str_yes}}</label>
- <input type="radio" name="profile_publish_{{$instance}}" id="profile-publish-yes-{{$instance}}" {{$yes_selected}} value="1" />
-
- <div id="profile-publish-break-{{$instance}}" ></div>
- </div>
- <div id="profile-publish-no-wrapper-{{$instance}}">
- <label id="profile-publish-no-label-{{$instance}}" for="profile-publish-no-{{$instance}}">{{$str_no}}</label>
- <input type="radio" name="profile_publish_{{$instance}}" id="profile-publish-no-{{$instance}}" {{$no_selected}} value="0" />
-
- <div id="profile-publish-end-{{$instance}}"></div>
- </div>
diff --git a/view/tpl/smarty3/profile_vcard.tpl b/view/tpl/smarty3/profile_vcard.tpl
deleted file mode 100644
index 422b43720..000000000
--- a/view/tpl/smarty3/profile_vcard.tpl
+++ /dev/null
@@ -1,57 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="vcard">
-
- {{if $profile.edit}}
- <div class="action">
- <a class="profile-edit-side-link icon edit" rel="#profiles-menu" title="{{$profile.edit.3}}" href="#" ><span>{{$profile.edit.1}}</span></a>
- <ul id="profiles-menu" class="menu-popup">
- {{foreach $profile.menu.entries as $e}}
- <li>
- <a href="profiles/{{$e.id}}"><img src='{{$e.photo}}'>{{$e.profile_name}}</a>
- </li>
- {{/foreach}}
- <li><a href="profile_photo" >{{$profile.menu.chg_photo}}</a></li>
- <li><a href="profiles/new" id="profile-listing-new-link">{{$profile.menu.cr_new}}</a></li>
-
- </ul>
- </div>
- {{/if}}
-
- <div class="fn label">{{$profile.name}}</div>
-
- {{if $pdesc}}<div class="title">{{$profile.pdesc}}</div>{{/if}}
- <div id="profile-photo-wrapper"><img class="photo" width="175" height="175" src="{{$profile.photo}}?rev={{$profile.picdate}}" alt="{{$profile.name}}"></div>
-
-
-
- {{if $location}}
- <dl class="location"><dt class="location-label">{{$location}}</dt>
- <dd class="adr">
- {{if $profile.address}}<div class="street-address">{{$profile.address}}</div>{{/if}}
- <span class="city-state-zip">
- <span class="locality">{{$profile.locality}}</span>{{if $profile.locality}}, {{/if}}
- <span class="region">{{$profile.region}}</span>
- <span class="postal-code">{{$profile.postal_code}}</span>
- </span>
- {{if $profile.country_name}}<span class="country-name">{{$profile.country_name}}</span>{{/if}}
- </dd>
- </dl>
- {{/if}}
-
- {{if $gender}}<dl class="mf"><dt class="gender-label">{{$gender}}</dt> <dd class="x-gender">{{$profile.gender}}</dd></dl>{{/if}}
-
-
- {{if $marital}}<dl class="marital"><dt class="marital-label"><span class="heart">&hearts;</span>{{$marital}}</dt><dd class="marital-text">{{$profile.marital}}</dd></dl>{{/if}}
-
- {{if $homepage}}<dl class="homepage"><dt class="homepage-label">{{$homepage}}</dt><dd class="homepage-url"><a href="{{$profile.homepage}}" >{{$profile.homepage}}</a></dd></dl>{{/if}}
-
-
-</div>
-<div id="vcard-end"></div>
-{{$contact_block}}
-
-
diff --git a/view/tpl/smarty3/prv_message.tpl b/view/tpl/smarty3/prv_message.tpl
deleted file mode 100644
index 1f41d2662..000000000
--- a/view/tpl/smarty3/prv_message.tpl
+++ /dev/null
@@ -1,44 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<h3>{{$header}}</h3>
-
-<div id="prvmail-wrapper" >
-<form id="prvmail-form" action="message" method="post" >
-
-{{$parent}}
-
-<div id="prvmail-to-label">{{$to}}</div>
-
-{{if $showinputs}}
-<input type="text" id="recip" name="messagerecip" value="{{$prefill}}" maxlength="255" size="64" tabindex="10" />
-<input type="hidden" id="recip-complete" name="messageto" value="{{$preid}}">
-{{else}}
-{{$select}}
-{{/if}}
-
-<div id="prvmail-subject-label">{{$subject}}</div>
-<input type="text" size="64" maxlength="255" id="prvmail-subject" name="subject" value="{{$subjtxt}}" {{$readonly}} tabindex="11" />
-
-<div id="prvmail-message-label">{{$yourmessage}}</div>
-<textarea rows="8" cols="72" class="prvmail-text" id="prvmail-text" name="body" tabindex="12">{{$text}}</textarea>
-
-
-<div id="prvmail-submit-wrapper" >
- <input type="submit" id="prvmail-submit" name="submit" value="{{$submit}}" tabindex="13" />
- <div id="prvmail-upload-wrapper" >
- <div id="prvmail-upload" class="icon border camera" title="{{$upload}}" ></div>
- </div>
- <div id="prvmail-link-wrapper" >
- <div id="prvmail-link" class="icon border link" title="{{$insert}}" onclick="jotGetLink();" ></div>
- </div>
- <div id="prvmail-rotator-wrapper" >
- <img id="prvmail-rotator" src="images/rotator.gif" alt="{{$wait}}" title="{{$wait}}" style="display: none;" />
- </div>
-</div>
-<div id="prvmail-end"></div>
-</form>
-</div>
diff --git a/view/tpl/smarty3/pwdreset.tpl b/view/tpl/smarty3/pwdreset.tpl
deleted file mode 100644
index e86e1227f..000000000
--- a/view/tpl/smarty3/pwdreset.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$lbl1}}</h3>
-
-<p>
-{{$lbl2}}
-</p>
-<p>
-{{$lbl3}}
-</p>
-<p>
-{{$newpass}}
-</p>
-<p>
-{{$lbl4}} {{$lbl5}}
-</p>
-<p>
-{{$lbl6}}
-</p>
diff --git a/view/tpl/smarty3/register.tpl b/view/tpl/smarty3/register.tpl
deleted file mode 100644
index 98d888f08..000000000
--- a/view/tpl/smarty3/register.tpl
+++ /dev/null
@@ -1,50 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h2>{{$title}}</h2>
-
-<form action="register" method="post" id="register-form">
-
-{{if $registertext}}
-<div id="register-desc" class="descriptive-paragraph">{{$registertext}}</div>
-{{/if}}
-
-{{if $invitations}}
- <p id="register-invite-desc">{{$invite_desc}}</p>
-
- <label for="register-invite" id="label-register-invite" class="register-label">{{$label_invite}}</label>
- <input type="text" maxlength="72" size="32" name="invite_code" id="register-invite" class="register-input" value="{{$invite_code}}" />
- <div id="register-invite-feedback" class="register-feedback"></div>
- <div id="register-invite-end" class="register-field-end"></div>
-{{/if}}
-
- <label for="register-email" id="label-register-email" class="register-label" >{{$label_email}}</label>
- <input type="text" maxlength="72" size="32" name="email" id="register-email" class="register-input" value="{{$email}}" />
- <div id="register-email-feedback" class="register-feedback"></div>
- <div id="register-email-end" class="register-field-end"></div>
-
- <label for="register-password" id="label-register-password" class="register-label" >{{$label_pass1}}</label>
- <input type="password" maxlength="72" size="32" name="password" id="register-password" class="register-input" value="{{$pass1}}" />
- <div id="register-password-feedback" class="register-feedback"></div>
- <div id="register-password-end" class="register-field-end"></div>
-
- <label for="register-password2" id="label-register-password2" class="register-label" >{{$label_pass2}}</label>
- <input type="password" maxlength="72" size="32" name="password2" id="register-password2" class="register-input" value="{{$pass2}}" />
- <div id="register-password2-feedback" class="register-feedback"></div>
- <div id="register-password2-end" class="register-field-end"></div>
-
- {{if $enable_tos}}
- <input type="checkbox" name="tos" id="register-tos" value="1" />
- <label for="register-tos" id="label-register-tos">{{$label_tos}}</label>
- <div id="register-tos-feedback" class="register-feedback"></div>
- <div id="register-tos-end" class="register-field-end"></div>
- {{else}}
- <input type="hidden" name="tos" value="1" />
- {{/if}}
-
- <input type="submit" name="submit" id="register-submit-button" value="{{$submit}}" />
- <div id="register-submit-end" class="register-field-end"></div>
-
-</form>
diff --git a/view/tpl/smarty3/remote_friends_common.tpl b/view/tpl/smarty3/remote_friends_common.tpl
deleted file mode 100644
index 8416b053a..000000000
--- a/view/tpl/smarty3/remote_friends_common.tpl
+++ /dev/null
@@ -1,26 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="remote-friends-in-common" class="bigwidget">
- <div id="rfic-desc">{{$desc}} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{if $linkmore}}<a href="{{$base}}/common/{{$uid}}">{{$more}}</a>{{/if}}</div>
- {{if $items}}
- {{foreach $items as $item}}
- <div class="profile-match-wrapper">
- <div class="profile-match-photo">
- <a href="{{$base}}/chanview?f=&url={{$item.xchan_url}}">
- <img src="{{$item.xchan_photo_m}}" width="80" height="80" alt="{{$item.xchan_name}}" title="{{$item.xchan_name}}" />
- </a>
- </div>
- <div class="profile-match-break"></div>
- <div class="profile-match-name">
- <a href="{{$base}}/chanview?f=&url={{$item.xchan_url}}" title="{{$item.xchan_name}}">{{$item.xchan_name}}</a>
- </div>
- <div class="profile-match-end"></div>
- </div>
- {{/foreach}}
- {{/if}}
- <div id="rfic-end" class="clear"></div>
-</div>
-
diff --git a/view/tpl/smarty3/removeme.tpl b/view/tpl/smarty3/removeme.tpl
deleted file mode 100644
index 3fe12a223..000000000
--- a/view/tpl/smarty3/removeme.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$title}}</h1>
-
-<div id="remove-account-wrapper">
-
-<div id="remove-account-desc">{{$desc}}</div>
-
-<form action="{{$basedir}}/removeme" autocomplete="off" method="post" >
-<input type="hidden" name="verify" value="{{$hash}}" />
-
-<div id="remove-account-pass-wrapper">
-<label id="remove-account-pass-label" for="remove-account-pass">{{$passwd}}</label>
-<input type="password" id="remove-account-pass" name="qxz_password" />
-</div>
-<div id="remove-account-pass-end"></div>
-
-<input type="submit" name="submit" value="{{$submit}}" />
-
-</form>
-</div>
-
diff --git a/view/tpl/smarty3/rmagic.tpl b/view/tpl/smarty3/rmagic.tpl
deleted file mode 100644
index 7e4e563d9..000000000
--- a/view/tpl/smarty3/rmagic.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$title}}</h3>
-
-<form action="rmagic" method="post" >
-
- <label for="rmagic-address" id="label-rmagic-address" class="rmagic-label">{{$desc}}</label>
- <input type="text" maxlength="255" size="32" name="address" id="rmagic-address" class="rmagic-input" value="" />
-
- <input type="submit" name="submit" id="rmagic-submit-button" value="{{$submit}}" />
- <div id="rmagic-submit-end" class="rmagic-field-end"></div>
-
-</form>
diff --git a/view/tpl/smarty3/saved_searches_aside.tpl b/view/tpl/smarty3/saved_searches_aside.tpl
deleted file mode 100644
index 034d1f6db..000000000
--- a/view/tpl/smarty3/saved_searches_aside.tpl
+++ /dev/null
@@ -1,19 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="widget" id="saved-search-list">
- <h3 id="search">{{$title}}</h3>
- {{$searchbox}}
-
- <ul id="saved-search-ul">
- {{foreach $saved as $search}}
- <li class="saved-search-li clear">
- <a title="{{$search.delete}}" onclick="return confirmDelete();" id="drop-saved-search-term-{{$search.id}}" class="iconspacer savedsearchdrop " href="network/?f=&amp;remove=1&amp;search={{$search.encodedterm}}"></a>
- <a id="saved-search-term-{{$search.id}}" class="savedsearchterm" href="network/?f=&amp;search={{$search.encodedterm}}">{{$search.displayterm}}</a>
- </li>
- {{/foreach}}
- </ul>
- <div class="clear"></div>
-</div>
diff --git a/view/tpl/smarty3/search_item.tpl b/view/tpl/smarty3/search_item.tpl
deleted file mode 100644
index c889e227b..000000000
--- a/view/tpl/smarty3/search_item.tpl
+++ /dev/null
@@ -1,68 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div id="thread-wrapper-{{$item.id}}" class="thread-wrapper {{$item.toplevel}}">
-<a name="{{$item.id}}" ></a>
-<div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}" id="wall-item-outside-wrapper-{{$item.id}}" >
- <div class="wall-item-content-wrapper {{$item.indent}}{{$item.previewing}}" id="wall-item-content-wrapper-{{$item.id}}" >
- <div class="wall-item-info" id="wall-item-info-{{$item.id}}">
- <div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-{{$item.id}}"
- onmouseover="if (typeof t{{$item.id}} != 'undefined') clearTimeout(t{{$item.id}}); openMenu('wall-item-photo-menu-button-{{$item.id}}')"
- onmouseout="t{{$item.id}}=setTimeout('closeMenu(\'wall-item-photo-menu-button-{{$item.id}}\'); closeMenu(\'wall-item-photo-menu-{{$item.id}}\');',200)">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}">
- <img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.name}}" /></a>
- <span onclick="openClose('wall-item-photo-menu-{{$item.id}}');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-{{$item.id}}">menu</span>
- <div class="wall-item-photo-menu" id="wall-item-photo-menu-{{$item.id}}">
- <ul>
- {{$item.item_photo_menu}}
- </ul>
- </div>
- </div>
- <div class="wall-item-photo-end"></div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-{{$item.id}}" >
- {{if $item.lock}}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="{{$item.lock}}" onclick="lockview(event,{{$item.id}});" /></div>
- {{else}}<div class="wall-item-lock"></div>{{/if}}
- <div class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}}</div>
- </div>
- </div>
- <div class="wall-item-author">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>
-
- <div id="wall-item-ago-{{$item.id}}" class="wall-item-ago"><abbr class="wall-item-ago-time" title="{{$item.localtime}}">{{$item.ago}}</abbr>{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}</div>
-
- </div>
- <div class="wall-item-content" id="wall-item-content-{{$item.id}}" >
- <div class="wall-item-title" id="wall-item-title-{{$item.id}}">{{$item.title}}</div>
- <div class="wall-item-title-end"></div>
- <div class="wall-item-body" id="wall-item-body-{{$item.id}}" >{{$item.body}}
- <div class="body-tag">
- {{foreach $item.tags as $tag}}
- <span class='tag'>{{$tag}}</span>
- {{/foreach}}
- </div>
- </div>
- </div>
- <div class="wall-item-tools" id="wall-item-tools-{{$item.id}}">
- <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-{{$item.id}}" >
- {{if $item.drop.dropping}}<a href="item/drop/{{$item.id}}" onclick="return confirmDelete();" class="icon drophide" title="{{$item.drop.delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{/if}}
- </div>
- {{if $item.drop.pagedropping}}<input type="checkbox" onclick="checkboxhighlight(this);" title="{{$item.drop.select}}" class="item-select" name="itemselected[]" value="{{$item.id}}" />{{/if}}
- <div class="wall-item-delete-end"></div>
- </div>
- </div>
- <div class="wall-item-wrapper-end"></div>
-
-
- <div class="wall-item-conv" id="wall-item-conv-{{$item.id}}" >
- {{if $item.conv}}
- <a href='{{$item.conv.href}}' id='context-{{$item.id}}' title='{{$item.conv.title}}'>{{$item.conv.title}}</a>
- {{/if}}
- </div>
-
-<div class="wall-item-outside-wrapper-end {{$item.indent}}" ></div>
-
-</div>
-</div>
-
diff --git a/view/tpl/smarty3/settings.tpl b/view/tpl/smarty3/settings.tpl
deleted file mode 100644
index 251fa9be4..000000000
--- a/view/tpl/smarty3/settings.tpl
+++ /dev/null
@@ -1,119 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$ptitle}}</h1>
-
-{{$nickname_block}}
-
-<form action="settings" id="settings-form" method="post" autocomplete="off" >
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
-<h3 class="settings-heading">{{$h_basic}}</h3>
-
-{{include file="field_input.tpl" field=$username}}
-{{include file="field_custom.tpl" field=$timezone}}
-{{include file="field_input.tpl" field=$defloc}}
-{{include file="field_checkbox.tpl" field=$allowloc}}
-
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
-</div>
-
-
-<h3 class="settings-heading">{{$h_prv}}</h3>
-
-
-<div id="settings-permissions-wrapper">
-{{foreach $permiss_arr as $permit}}
-{{include file="field_select.tpl" field=$permit}}
-{{/foreach}}
-</div>
-
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
-</div>
-
-
-{{$profile_in_dir}}
-
-{{$suggestme}}
-
-{{include file="field_input.tpl" field=$maxreq}}
-
-{{include file="field_input.tpl" field=$cntunkmail}}
-
-{{include file="field_input.tpl" field=$expire.days}}
-
-
-<div class="field input">
- <span class="field_help"><a href="#advanced-expire-popup" id="advanced-expire" class='popupbox' title="{{$expire.advanced}}">{{$expire.label}}</a></span>
- <div style="display: none;">
- <div id="advanced-expire-popup" style="width:auto;height:auto;overflow:auto;">
- <h3>{{$expire.advanced}}</h3>
- {{include file="field_yesno.tpl" field=$expire.items}}
- {{include file="field_yesno.tpl" field=$expire.starred}}
- {{include file="field_yesno.tpl" field=$expire.network_only}}
- </div>
- </div>
-
-</div>
-
-<div id="settings-default-perms" class="settings-default-perms" >
- <a href="#profile-jot-acl-wrapper" id="settings-default-perms-menu" class='popupbox'>{{$permissions}} {{$permdesc}}</a>
- <div id="settings-default-perms-menu-end"></div>
-
- <div id="settings-default-perms-select" style="display: none; margin-bottom: 20px" >
-
- <div style="display: none;">
- <div id="profile-jot-acl-wrapper" style="width:auto;height:auto;overflow:auto;">
- {{$aclselect}}
- </div>
- </div>
-
- </div>
-</div>
-<br/>
-<div id="settings-default-perms-end"></div>
-
-{{$group_select}}
-
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
-</div>
-
-
-
-<h3 class="settings-heading">{{$h_not}}</h3>
-<div id="settings-notifications">
-
-<div id="settings-activity-desc">{{$activity_options}}</div>
-
-{{include file="field_checkbox.tpl" field=$post_newfriend}}
-{{include file="field_checkbox.tpl" field=$post_joingroup}}
-{{include file="field_checkbox.tpl" field=$post_profilechange}}
-
-
-<div id="settings-notify-desc">{{$lbl_not}}</div>
-
-<div class="group">
-{{include file="field_intcheckbox.tpl" field=$notify1}}
-{{include file="field_intcheckbox.tpl" field=$notify2}}
-{{include file="field_intcheckbox.tpl" field=$notify3}}
-{{include file="field_intcheckbox.tpl" field=$notify4}}
-{{include file="field_intcheckbox.tpl" field=$notify5}}
-{{include file="field_intcheckbox.tpl" field=$notify6}}
-{{include file="field_intcheckbox.tpl" field=$notify7}}
-{{include file="field_intcheckbox.tpl" field=$notify8}}
-</div>
-
-</div>
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
-</div>
-
diff --git a/view/tpl/smarty3/settings_account.tpl b/view/tpl/smarty3/settings_account.tpl
deleted file mode 100644
index a12283ff2..000000000
--- a/view/tpl/smarty3/settings_account.tpl
+++ /dev/null
@@ -1,33 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$title}}</h1>
-
-
-<div id="settings-remove-account-link">
-<a href="removeme" title="{{$permanent}}" >{{$removeme}}</a>
-</div>
-
-
-<form action="settings/account" id="settings-account-form" method="post" autocomplete="off" >
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
-{{include file="field_input.tpl" field=$email}}
-
-
-<h3 class="settings-heading">{{$h_pass}}</h3>
-
-{{include file="field_password.tpl" field=$password1}}
-{{include file="field_password.tpl" field=$password2}}
-
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
-</div>
-
-{{$account_settings}}
-
-
-
diff --git a/view/tpl/smarty3/settings_addons.tpl b/view/tpl/smarty3/settings_addons.tpl
deleted file mode 100644
index b8613bec6..000000000
--- a/view/tpl/smarty3/settings_addons.tpl
+++ /dev/null
@@ -1,15 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$title}}</h1>
-
-
-<form action="settings/featured" method="post" autocomplete="off">
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
-{{$settings_addons}}
-
-</form>
-
diff --git a/view/tpl/smarty3/settings_connectors.tpl b/view/tpl/smarty3/settings_connectors.tpl
deleted file mode 100644
index 5df839411..000000000
--- a/view/tpl/smarty3/settings_connectors.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$title}}</h1>
-
-<form action="settings/connectors" method="post" autocomplete="off">
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
-{{$settings_connectors}}
-
-</form>
-
diff --git a/view/tpl/smarty3/settings_display.tpl b/view/tpl/smarty3/settings_display.tpl
deleted file mode 100644
index 3558e5cc9..000000000
--- a/view/tpl/smarty3/settings_display.tpl
+++ /dev/null
@@ -1,27 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$ptitle}}</h1>
-
-<form action="settings/display" id="settings-form" method="post" autocomplete="off" >
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
-{{include file="field_themeselect.tpl" field=$theme}}
-{{include file="field_themeselect.tpl" field=$mobile_theme}}
-{{include file="field_input.tpl" field=$ajaxint}}
-{{include file="field_input.tpl" field=$itemspage}}
-{{include file="field_checkbox.tpl" field=$nosmile}}
-
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
-</div>
-
-{{if $theme_config}}
-<h2>Theme settings</h2>
-{{$theme_config}}
-{{/if}}
-
-</form>
diff --git a/view/tpl/smarty3/settings_features.tpl b/view/tpl/smarty3/settings_features.tpl
deleted file mode 100644
index 797d3da2c..000000000
--- a/view/tpl/smarty3/settings_features.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$title}}</h1>
-
-
-<form action="settings/features" method="post" autocomplete="off">
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
-{{foreach $features as $f}}
-<h3 class="settings-heading">{{$f.0}}</h3>
-
-{{foreach $f.1 as $fcat}}
- {{include file="{{$field_yesno}}" field=$fcat}}
-{{/foreach}}
-{{/foreach}}
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-features-submit" value="{{$submit}}" />
-</div>
-
-</form>
-
diff --git a/view/tpl/smarty3/settings_nick_set.tpl b/view/tpl/smarty3/settings_nick_set.tpl
deleted file mode 100644
index fb886695e..000000000
--- a/view/tpl/smarty3/settings_nick_set.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<div id="settings-nick-wrapper" >
-<div id="settings-nickname-desc" class="info-message">{{$desc}} <strong>'{{$nickname}}@{{$basepath}}'</strong>{{$subdir}}</div>
-</div>
-<div id="settings-nick-end" ></div>
diff --git a/view/tpl/smarty3/settings_nick_subdir.tpl b/view/tpl/smarty3/settings_nick_subdir.tpl
deleted file mode 100644
index 874185db5..000000000
--- a/view/tpl/smarty3/settings_nick_subdir.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<p>
-It appears that your website is located in a subdirectory of the<br />
-{{$hostname}} website, so this setting may not work reliably.<br />
-</p>
-<p>If you have any issues, you may have better results using the profile<br /> address '<strong>{{$baseurl}}/profile/{{$nickname}}</strong>'.
-</p> \ No newline at end of file
diff --git a/view/tpl/smarty3/settings_oauth.tpl b/view/tpl/smarty3/settings_oauth.tpl
deleted file mode 100644
index feab78210..000000000
--- a/view/tpl/smarty3/settings_oauth.tpl
+++ /dev/null
@@ -1,36 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$title}}</h1>
-
-
-<form action="settings/oauth" method="post" autocomplete="off">
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
- <div id="profile-edit-links">
- <ul>
- <li>
- <a id="profile-edit-view-link" href="{{$baseurl}}/settings/oauth/add">{{$add}}</a>
- </li>
- </ul>
- </div>
-
- {{foreach $apps as $app}}
- <div class='oauthapp'>
- <img src='{{$app.icon}}' class="{{if $app.icon}} {{else}}noicon{{/if}}">
- {{if $app.name}}<h4>{{$app.name}}</h4>{{else}}<h4>{{$noname}}</h4>{{/if}}
- {{if $app.my}}
- {{if $app.oauth_token}}
- <div class="settings-submit-wrapper" ><button class="settings-submit" type="submit" name="remove" value="{{$app.oauth_token}}">{{$remove}}</button></div>
- {{/if}}
- {{/if}}
- {{if $app.my}}
- <a href="{{$baseurl}}/settings/oauth/edit/{{$app.client_id}}" class="icon s22 edit" title="{{$edit}}">&nbsp;</a>
- <a href="{{$baseurl}}/settings/oauth/delete/{{$app.client_id}}?t={{$form_security_token}}" class="icon s22 delete" title="{{$delete}}">&nbsp;</a>
- {{/if}}
- </div>
- {{/foreach}}
-
-</form>
diff --git a/view/tpl/smarty3/settings_oauth_edit.tpl b/view/tpl/smarty3/settings_oauth_edit.tpl
deleted file mode 100644
index e3960bf75..000000000
--- a/view/tpl/smarty3/settings_oauth_edit.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h1>{{$title}}</h1>
-
-<form method="POST">
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
-{{include file="field_input.tpl" field=$name}}
-{{include file="field_input.tpl" field=$key}}
-{{include file="field_input.tpl" field=$secret}}
-{{include file="field_input.tpl" field=$redirect}}
-{{include file="field_input.tpl" field=$icon}}
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
-<input type="submit" name="cancel" class="settings-submit" value="{{$cancel}}" />
-</div>
-
-</form>
diff --git a/view/tpl/smarty3/suggest_friends.tpl b/view/tpl/smarty3/suggest_friends.tpl
deleted file mode 100644
index 060db0005..000000000
--- a/view/tpl/smarty3/suggest_friends.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="profile-match-wrapper">
- <a href="{{$ignlnk}}" title="{{$ignore}}" class="icon drophide profile-match-ignore" onmouseout="imgdull(this);" onmouseover="imgbright(this);" onclick="return confirmDelete();" ></a>
- <div class="profile-match-photo">
- <a href="{{$url}}">
- <img src="{{$photo}}" alt="{{$name}}" width="80" height="80" title="{{$name}} [{{$url}}]" />
- </a>
- </div>
- <div class="profile-match-break"></div>
- <div class="profile-match-name">
- <a href="{{$url}}" title="{{$name}}">{{$name}}</a>
- </div>
- <div class="profile-match-end"></div>
- {{if $connlnk}}
- <div class="profile-match-connect"><a href="{{$connlnk}}" title="{{$conntxt}}">{{$conntxt}}</a></div>
- {{/if}}
-</div> \ No newline at end of file
diff --git a/view/tpl/smarty3/suggestions.tpl b/view/tpl/smarty3/suggestions.tpl
deleted file mode 100644
index b4f0cbbe5..000000000
--- a/view/tpl/smarty3/suggestions.tpl
+++ /dev/null
@@ -1,26 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<div class="intro-wrapper" >
-
-<p class="intro-desc">{{$str_notifytype}} {{$notify_type}}</p>
-<div class="intro-madeby">{{$madeby}}</div>
-<div class="intro-fullname" >{{$fullname}}</div>
-<a class="intro-url-link" href="{{$url}}" ><img class="intro-photo lframe" src="{{$photo}}" width="175" height=175" title="{{$fullname}}" alt="{{$fullname}}" /></a>
-<div class="intro-note" >{{$note}}</div>
-<div class="intro-wrapper-end"></div>
-<form class="intro-form" action="notifications/{{$intro_id}}" method="post">
-<input class="intro-submit-ignore" type="submit" name="submit" value="{{$ignore}}" />
-<input class="intro-submit-discard" type="submit" name="submit" value="{{$discard}}" />
-</form>
-<div class="intro-form-end"></div>
-
-<form class="intro-approve-form" action="{{$request}}" method="get">
-{{include file="field_checkbox.tpl" field=$hidden}}
-<input class="intro-submit-approve" type="submit" name="submit" value="{{$approve}}" />
-</form>
-</div>
-<div class="intro-end"></div>
diff --git a/view/tpl/smarty3/tag_slap.tpl b/view/tpl/smarty3/tag_slap.tpl
deleted file mode 100644
index 5521b508d..000000000
--- a/view/tpl/smarty3/tag_slap.tpl
+++ /dev/null
@@ -1,35 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
- <entry>
- <author>
- <name>{{$name}}</name>
- <uri>{{$profile_page}}</uri>
- <link rel="photo" type="image/jpeg" media:width="80" media:height="80" href="{{$thumb}}" />
- <link rel="avatar" type="image/jpeg" media:width="80" media:height="80" href="{{$thumb}}" />
- </author>
-
- <id>{{$item_id}}</id>
- <title>{{$title}}</title>
- <published>{{$published}}</published>
- <content type="{{$type}}" >{{$content}}</content>
- <link rel="mentioned" href="{{$accturi}}" />
- <as:actor>
- <as:obj_type>http://activitystrea.ms/schema/1.0/person</as:obj_type>
- <id>{{$profile_page}}</id>
- <title></title>
- <link rel="avatar" type="image/jpeg" media:width="175" media:height="175" href="{{$photo}}"/>
- <link rel="avatar" type="image/jpeg" media:width="80" media:height="80" href="{{$thumb}}"/>
- <poco:preferredUsername>{{$nick}}</poco:preferredUsername>
- <poco:displayName>{{$name}}</poco:displayName>
- </as:actor>
- <as:verb>{{$verb}}</as:verb>
- <as:object>
- <as:obj_type></as:obj_type>
- </as:object>
- <as:target>
- <as:obj_type></as:obj_type>
- </as:target>
- </entry>
diff --git a/view/tpl/smarty3/threaded_conversation.tpl b/view/tpl/smarty3/threaded_conversation.tpl
deleted file mode 100644
index a2885ddc3..000000000
--- a/view/tpl/smarty3/threaded_conversation.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{foreach $threads as $thread_item}}
-{{include file="{{$thread_item.template}}" item=$thread_item}}
-{{/foreach}}
-
-<div id="conversation-end"></div>
-
-{{if $dropping}}
-<div id="item-delete-selected" class="fakelink" onclick="deleteCheckedItems();">
- <div id="item-delete-selected-icon" class="icon drophide" title="{{$dropping}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
- <div id="item-delete-selected-desc" >{{$dropping}}</div>
-</div>
-<div id="item-delete-selected-end"></div>
-{{/if}}
diff --git a/view/tpl/smarty3/toggle_mobile_footer.tpl b/view/tpl/smarty3/toggle_mobile_footer.tpl
deleted file mode 100644
index 008d69663..000000000
--- a/view/tpl/smarty3/toggle_mobile_footer.tpl
+++ /dev/null
@@ -1,7 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<a id="toggle_mobile_link" href="{{$toggle_link}}">{{$toggle_text}}</a>
-
diff --git a/view/tpl/smarty3/viewcontact_template.tpl b/view/tpl/smarty3/viewcontact_template.tpl
deleted file mode 100644
index a9837c7f9..000000000
--- a/view/tpl/smarty3/viewcontact_template.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<h3>{{$title}}</h3>
-
-{{foreach $contacts as $contact}}
- {{include file="contact_template.tpl"}}
-{{/foreach}}
-
-<div id="view-contact-end"></div>
-
-{{$paginate}}
diff --git a/view/tpl/smarty3/wall_item.tpl b/view/tpl/smarty3/wall_item.tpl
deleted file mode 100644
index 1ab1fbff0..000000000
--- a/view/tpl/smarty3/wall_item.tpl
+++ /dev/null
@@ -1,84 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<a name="{{$item.id}}" ></a>
-<div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}" id="wall-item-outside-wrapper-{{$item.id}}" >
- <div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" >
- <div class="wall-item-info" id="wall-item-info-{{$item.id}}">
- <div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-{{$item.id}}"
- onmouseover="if (typeof t{{$item.id}} != 'undefined') clearTimeout(t{{$item.id}}); openMenu('wall-item-photo-menu-button-{{$item.id}}')"
- onmouseout="t{{$item.id}}=setTimeout('closeMenu(\'wall-item-photo-menu-button-{{$item.id}}\'); closeMenu(\'wall-item-photo-menu-{{$item.id}}\');',200)">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}">
- <img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.name}}" />
- </a>
- <span onclick="openClose('wall-item-photo-menu-{{$item.id}}');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-{{$item.id}}">menu</span>
- <div class="wall-item-photo-menu" id="wall-item-photo-menu-{{$item.id}}">
- <ul>
- {{$item.item_photo_menu}}
- </ul>
- </div>
- </div>
- <div class="wall-item-photo-end"></div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-{{$item.id}}" >
- {{if $item.lock}}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="{{$item.lock}}" onclick="lockview(event,{{$item.id}});" /></div>
- {{else}}<div class="wall-item-lock"></div>{{/if}}
- <div class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}}</div>
- </div>
- </div>
- <div class="wall-item-author">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>
- <div id="wall-item-ago-{{$item.id}}" class="wall-item-ago"><abbr class="wall-item-ago-time" title="{{$item.localtime}}">{{$item.ago}}</abbr>{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}</div>
-
- </div>
- <div class="wall-item-content" id="wall-item-content-{{$item.id}}" >
- <div class="wall-item-title" id="wall-item-title-{{$item.id}}">{{$item.title}}</div>
- <div class="wall-item-title-end"></div>
- <div class="wall-item-body" id="wall-item-body-{{$item.id}}" >{{$item.body}}
- <div class="body-tag">
- {{foreach $item.tags as $tag}}
- <span class='tag'>{{$tag}}</span>
- {{/foreach}}
- </div>
- </div>
- </div>
- <div class="wall-item-tools" id="wall-item-tools-{{$item.id}}">
- {{if $item.vote}}
- <div class="wall-item-like-buttons" id="wall-item-like-buttons-{{$item.id}}">
- <a href="#" class="icon like" title="{{$item.vote.like.0}}" onclick="dolike({{$item.id}},'like'); return false"></a>
- <a href="#" class="icon dislike" title="{{$item.vote.dislike.0}}" onclick="dolike({{$item.id}},'dislike'); return false"></a>
- {{if $item.vote.share}}<a href="#" class="icon recycle wall-item-share-buttons" title="{{$item.vote.share.0}}" onclick="jotShare({{$item.id}}); return false"></a>{{/if}}
- <img id="like-rotator-{{$item.id}}" class="like-rotator" src="images/rotator.gif" alt="{{$item.wait}}" title="{{$item.wait}}" style="display: none;" />
- </div>
- {{/if}}
- {{if $item.plink}}
- <div class="wall-item-links-wrapper"><a href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="icon remote-link{{$item.sparkle}}"></a></div>
- {{/if}}
- {{if $item.edpost}}
- <a class="editpost icon pencil" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"></a>
- {{/if}}
-
- {{if $item.star}}
- <a href="#" id="starred-{{$item.id}}" onclick="dostar({{$item.id}}); return false;" class="star-item icon {{$item.isstarred}}" title="{{$item.star.toggle}}"></a>
- <a href="#" id="tagger-{{$item.id}}" onclick="itemTag({{$item.id}}); return false;" class="tag-item icon tagged" title="{{$item.star.tagger}}"></a>
- {{/if}}
- {{if $item.filer}}
- <a href="#" id="filer-{{$item.id}}" onclick="itemFiler({{$item.id}}); return false;" class="filer-item filer-icon" title="{{$item.filer}}"></a>
- {{/if}}
- <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-{{$item.id}}" >
- {{if $item.drop.dropping}}<a href="item/drop/{{$item.id}}" onclick="return confirmDelete();" class="icon drophide" title="{{$item.drop.delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{/if}}
- </div>
- {{if $item.drop.pagedropping}}<input type="checkbox" onclick="checkboxhighlight(this);" title="{{$item.drop.select}}" class="item-select" name="itemselected[]" value="{{$item.id}}" />{{/if}}
- <div class="wall-item-delete-end"></div>
- </div>
- </div>
- <div class="wall-item-wrapper-end"></div>
- <div class="wall-item-like {{$item.indent}}" id="wall-item-like-{{$item.id}}">{{$item.like}}</div>
- <div class="wall-item-dislike {{$item.indent}}" id="wall-item-dislike-{{$item.id}}">{{$item.dislike}}</div>
- <div class="wall-item-comment-wrapper" >
- {{$item.comment}}
- </div>
-
-<div class="wall-item-outside-wrapper-end {{$item.indent}}" ></div>
-</div>
diff --git a/view/tpl/smarty3/wall_thread.tpl b/view/tpl/smarty3/wall_thread.tpl
deleted file mode 100644
index cab43cfcf..000000000
--- a/view/tpl/smarty3/wall_thread.tpl
+++ /dev/null
@@ -1,125 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{if $item.comment_firstcollapsed}}
- <div class="hide-comments-outer">
- <span id="hide-comments-total-{{$item.id}}" class="hide-comments-total">{{$item.num_comments}}</span> <span id="hide-comments-{{$item.id}}" class="hide-comments fakelink" onclick="showHideComments({{$item.id}});">{{$item.hide_text}}</span>
- </div>
- <div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: none;">
-{{/if}}
-<div id="thread-wrapper-{{$item.id}}" class="thread-wrapper {{$item.toplevel}}">
-<a name="{{$item.id}}" ></a>
-<div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}{{if $item.owner_url}} wallwall{{/if}}" id="wall-item-outside-wrapper-{{$item.id}}" >
- <div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" >
- <div class="wall-item-info{{if $item.owner_url}} wallwall{{/if}}" id="wall-item-info-{{$item.id}}">
- {{if $item.owner_url}}
- <div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-{{$item.id}}" >
- <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-photo-link" id="wall-item-ownerphoto-link-{{$item.id}}">
- <img src="{{$item.owner_photo}}" class="wall-item-photo{{$item.osparkle}}" id="wall-item-ownerphoto-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.owner_name}}" /></a>
- </div>
- <div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="{{$item.wall}}" /></div>
- {{/if}}
- <div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}}" id="wall-item-photo-wrapper-{{$item.id}}"
- onmouseover="if (typeof t{{$item.id}} != 'undefined') clearTimeout(t{{$item.id}}); openMenu('wall-item-photo-menu-button-{{$item.id}}')"
- onmouseout="t{{$item.id}}=setTimeout('closeMenu(\'wall-item-photo-menu-button-{{$item.id}}\'); closeMenu(\'wall-item-photo-menu-{{$item.id}}\');',200)">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}">
- <img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.name}}" /></a>
- <span onclick="openClose('wall-item-photo-menu-{{$item.id}}');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-{{$item.id}}">menu</span>
- <div class="wall-item-photo-menu" id="wall-item-photo-menu-{{$item.id}}">
- <ul>
- {{$item.item_photo_menu}}
- </ul>
- </div>
-
- </div>
- <div class="wall-item-photo-end"></div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-{{$item.id}}" >
- {{if $item.lock}}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="{{$item.lock}}" onclick="lockview(event,{{$item.id}});" /></div>
- {{else}}<div class="wall-item-lock"></div>{{/if}}
- <div class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}}</div>
- </div>
- </div>
- <div class="wall-item-author">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}} {{$item.to}} <a href="{{$item.owner_url}}" target="redir" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a> {{$item.vwall}}{{/if}}<br />
- <div class="wall-item-ago" id="wall-item-ago-{{$item.id}}" title="{{$item.localtime}}">{{$item.ago}}</div>
- </div>
- <div class="wall-item-content" id="wall-item-content-{{$item.id}}" >
- <div class="wall-item-title" id="wall-item-title-{{$item.id}}">{{$item.title}}</div>
- <div class="wall-item-title-end"></div>
- <div class="wall-item-body" id="wall-item-body-{{$item.id}}" >{{$item.body}}
- <div class="body-tag">
- {{foreach $item.tags as $tag}}
- <span class='tag'>{{$tag}}</span>
- {{/foreach}}
- </div>
- {{if $item.has_cats}}
- <div class="categorytags"><span>{{$item.txt_cats}} {{foreach $item.categories as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
- </div>
- {{/if}}
-
- {{if $item.has_folders}}
- <div class="filesavetags"><span>{{$item.txt_folders}} {{foreach $item.folders as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
- </div>
- {{/if}}
- </div>
- </div>
- <div class="wall-item-tools" id="wall-item-tools-{{$item.id}}">
- {{if $item.vote}}
- <div class="wall-item-like-buttons" id="wall-item-like-buttons-{{$item.id}}">
- <a href="#" class="icon like" title="{{$item.vote.like.0}}" onclick="dolike({{$item.id}},'like'); return false"></a>
- {{if $item.nolike}}
- <a href="#" class="icon dislike" title="{{$item.vote.dislike.0}}" onclick="dolike({{$item.id}},'dislike'); return false"></a>
- {{/if}}
- {{if $item.vote.share}}<a href="#" class="icon recycle wall-item-share-buttons" title="{{$item.vote.share.0}}" onclick="jotShare({{$item.id}}); return false"></a>{{/if}}
- </div>
- {{/if}}
- {{if $item.plink}}
- <div class="wall-item-links-wrapper"><a href="{{$item.plink.href}}" title="{{$item.plink.title}}" target="external-link" class="icon remote-link{{$item.sparkle}}"></a></div>
- {{/if}}
- {{if $item.edpost}}
- <a class="editpost icon pencil" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"></a>
- {{/if}}
-
- {{if $item.star}}
- <a href="#" id="starred-{{$item.id}}" onclick="dostar({{$item.id}}); return false;" class="star-item icon {{$item.isstarred}}" title="{{$item.star.toggle}}"></a>
- <a href="#" id="tagger-{{$item.id}}" onclick="itemTag({{$item.id}}); return false;" class="tag-item icon tagged" title="{{$item.star.tagger}}"></a>
- {{/if}}
- {{if $item.filer}}
- <a href="#" id="filer-{{$item.id}}" onclick="itemFiler({{$item.id}}); return false;" class="filer-item filer-icon" title="{{$item.filer}}"></a>
- {{/if}}
- <img id="like-rotator-{{$item.id}}" class="like-rotator" src="images/rotator.gif" alt="{{$item.wait}}" title="{{$item.wait}}" style="display: none;" />
-
- <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-{{$item.id}}" >
- {{if $item.drop.dropping}}<a href="item/drop/{{$item.id}}" onclick="return confirmDelete();" class="icon drophide" title="{{$item.drop.delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{/if}}
- </div>
- {{if $item.drop.pagedrop}}<input type="checkbox" onclick="checkboxhighlight(this);" title="{{$item.drop.select}}" class="item-select" name="itemselected[]" value="{{$item.id}}" />{{/if}}
- <div class="wall-item-delete-end"></div>
- </div>
- </div>
- <div class="wall-item-wrapper-end"></div>
- <div class="wall-item-like {{$item.indent}}" id="wall-item-like-{{$item.id}}">{{$item.like}}</div>
- <div class="wall-item-dislike {{$item.indent}}" id="wall-item-dislike-{{$item.id}}">{{$item.dislike}}</div>
-
- {{if $item.threaded}}
- {{if $item.comment}}
- <div class="wall-item-comment-wrapper {{$item.indent}}" >
- {{$item.comment}}
- </div>
- {{/if}}
- {{/if}}
-
-<div class="wall-item-outside-wrapper-end {{$item.indent}}" ></div>
-</div>
-{{foreach $item.children as $child}}
- {{include file="{{$child.template}}" item=$child}}
-{{/foreach}}
-
-{{if $item.flatten}}
-<div class="wall-item-comment-wrapper" >
- {{$item.comment}}
-</div>
-{{/if}}
-</div>
-{{if $item.comment_lastcollapsed}}</div>{{/if}}
diff --git a/view/tpl/smarty3/wallmessage.tpl b/view/tpl/smarty3/wallmessage.tpl
deleted file mode 100644
index 6eeabe9ed..000000000
--- a/view/tpl/smarty3/wallmessage.tpl
+++ /dev/null
@@ -1,37 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<h3>{{$header}}</h3>
-
-<h4>{{$subheader}}</h4>
-
-<div id="prvmail-wrapper" >
-<form id="prvmail-form" action="wallmessage/{{$nickname}}" method="post" >
-
-{{$parent}}
-
-<div id="prvmail-to-label">{{$to}}</div>
-{{$recipname}}
-
-<div id="prvmail-subject-label">{{$subject}}</div>
-<input type="text" size="64" maxlength="255" id="prvmail-subject" name="subject" value="{{$subjtxt}}" {{$readonly}} tabindex="11" />
-
-<div id="prvmail-message-label">{{$yourmessage}}</div>
-<textarea rows="8" cols="72" class="prvmail-text" id="prvmail-text" name="body" tabindex="12">{{$text}}</textarea>
-
-
-<div id="prvmail-submit-wrapper" >
- <input type="submit" id="prvmail-submit" name="submit" value="Submit" tabindex="13" />
- <div id="prvmail-link-wrapper" >
- <div id="prvmail-link" class="icon border link" title="{{$insert}}" onclick="jotGetLink();" ></div>
- </div>
- <div id="prvmail-rotator-wrapper" >
- <img id="prvmail-rotator" src="images/rotator.gif" alt="{{$wait}}" title="{{$wait}}" style="display: none;" />
- </div>
-</div>
-<div id="prvmail-end"></div>
-</form>
-</div>
diff --git a/view/tpl/smarty3/wallmsg-header.tpl b/view/tpl/smarty3/wallmsg-header.tpl
deleted file mode 100644
index 1f5a1abc1..000000000
--- a/view/tpl/smarty3/wallmsg-header.tpl
+++ /dev/null
@@ -1,87 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-
-<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
-<script language="javascript" type="text/javascript">
-
-var plaintext = '{{$editselect}}';
-
-if(plaintext != 'none') {
- tinyMCE.init({
- theme : "advanced",
- mode : "specific_textareas",
- editor_selector: /(profile-jot-text|prvmail-text)/,
- plugins : "bbcode,paste",
- theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",
- theme_advanced_buttons2 : "",
- theme_advanced_buttons3 : "",
- theme_advanced_toolbar_location : "top",
- theme_advanced_toolbar_align : "center",
- theme_advanced_blockformats : "blockquote,code",
- gecko_spellcheck : true,
- paste_text_sticky : true,
- entity_encoding : "raw",
- add_unload_trigger : false,
- remove_linebreaks : false,
- force_p_newlines : false,
- force_br_newlines : true,
- forced_root_block : '',
- convert_urls: false,
- content_css: "{{$baseurl}}/view/custom_tinymce.css",
- //Character count
- theme_advanced_path : false,
- setup : function(ed) {
- ed.onInit.add(function(ed) {
- ed.pasteAsPlainText = true;
- var editorId = ed.editorId;
- var textarea = $('#'+editorId);
- if (typeof(textarea.attr('tabindex')) != "undefined") {
- $('#'+editorId+'_ifr').attr('tabindex', textarea.attr('tabindex'));
- textarea.attr('tabindex', null);
- }
- });
- }
- });
-}
-else
- $("#prvmail-text").contact_autocomplete(baseurl+"/acl");
-
-
-</script>
-<script>
-
- function jotGetLink() {
- reply = prompt("{{$linkurl}}");
- if(reply && reply.length) {
- $('#profile-rotator').show();
- $.get('parse_url?url=' + reply, function(data) {
- tinyMCE.execCommand('mceInsertRawHTML',false,data);
- $('#profile-rotator').hide();
- });
- }
- }
-
- function linkdropper(event) {
- var linkFound = event.dataTransfer.types.contains("text/uri-list");
- if(linkFound)
- event.preventDefault();
- }
-
- function linkdrop(event) {
- var reply = event.dataTransfer.getData("text/uri-list");
- event.target.textContent = reply;
- event.preventDefault();
- if(reply && reply.length) {
- $('#profile-rotator').show();
- $.get('parse_url?url=' + reply, function(data) {
- tinyMCE.execCommand('mceInsertRawHTML',false,data);
- $('#profile-rotator').hide();
- });
- }
- }
-
-</script>
-
diff --git a/view/tpl/smarty3/wallwall_item.tpl b/view/tpl/smarty3/wallwall_item.tpl
deleted file mode 100644
index a7430e8da..000000000
--- a/view/tpl/smarty3/wallwall_item.tpl
+++ /dev/null
@@ -1,91 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<a name="{{$item.id}}" ></a>
-<div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}} wallwall" id="wall-item-outside-wrapper-{{$item.id}}" >
- <div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" >
- <div class="wall-item-info wallwall" id="wall-item-info-{{$item.id}}">
- <div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-{{$item.id}}" >
- <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-photo-link" id="wall-item-ownerphoto-link-{{$item.id}}">
- <img src="{{$item.owner_photo}}" class="wall-item-photo{{$item.osparkle}}" id="wall-item-ownerphoto-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.owner_name}}" /></a>
- </div>
- <div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="{{$item.wall}}" /></div>
- <div class="wall-item-photo-wrapper wwfrom" id="wall-item-photo-wrapper-{{$item.id}}"
- onmouseover="if (typeof t{{$item.id}} != 'undefined') clearTimeout(t{{$item.id}}); openMenu('wall-item-photo-menu-button-{{$item.id}}')"
- onmouseout="t{{$item.id}}=setTimeout('closeMenu(\'wall-item-photo-menu-button-{{$item.id}}\'); closeMenu(\'wall-item-photo-menu-{{$item.id}}\');',200)">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}">
- <img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.name}}" /></a>
- <span onclick="openClose('wall-item-photo-menu-{{$item.id}}');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-{{$item.id}}">menu</span>
- <div class="wall-item-photo-menu" id="wall-item-photo-menu-{{$item.id}}">
- <ul>
- {{$item.item_photo_menu}}
- </ul>
- </div>
-
- </div>
- <div class="wall-item-photo-end"></div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-{{$item.id}}" >
- {{if $item.lock}}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="{{$item.lock}}" onclick="lockview(event,{{$item.id}});" /></div>
- {{else}}<div class="wall-item-lock"></div>{{/if}}
- <div class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}}</div>
- </div>
- </div>
- <div class="wall-item-author">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a> {{$item.to}} <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a> {{$item.vwall}}<br />
- <div id="wall-item-ago-{{$item.id}}" class="wall-item-ago"><abbr class="wall-item-ago-time" title="{{$item.localtime}}">{{$item.ago}}</abbr>{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}</div>
- </div>
- <div class="wall-item-content" id="wall-item-content-{{$item.id}}" >
- <div class="wall-item-title" id="wall-item-title-{{$item.id}}">{{$item.title}}</div>
- <div class="wall-item-title-end"></div>
- <div class="wall-item-body" id="wall-item-body-{{$item.id}}" >{{$item.body}}
- <div class="body-tag">
- {{foreach $item.tags as $tag}}
- <span class='tag'>{{$tag}}</span>
- {{/foreach}}
- </div>
- </div>
- </div>
- <div class="wall-item-tools" id="wall-item-tools-{{$item.id}}">
- {{if $item.vote}}
- <div class="wall-item-like-buttons" id="wall-item-like-buttons-{{$item.id}}">
- <a href="#" class="icon like" title="{{$item.vote.like.0}}" onclick="dolike({{$item.id}},'like'); return false"></a>
- <a href="#" class="icon dislike" title="{{$item.vote.dislike.0}}" onclick="dolike({{$item.id}},'dislike'); return false"></a>
- {{if $item.vote.share}}<a href="#" class="icon recycle wall-item-share-buttons" title="{{$item.vote.share.0}}" onclick="jotShare({{$item.id}}); return false"></a>{{/if}}
- <img id="like-rotator-{{$item.id}}" class="like-rotator" src="images/rotator.gif" alt="{{$item.wait}}" title="{{$item.wait}}" style="display: none;" />
- </div>
- {{/if}}
- {{if $item.plink}}
- <div class="wall-item-links-wrapper"><a href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="icon remote-link{{$item.sparkle}}"></a></div>
- {{/if}}
- {{if $item.edpost}}
- <a class="editpost icon pencil" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"></a>
- {{/if}}
-
- {{if $item.star}}
- <a href="#" id="starred-{{$item.id}}" onclick="dostar({{$item.id}}); return false;" class="star-item icon {{$item.isstarred}}" title="{{$item.star.toggle}}"></a>
- <a href="#" id="tagger-{{$item.id}}" onclick="itemTag({{$item.id}}); return false;" class="tag-item icon tagged" title="{{$item.star.tagger}}"></a>
- {{/if}}
- {{if $item.filer}}
- <a href="#" id="filer-{{$item.id}}" onclick="itemFiler({{$item.id}}); return false;" class="filer-item filer-icon" title="{{$item.filer}}"></a>
- {{/if}}
-
- <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-{{$item.id}}" >
- {{if $item.drop.dropping}}<a href="item/drop/{{$item.id}}" onclick="return confirmDelete();" class="icon drophide" title="{{$item.drop.delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{/if}}
- </div>
- {{if $item.drop.pagedropping}}<input type="checkbox" onclick="checkboxhighlight(this);" title="{{$item.drop.select}}" class="item-select" name="itemselected[]" value="{{$item.id}}" />{{/if}}
- <div class="wall-item-delete-end"></div>
- </div>
- </div>
- <div class="wall-item-wrapper-end"></div>
- <div class="wall-item-like {{$item.indent}}" id="wall-item-like-{{$item.id}}">{{$item.like}}</div>
- <div class="wall-item-dislike {{$item.indent}}" id="wall-item-dislike-{{$item.id}}">{{$item.dislike}}</div>
- <div class="wall-item-comment-separator"></div>
- <div class="wall-item-comment-wrapper">
- {{$item.comment}}
- </div>
-
-<div class="wall-item-outside-wrapper-end {{$item.indent}}" ></div>
-</div>
-
diff --git a/view/tpl/smarty3/wallwall_thread.tpl b/view/tpl/smarty3/wallwall_thread.tpl
deleted file mode 100644
index 4c17f5106..000000000
--- a/view/tpl/smarty3/wallwall_thread.tpl
+++ /dev/null
@@ -1,112 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-{{if $item.comment_firstcollapsed}}
- <div class="hide-comments-outer">
- <span id="hide-comments-total-{{$item.id}}" class="hide-comments-total">{{$item.num_comments}}</span> <span id="hide-comments-{{$item.id}}" class="hide-comments fakelink" onclick="showHideComments({{$item.id}});">{{$item.hide_text}}</span>
- </div>
- <div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: none;">
-{{/if}}
-<div id="tread-wrapper-{{$item.id}}" class="tread-wrapper {{$item.toplevel}}">
-<a name="{{$item.id}}" ></a>
-<div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}} wallwall" id="wall-item-outside-wrapper-{{$item.id}}" >
- <div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" >
- <div class="wall-item-info wallwall" id="wall-item-info-{{$item.id}}">
- <div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-{{$item.id}}" >
- <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-photo-link" id="wall-item-ownerphoto-link-{{$item.id}}">
- <img src="{{$item.owner_photo}}" class="wall-item-photo{{$item.osparkle}}" id="wall-item-ownerphoto-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.owner_name}}" /></a>
- </div>
- <div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="{{$item.wall}}" /></div>
- <div class="wall-item-photo-wrapper wwfrom" id="wall-item-photo-wrapper-{{$item.id}}"
- onmouseover="if (typeof t{{$item.id}} != 'undefined') clearTimeout(t{{$item.id}}); openMenu('wall-item-photo-menu-button-{{$item.id}}')"
- onmouseout="t{{$item.id}}=setTimeout('closeMenu(\'wall-item-photo-menu-button-{{$item.id}}\'); closeMenu(\'wall-item-photo-menu-{{$item.id}}\');',200)">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}">
- <img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.name}}" /></a>
- <span onclick="openClose('wall-item-photo-menu-{{$item.id}}');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-{{$item.id}}">menu</span>
- <div class="wall-item-photo-menu" id="wall-item-photo-menu-{{$item.id}}">
- <ul>
- {{$item.item_photo_menu}}
- </ul>
- </div>
-
- </div>
- <div class="wall-item-photo-end"></div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-{{$item.id}}" >
- {{if $item.lock}}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="{{$item.lock}}" onclick="lockview(event,{{$item.id}});" /></div>
- {{else}}<div class="wall-item-lock"></div>{{/if}}
- <div class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}}</div>
- </div>
- </div>
- <div class="wall-item-author">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a> {{$item.to}} <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a> {{$item.vwall}}<br />
- <div class="wall-item-ago" id="wall-item-ago-{{$item.id}}">{{$item.ago}}</div>
- </div>
- <div class="wall-item-content" id="wall-item-content-{{$item.id}}" >
- <div class="wall-item-title" id="wall-item-title-{{$item.id}}">{{$item.title}}</div>
- <div class="wall-item-title-end"></div>
- <div class="wall-item-body" id="wall-item-body-{{$item.id}}" >{{$item.body}}
- <div class="body-tag">
- {{foreach $item.tags as $tag}}
- <span class='tag'>{{$tag}}</span>
- {{/foreach}}
- </div>
- </div>
- </div>
- <div class="wall-item-tools" id="wall-item-tools-{{$item.id}}">
- {{if $item.vote}}
- <div class="wall-item-like-buttons" id="wall-item-like-buttons-{{$item.id}}">
- <a href="#" class="icon like" title="{{$item.vote.like.0}}" onclick="dolike({{$item.id}},'like'); return false"></a>
- <a href="#" class="icon dislike" title="{{$item.vote.dislike.0}}" onclick="dolike({{$item.id}},'dislike'); return false"></a>
- {{if $item.vote.share}}<a href="#" class="icon recycle wall-item-share-buttons" title="{{$item.vote.share.0}}" onclick="jotShare({{$item.id}}); return false"></a>{{/if}}
- <img id="like-rotator-{{$item.id}}" class="like-rotator" src="images/rotator.gif" alt="{{$item.wait}}" title="{{$item.wait}}" style="display: none;" />
- </div>
- {{/if}}
- {{if $item.plink}}
- <div class="wall-item-links-wrapper"><a href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="icon remote-link{{$item.sparkle}}"></a></div>
- {{/if}}
- {{if $item.edpost}}
- <a class="editpost icon pencil" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"></a>
- {{/if}}
-
- {{if $item.star}}
- <a href="#" id="starred-{{$item.id}}" onclick="dostar({{$item.id}}); return false;" class="star-item icon {{$item.isstarred}}" title="{{$item.star.toggle}}"></a>
- <a href="#" id="tagger-{{$item.id}}" onclick="itemTag({{$item.id}}); return false;" class="tag-item icon tagged" title="{{$item.star.tagger}}"></a>
- {{/if}}
- {{if $item.filer}}
- <a href="#" id="filer-{{$item.id}}" onclick="itemFiler({{$item.id}}); return false;" class="filer-item filer-icon" title="{{$item.filer}}"></a>
- {{/if}}
-
- <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-{{$item.id}}" >
- {{if $item.drop.dropping}}<a href="item/drop/{{$item.id}}" onclick="return confirmDelete();" class="icon drophide" title="{{$item.drop.delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{/if}}
- </div>
- {{if $item.drop.dropping}}<input type="checkbox" onclick="checkboxhighlight(this);" title="{{$item.drop.select}}" class="item-select" name="itemselected[]" value="{{$item.id}}" />{{/if}}
- <div class="wall-item-delete-end"></div>
- </div>
- </div>
- <div class="wall-item-wrapper-end"></div>
- <div class="wall-item-like {{$item.indent}}" id="wall-item-like-{{$item.id}}">{{$item.like}}</div>
- <div class="wall-item-dislike {{$item.indent}}" id="wall-item-dislike-{{$item.id}}">{{$item.dislike}}</div>
-
- {{if $item.threaded}}
- {{if $item.comment}}
- <div class="wall-item-comment-wrapper {{$item.indent}}" >
- {{$item.comment}}
- </div>
- {{/if}}
- {{/if}}
-
-<div class="wall-item-outside-wrapper-end {{$item.indent}}" ></div>
-</div>
-{{foreach $item.children as $item}}
- {{include file="{{$item.template}}"}}
-{{/foreach}}
-
-{{if $item.flatten}}
-<div class="wall-item-comment-wrapper" >
- {{$item.comment}}
-</div>
-{{/if}}
-</div>
-{{if $item.comment_lastcollapsed}}</div>{{/if}}
diff --git a/view/tpl/smarty3/xchan_vcard.tpl b/view/tpl/smarty3/xchan_vcard.tpl
deleted file mode 100644
index 8878a773a..000000000
--- a/view/tpl/smarty3/xchan_vcard.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<div class="vcard">
-<div class="fn">{{$name}}</div>
-<div id="profile-photo-wrapper"><img class="vcard-photo photo" src="{{$photo}}" alt="name" /></div>
-</div>
-
-
-
-<div id="profile-extra-links">
-<ul>
-{{if $connect}}
- <li><a id="follow-link" href="follow?f=&url={{$follow}}">{{$connect}}</a></li>
-{{/if}}
-{{if $newwin}}
- <li><a id="visit-chan-link" href="{{$url}}" title="{{$newtit}}" target="_blank" >{{$newwin}}</a></li>
-{{/if}}
-</ul>
-
-
-</div>
-
diff --git a/view/tpl/smarty3/xrd_host.tpl b/view/tpl/smarty3/xrd_host.tpl
deleted file mode 100644
index 1f273e010..000000000
--- a/view/tpl/smarty3/xrd_host.tpl
+++ /dev/null
@@ -1,23 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<?xml version='1.0' encoding='UTF-8'?>
-<XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'
- xmlns:hm='http://host-meta.net/xrd/1.0'>
-
- <hm:Host>{{$zhost}}</hm:Host>
-
- <Link rel='lrdd' template='{{$domain}}/xrd/?uri={uri}' />
- <Link rel='acct-mgmt' href='{{$domain}}/amcd' />
- <Link rel='http://services.mozilla.com/amcd/0.1' href='{{$domain}}/amcd' />
- <Link rel="http://oexchange.org/spec/0.8/rel/resident-target" type="application/xrd+xml"
- href="{{$domain}}/oexchange/xrd" />
-
- <Property xmlns:mk="http://salmon-protocol.org/ns/magic-key"
- type="http://salmon-protocol.org/ns/magic-key"
- mk:key_id="1">{{$bigkey}}</Property>
-
-
-</XRD>
diff --git a/view/tpl/smarty3/xrd_person.tpl b/view/tpl/smarty3/xrd_person.tpl
deleted file mode 100644
index 2b914fa34..000000000
--- a/view/tpl/smarty3/xrd_person.tpl
+++ /dev/null
@@ -1,34 +0,0 @@
-{{*
- * AUTOMATICALLY GENERATED TEMPLATE
- * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
- *
- *}}
-<?xml version="1.0" encoding="UTF-8"?>
-<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
-
- <Subject>{{$accturi}}</Subject>
- <Alias>{{$accturi}}</Alias>
- <Alias>{{$profile_url}}</Alias>
-
- <Link rel="http://purl.org/macgirvin/dfrn/1.0"
- href="{{$profile_url}}" />
- <Link rel="http://schemas.google.com/g/2010#updates-from"
- type="application/atom+xml"
- href="{{$atom}}" />
- <Link rel="http://webfinger.net/rel/profile-page"
- type="text/html"
- href="{{$profile_url}}" />
- <Link rel="http://microformats.org/profile/hcard"
- type="text/html"
- href="{{$hcard_url}}" />
- <Link rel="http://portablecontacts.net/spec/1.0"
- href="{{$poco_url}}" />
- <Link rel="http://webfinger.net/rel/avatar"
- type="image/jpeg"
- href="{{$photo}}" />
-
- <Property xmlns:mk="http://salmon-protocol.org/ns/magic-key"
- type="http://salmon-protocol.org/ns/magic-key"
- mk:key_id="1">{{$bigkey}}</Property>
-
-</XRD>
diff --git a/view/tpl/suggest_friends.tpl b/view/tpl/suggest_friends.tpl
index e97b5e8cc..80a606912 100644..100755
--- a/view/tpl/suggest_friends.tpl
+++ b/view/tpl/suggest_friends.tpl
@@ -1,16 +1,16 @@
<div class="profile-match-wrapper">
- <a href="$ignlnk" title="$ignore" class="icon drophide profile-match-ignore" onmouseout="imgdull(this);" onmouseover="imgbright(this);" onclick="return confirmDelete();" ></a>
+ <a href="{{$entry.ignlnk}}" title="{{$entry.ignore}}" class="icon drophide smalldrop profile-match-ignore" onmouseout="imgdull(this);" onmouseover="imgbright(this);" onclick="return confirmDelete();" ></a>
<div class="profile-match-photo">
- <a href="$url">
- <img src="$photo" alt="$name" width="80" height="80" title="$name [$url]" />
+ <a href="{{$entry.url}}">
+ <img src="{{$entry.photo}}" alt="{{$entry.name}}" width="80" height="80" title="{{$entry.name}} [{{$entry.url}}]" />
</a>
</div>
<div class="profile-match-break"></div>
<div class="profile-match-name">
- <a href="$url" title="$name">$name</a>
+ <a href="{{$entry.url}}" title="{{$entry.name}}">{{$entry.name}}</a>
</div>
<div class="profile-match-end"></div>
- {{ if $connlnk }}
- <div class="profile-match-connect"><a href="$connlnk" title="$conntxt">$conntxt</a></div>
- {{ endif }}
-</div> \ No newline at end of file
+ {{if $entry.connlnk}}
+ <div class="profile-match-connect"><a href="{{$entry.connlnk}}" title="{{$entry.conntxt}}">{{$entry.conntxt}}</a></div>
+ {{/if}}
+</div>
diff --git a/view/tpl/suggest_page.tpl b/view/tpl/suggest_page.tpl
new file mode 100755
index 000000000..97837c852
--- /dev/null
+++ b/view/tpl/suggest_page.tpl
@@ -0,0 +1,9 @@
+<h3>{{$title}}</h3>
+
+{{if $entries}}
+{{foreach $entries as $child}}
+{{include file="suggest_friends.tpl" entry=$child}}
+{{/foreach}}
+{{/if}}
+
+<div class="clear"></div>
diff --git a/view/tpl/suggestions.tpl b/view/tpl/suggestions.tpl
index 656336496..2d9cba325 100644..100755
--- a/view/tpl/suggestions.tpl
+++ b/view/tpl/suggestions.tpl
@@ -1,21 +1,20 @@
-
<div class="intro-wrapper" >
-<p class="intro-desc">$str_notifytype $notify_type</p>
-<div class="intro-madeby">$madeby</div>
-<div class="intro-fullname" >$fullname</div>
-<a class="intro-url-link" href="$url" ><img class="intro-photo lframe" src="$photo" width="175" height=175" title="$fullname" alt="$fullname" /></a>
-<div class="intro-note" >$note</div>
+<p class="intro-desc">{{$str_notifytype}} {{$notify_type}}</p>
+<div class="intro-madeby">{{$madeby}}</div>
+<div class="intro-fullname" >{{$fullname}}</div>
+<a class="intro-url-link" href="{{$url}}" ><img class="intro-photo lframe" src="{{$photo}}" width="175" height=175" title="{{$fullname}}" alt="{{$fullname}}" /></a>
+<div class="intro-note" >{{$note}}</div>
<div class="intro-wrapper-end"></div>
-<form class="intro-form" action="notifications/$intro_id" method="post">
-<input class="intro-submit-ignore" type="submit" name="submit" value="$ignore" />
-<input class="intro-submit-discard" type="submit" name="submit" value="$discard" />
+<form class="intro-form" action="notifications/{{$intro_id}}" method="post">
+<input class="intro-submit-ignore" type="submit" name="submit" value="{{$ignore}}" />
+<input class="intro-submit-discard" type="submit" name="submit" value="{{$discard}}" />
</form>
<div class="intro-form-end"></div>
-<form class="intro-approve-form" action="$request" method="get">
-{{inc field_checkbox.tpl with $field=$hidden }}{{endinc}}
-<input class="intro-submit-approve" type="submit" name="submit" value="$approve" />
+<form class="intro-approve-form" action="{{$request}}" method="get">
+{{include file="field_checkbox.tpl" field=$hidden}}
+<input class="intro-submit-approve" type="submit" name="submit" value="{{$approve}}" />
</form>
</div>
<div class="intro-end"></div>
diff --git a/view/tpl/tag_slap.tpl b/view/tpl/tag_slap.tpl
deleted file mode 100644
index 231a13f10..000000000
--- a/view/tpl/tag_slap.tpl
+++ /dev/null
@@ -1,30 +0,0 @@
- <entry>
- <author>
- <name>$name</name>
- <uri>$profile_page</uri>
- <link rel="photo" type="image/jpeg" media:width="80" media:height="80" href="$thumb" />
- <link rel="avatar" type="image/jpeg" media:width="80" media:height="80" href="$thumb" />
- </author>
-
- <id>$item_id</id>
- <title>$title</title>
- <published>$published</published>
- <content type="$type" >$content</content>
- <link rel="mentioned" href="$accturi" />
- <as:actor>
- <as:obj_type>http://activitystrea.ms/schema/1.0/person</as:obj_type>
- <id>$profile_page</id>
- <title></title>
- <link rel="avatar" type="image/jpeg" media:width="175" media:height="175" href="$photo"/>
- <link rel="avatar" type="image/jpeg" media:width="80" media:height="80" href="$thumb"/>
- <poco:preferredUsername>$nick</poco:preferredUsername>
- <poco:displayName>$name</poco:displayName>
- </as:actor>
- <as:verb>$verb</as:verb>
- <as:object>
- <as:obj_type></as:obj_type>
- </as:object>
- <as:target>
- <as:obj_type></as:obj_type>
- </as:target>
- </entry>
diff --git a/view/tpl/thing_input.tpl b/view/tpl/thing_input.tpl
new file mode 100644
index 000000000..06cbfe917
--- /dev/null
+++ b/view/tpl/thing_input.tpl
@@ -0,0 +1,28 @@
+<h2>{{$thing_hdr}}</h2>
+<form action="thing" method="post" >
+
+{{if $multiprof }}
+<div class="thing-profile-label">{{$profile_lbl}}</div>
+
+<div class="thing-profile">{{$profile_select}}</div>
+{{/if}}
+
+<div class="thing-verb-label">{{$verb_lbl}}</div>
+
+<div class="thing-verb">{{$verb_select}}</div>
+
+
+<label class="thing-label" for="thing-term">{{$thing_lbl}}</label>
+<input type="text" class="thing-input" id="thing-term" name="term" />
+<div class="thing-field-end"></div>
+<label class="thing-label" for="thing-url">{{$url_lbl}}</label>
+<input type="text" class="thing-input" id="thing-url" name="url" />
+<div class="thing-field-end"></div>
+<label class="thing-label" for="thing-img">{{$img_lbl}}</label>
+<input type="text" class="thing-input" id="thing-img" name="img" />
+<div class="thing-field-end"></div>
+
+<div class="thing-end"></div>
+
+<input type="submit" class="thing-submit" name="submit" value="{{$submit}}" />
+</form>
diff --git a/view/tpl/threaded_conversation.tpl b/view/tpl/threaded_conversation.tpl
index 098e399b7..4bfcde896 100644..100755
--- a/view/tpl/threaded_conversation.tpl
+++ b/view/tpl/threaded_conversation.tpl
@@ -1,13 +1,13 @@
-{{ for $threads as $thread_item }}
-{{ inc $thread_item.template with $item=$thread_item }}{{ endinc }}
-{{ endfor }}
+{{foreach $threads as $thread_item}}
+{{include file="{{$thread_item.template}}" item=$thread_item}}
+{{/foreach}}
<div id="conversation-end"></div>
-{{ if $dropping }}
+{{if $dropping}}
<div id="item-delete-selected" class="fakelink" onclick="deleteCheckedItems();">
- <div id="item-delete-selected-icon" class="icon drophide" title="$dropping" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
- <div id="item-delete-selected-desc" >$dropping</div>
+ <div id="item-delete-selected-icon" class="icon drophide" title="{{$dropping}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
+ <div id="item-delete-selected-desc" >{{$dropping}}</div>
</div>
<div id="item-delete-selected-end"></div>
-{{ endif }}
+{{/if}}
diff --git a/view/tpl/toggle_mobile_footer.tpl b/view/tpl/toggle_mobile_footer.tpl
index 58695f4df..82c0197ba 100644..100755
--- a/view/tpl/toggle_mobile_footer.tpl
+++ b/view/tpl/toggle_mobile_footer.tpl
@@ -1,2 +1,2 @@
-<a id="toggle_mobile_link" href="$toggle_link">$toggle_text</a>
+<a id="toggle_mobile_link" href="{{$toggle_link}}">{{$toggle_text}}</a>
diff --git a/view/tpl/viewcontact_template.tpl b/view/tpl/viewcontact_template.tpl
index d6f01643e..18fed6bb4 100644..100755
--- a/view/tpl/viewcontact_template.tpl
+++ b/view/tpl/viewcontact_template.tpl
@@ -1,9 +1,9 @@
-<h3>$title</h3>
+<h3>{{$title}}</h3>
-{{ for $contacts as $contact }}
- {{ inc contact_template.tpl }}{{ endinc }}
-{{ endfor }}
+{{foreach $contacts as $contact}}
+ {{include file="contact_template.tpl"}}
+{{/foreach}}
<div id="view-contact-end"></div>
-$paginate
+{{$paginate}}
diff --git a/view/tpl/wall_item.tpl b/view/tpl/wall_item.tpl
deleted file mode 100644
index e3b2eca0b..000000000
--- a/view/tpl/wall_item.tpl
+++ /dev/null
@@ -1,79 +0,0 @@
-<a name="$item.id" ></a>
-<div class="wall-item-outside-wrapper $item.indent$item.previewing" id="wall-item-outside-wrapper-$item.id" >
- <div class="wall-item-content-wrapper $item.indent" id="wall-item-content-wrapper-$item.id" >
- <div class="wall-item-info" id="wall-item-info-$item.id">
- <div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$item.id"
- onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
- onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
- <a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
- <img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" />
- </a>
- <span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
- <div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
- <ul>
- $item.item_photo_menu
- </ul>
- </div>
- </div>
- <div class="wall-item-photo-end"></div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-$item.id" >
- {{ if $item.lock }}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="$item.lock" onclick="lockview(event,$item.id);" /></div>
- {{ else }}<div class="wall-item-lock"></div>{{ endif }}
- <div class="wall-item-location" id="wall-item-location-$item.id">$item.location</div>
- </div>
- </div>
- <div class="wall-item-author">
- <a href="$item.profile_url" title="$item.linktitle" class="wall-item-name-link"><span class="wall-item-name$item.sparkle" id="wall-item-name-$item.id" >$item.name</span></a>
- <div id="wall-item-ago-$item.id" class="wall-item-ago"><abbr class="wall-item-ago-time" title="$item.localtime">$item.ago</abbr>{{ if $item.app }}<span class="item.app">$item.str_app</span>{{ endif }}</div>
-
- </div>
- <div class="wall-item-content" id="wall-item-content-$item.id" >
- <div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
- <div class="wall-item-title-end"></div>
- <div class="wall-item-body" id="wall-item-body-$item.id" >$item.body
- <div class="body-tag">
- {{ for $item.tags as $tag }}
- <span class='tag'>$tag</span>
- {{ endfor }}
- </div>
- </div>
- </div>
- <div class="wall-item-tools" id="wall-item-tools-$item.id">
- {{ if $item.vote }}
- <div class="wall-item-like-buttons" id="wall-item-like-buttons-$item.id">
- <a href="#" class="icon like" title="$item.vote.like.0" onclick="dolike($item.id,'like'); return false"></a>
- <a href="#" class="icon dislike" title="$item.vote.dislike.0" onclick="dolike($item.id,'dislike'); return false"></a>
- {{ if $item.vote.share }}<a href="#" class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }}
- <img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
- </div>
- {{ endif }}
- {{ if $item.plink }}
- <div class="wall-item-links-wrapper"><a href="$item.plink.href" title="$item.plink.title" class="icon remote-link$item.sparkle"></a></div>
- {{ endif }}
- {{ if $item.edpost }}
- <a class="editpost icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
- {{ endif }}
-
- {{ if $item.star }}
- <a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
- <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
- {{ endif }}
- {{ if $item.filer }}
- <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
- {{ endif }}
- <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
- {{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
- </div>
- {{ if $item.drop.pagedropping }}<input type="checkbox" onclick="checkboxhighlight(this);" title="$item.drop.select" class="item-select" name="itemselected[]" value="$item.id" />{{ endif }}
- <div class="wall-item-delete-end"></div>
- </div>
- </div>
- <div class="wall-item-wrapper-end"></div>
- <div class="wall-item-like $item.indent" id="wall-item-like-$item.id">$item.like</div>
- <div class="wall-item-dislike $item.indent" id="wall-item-dislike-$item.id">$item.dislike</div>
- <div class="wall-item-comment-wrapper" >
- $item.comment
- </div>
-
-<div class="wall-item-outside-wrapper-end $item.indent" ></div>
-</div>
diff --git a/view/tpl/wall_thread.tpl b/view/tpl/wall_thread.tpl
deleted file mode 100644
index 9a02b2103..000000000
--- a/view/tpl/wall_thread.tpl
+++ /dev/null
@@ -1,120 +0,0 @@
-{{if $item.comment_firstcollapsed}}
- <div class="hide-comments-outer">
- <span id="hide-comments-total-$item.id" class="hide-comments-total">$item.num_comments</span> <span id="hide-comments-$item.id" class="hide-comments fakelink" onclick="showHideComments($item.id);">$item.hide_text</span>
- </div>
- <div id="collapsed-comments-$item.id" class="collapsed-comments" style="display: none;">
-{{endif}}
-<div id="thread-wrapper-$item.id" class="thread-wrapper $item.toplevel">
-<a name="$item.id" ></a>
-<div class="wall-item-outside-wrapper $item.indent$item.previewing{{ if $item.owner_url }} wallwall{{ endif }}" id="wall-item-outside-wrapper-$item.id" >
- <div class="wall-item-content-wrapper $item.indent" id="wall-item-content-wrapper-$item.id" >
- <div class="wall-item-info{{ if $item.owner_url }} wallwall{{ endif }}" id="wall-item-info-$item.id">
- {{ if $item.owner_url }}
- <div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$item.id" >
- <a href="$item.owner_url" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id">
- <img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" /></a>
- </div>
- <div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="$item.wall" /></div>
- {{ endif }}
- <div class="wall-item-photo-wrapper{{ if $item.owner_url }} wwfrom{{ endif }}" id="wall-item-photo-wrapper-$item.id"
- onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
- onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
- <a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
- <img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
- <span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
- <div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
- <ul>
- $item.item_photo_menu
- </ul>
- </div>
-
- </div>
- <div class="wall-item-photo-end"></div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-$item.id" >
- {{ if $item.lock }}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="$item.lock" onclick="lockview(event,$item.id);" /></div>
- {{ else }}<div class="wall-item-lock"></div>{{ endif }}
- <div class="wall-item-location" id="wall-item-location-$item.id">$item.location</div>
- </div>
- </div>
- <div class="wall-item-author">
- <a href="$item.profile_url" title="$item.linktitle" class="wall-item-name-link"><span class="wall-item-name$item.sparkle" id="wall-item-name-$item.id" >$item.name</span></a>{{ if $item.owner_url }} $item.to <a href="$item.owner_url" target="redir" title="$item.olinktitle" class="wall-item-name-link"><span class="wall-item-name$item.osparkle" id="wall-item-ownername-$item.id">$item.owner_name</span></a> $item.vwall{{ endif }}<br />
- <div class="wall-item-ago" id="wall-item-ago-$item.id" title="$item.localtime">$item.ago</div>
- </div>
- <div class="wall-item-content" id="wall-item-content-$item.id" >
- <div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
- <div class="wall-item-title-end"></div>
- <div class="wall-item-body" id="wall-item-body-$item.id" >$item.body
- <div class="body-tag">
- {{ for $item.tags as $tag }}
- <span class='tag'>$tag</span>
- {{ endfor }}
- </div>
- {{ if $item.has_cats }}
- <div class="categorytags"><span>$item.txt_cats {{ for $item.categories as $cat }}$cat.name <a href="$cat.removeurl" title="$remove">[$remove]</a> {{ if $cat.last }}{{ else }}, {{ endif }}{{ endfor }}
- </div>
- {{ endif }}
-
- {{ if $item.has_folders }}
- <div class="filesavetags"><span>$item.txt_folders {{ for $item.folders as $cat }}$cat.name <a href="$cat.removeurl" title="$remove">[$remove]</a> {{ if $cat.last }}{{ else }}, {{ endif }}{{ endfor }}
- </div>
- {{ endif }}
- </div>
- </div>
- <div class="wall-item-tools" id="wall-item-tools-$item.id">
- {{ if $item.vote }}
- <div class="wall-item-like-buttons" id="wall-item-like-buttons-$item.id">
- <a href="#" class="icon like" title="$item.vote.like.0" onclick="dolike($item.id,'like'); return false"></a>
- {{ if $item.nolike }}
- <a href="#" class="icon dislike" title="$item.vote.dislike.0" onclick="dolike($item.id,'dislike'); return false"></a>
- {{ endif }}
- {{ if $item.vote.share }}<a href="#" class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }}
- </div>
- {{ endif }}
- {{ if $item.plink }}
- <div class="wall-item-links-wrapper"><a href="$item.plink.href" title="$item.plink.title" target="external-link" class="icon remote-link$item.sparkle"></a></div>
- {{ endif }}
- {{ if $item.edpost }}
- <a class="editpost icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
- {{ endif }}
-
- {{ if $item.star }}
- <a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
- <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
- {{ endif }}
- {{ if $item.filer }}
- <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
- {{ endif }}
- <img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
-
- <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
- {{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
- </div>
- {{ if $item.drop.pagedrop }}<input type="checkbox" onclick="checkboxhighlight(this);" title="$item.drop.select" class="item-select" name="itemselected[]" value="$item.id" />{{ endif }}
- <div class="wall-item-delete-end"></div>
- </div>
- </div>
- <div class="wall-item-wrapper-end"></div>
- <div class="wall-item-like $item.indent" id="wall-item-like-$item.id">$item.like</div>
- <div class="wall-item-dislike $item.indent" id="wall-item-dislike-$item.id">$item.dislike</div>
-
- {{ if $item.threaded }}
- {{ if $item.comment }}
- <div class="wall-item-comment-wrapper $item.indent" >
- $item.comment
- </div>
- {{ endif }}
- {{ endif }}
-
-<div class="wall-item-outside-wrapper-end $item.indent" ></div>
-</div>
-{{ for $item.children as $child }}
- {{ inc $child.template with $item=$child }}{{ endinc }}
-{{ endfor }}
-
-{{ if $item.flatten }}
-<div class="wall-item-comment-wrapper" >
- $item.comment
-</div>
-{{ endif }}
-</div>
-{{if $item.comment_lastcollapsed}}</div>{{endif}}
diff --git a/view/tpl/wallmessage.tpl b/view/tpl/wallmessage.tpl
deleted file mode 100644
index 66b2bc3a0..000000000
--- a/view/tpl/wallmessage.tpl
+++ /dev/null
@@ -1,32 +0,0 @@
-
-<h3>$header</h3>
-
-<h4>$subheader</h4>
-
-<div id="prvmail-wrapper" >
-<form id="prvmail-form" action="wallmessage/$nickname" method="post" >
-
-$parent
-
-<div id="prvmail-to-label">$to</div>
-$recipname
-
-<div id="prvmail-subject-label">$subject</div>
-<input type="text" size="64" maxlength="255" id="prvmail-subject" name="subject" value="$subjtxt" $readonly tabindex="11" />
-
-<div id="prvmail-message-label">$yourmessage</div>
-<textarea rows="8" cols="72" class="prvmail-text" id="prvmail-text" name="body" tabindex="12">$text</textarea>
-
-
-<div id="prvmail-submit-wrapper" >
- <input type="submit" id="prvmail-submit" name="submit" value="Submit" tabindex="13" />
- <div id="prvmail-link-wrapper" >
- <div id="prvmail-link" class="icon border link" title="$insert" onclick="jotGetLink();" ></div>
- </div>
- <div id="prvmail-rotator-wrapper" >
- <img id="prvmail-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
- </div>
-</div>
-<div id="prvmail-end"></div>
-</form>
-</div>
diff --git a/view/tpl/wallmsg-header.tpl b/view/tpl/wallmsg-header.tpl
deleted file mode 100644
index cb3922572..000000000
--- a/view/tpl/wallmsg-header.tpl
+++ /dev/null
@@ -1,82 +0,0 @@
-
-<script language="javascript" type="text/javascript" src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
-<script language="javascript" type="text/javascript">
-
-var plaintext = '$editselect';
-
-if(plaintext != 'none') {
- tinyMCE.init({
- theme : "advanced",
- mode : "specific_textareas",
- editor_selector: /(profile-jot-text|prvmail-text)/,
- plugins : "bbcode,paste",
- theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",
- theme_advanced_buttons2 : "",
- theme_advanced_buttons3 : "",
- theme_advanced_toolbar_location : "top",
- theme_advanced_toolbar_align : "center",
- theme_advanced_blockformats : "blockquote,code",
- gecko_spellcheck : true,
- paste_text_sticky : true,
- entity_encoding : "raw",
- add_unload_trigger : false,
- remove_linebreaks : false,
- force_p_newlines : false,
- force_br_newlines : true,
- forced_root_block : '',
- convert_urls: false,
- content_css: "$baseurl/view/custom_tinymce.css",
- //Character count
- theme_advanced_path : false,
- setup : function(ed) {
- ed.onInit.add(function(ed) {
- ed.pasteAsPlainText = true;
- var editorId = ed.editorId;
- var textarea = $('#'+editorId);
- if (typeof(textarea.attr('tabindex')) != "undefined") {
- $('#'+editorId+'_ifr').attr('tabindex', textarea.attr('tabindex'));
- textarea.attr('tabindex', null);
- }
- });
- }
- });
-}
-else
- $("#prvmail-text").contact_autocomplete(baseurl+"/acl");
-
-
-</script>
-<script>
-
- function jotGetLink() {
- reply = prompt("$linkurl");
- if(reply && reply.length) {
- $('#profile-rotator').show();
- $.get('parse_url?url=' + reply, function(data) {
- tinyMCE.execCommand('mceInsertRawHTML',false,data);
- $('#profile-rotator').hide();
- });
- }
- }
-
- function linkdropper(event) {
- var linkFound = event.dataTransfer.types.contains("text/uri-list");
- if(linkFound)
- event.preventDefault();
- }
-
- function linkdrop(event) {
- var reply = event.dataTransfer.getData("text/uri-list");
- event.target.textContent = reply;
- event.preventDefault();
- if(reply && reply.length) {
- $('#profile-rotator').show();
- $.get('parse_url?url=' + reply, function(data) {
- tinyMCE.execCommand('mceInsertRawHTML',false,data);
- $('#profile-rotator').hide();
- });
- }
- }
-
-</script>
-
diff --git a/view/tpl/wallwall_item.tpl b/view/tpl/wallwall_item.tpl
deleted file mode 100644
index 9c824fb3b..000000000
--- a/view/tpl/wallwall_item.tpl
+++ /dev/null
@@ -1,86 +0,0 @@
-<a name="$item.id" ></a>
-<div class="wall-item-outside-wrapper $item.indent$item.previewing wallwall" id="wall-item-outside-wrapper-$item.id" >
- <div class="wall-item-content-wrapper $item.indent" id="wall-item-content-wrapper-$item.id" >
- <div class="wall-item-info wallwall" id="wall-item-info-$item.id">
- <div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$item.id" >
- <a href="$item.owner_url" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id">
- <img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" /></a>
- </div>
- <div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="$item.wall" /></div>
- <div class="wall-item-photo-wrapper wwfrom" id="wall-item-photo-wrapper-$item.id"
- onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
- onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
- <a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
- <img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
- <span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
- <div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
- <ul>
- $item.item_photo_menu
- </ul>
- </div>
-
- </div>
- <div class="wall-item-photo-end"></div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-$item.id" >
- {{ if $item.lock }}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="$item.lock" onclick="lockview(event,$item.id);" /></div>
- {{ else }}<div class="wall-item-lock"></div>{{ endif }}
- <div class="wall-item-location" id="wall-item-location-$item.id">$item.location</div>
- </div>
- </div>
- <div class="wall-item-author">
- <a href="$item.profile_url" title="$item.linktitle" class="wall-item-name-link"><span class="wall-item-name$item.sparkle" id="wall-item-name-$item.id" >$item.name</span></a> $item.to <a href="$item.owner_url" title="$item.olinktitle" class="wall-item-name-link"><span class="wall-item-name$item.osparkle" id="wall-item-ownername-$item.id">$item.owner_name</span></a> $item.vwall<br />
- <div id="wall-item-ago-$item.id" class="wall-item-ago"><abbr class="wall-item-ago-time" title="$item.localtime">$item.ago</abbr>{{ if $item.app }}<span class="item.app">$item.str_app</span>{{ endif }}</div>
- </div>
- <div class="wall-item-content" id="wall-item-content-$item.id" >
- <div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
- <div class="wall-item-title-end"></div>
- <div class="wall-item-body" id="wall-item-body-$item.id" >$item.body
- <div class="body-tag">
- {{ for $item.tags as $tag }}
- <span class='tag'>$tag</span>
- {{ endfor }}
- </div>
- </div>
- </div>
- <div class="wall-item-tools" id="wall-item-tools-$item.id">
- {{ if $item.vote }}
- <div class="wall-item-like-buttons" id="wall-item-like-buttons-$item.id">
- <a href="#" class="icon like" title="$item.vote.like.0" onclick="dolike($item.id,'like'); return false"></a>
- <a href="#" class="icon dislike" title="$item.vote.dislike.0" onclick="dolike($item.id,'dislike'); return false"></a>
- {{ if $item.vote.share }}<a href="#" class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }}
- <img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
- </div>
- {{ endif }}
- {{ if $item.plink }}
- <div class="wall-item-links-wrapper"><a href="$item.plink.href" title="$item.plink.title" class="icon remote-link$item.sparkle"></a></div>
- {{ endif }}
- {{ if $item.edpost }}
- <a class="editpost icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
- {{ endif }}
-
- {{ if $item.star }}
- <a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
- <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
- {{ endif }}
- {{ if $item.filer }}
- <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
- {{ endif }}
-
- <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
- {{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
- </div>
- {{ if $item.drop.pagedropping }}<input type="checkbox" onclick="checkboxhighlight(this);" title="$item.drop.select" class="item-select" name="itemselected[]" value="$item.id" />{{ endif }}
- <div class="wall-item-delete-end"></div>
- </div>
- </div>
- <div class="wall-item-wrapper-end"></div>
- <div class="wall-item-like $item.indent" id="wall-item-like-$item.id">$item.like</div>
- <div class="wall-item-dislike $item.indent" id="wall-item-dislike-$item.id">$item.dislike</div>
- <div class="wall-item-comment-separator"></div>
- <div class="wall-item-comment-wrapper">
- $item.comment
- </div>
-
-<div class="wall-item-outside-wrapper-end $item.indent" ></div>
-</div>
-
diff --git a/view/tpl/wallwall_thread.tpl b/view/tpl/wallwall_thread.tpl
deleted file mode 100644
index ecfb65aef..000000000
--- a/view/tpl/wallwall_thread.tpl
+++ /dev/null
@@ -1,107 +0,0 @@
-{{if $item.comment_firstcollapsed}}
- <div class="hide-comments-outer">
- <span id="hide-comments-total-$item.id" class="hide-comments-total">$item.num_comments</span> <span id="hide-comments-$item.id" class="hide-comments fakelink" onclick="showHideComments($item.id);">$item.hide_text</span>
- </div>
- <div id="collapsed-comments-$item.id" class="collapsed-comments" style="display: none;">
-{{endif}}
-<div id="tread-wrapper-$item.id" class="tread-wrapper $item.toplevel">
-<a name="$item.id" ></a>
-<div class="wall-item-outside-wrapper $item.indent$item.previewing wallwall" id="wall-item-outside-wrapper-$item.id" >
- <div class="wall-item-content-wrapper $item.indent" id="wall-item-content-wrapper-$item.id" >
- <div class="wall-item-info wallwall" id="wall-item-info-$item.id">
- <div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$item.id" >
- <a href="$item.owner_url" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id">
- <img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" /></a>
- </div>
- <div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="$item.wall" /></div>
- <div class="wall-item-photo-wrapper wwfrom" id="wall-item-photo-wrapper-$item.id"
- onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
- onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
- <a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
- <img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
- <span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
- <div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
- <ul>
- $item.item_photo_menu
- </ul>
- </div>
-
- </div>
- <div class="wall-item-photo-end"></div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-$item.id" >
- {{ if $item.lock }}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="$item.lock" onclick="lockview(event,$item.id);" /></div>
- {{ else }}<div class="wall-item-lock"></div>{{ endif }}
- <div class="wall-item-location" id="wall-item-location-$item.id">$item.location</div>
- </div>
- </div>
- <div class="wall-item-author">
- <a href="$item.profile_url" title="$item.linktitle" class="wall-item-name-link"><span class="wall-item-name$item.sparkle" id="wall-item-name-$item.id" >$item.name</span></a> $item.to <a href="$item.owner_url" title="$item.olinktitle" class="wall-item-name-link"><span class="wall-item-name$item.osparkle" id="wall-item-ownername-$item.id">$item.owner_name</span></a> $item.vwall<br />
- <div class="wall-item-ago" id="wall-item-ago-$item.id">$item.ago</div>
- </div>
- <div class="wall-item-content" id="wall-item-content-$item.id" >
- <div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
- <div class="wall-item-title-end"></div>
- <div class="wall-item-body" id="wall-item-body-$item.id" >$item.body
- <div class="body-tag">
- {{ for $item.tags as $tag }}
- <span class='tag'>$tag</span>
- {{ endfor }}
- </div>
- </div>
- </div>
- <div class="wall-item-tools" id="wall-item-tools-$item.id">
- {{ if $item.vote }}
- <div class="wall-item-like-buttons" id="wall-item-like-buttons-$item.id">
- <a href="#" class="icon like" title="$item.vote.like.0" onclick="dolike($item.id,'like'); return false"></a>
- <a href="#" class="icon dislike" title="$item.vote.dislike.0" onclick="dolike($item.id,'dislike'); return false"></a>
- {{ if $item.vote.share }}<a href="#" class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }}
- <img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
- </div>
- {{ endif }}
- {{ if $item.plink }}
- <div class="wall-item-links-wrapper"><a href="$item.plink.href" title="$item.plink.title" class="icon remote-link$item.sparkle"></a></div>
- {{ endif }}
- {{ if $item.edpost }}
- <a class="editpost icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
- {{ endif }}
-
- {{ if $item.star }}
- <a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
- <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
- {{ endif }}
- {{ if $item.filer }}
- <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
- {{ endif }}
-
- <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
- {{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
- </div>
- {{ if $item.drop.dropping }}<input type="checkbox" onclick="checkboxhighlight(this);" title="$item.drop.select" class="item-select" name="itemselected[]" value="$item.id" />{{ endif }}
- <div class="wall-item-delete-end"></div>
- </div>
- </div>
- <div class="wall-item-wrapper-end"></div>
- <div class="wall-item-like $item.indent" id="wall-item-like-$item.id">$item.like</div>
- <div class="wall-item-dislike $item.indent" id="wall-item-dislike-$item.id">$item.dislike</div>
-
- {{ if $item.threaded }}
- {{ if $item.comment }}
- <div class="wall-item-comment-wrapper $item.indent" >
- $item.comment
- </div>
- {{ endif }}
- {{ endif }}
-
-<div class="wall-item-outside-wrapper-end $item.indent" ></div>
-</div>
-{{ for $item.children as $item }}
- {{ inc $item.template }}{{ endinc }}
-{{ endfor }}
-
-{{ if $item.flatten }}
-<div class="wall-item-comment-wrapper" >
- $item.comment
-</div>
-{{ endif }}
-</div>
-{{if $item.comment_lastcollapsed}}</div>{{endif}}
diff --git a/view/tpl/webpagelist.tpl b/view/tpl/webpagelist.tpl
new file mode 100644
index 000000000..f3fe90da5
--- /dev/null
+++ b/view/tpl/webpagelist.tpl
@@ -0,0 +1,20 @@
+{{include file="prettyphoto.tpl"}}
+
+{{if $pages}}
+
+ <div id="pagelist-content-wrapper">
+ {{foreach $pages as $key => $items}}
+ {{foreach $items as $item}}
+ <div class="page-list-item"><a href="{{$baseurl}}/{{$item.url}}">{{$edit}}</a> |
+ <a href="page/{{$channel}}/{{$item.title}}">{{$view}}</a>
+ {{$item.title}} |
+ <a href="page/{{$channel}}/{{$item.title}}?iframe=true&width=80%&height=80%" rel="prettyPhoto[iframes]">Preview</a>
+
+</div>
+ {{/foreach}}
+ {{/foreach}}
+ </div>
+
+ <div class="clear"></div>
+
+{{/if}}
diff --git a/view/tpl/xchan_vcard.tpl b/view/tpl/xchan_vcard.tpl
index f0b623927..3dabdad95 100644..100755
--- a/view/tpl/xchan_vcard.tpl
+++ b/view/tpl/xchan_vcard.tpl
@@ -1,18 +1,18 @@
<div class="vcard">
-<div class="fn">$name</div>
-<div id="profile-photo-wrapper"><img class="vcard-photo photo" src="$photo" alt="name" /></div>
+<div class="fn">{{$name}}</div>
+<div id="profile-photo-wrapper"><img class="vcard-photo photo" src="{{$photo}}" alt="name" /></div>
</div>
<div id="profile-extra-links">
<ul>
-{{ if $connect }}
- <li><a id="follow-link" href="follow?f=&url=$follow">$connect</a></li>
-{{ endif }}
-{{ if $newwin }}
- <li><a id="visit-chan-link" href="$url" title="$newtit" target="_blank" >$newwin</a></li>
-{{ endif }}
+{{if $connect}}
+ <li><a id="follow-link" href="follow?f=&url={{$follow}}">{{$connect}}</a></li>
+{{/if}}
+{{if $newwin}}
+ <li><a id="visit-chan-link" href="{{$url}}" title="{{$newtit}}" target="_blank" >{{$newwin}}</a></li>
+{{/if}}
</ul>
diff --git a/view/tpl/xrd_host.tpl b/view/tpl/xrd_host.tpl
index 94e3c2146..4bcc5bbdb 100644..100755
--- a/view/tpl/xrd_host.tpl
+++ b/view/tpl/xrd_host.tpl
@@ -2,17 +2,17 @@
<XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'
xmlns:hm='http://host-meta.net/xrd/1.0'>
- <hm:Host>$zhost</hm:Host>
+ <hm:Host>{{$zhost}}</hm:Host>
- <Link rel='lrdd' template='$domain/xrd/?uri={uri}' />
- <Link rel='acct-mgmt' href='$domain/amcd' />
- <Link rel='http://services.mozilla.com/amcd/0.1' href='$domain/amcd' />
+ <Link rel='lrdd' template='{{$domain}}/xrd/?uri={uri}' />
+ <Link rel='acct-mgmt' href='{{$domain}}/amcd' />
+ <Link rel='http://services.mozilla.com/amcd/0.1' href='{{$domain}}/amcd' />
<Link rel="http://oexchange.org/spec/0.8/rel/resident-target" type="application/xrd+xml"
- href="$domain/oexchange/xrd" />
+ href="{{$domain}}/oexchange/xrd" />
<Property xmlns:mk="http://salmon-protocol.org/ns/magic-key"
type="http://salmon-protocol.org/ns/magic-key"
- mk:key_id="1">$bigkey</Property>
+ mk:key_id="1">{{$bigkey}}</Property>
</XRD>
diff --git a/view/tpl/xrd_person.tpl b/view/tpl/xrd_person.tpl
index 3a6ca7ba7..035ab251f 100644..100755
--- a/view/tpl/xrd_person.tpl
+++ b/view/tpl/xrd_person.tpl
@@ -1,29 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
- <Subject>$accturi</Subject>
- <Alias>$accturi</Alias>
- <Alias>$profile_url</Alias>
+ <Subject>{{$accturi}}</Subject>
+ <Alias>{{$accturi}}</Alias>
+ <Alias>{{$profile_url}}</Alias>
<Link rel="http://purl.org/macgirvin/dfrn/1.0"
- href="$profile_url" />
+ href="{{$profile_url}}" />
<Link rel="http://schemas.google.com/g/2010#updates-from"
type="application/atom+xml"
- href="$atom" />
+ href="{{$atom}}" />
<Link rel="http://webfinger.net/rel/profile-page"
type="text/html"
- href="$profile_url" />
+ href="{{$profile_url}}" />
<Link rel="http://microformats.org/profile/hcard"
type="text/html"
- href="$hcard_url" />
+ href="{{$hcard_url}}" />
<Link rel="http://portablecontacts.net/spec/1.0"
- href="$poco_url" />
+ href="{{$poco_url}}" />
<Link rel="http://webfinger.net/rel/avatar"
type="image/jpeg"
- href="$photo" />
+ href="{{$photo}}" />
<Property xmlns:mk="http://salmon-protocol.org/ns/magic-key"
type="http://salmon-protocol.org/ns/magic-key"
- mk:key_id="1">$bigkey</Property>
+ mk:key_id="1">{{$bigkey}}</Property>
</XRD>